Skip to main content
LibreTexts - Ukrayinska

3.2: Покращений метод Ейлера та пов'язані з ними методи

  • Page ID
    62130
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    У розділі 3.1 ми побачили, що глобальна похибка усічення методу Ейлера є\(O(h)\), що, здавалося б, означає, що ми можемо досягти довільно точних результатів за допомогою методу Ейлера, просто вибравши досить малий розмір кроку. Однак це не дуже гарна ідея, з двох причин. По-перше, після певного моменту зменшення розміру кроку збільшить похибки округлення до того моменту, коли точність погіршиться, а не покращиться. Друга і більш важлива причина полягає в тому, що в більшості застосувань числових методів до початкової задачі значення

    \[\label{eq:3.2.1} y'=f(x,y),\quad y(x_0)=y_0,\]

    дорогою частиною обчислень є оцінка\(f\). Тому ми хочемо методів, які дають хороші результати для даної кількості таких оцінок. Це те, що спонукає нас шукати числові методи краще, ніж Ейлера.

    Щоб уточнити цей момент, припустимо, ми хочемо наблизити значення,\(e\) застосувавши метод Ейлера до початкової задачі значення

    \[y'=y,\quad y(0)=1 \nonumber\]

    (З розчином\(y=e^x\)) на\([0,1]\), з\(h=1/12\)\(1/24\), і\(1/48\), відповідно. Оскільки кожен крок методу Ейлера вимагає однієї оцінки\(f\), кількість оцінок\(f\) в кожній з цих спроб є\(n=12\)\(24\), і\(48\), відповідно. У кожному випадку ми приймаємо\(y_n\) як наближення до\(e\). Другий стовпець таблиці Template:index показує результати. У першому стовпці таблиці вказується кількість оцінок,\(f\) необхідних для отримання наближення, а останній стовпець містить значення\(e\) округлених до десяти значущих цифр.

    У цьому розділі ми вивчимо вдосконалений метод Ейлера, який вимагає двох оцінок\(f\) на кожному кроці. Ми використовували цей метод з\(h=1/6\)\(1/12\), і\(1/24\). Необхідна кількість оцінок\(f\) становила 12, 24, і\(48\), як і в трьох застосуваннях методу Ейлера; однак, з третього стовпця таблиці Template:index можна побачити, що наближення до\(e\) отриманого вдосконаленим методом Ейлера лише з 12 оцінками \(f\)краще, ніж наближення, отримане методом Ейлера з 48 оцінками.

    У розділі 3.3 ми вивчимо метод Рунге - Кутта, який вимагає чотирьох оцінок\(f\) на кожному кроці. Ми використовували цей метод з\(h=1/3\)\(1/6\), і\(1/12\). Необхідна кількість оцінок\(f\) була знову 12, 24, і\(48\), як і в трьох застосуваннях методу Ейлера та вдосконаленого методу Ейлера; однак, з четвертого стовпця таблиці Template:index можна побачити, що наближення до\(e\) отриманого методом Рунге-Кутти лише 12 оцінок\(f\) краще, ніж наближення, отримане вдосконаленим методом Ейлера з оцінками 48.

    \(n\) Ейлер Покращений Ейлер Рунге-Кутта Точний
    \ (n\)» style="вирівнювання тексту: центр; "> 12 2.613035290 2.707188994 2.718069764 2.71828 1828
    \ (n\)» style="вирівнювання тексту: центр; ">24 2.663731258 2.715327371 2.718266612 2.71828 1828
    \ (n\)» style="вирівнювання тексту: центр; ">48 2.690496599 2.7 175 19565 2.718280809 2.71828 1828
    Таблиця Template:index: Наближення до\(e\) отриманих трьома числовими методами.

    Покращений метод Ейлера

    Удосконалений метод Ейлера для розв'язання початкової задачі Equation\ ref {eq:3.2.1} заснований на апроксимуванні інтегральної кривої Equation\ ref {eq:3.2.1}\((x_i,y(x_i))\) на прямій\((x_i,y(x_i))\) з нахилом

    \[m_i={f(x_i,y(x_i))+f(x_{i+1},y(x_{i+1}))\over2};\nonumber \]

    \(m_i\)тобто середнє значення нахилів дотичних до інтегральної кривої в кінцевих точках\([x_i,x_{i+1}]\). Таким чином, рівняння апроксимуючої лінії

    \[\label{eq:3.2.2} y=y(x_i)+{f(x_i,y(x_i))+f(x_{i+1},y(x_{i+1}))\over2}(x-x_i).\]

    Встановлення\(x=x_{i+1}=x_i+h\) в рівнянні\ ref {eq:3.2.2} дає

    \[\label{eq:3.2.3} y_{i+1}=y(x_i)+{h\over2}\left(f(x_i,y(x_i))+f(x_{i+1},y(x_{i+1}))\right)\]

    як наближення до\(y(x_{i+1})\). Як і в нашому виведенні методу Ейлера, ми замінюємо\(y(x_i)\) (невідомо if\(i>0\)) на його приблизне значення\(y_i\); тоді Equation\ ref {eq:3.2.3} стає

    \[y_{i+1}=y_i+{h\over2}\left(f(x_i,y_i)+f(x_{i+1},y(x_{i+1})\right).\nonumber \]

    Однак це все одно не спрацює, тому що ми не знаємо\(y(x_{i+1})\), що з'являється справа. Ми долаємо це\(y(x_{i+1})\) шляхом заміни на\(y_i+hf(x_i,y_i)\), значення, яке метод Ейлера присвоїв би\(y_{i+1}\). Таким чином, вдосконалений метод Ейлера починається з відомого значення\(y(x_0)=y_0\) і обчислює\(y_1\),\(y_2\),...,\(y_n\) послідовно з формулою

    \[\label{eq:3.2.4} y_{i+1}=y_i+{h\over2}\left(f(x_i,y_i)+f(x_{i+1},y_i+hf(x_i,y_i))\right).\]

    Обчислення, зазначені тут, можна зручно організувати наступним чином: дано\(y_i\), обчислити

    \[\begin{aligned} k_{1i}&=f(x_i,y_i),\\ k_{2i}&=f\left(x_i+h,y_i+hk_{1i}\right),\\ y_{i+1}&=y_i+{h\over2}(k_{1i}+k_{2i}).\end{aligned}\nonumber \]

    Покращений метод Ейлера вимагає двох оцінок\(f(x,y)\) на крок, тоді як метод Ейлера вимагає лише однієї. Однак в кінці цього розділу ми побачимо, що якщо\(f\) задовольняє відповідні припущення, локальна помилка усічення з покращеним методом Ейлера є\(O(h^3)\), а не\(O(h^2)\) як у методі Ейлера. Тому глобальна помилка усічення з покращеним методом Ейлера є\(O(h^2)\); однак ми цього не доведемо.

    Зауважимо, що величина локальної похибки усічення в вдосконаленому методі Ейлера та інших методах, розглянутих у цьому розділі, визначається третьою похідною\(y'''\) розв'язку задачі початкового значення. Тому локальна помилка усічення буде більшою там, де\(|y'''|\) велика, або менша, де\(|y'''|\) мала.

    Наступний приклад, який стосується задачі початкового значення, розглянутого у прикладі Template:index, ілюструє обчислювальну процедуру, зазначену в вдосконаленому методі Ейлера.

    Приклад Template:index

    Використовувати вдосконалений метод Ейлера з\(h=0.1\) для пошуку наближених значень розв'язку початкової задачі.

    \[\label{eq:3.2.5} y'+2y=x^3e^{-2x},\quad y(0)=1\]

    в\(x=0.1,0.2,0.3\).

    Рішення

    Як і в прикладі 3.1.1, ми перепишемо рівняння\ ref {eq:3.2.5} як

    \[y'=-2y+x^3e^{-2x},\quad y(0)=1,\nonumber \]

    який має вигляд Рівняння\ ref {eq:3.2.1}, з

    \[f(x,y)=-2y+x^3e^{-2x}, x_0=0,\text{and } y_0=1.\nonumber \]

    Покращена врожайність методу Ейлера

    \[\begin{aligned} k_{10} & = f(x_0,y_0) = f(0,1)=-2,\\ k_{20} & = f(x_1,y_0+hk_{10})=f(0.1,1+(0.1)(-2))\\ &= f(0.1,0.8)=-2(0.8)+(0.1)^3e^{-0.2}=-1.599181269,\\ y_1&=y_0+{h\over2}(k_{10}+k_{20}),\\ &=1+(0.05)(-2-1.599181269)=0.820040937,\\[4pt] k_{11} & = f(x_1,y_1) = f(0.1,0.820040937)= -2(0.820040937)+(0.1)^3e^{-0.2}=-1.639263142,\\ k_{21} & = f(x_2,y_1+hk_{11})=f(0.2,0.820040937+0.1(-1.639263142)),\\ &= f(0.2,0.656114622)=-2(0.656114622)+(.2)^3e^{-0.4}=-1.306866684,\\ y_2&=y_1+{h\over2}(k_{11}+k_{21}),\\ &=.820040937+(.05)(-1.639263142-1.306866684)=0.672734445,\\[4pt] k_{12} & = f(x_2,y_2) = f(.2,.672734445)= -2(.672734445)+(.2)^3e^{-.4}=-1.340106330,\\ k_{22} & = f(x_3,y_2+hk_{12})=f(.3,.672734445+.1(-1.340106330)),\\ &= f(.3,.538723812)=-2(.538723812)+(.3)^3e^{-.6}=-1.062629710,\\ y_3&=y_2+{h\over2}(k_{12}+k_{22})\\ &=.672734445+(.05)(-1.340106330-1.062629710)=0.552597643.\end{aligned}\]

    Приклад Template:index

    Таблиця Template:index показує результати використання вдосконаленого методу Ейлера з розмірами кроків\(h=0.1\) та\(h=0.05\) пошуку наближених значень розв'язку початкової задачі

    \[y'+2y=x^3e^{-2x},\quad y(0)=1\nonumber \]

    в\(x=0\),\(0.1\),\(0.2\),\(0.3\),...,\(1.0\). Для порівняння також наведено відповідні наближені значення, отримані методом Ейлера у [example:3.1.2}, та значення точного розв'язку

    \[y={e^{-2x}\over4}(x^4+4). \nonumber\]

    Результати, отримані вдосконаленим методом Ейлера з\(h=0.1\), кращі, ніж результати, отримані методом Ейлера с\(h=0.05\).

      Ейлер Покращений Ейлер Точний
    \(x\) \(h=0.1\) \(h=0.05\) \(h=0.1\) \(h=0.05\) Точний
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.0 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 1.000000000 \ (h = 0,05\)» style="вертикальне вирівнювання: середина; "> 1.000000000 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 1.000000000 \ (h = 0,05\)» style="вертикальне вирівнювання: середина; "> 1.000000000 1.000000000
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.1 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 0.800000000 \ (h = 0,05\)» style="вертикальне вирівнювання: посередині; "> 0.810005655 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 0.820040937 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.819050572 0,818751221
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.2 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 0.640081873 \ (h=0,05\)» style="вертикальне вирівнювання: по середині; "> 0.656266437 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 0.672734445 \ (h = 0,05\)» style="вертикальне вирівнювання: по середині; "> 0.671086455 0.670588174
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.3 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 0.512601754 \ (h = 0,05\)» style="вертикальне вирівнювання: по середині; "> 0.532290981 \ (h = 0.1\)» style="вертикальне вирівнювання: посередині; "> 0.552597643 \ (h = 0,05\)» style="вертикальне вирівнювання: посередині; "> 0.550543878 0.549922980
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.4 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 0.411563195 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.432887056 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 0.455160637 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.452890616 0,452204669
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.5 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 0.332126261 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.353785015 \ (h=0.1\)» style="вертикальне вирівнювання: середина; "> 0.376681251 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.374335747 0,373627557
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.6 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 0.270299502 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.291404256 \ (h=0.1\)» style="вертикальне вирівнювання: середина; "> 0.313970920 \ (h=0,05\)» style="вертикальне вирівнювання: по середині; "> 0.311652239 0,310952904
    \ (x\)» style="Вирівнювання по вертикалі: середина; "> 0.7 \ (h = 0.1\)» style="вертикальне вирівнювання: посередині; "> 0.222745397 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.242707257 \ (h = 0.1\)» style="вертикальне вирівнювання: посередині; "> 0.264287611 \ (h=0.05\)» style="вертикальне вирівнювання: посередині; "> 0.262067624 0.261398947
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0,8 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 0.186654593 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.205105754 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 0.225267702 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.223194281 0.222570721
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.9 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 0.159660776 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.176396883 \ (h=0.1\)» style="вертикальне вирівнювання: по середині; "> 0.194879501 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.192981757 0,1924 12038
    \ (x\)» style="вертикальне вирівнювання: середина; "> 1.0 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 0.139778910 \ (h = 0,05\)» style="вертикальне вирівнювання: середина; "> 0.154715925 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 0.171388070 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 0.169680673 0.169169104
    Таблиця Template:index: Чисельне розв'язання методом Ейлера та вдосконаленим методом Ейлера.\(y'+2y=x^3e^{-2x},\ y(0)=1\)
    Приклад Template:index

    Таблиця Template:index показує аналогічні результати для нелінійної задачі на початкове значення

    \[y'=-2y^2+xy+x^2,\ y(0)=1. \nonumber\]

    Ми застосували метод Ейлера до цієї проблеми у прикладі Template:index.

      Ейлер Покращений Ейлер Точний
    \(x\) \(h=0.1\) \(h=0.05\) \(h=0.1\) \(h=0.05\) Точний
    \ (x\) ">0.0 \ (h = 0.1\) ">1.000000000 \ (h = 0,05\) ">1.000000000 \ (h = 0.1\) ">1.000000000 \ (h = 0,05\) ">1.000000000 1.000000000
    \ (x\) ">0,1 \ (h = 0.1\) ">0.800000000 \ (h = 0,05\) ">0,821375000 \ (h=0.1\) ">0.840500000 \ (h=0,05\) ">0,838288371 0.837584494
    \ (x\) ">0.2 \ (h=0.1\) ">0,681000000 \ (h=0,05\) ">0,707795377 \ (h=0,1\) ">0,733430846 \ (h=0,05\) ">0,730556677 0,729641890
    \ (x\) ">0.3 \ (h=0.1\) ">0.605867800 \ (h=0,05\) ">0.633776590 \ (h=0.1\) ">0,661600806 \ (h=0,05\) ">0,658552190 0.657 580377
    \ (x\) ">0.4 \ (h=0.1\) ">0,559628676 \ (h=0,05\) ">0.587454526 \ (h=0.1\) ">0.615961841 \ (h=0,05\) ">0.612884493 0.611901791
    \ (x\) ">0.5 \ (h=0,1\) ">0,535376972 \ (h=0,05\) ">0,562906169 \ (h=0.1\) ">0,591634742 \ (h=0,05\) ">0.588558952 0.587575491
    \ (x\) ">0.6 \ (h=0.1\) ">0.529820120 \ (h = 0,05\) ">0,557143535 \ (h=0.1\) ">0.586006935 \ (h = 0,05\) ">0.582927224 0.581942225
    \ (x\) ">0.7 \ (h=0.1\) ">0.541467455 \ (h=0,05\) ">0.568716935 \ (h=0.1\) ">0.597712120 \ (h = 0,05\) ">0.594618012 0.593629526
    \ (x\) ">0,8 \ (h=0.1\) ">0.569732776 \ (h=0,05\) ">0,596951988 \ (h=0.1\) ">0.626008824 \ (h=0,05\) ">0,622898279 0.62 1907458
    \ (x\) ">0.9 \ (h=0.1\) ">0,614392311 \ (h = 0,05\) ">0,641457729 \ (h=0.1\) ">0,670351225 \ (h=0,05\) ">0,667237617 0.666250842
    \ (x\) ">1.0 \ (h=0.1\) ">0,675192037 \ (h = 0,05\) ">0,701764495 \ (h=0.1\) ">0,730069610 \ (h=0,05\) ">0,726985837 0,726015790
    Таблиця Template:index: Чисельне розв'язання методом Ейлера та вдосконаленим методом Ейлера.\(y'=-2y^2+xy+x^2,\ y(0)=1\)
    Приклад Template:index

    Використовувати розміри кроків\(h=0.2\)\(h=0.1\), і\(h=0.05\) знайти приблизні значення рішення

    \[\label{eq:3.2.6} y'-2xy=1,\quad y(0)=3\]

    в\(x=0\),\(0.2\),\(0.4\),\(0.6\),...,\(2.0\) шляхом:

    1. вдосконалений метод Ейлера;
    2. вдосконалений напівлінійний метод Ейлера.

    Ми використовували метод Ейлера та напівлінійний метод Ейлера для цієї задачі в прикладі 3.1.4.

    Рішення a

    Переписування рівняння\ ref {eq:3.2.6} як

    \[y'=1+2xy,\quad y(0)=3 \nonumber\]

    і застосування вдосконаленого методу Ейлера з отриманням\(f(x,y)=1+2xy\) результатів, показаних у таблиці Template:index.

    Рішення б

    Оскільки\(y_1=e^{x^2}\) це рішення комплементарного рівняння\(y'-2xy=0\), ми можемо застосувати вдосконалений напівлінійний метод Ейлера до Equation\ ref {eq:3.2.6}, з

    \[y=ue^{x^2}\quad \text{and} \quad u'=e^{-x^2},\quad u(0)=3. \nonumber\]

    Результати, наведені в таблиці Template:index, явно кращі, ніж результати, отримані вдосконаленим методом Ейлера.

    \(x\) \(h=0.2\) \(h=0.1\) \(h=0.05\) Точний
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.0 \ (h = 0.2\)» style="вертикальне вирівнювання: середина; "> 3.000000000 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 3.000000000 \ (h = 0,05\)» style="вертикальне вирівнювання: середина; "> 3.000000000 3.000000000
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.2 \ (h=0.2\)» style="вертикальне вирівнювання: середина; "> 3.328000000 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 3.328182400 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 3.327973600 3 2785 1973
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.4 \ (h = 0.2\)» style="вертикальне вирівнювання: по середині; "> 3.964659200 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 3.966340117 \ (h=0,05\)» style="вертикальне вирівнювання: по середині; "> 3.966216690 3 966059348
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0.6 \ (h=0.2\)» style="вертикальне вирівнювання: середина; "> 5.057712497 \ (h = 0.1\)» style="вертикальне вирівнювання: середина; "> 5.065700515 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 5.066848381 5.0670 39535
    \ (x\)» style="вертикальне вирівнювання: середина; "> 0,8 \ (h = 0.2\)» style="вертикальне вирівнювання: середина; "> 6.900088156 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 6.928648973 \ (h = 0,05\)» style="вертикальне вирівнювання: по середині; "> 6.934862367 6.936700945
    \ (x\)» style="вертикальне вирівнювання: середина; "> 1.0 \ (h=0.2\)» style="вертикальне вирівнювання: посередині; "> 10.065725534 \ (h = 0.1\)» style="вертикальне вирівнювання: посередині; "> 10.154872547 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 10.177430736 10.1849 23955
    \ (x\)» style="вертикальне вирівнювання: середина; "> 1.2 \ (h = 0.2\)» style="вертикальне вирівнювання: по середині; "> 15.708954420 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 15.970033261 \ (h=0,05\)» style="вертикальне вирівнювання: посередині; "> 16.041904862 16.0671 1677
    \ (x\)» style="вертикальне вирівнювання: середина; "> 1.4 \ (h = 0.2\)» style="вертикальне вирівнювання: по середині; "> 26.244894192 \ (h = 0.1\)» style="вертикальне вирівнювання: по середині; "> 26.991620960 \ (h = 0,05\)» style="вертикальне вирівнювання: посередині; "> 27.210001715 27.289392347
    \ (x\)» style="вертикальне вирівнювання: середина; "> 1.6 \ (h=0.2\)» style="вертикальне вирівнювання: по середині; "> 46.958915746 \ (h=0.1\)» style="вертикальне вирівнювання: по середині; "> 49.096125524 \ (h=0,05\)» style="вертикальне вирівнювання: по середині; "> 49.754131060 50.000377775
    \ (x\)» style="вертикальне вирівнювання: середина; "> 1.8 \ (h = 0.2\)» style="вертикальне вирівнювання: по середині; "> 89.982312641 \ (h=0.1\)» style="Вертикальне вирівнювання: по середині; "> 96.200506218 \ (h = 0,05\)» style="вертикальне вирівнювання: по середині; "> 98.210577385 98.98 2969504
    \ (x\)» style="вертикальне вирівнювання: середина; "> 2.0 \ (h=0.2\)» style="Вертикальне вирівнювання: по середині; "> 184.563776288 \ (h=0.1\)» style="вертикальне вирівнювання: середина; "> 203.151922739 \ (h = 0,05\)» style="вертикальне вирівнювання: по середині; "> 209.464744495 211.954462214
    Таблиця Template:index: Чисельне розв'язування\(y'-2xy=1,\ y(0)=3\), за допомогою вдосконаленого методу Ейлера.
    \(x\) \(h=0.2\) \(h=0.1\) \(h=0.05\) Точний
    \ (x\) ">0.0 \ (h = 0.2\) ">3.000000000 \ (h=0.1\) ">3.000000000 \ (h = 0,05\) ">3.000000000 3.000000000
    \ (x\) ">0.2 \ (h=0,2\) ">3,326513400 \ (h=0.1\) ">3,327518315 \ (h = 0,05\) ">3.327768620 3 2785 1973
    \ (x\) ">0.4 \ (h=0,2\) ">3,963383070 \ (h=0.1\) ">3.965392084 \ (h = 0,05\) ">3.965892644 3 966059348
    \ (x\) ">0.6 \ (h=0,2\) ">5.063027290 \ (h=0.1\) ">5.066038774 \ (h=0,05\) ">5.06789487 5.0670 39535
    \ (x\) ">0,8 \ (h=0,2\) ">6.931355329 \ (h=0.1\) ">6.935366847 \ (h=0,05\) ">6.936367564 6.936700945
    \ (x\) ">1.0 \ (h=0,2\) ">10.178248417 \ (h=0.1\) ">10.183256733 \ (h = 0,05\) ">10.184507253 10.1849 23955
    \ (x\) ">1.2 \ (h=0,2\) ">16,059110511 \ (h=0.1\) ">16,065111599 \ (h=0,05\) ">16,066611672 16.0671 1677
    \ (x\) ">1.4 \ (h=0.2\) ">27.280070674 \ (h=0.1\) ">27.287059732 \ (h=0,05\) ">27.288809058 27.289392347
    \ (x\) ">1.6 \ (h=0,2\) ">49.989741531 \ (h=0.1\) ">49.997712997 \ (h=0,05\) ">49.999711226 50.000377775
    \ (x\) ">1.8 \ (h=0,2\) ">98,971025420 \ (h=0.1\) ">98,979972988 \ (h = 0,05\) ">98.982219722 98.98 2969504
    \ (x\) ">2.0 \ (h=0,2\) ">211,941217796 \ (h=0.1\) ">211,951134436 \ (h = 0,05\) ">211,953629228 211.954462214
    Таблиця Template:index: Чисельне\(y'-2xy=1,\ y(0)=3\) розв'язання, за допомогою вдосконаленого напівлінійного методу Ейлера.

    Сімейство методів з помилкою локального обрізання O (h³)

    Тепер ми виведемо клас методів з\(O(h^3)\) локальною помилкою усічення для розв'язання Equation\ ref {eq:3.2.1}. Для простоти ми припускаємо\(f\), що\(f_x\)\(f_y\),\(f_{xx}\),,\(f_{yy}\), і\(f_{xy}\) є безперервними і обмеженими для всіх\((x,y)\). Це означає, що якщо\(y\) є розв'язком Рівняння\ ref {eq:3.2.1} то\(y''\) і\(y'''\) обмежені (Вправа 3.2.31).

    Почнемо з апроксимування інтегральної кривої рівняння\ ref {eq:3.2.1}\((x_i,y(x_i))\) на прямій через\((x_i,y(x_i))\) з нахилом

    \[m_i=\sigma y'(x_i)+\rho y'(x_i+\theta h), \nonumber \]

    де\(\sigma\)\(\rho\), і\(\theta\) є константами, які ми скоро уточнимо; однак, ми наполягаємо на самому початку\(0<\theta\le 1\), щоб

    \[x_i<x_i+\theta h\le x_{i+1}. \nonumber \]

    Рівняння апроксимуючої прямої дорівнює

    \[\label{eq:3.2.7} \begin{array}{rcl} y&=&y(x_i)+m_i(x-x_i)\\ &=&y(x_i)+\left[\sigma y'(x_i)+\rho y'(x_i+\theta h)\right](x-x_i). \end{array}\]

    Встановлення\(x=x_{i+1}=x_i+h\) в рівнянні\ ref {eq:3.2.7} дає

    \[\hat y_{i+1}=y(x_i)+h\left[\sigma y'(x_i)+\rho y'(x_i+\theta h)\right] \nonumber \]

    як наближення до\(y(x_{i+1})\).

    Визначити\(\sigma\)\(\rho\), і\(\theta\) щоб помилка

    \[\label{eq:3.2.8} \begin{array}{rcl} E_i&=&y(x_{i+1})-\hat y_{i+1}\\ &=&y(x_{i+1})-y(x_i)-h\left[\sigma y'(x_i)+\rho y'(x_i+\theta h)\right] \end{array}\]

    в цьому наближенні\(O(h^3)\) ми починаємо з нагадування з теореми Тейлора, що

    \[y(x_{i+1})=y(x_i)+hy'(x_i)+{h^2\over2}y''(x_i)+{h^3\over6}y'''(\hat x_i), \nonumber \]

    де\(\hat x_i\) знаходиться в\((x_i,x_{i+1})\). Оскільки\(y'''\) обмежений, це означає, що

    \[y(x_{i+1})-y(x_i)-hy'(x_i)-{h^2\over2}y''(x_i)=O(h^3). \nonumber \]

    Порівняння цього з рівнянням\ ref {eq:3.2.8} показує, що\(E_i=O(h^3)\) якщо

    \[\label{eq:3.2.9} \sigma y'(x_i)+\rho y'(x_i+\theta h)=y'(x_i)+{h\over2}y''(x_i) +O(h^2).\]

    Однак застосування теореми Тейлора\(y'\) показує, що

    \[y'(x_i+\theta h)=y'(x_i)+\theta h y''(x_i)+{(\theta h)^2\over2}y'''(\overline x_i), \nonumber \]

    де\(\overline x_i\) знаходиться в\((x_i,x_i+\theta h)\). Оскільки\(y'''\) обмежений, це означає, що

    \[y'(x_i+\theta h)=y'(x_i)+\theta h y''(x_i)+O(h^2). \nonumber \]

    Підставляючи це в Equation\ ref {eq:3.2.9} і зазначаючи, що сума двох\(O(h^2)\) членів знову\(O(h^2)\) показує, що\(E_i=O(h^3)\) якщо

    \[(\sigma+\rho)y'(x_i)+\rho\theta h y''(x_i)= y'(x_i)+{h\over2}y''(x_i), \nonumber \]

    що вірно, якщо

    \[\label{eq:3.2.10} \sigma+\rho=1 \quad \text{and} \quad \rho\theta={1\over2}.\]

    Оскільки тепер\(y'=f(x,y)\) ми можемо зробити висновок з рівняння\ ref {eq:3.2.8}, що

    \[\label{eq:3.2.11} y(x_{i+1})=y(x_i)+h\left[\sigma f(x_i,y_i)+\rho f(x_i+\theta h,y(x_i+\theta h))\right]+O(h^3)\]

    якщо\(\sigma\)\(\rho\), і\(\theta\) задовольнити рівняння\ ref {eq:3.2.10}. Однак ця формула не була б корисною, навіть якби ми\(y(x_i)\) точно знали (як ми б для\(i=0\)), оскільки ми все одно\(y(x_i+\theta h)\) точно не знали б. Щоб подолати цю складність, ми знову використовуємо теорему Тейлора для написання

    \[y(x_i+\theta h)=y(x_i)+\theta h y'(x_i)+{h^2\over2}y''(\tilde x_i), \nonumber \]

    де\(\tilde x_i\) знаходиться в\((x_i,x_i+\theta h)\). Оскільки\(y'(x_i)=f(x_i,y(x_i))\) і\(y''\) обмежений, це означає, що

    \[\label{eq:3.2.12} |y(x_i+\theta h)-y(x_i)-\theta h f(x_i,y(x_i))|\le Kh^2\]

    для деяких постійних\(K\). Оскільки\(f_y\) обмежена, теорема про середнє значення передбачає, що

    \[|f(x_i+\theta h,u)-f(x_i+\theta h,v)|\le M|u-v| \nonumber \]

    для деяких постійних\(M\). здача в оренду

    \[u=y(x_i+\theta h)\quad \text{and} \quad v=y(x_i)+\theta h f(x_i,y(x_i)) \nonumber \]

    і нагадуючи рівняння\ ref {eq:3.2.12} показує, що

    \[f(x_i+\theta h,y(x_i+\theta h))=f(x_i+\theta h,y(x_i)+\theta h f(x_i,y(x_i)))+O(h^2). \nonumber \]

    Підставляючи це в рівняння\ ref {eq:3.2.11} дає

    \[\begin{aligned} y(x_{i+1})&=y(x_i)+h\left[\sigma f(x_i,y(x_i))+\right.\\&\left.\rho f(x_i+\theta h,y(x_i)+\theta hf(x_i,y(x_i)))\right]+O(h^3).\end{aligned} \nonumber \]

    Звідси випливає, що формула

    \[y_{i+1}=y_i+h\left[\sigma f(x_i,y_i)+\rho f(x_i+\theta h,y_i+\theta hf(x_i,y_i))\right] \nonumber \]

    має\(O(h^3)\) локальну помилку усічення\(\sigma\), якщо\(\rho\), і\(\theta\) задовольняє рівняння\ ref {eq:3.2.10}. Підставляючи\(\sigma=1-\rho\) і\(\theta=1/2\rho\) тут врожайність

    \[\label{eq:3.2.13} y_{i+1}=y_i+h\left[(1-\rho)f(x_i,y_i)+\rho f\left(x_i+{h\over2\rho}, y_i+{h\over2\rho}f(x_i,y_i)\right)\right].\]

    Обчислення, зазначені тут, можна зручно організувати наступним чином: дано\(y_i\), обчислити

    \[\begin{aligned} k_{1i}&=f(x_i,y_i),\\ k_{2i}&=f\left(x_i+{h\over2\rho}, y_i+{h\over2\rho}k_{1i}\right),\\ y_{i+1}&=y_i+h[(1-\rho)k_{1i}+\rho k_{2i}].\end{aligned} \nonumber \]

    Відповідно до нашої вимоги\(0<\theta<1\), що, ми вимагаємо цього\(\rho\ge1/2\). Введення\(\rho=1/2\) в Equation\ ref {eq:3.2.13} дає вдосконалений метод Ейлера Equation\ ref {eq:3.2.4}. Допускаючи\(\rho=3/4\) врожаї методу Хена,

    \[y_{i+1}=y_i+h\left[{1\over4}f(x_i,y_i)+{3\over4}f\left(x_i+{2\over3}h,y_i+{2\over3}hf(x_i,y_i)\right)\right], \nonumber \]

    які можуть бути організовані як

    \[\begin{aligned} k_{1i}&=f(x_i,y_i),\\ k_{2i}&=f\left(x_i+{2h\over3}, y_i+{2h\over3}k_{1i}\right),\\ y_{i+1}&=y_i+{h\over4}(k_{1i}+3k_{2i}).\end{aligned} \nonumber \]

    Допускаючи\(\rho=1\) дає метод середньої точки,

    \[y_{i+1}=y_i+hf\left(x_i+{h\over2},y_i+{h\over2}f(x_i,y_i)\right), \nonumber \]

    які можуть бути організовані як

    \[\begin{aligned} k_{1i}&=f(x_i,y_i),\\ k_{2i}&=f\left(x_i+{h\over2}, y_i+{h\over2}k_{1i}\right),\\ y_{i+1}&=y_i+hk_{2i}.\end{aligned} \nonumber \]

    Приклади, що включають метод середньої точки і метод Хена, наведені в Вправи 3.2.23 - 3.3.30.