Дискуссионный математический форумМатематический форум

Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 4 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 4 часа [ Летнее время ]


Составные схемы для решения задачи Коши

Составные схемы для решения задачи Коши


Рассматриваемые здесь методы (схемы), называемые составными, известны под общим названием методов прогноза и коррекции. Из названия следует, что сначала "предсказывается" значение [math]\widehat{y}_{i+1}[/math], а затем используется тот или иной метод для "корректировки" этого значения.


Таким образом, составные схемы включают в себя два шага (этапа) расчета очередного значения [math]\widehat{y}_{i+1}\colon[/math]


1. Шаг "предиктор" (предсказание), на котором рассчитывается предсказанное (предварительное) значение [math]\widehat{y}_{i+1}^{(\Pi)}[/math].


2. Шаг "корректор" (коррекция), на котором предсказанное значение уточняется. В результате находится значение [math]\widehat{y}_{i+1}^{(K)}[/math], которое принимается за [math]\widehat{y}_{i+1}[/math]. Если промежуток интегрирования не исчерпан, оно далее используется при реализации очередного шага "предиктор" для нахождения следующего предсказанного значения [math]\widehat{y}_{i+1}^{(\Pi)}[/math].


Первый шаг реализуется с помощью явных методов, а второй шаг основан на применении формул неявных методов, в правую часть которых вместо неизвестного значения [math]\widehat{y}_{i+1}[/math] подставляется результат предсказания. Схемы такого типа называются также схемами "предиктор-корректор" и в итоге относятся к явным методам.


Приведем наиболее часто встречающиеся составные схемы.


А. Предсказание с помощью явного метода Эйлера (6.19) или метода Эйлера-Коши (6.21), коррекция по методу трапеций (6.24).


Шаг "предиктор":

[math]\widehat{y}_{i+1}^{(\Pi)}= \widehat{y}_{i}+ h_{i+1}\cdot f(x_{i}, \widehat{y}_{i}),[/math]
(6.62)

или при условии [math]h_{i+1}=h=\text{const}[/math]

[math]\widehat{y}_{i+1}^{(\Pi)}= \widehat{y}_{i-1}+ 2h\cdot f(x_{i}, \widehat{y}_{i}),[/math]
(6.63)

где [math]\widehat{y}_{i}[/math] и [math]\widehat{y}_{i-1}[/math] рассчитаны на предыдущих шагах.


Шаг "корректор":

[math]\widehat{y}_{i+1}\equiv \widehat{y}_{i+1}^{(K)}= \widehat{y}_{i}+ \frac{}{} \bigl[f(x_{i},\widehat{y}_{i})+ f(x_{i}+h_{i+1},\, \widehat{y}_{i}^{(\Pi)})\bigr].[/math]
(6.64)

Б. Предсказание по методу Адамса-Бэшфорта третьего (6.33) или четвертого (6.34) порядка, коррекция по методу Адамса-Мултона четвертого порядка (6.37) (при [math]h_{i+1}= h= \text{const}[/math]).


Шаг "предиктор":

[math]\widehat{y}_{i+1}^{(\Pi)}= \widehat{y}_{i}+ \frac{h}{12} (23f_{i}-16f_{i-1}+ 5f_{i-2}),[/math]
(6.65)

или

[math]\widehat{y}_{i+1}^{(\Pi)}= \widehat{y}_{i}+ \frac{h}{24} (55f_{i}-59f_{i-1}+ 37f_{i-2}-9f_{i-3}).[/math]
(6.66)

Шаг "корректор":


[math]\widehat{y}_{i+1}\equiv \widehat{y}_{i+1}^{(K)}= \widehat{y}_{i}+ \frac{h}{24} \bigl[f_{i-2}-5f_{i-1}+ 19f_{i}+ 9f(x_{i+1}, \widehat{y}_{i+1}^{(\Pi)})\bigr].[/math]
(6.67)

В. Метод Хемминга четвертого порядка (при [math]h_{i+1}= h= \text{const}[/math]).


Шаг "предиктор":

[math]\widehat{y}_{i+1}^{(\Pi)}= \widehat{y}_{i-3}+ \frac{4h}{3} (2f_{i}-f_{i-1}+ 2f_{i-2}).[/math]
(6.68)

Шаг "корректор":

[math]\widehat{y}_{i+1}\equiv \widehat{y}_{i+1}^{(K)}= \frac{1}{8}\bigl(9\widehat{y}_{i}-\widehat{y}_{i-2}\bigr)+ \frac{3h}{8}\bigl[-f_{i-1}+ 2f_{i}+ f(x_{i+1}, \widehat{y}_{i+1}^{(\Pi)})\bigr].[/math]
(6.69)

Замечания


1. Разработчикам прикладных программ рекомендуется при решении конкретных задач выбрать наиболее подходящий составной метод путем комбинирования схем на шагах "предиктор" и "корректор", соответствующих явным и неявным схемам. К числу этих схем относятся: П1К2 (1Я1, 1НЯ2), П2К2 (2Я2Б, 1НЯ2), П2КЗ (2Я2Б, 2НЯЗА), ПЗКЗ (ЗЯЗ, 2НЯЗА) и др. (табл. 6.17). Здесь буквы П и К указывают на шаги "предиктор" и "корректор", рядом с ними приведены порядки схем, а в скобках — ранее введенные обозначения формул для этих схем.


Таблица 6.17
ПредикторыКорректорыСоставная схема
1Я1 (6.19)1НЯ2 (6.24)П1К2 (6.62),(6.64)
2Я2Б (6.20)1НЯ2 (6.24)П2К2 (6.63),(6.64)
2Я2Б (6.20)2НЯЗА (6.60)П2КЗ
ЗЯЗ (6.59)2НЯЗА (6.60)П3КЗ
ЗЯЗА (6.33)ЗНЯ4 (6.37)ПЗК4 (6.65),(6.67)
4Я4 (6.34)ЗНЯ4 (6.37)П4К4 (6.66),(6.67)

2. При использовании многошаговых схем (6.63),(6.65)—(6.69) на шаге "предиктор" и шаге "корректор" необходимо предварительно рассчитать требуемое число "разгонных" точек (см. разд. 6.2.2). При этом желательно использовать схемы, порядок которых соответствует порядку основной схемы.


3. Составная схема (6.62),(6.64) является схемой второго порядка и одновременно относится к семейству схем Рунге-Кутты второго порядка. Она может быть записана в форме


[math]K_{1,i}= f(x_{i}, \widehat{y}_{i}),\quad K_{2,i}= f \bigl(x_{i}+ h_{i+1},\, \widehat{y}_{i}+ h_{i+1}K_{1,i}\bigr),\quad \widehat{y}_{i+1}= \widehat{y}_{i}+ \frac{h_{i+1}}{2}(K_{1,i}+ K_{2,i}).[/math]

Кроме того, данная схема часто называется исправленным методом Эйлера или схемой Эйлера с пересчетом. Покажем, что эта схема второго порядка, хотя в ней используется предиктор (6.62) первого порядка. Как и при рассмотрении модифицированного метода Эйлера (6.43), получим разложение (6.45) функции [math]f(x,y)[/math] при [math]x=x_{i}+ h_{i+1},[/math] [math]y=y_{i}+ h_{i+1}f_{i}\colon[/math]


[math]f(x_{i}+h_{i+1},\, y_{i}+ h_{i+1}f_{i})= f_{i}+ h_{i+1}f_{x}+ h_{i+1}f_{i}\cdot f_{y}+ O(h_{i+1}^2),[/math]

где частные производные [math]f_{x},\, f_{y}[/math] вычисляются в точке [math](x_{i}, y_{i})[/math]. Следовательно,


[math]\begin{aligned}\widehat{y}_{i+1}&= \widehat{y}_{i}+ \frac{h_{i+1}}{2} \bigl[f_{i}+ f \bigl(x_{i}+ h_{i+1},\, \widehat{y}_{i}+ h_{i+1} f(x_{i}, \widehat{y}_{i})\bigr)\bigr]=\\ &=\widehat{y}_{i}+ \frac{h_{i+1}}{2} \bigl[f_{i}+ f_{i}+ h_{i+1} f_{x}+ h_{i+1}f_{i}\cdot f_{y}+ O(h_{i+1}^2)\bigr]=\\ &=\widehat{y}_{i}+ h_{i+1}f_{i}+ \frac{1}{2} h_{i+1}^2 (f_{x}+ f_{i}\cdot f_{y})+ O(h_{i+1}^3). \end{aligned}[/math]

Сравнивая последнее соотношение с (6.38), можно сделать вывод о том, что схема исправленного метода Эйлера согласуется с разложением по формуле Тейлора вплоть до членов степени [math]h_{i+1}^2[/math] и поэтому является методом Рунге-Кутты второго порядка.


Приведем геометрическую интерпретацию схемы "предиктор-корректор" (6.62),(6.64) (рис. 6.14). Пусть известна точка [math](x_{i}, \widehat{y}_{i})[/math] на искомой интегральной кривой [math]y=y(x)[/math]. Через эту точку проведем касательную [math]L[/math], тангенс угла наклона которой равен [math]y'(x_{i})= f(x_{i}, \widehat{y}_{i})[/math]. Ее уравнение имеет вид [math]y= \widehat{y}_{i}+ f(x_{i}, \widehat{y}_{i})(x-x_{i})[/math].


В качестве результата предсказания берется значение [math]\widehat{y}_{i+1}^{(\Pi)}[/math], получающееся при [math]x=x_{i+1}\colon[/math] [math]\widehat{y}_{i+1}^{(\Pi)}= \widehat{y}_{i}+ h_{i+1} f(x_{i}, \widehat{y}_{i})[/math]. Далее через точку [math](x_{i+1}, \widehat{y}_{i+ 1}^{(\Pi)})[/math] к интегральной кривой проводится прямая [math]L_{1}[/math] с тангенсом угла наклона, равным [math]f \bigl(x_{i+1}, \widehat{y}_{i+1}^{(\Pi)}\bigr)[/math]. Средняя величина [math]\frac{1}{2}\bigl[f(x_{i}, \widehat{y}_{i})+ f(x_{i+1}, \widehat{y}_{i+1}^{(\Pi)})\bigr][/math] порождает прямую [math]L_2[/math], проходящую через точку [math](x_{i+1}, \widehat{y}_{i+ 1}^{(\Pi)})[/math]. Через точку [math](x_{i}, \widehat{y}_{i})[/math] проведем прямую [math]L_3[/math], параллельную [math]L_2[/math]. Ее уравнение: [math]y=\widehat{y}_{i}+ \frac{x-x_{i}}{2}\bigl[f(x_{i}, \widehat{y}_{i})+ f(x_{i+1}, \widehat{y}_{i+1}^{(\Pi)})\bigr][/math].


Следующая точка [math]\widehat{y}_{i+1}= \widehat{y}_{i+1}^{(K)}[/math] приближенного решения (результат коррекции) получается при [math]x=x_{i+1}\colon[/math]


[math]\widehat{y}_{i+1}= \widehat{y}_{i+1}^{(K)}= \widehat{y}_{i}+ \frac{h_{i+1}}{2} \bigl[f(x_{i}, \widehat{y}_{i})+ f(x_{i+1}, \widehat{y}_{i+1}^{(\Pi)})\bigr].[/math]

Данное соотношение соответствует (6.64). Если применяется предиктор (6.63) второго порядка, все приведенные построения сохраняются, только значение [math]\widehat{y}_{i+1}^{(\Pi)}[/math] находится так же, как на рис. 6.8.


4. В составных методах может быть использована модификация. Например, в схеме (6.66),(6.67) после шага "предиктор" вычисляется модифицированное значение


[math]\widehat{y}_{i+1}^{(\Pi \text{M})}= \widehat{y}_{i+1}^{(\Pi)}+ \frac{251}{270} \bigl(\widehat{y}_{i}^{(K)}-\widehat{y}_{i}^{(\Pi)}\bigr),[/math]

где [math]\widehat{y}_{i}^{(K)},\, \widehat{y}_{i}^{(\Pi)}[/math] — значения, полученные на шагах "предиктор" и "корректор" в предыдущей точке.


Затем выполняется шаг "корректор":


[math]\widehat{y}_{i+1}^{(K)}= \widehat{y}_{i}+ \frac{h}{24} \bigl[f_{i-2}-5f_{i-1}+ 19f_{i}+ 9f(x_{i+1}, \widehat{y}_{i+1}^{(\Pi \text{M})})\bigr].[/math]

Следующее значение [math]\widehat{y}_{i+1}[/math] вычисляется по формуле


[math]\widehat{y}_{i+1}= \widehat{y}_{i+1}^{(K)}-\frac{19}{270} \bigl(\widehat{y}_{i+1}^{(K)}-\widehat{y}_{i+1}^{(\Pi)}\bigr).[/math]

Таким образом, здесь фактически выполняются три приближения.


5. При осуществлении шага "корректор" может быть выполнено несколько итераций. Например, для корректора (6.64) итерационная формула имеет вид


[math]\widehat{y}_{i+1}^{(k+1)}= \widehat{y}_{i}+ \frac{h_{i+1}}{2} \bigl[f(x_{i}, \widehat{y}_{i})+ f(x_{i}+ h_{i+1},\, \widehat{y}_{i+1}^{(k)})\bigr],\quad k=0,1,2,\ldots,;\quad \widehat{y}_{i+1}^{(0)}= \widehat{y}_{i+1}^{(\Pi)}.[/math]

Итерации прекращаются либо при выполнении условия [math]\bigl|\widehat{y}_{i+1}^{(k+1)}-\widehat{y}_{i+1}^{(k)}\bigr| \leqslant \varepsilon[/math] для некоторого положительного [math]\varepsilon[/math], либо при выполнении ровно [math]m[/math] итераций (как правило, задается [math]m\leqslant 2[/math]). Тогда полагают [math]\widehat{y}_{i+1}= \widehat{y}_{i+1}^{(k+1)}[/math].


Пример 6.7. Найти приближенное решение задачи Коши [math]y'=x+y,~ y(0)=1,~ x\in[0;0,\!2][/math] методом "предиктор-корректор" П1К2 (6.62),(6.64) второго порядка. Шаг интегрирования принять равным 0,1. Сравнить полученное решение с точным [math]y(x)=2e^x-x-1[/math].


Вычислим значения [math]\widehat{y}_{1}[/math] и [math]\widehat{y}_{2}[/math] в точках [math]x_1=0,\!1[/math] и [math]x_2=0,\!2[/math], полагая [math]\widehat{y}_{0}=1[/math].


Шаг "предиктор": по формуле (6.62) при [math]x_1=0,\!1[/math] получаем


[math]\widehat{y}_{1}^{(\Pi)}= \widehat{y}_{0}+ h\cdot f(x_0,\widehat{y}_{0})= 1+0,\!1\cdot (0+1)=1,\!1.[/math]

Шаг "корректор": по формуле (6.64) имеем


[math]\widehat{y}_{1}\equiv \widehat{y}_{1}^{(K)}= 1+\frac{0,\!1}{2} \bigl[(0+1)+ (0,\!1+ 1,\!1)\bigr]= 1,\!11.[/math]

Первый шаг по выбранной схеме выполнен. Реализуем следующий.


Шаг "предиктор": по формуле (6.62) при д:2 = 0,2 получим


[math]\widehat{y}_{2}^{(\Pi)}= \widehat{y}_{1}+ h\cdot f(x_1, \widehat{y}_{1})= 1,\!11+ 0,\!1\cdot (0,\!1+1,\!11)= 1,\!231.[/math]

Шаг "корректор": по формуле (6.64) имеем


[math]\widehat{y}_{2}\equiv \widehat{y}_{2}^{(K)}= 1,\!11+ \frac{0,\!1}{2} \bigl[(0,\!1+ 1,\!11)+ (0,\!2+ 1,\!231)\bigr]= 1,\!24205.[/math]

Точное решение: [math]y(x_2)=1,\!2428055[/math]. Отличие приближенного решения от точного составляет [math]0,\!06\%[/math]. Так как отрезок интегрирования исчерпан, процесс закончен, иначе его следовало бы продолжить.


Пример 6.8. Приближенно решить задачу Коши [math]y'=-2y-3x+2,~ y(0)=0[/math] на отрезке [math][0;1][/math] с шагом [math]h=0,\!1[/math] различными методами: Эйлера (явным и неявным), предсказания и коррекции (6.62),(6.64) второго порядка, Рунге-Кутты четвертого порядка и методом трапеций.


Используя исходный вид уравнения (подчеркнем, что оно линейное), из (6.19) получаем формулу явного метода Эйлера:


[math]\widehat{y}_{i+1}= \widehat{y}_{i}+ 0,\!1\cdot (-2\widehat{y}_{i}-3x_{i}+2),\quad \widehat{y}_{0}=0,\quad i=\overline{0,9};[/math]

из (6.62),(6.64) — формулы метода предсказания и коррекции:


[math]\begin{gathered}\widehat{y}_{i+1}^{(\Pi)}= \widehat{y}_{i}+ 0,\!1\cdot (-2\widehat{y}_{i}-3x_{i}+2),\\[2pt] \widehat{y}_{i+1}= \widehat{y}_{i}+ \frac{0,\!1}{2}(-2\widehat{y}_{i}-3x_{i}+2-2\widehat{y}_{i+1}^{(\Pi)}-3x_{i+1}+2); \end{gathered}[/math]

из формулы (6.41) формулы метода Рунге-Кутты четвертого порядка:


[math]\begin{gathered}\widehat{y}_{i+1}= \widehat{y}_{i}+ \frac{0,\!1}{6} (K_{1,i}+ 2K_{2,i}+ 2K_{3,i}+ K_{4,i}),\\[2pt] K_{1,i}=-2\widehat{y}_{i}-3x_{i}+2,\qquad K_{2,i}=-2\cdot (\widehat{y}_{i}+ 0,\!05K_{1,i})-3\cdot (x_{i}+ 0,\!05)+2;\\[2pt] K_{3,i}=-2\cdot (\widehat{y}_{i}+ 0,\!05K_{2,i})-3\cdot (x_{i}+ 0,\!05)+2;\qquad K_{4,i}=-2\cdot (\widehat{y}_{i}+ 0,\!1K_{3,i})-3\cdot (x_{i}+ 0,\!1)+2;\end{gathered}[/math]

из (6.23) — формулу неявного метода Эйлера:


[math]\widehat{y}_{i+1}= \widehat{y}_{i}+ 0,\!1\cdot (-2\widehat{y}_{i+1}-3x_{i+1}+2)[/math], откуда [math]\widehat{y}_{i+1}= \frac{\widehat{y}_{i}-0,\!3x_{i+1}+0,\!2}{1,\!2}[/math];

из (6.24) — формулу метода трапеций:


[math]\widehat{y}_{i+1}= \widehat{y}_{i}+ \frac{0,\!1}{2}\cdot (-2\widehat{y}_{i}-3x_{i}+2-2\widehat{y}_{i+1}-3x_{i+1}+2),[/math]

откуда

[math]\widehat{y}_{i+1}= \frac{1}{1,\!1}\! \left(0,\!9\cdot \widehat{y}_{i}-\frac{3}{2}\cdot 0,\!1\cdot x_{i}+ 2\cdot 0,\!1-\frac{3}{2}\cdot 0,\!1\cdot x_{i+1}\right)\!.[/math]

Очевидно, в данном примере удалось получить явные формулы для нахождения [math]\widehat{y}_{i+1}[/math] неявным методом Эйлера и методом трапеций лишь в силу линейности решаемого уравнения. В общем случае применяются методы простых итераций (6.26) или Ньютона.


Точное решение рассматриваемой задачи Коши: [math]y(x)=1,\!75-1,\!5x-1,\!75e^{-2x}[/math]. Результаты расчетов приведены в табл. 6.18, в последней строке которой указаны фактические погрешности.


[math]\begin{array}{|c|c|c|c|c|c|c|} \multicolumn{7}{r}{\mathit{Table~6.18}}\\\hline x_{i}& \begin{matrix} \text{Yavniy}\\ \text{metod}\\ \text{Eylera}\end{matrix}& \begin{matrix} \text{Neyavniy}\\ \text{metod}\\ \text{Eylera}\end{matrix}& \begin{matrix} \text{Metod}\\ \text{Runge-}\\ \text{Kutty}\end{matrix}& \begin{matrix} \text{Metod pred-}\\ \text{skazaniy i}\\ \text{korrekcii}\end{matrix}& \begin{matrix} \text{Metod}\\ \text{trapeciy} \end{matrix}& y(x)\\\hline 0,\!0& 0,\!000& 0,\!000& 0,\!000& 0,\!000& 0,\!000& 0,\!000 \\\hline 0,\!1& 0,\!200& 0,\!142& 0,\!167& 0,\!165& 0,\!168& 0,\!167 \\\hline 0,\!2& 0,\!330& 0,\!238& 0,\!277& 0,\!273& 0,\!279& 0,\!277 \\\hline 0,\!3& 0,\!404& 0,\!287& 0,\!340& 0,\!335& 0,\!342& 0,\!340 \\\hline 0,\!4& 0,\!433& 0,\!306& 0,\!364& 0,\!359& 0,\!366& 0,\!364 \\\hline 0,\!5& 0,\!427& 0,\!297& 0,\!356& 0,\!351& 0,\!358& 0,\!356 \\\hline 0,\!6& 0,\!391& 0,\!264& 0,\!323& 0,\!318& 0,\!325& 0,\!323 \\\hline 0,\!7& 0,\!333& 0,\!212& 0,\!268& 0,\!264& 0,\!270& 0,\!268 \\\hline 0,\!8& 0,\!256& 0,\!143& 0,\!197& 0,\!192& 0,\!199& 0,\!197 \\\hline 0,\!9& 0,\!165& 0,\!061& 0,\!111& 0,\!107& 0,\!112& 0,\!111 \\\hline 1,\!0& 0,\!062&-0,\!033& 0,\!013& 0,\!009& 0,\!015& 0,\!013 \\\hline \max\varepsilon_{i}& 0,\!068& 0,\!059& 0,\!0000104& 0,\!005& 0,\!002& \\\hline \end{array}[/math]

Анализ результатов показывает, что при решении данной задачи метод предсказания и коррекции точнее явного и неявного методов Эйлера, но уступает методу Рунге-Кутты и совсем немного методу трапеций (порядок погрешности одинаков).


Пример 6.9. Найти приближенное решение задачи Коши [math]y'=x+y,~ y(0)=1,~ x\in[0; 0,\!4065][/math] на нерегулярной сетке [math]\Omega_3=(0,\!000; 0,\!150; 0,\!285; 0,\!4065))[/math] с [math]h_1=0,\!15;[/math] [math]\delta_{i+1}=0,\!9;[/math] [math]i=1,\!2[/math] с помощью методов предсказания и коррекции П1К2, П2К2, П2КЗ, ПЗКЗ.


Численные результаты помещены в табл. 6.19.


Таблица 6.19.
Тип схемыП1К2П2К2П2КЗПЗКЗТочное
решение
[math]x_{i}[/math]1Я11НЯ22Я2Б1НЯ22Я2Б2НЯЗАЗЯЗ2НЯЗА[math]y(x_{i})[/math]
0,1501,172711
0,08
1,174097
0,036
1,173700
0,0027
1,1736998
0,0027
1,1736684
0,2851,372442
0,15
1,375370
0,061
1,374445
0,0057
1,374467
0,00415
1,374524
0,40651,593437
0,20
1,597867
0,079
1,596537
0,0043
1,596576
0,0019
1,596576

Для обеспечения расчета на первых шагах всех двухшаговых схем и одной трехшаговой предварительно рассчитывалось значение [math]y[/math] в точке [math]x=0,\!01[/math] по схеме Эйлера П1К2. В последнем столбце табл. 6.19 указано точное значение, полученное аналитически. Относительные погрешности численных результатов указаны в строках, расположенных ниже строк, в которых помещены численные значения [math]\widehat{y}_{i}[/math] искомой функции. Анализ результатов свидетельствует об увеличении точности расчетов при повышении порядков схем как на шаге "предиктор", так и на шаге "корректор". Эти результаты оправдывают применение схем с многошаговым предиктором. Минимальная погрешность обеспечивается схемой ПЗКЗ, однако схема П2КЗ также приводит к хорошим результатам.


Часовой пояс: UTC + 4 часа [ Летнее время ]


Яндекс.Метрика

Copyright © 2010-2016 MathHelpPlanet.com. All rights reserved