Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1044

.pdf
Скачиваний:
3
Добавлен:
15.11.2022
Размер:
8.27 Mб
Скачать

и различие между решениями уменьшается с увеличением значения аргумента (рис. 2.1,а). При к > 0 условие устойчивости не выполняется:

f;= k > o ,

Н 4 =|у (х) - К х)|- 1у. - у.1•е“ - т я - * »

и различие между решениями увеличивается с ростом аргумента х (рис. 2.1,6).

У(х) У(х)

Рис. 2.1. Примеры сходимости (а) и расходимости (б) решений истинного (нижние кривые) и возмущенного при начальных условиях (верхние кривые)

Метод Пикара1

Проинтегрируем уравнение (2.1) с помощью разделения переменных:

dy = f(x,y)dx,

У<«>

ж

 

Jdy = Jf(t,y)dt,

 

У*

О

 

y(x) = yo + ff(t.y(0)d t-

(2.4)

 

О

 

Используя последнее соотношение, построим итерационный процесс

У<М(Х) = Уо + \f(t.y(k' l)(t))dt.

(2.5)

1Пикар Шарль Эмиль [24.7.18S6 - 11.12.1941] - французский математик. В 1877 году окончил Высшую нормальную школу в Париже. С 1881 года - профессор этой же школы, а с 1886 года - профессор Парижского университета. С 1895г. - член-корреспондент Петербургской академии наук; с 1889тчлен Парижской академии наук; с 1924 года - член Французской академии наук; с 1925 года - почетный член академии наук СССР.

при этом в качестве “нулевого” приближения выбираем у(0)(х)иу0 «const. Интеграл в правой части процедуры (2.4) вычисляется точно или численно. Пример 2.2. Найдем методом Пикара решение уравнения

g - k - y . »<0> = |

Начальное приближение строим в соответствии с идеей метода: у(0,(х )-1 .

Первое приближение

у(|)(х) = у 0 + J f(t,y(0>(t))dt = 1 + J (-ky(0>(t))dt = 1 - kJ ldt = 1 - kx.

0

0

0

 

Аналогично определяются второе приближение:

 

yw (x) =1 + J (-k(l - kt))dt = 1 - kJldt + k1}tdt = 1 - kx+

,

(1

0

0

2

третье:

 

 

 

y(I)(x) = 1+J (-k ^ l - kt +

 

= 1 - kx - (kx)1 (kx)3

 

 

6

*

четвертое:

 

 

 

y(4)(x) = 1 + |^ - k ^ l - kt +

 

(kx)3 (kx)4

 

= 1 - к х + И -

24 ’

 

 

6

и так далее. Становится очевидным, что получаемая последовательность решений представляет собой частичные суммы разложения в ряд Тэйлора экспоненты у(х) = е"кх, являющейся точным решением поставленной задачи.

Рассмотрим условия сходимости метода Пикара. Пусть определена ограниченная область

G = { М | х е [О.Т], у е [a.b]},

в которой правая часть f(x,y) уравнения (2.1) удовлетворяет условию Липшица:

|f(x.y2) ~ ^ К[у2 - у,|

Вследствие ограниченности области V(x,y) eG выполнены соотношения М ^Т, |у - у 0|^ Н = Ь - а .

Вычитая из соотношения (2.5) уравнение (2.4), определим погрешность приближенного решения

z(k,(x) = у(к>(х) - у(х)= }[f(x,y<k-"(t)) - f(x,y(t))]dt.

О

Оценим модуль погрешности

lz<k>(x)| = | [ г(х-У(к "(О)- f(x*y(t))]dt| 2 i|f(x.y“-”(t)) - f(x,y(t))jdt i

^Kj|y<k->(t)-y(t)(dt = Kj|z<k->(t)|dt.

О

О

Поскольку |z°(x)| = |у0 - у(х)| £ Н

(решение рассматривается внутри G),

получаем

 

|z(,)(x)|^ К J|z<0)(t)|dt = К -Н - х,

о

|z(J>(x)(^Kj|z<I>(t)|dt = KJH ^ .

Оz

|z(J>(x)|iK j|zm(t)|dt = KJH ^ -,...

О®

|z<">(x)|iK}|z<*-'>(t)|dt = H ^ i H ^ l .

В силу того, что

lim Ё 1 У = 0,

В-МО п!

приходим к заключению, что погрешность решения уменьшается с увеличением числа итераций

и ф н (кп7

. . . >о,

то есть метод Пикара сходится к точному единственному решению исходной задачи.

Метод Эйлера

Пусть для отрезка [а, Ь], на котором ищется решение дифференциального уравнения (2.1), построена сеточная область = { а « х 0 <х, < ...< х,, =Ь)с постоянным шагом h. Для построения решения уравнения (2.1) воспользуемся разложением искомой функции у(х) в ряд Тэйлора вблизи произвольной точки

х к е П . :

 

 

у(*1.ч)*у(х 1.)+ У'0О-*» + ...

 

 

Учитывая, что

согласно

уравнению

(2.1)

y'(xk) = f(xkJy(xk)),

это

разложение решения можно записать в виде

 

 

 

 

 

 

y(*ui)e y(xk)+ f(x k .y(xk))h+ ...

 

 

С помощью полученного выражения построим вычислительный процесс

 

Ук.1 =Ук +Г(х к»Ук)Ь.к = 1.2,-.-. Уо =у(о).

 

(2.6)

Здесь

и далее

будем обозначат» символами ук результат численного

решения

уравнения

(2.1), а

выражение у(хк)

будем

использовать

для

обозначения точного решения исходной задачи.

 

 

 

Пример 2.3. Решим методом Эйлера уравнение — = -у,

у(0) = 1.

 

 

 

 

 

 

dx

 

 

В этом частном случае правая часть дифференциального уравнения имеет

вид f(x,y) = - у , то есть схема (2.6) записывается следующим образом:

 

 

 

Ум = ук - Ук • Ь = УкО- Ь)Цс= 1,2,...

 

 

Построим последовательность значений функции у* для узлов сетки Q0:

 

 

 

Уо = у(0) = 1,

 

 

 

 

 

 

Ук = УоО - h) = (1 -

h).

 

 

 

 

 

Уа = y ,( l - h ) = ( l - h ) - ( l - h ) = ( l - h ) 2,

 

 

y » - y » 0 - b ) « ( l - h j \ ...

У .= (1 -Ь )‘

Для оценки точности получаемого численного решения производятся вычисления с различными шагами интегрирования h (табл. 2.1). Точное решение у(х) = е“*, например, для х=10 дает значение у(10)=0,4539992976*10“\

Таблица 2.1

Результаты численного решения уя методом Эйлера обыкновенного дифференциального уравнения у '« -у с начальным условием у(0)=1

ВеличинашагаИ

0.5

0.25

0.1

0.01

0.001

0,0001

Число шагов п

20

40

100

1000

1С000

100000

у»-юц____ 0,009537 0.100566 0,265614 0.431713 0,451733 0,453772

Три верные значащие цифры получены для шага h = 0,0001, при этом требуется выполнить 100000 “шагов" по аргументу х, то есть необходимо 100000 раз выполнить вычисления в соответствии с формулой (2.6).

Для оценки точности решения, как и ранее, представим погрешность в

виде

Z* = У к -уМ .

определяющем отклонение численного решения по схеме Эйлера от точного.

Соотношение

(2.6)

запишем

в

виде разностного

аналога

дифференциального уравнения (2.1),

 

 

 

 

 

 

 

 

(2.7)

Подставляя сюда yk =zt +y(xk) и yk+l = zM +y(xk4l), получаем

 

 

 

+

 

+y(xt )).

 

Преобразуем последнюю формулу, добавляя в правую часть и

одновременно вычитая f(xk,y(xk)),

 

 

 

^ -'b~

 

 

+ у(*.)) + f(»..y(x.))-

 

£ ^ _ | ^ i M

b | W

. f(, ii>(x>))j tf(X iA + > (x > ))_ f ( X

i ( 2 8 )

Выражение в квадратных скобках представляет собой разностный аналог (2.7) , в котором приближенные значения ук искомой функции заменены на точные значения y(Xk). Это позволяет проверить, как точно разностный аналог (2.7) аппроксимирует исходное дифференциальное уравнение (2.1).

Величина

(2.9)

носит название погрешности аппроксимации исходного дифференциального

уравнения разностным аналогом. Для оценки этой погрешности подставим в формулу (2.9) разложение решения в ряд Тэйлора

 

y(xk+, )= у(хк)+ У'(хк)• h + у'(хк )• у

+ ....

 

У (х к )+ У'(хк )• h + у'(хк )• у +•• - у(хк)

 

Vk

-------------------------- jj---------------------------

f (xk.y(xk)) =

= У'(хк)+ У*(хк )• !+•••- f (хк.у(хк)).

Учтем, что согласно исходному уравнению

y'(xk)= f(x k,y(xk)).

Тогда

Vk = y'(xk) |+ ...= 0(h).

При условии, что значения у"(хк) ограничены на отрезке [а, Ь],

погрешность аппроксимации оказывается величиной, пропорциональной первому порядку шага интегрирования.

В общем случае порядок аппроксимации равен р, если имеет место соотношение вида

\|/k = 0 (h p).

Вновь обратимся к формуле (2.8). Второе слагаемое согласно теореме Лагранжа о среднем можно представить в виде:

f(xk>y(xk) + zk) - f ( x k,y(xk)) = f;(xk.y(xk) + e2k) zkl 0 6(0>1).

Тогда выражение (2.8) преобразуется следующим образу- b * p L = f ; .Zk+ 0(h),

Zk+1 = zk + f; • zkh + o (h J) = zk(l + f; h) + o ( h .

Для того чтобы при выполнении вычислений погрешн0сть Не возрастала, потребуем выполнения условия:

|l +f,1l|sl.

-2 £ fy'h <.0.

(2.10)

Это неравенство соответствует критерию устойчивости по начальным данным, fy'< 0 , полученному ранее. Далее, с учетом выполнения условия

Липшица

|f(x,y*)-f(x.y1)|sK |y 1 - y ||

оценим производную

f(xt ,y(xt )+ z t ) - f ( x t ,y(xt ))

if;i=

^ K |y (x J+ z t -y (x k)| Y

Nkl

- K S f ^ K .

Учитывая условие устойчивости решения f' £ 0, получаем:

-K < ;f;< ;o .

Теперь из неравенства (2.10)

2 2

ъ * ~ г ; * к -

Следовательно, чтобы не нарастала погрешность вычислений, необходимо ограничивать величину шага интегрирования.

На рис. 2.2 представлены результаты решения задачи из примера 2.3 с использованием формулы (2.6) при малых шагах интегрирования, а также точное решение той же задачи. Видно, что с уменьшением шага интегрирования h численное решение приближается к точному.

Совершенно противоположную картину можно наблюдать при попытке увеличения шага интегрирования. На рис. 2.3 приведены результаты расчетов той же задачи с большими шагами интегрирования. При шаге h=l величины у^ уже на втором шаге интегрирования обращаются в 0 и в дальнейшем не изменяются (рис. 2.3,а). Шаг интегрирования h=l,5 дает отрицательные значения у^ для некоторых начальных моментов времени, что противоречит

смыслу задачи (рис. 2.3,6). Следует отметить, что даже в этом случае можно наблюдать сходимость численного решения к точному при достаточно большом числе шагов.

а

б

в

Рис. 2.2. Сравнение точного решения с результатами расчетов на ЭВМ при различных шагах интегрирования h=0,5 (a), h=0,25 (б) и h=0,l (в);

---- точное решение, —о----- численное решение

Рис. 2.3,в показывает, что при h = 2 численное решение дает значения \ \ , осциллирующие возле действительного значения. При дальнейшем увеличении

шага получаем расходящееся решение (рис. 2.3,г). Приведенные результаты

говорят о необходимости дополнительных исследований с целью проверки сходимости получаемых решений к точным.

а

б

в г Рис. 2.3. Результаты решения разностного уравнения на ЭВМ с большими

шагами интегрирования: h=l (a), h=l,5 (б), h=2 (в) и h=2,l (г);

---- точное решение, —о----- численное решение

Метод Рунге - Купы1

Для построения разностной схемы интегрирования воспользуемся разложением решения задачи (2.1) в ряд Тэйлора:

у (х ы ) = У(х к ) + У '(х к ) ' h + / ( х к )• у + ...

Заменим вторую производную в этом разложении выражением

У*(х к ) = ( у ( х к)У = ^ ( х к>У(х к ) ) * f(* .y )-f(xk.y(xk)) Д х

где X = хк + Дх, у = у(хк + Дх), причем Дх подбирается из условия достижения

наибольшей точности записанного выражения. Для дальнейших выкладок произведем замену величины у разложением в ряд Тэйлора

У = у (х к + Дх)= у(хк)+ у '(х к )• Дх +...

Для исходного уравнения (2.1) построим вычислительную схему:

h2

Ук-и =Ук+f(xk.yt ) b + — (f(xk +Дх,ук + yiA x)-f(xk>yk)),

которую преобразуем к виду

Ук+1 = Ук + h ^1 - •f(x k.Ук)+ ^ f(x k + Дх.Ук + у'к •Дх) =

= Ук + h _(1 - ^ c ) ' f(Xk,yk)+^ x f( X|t+T

h,y‘ +f(Xk,yk)Y h) '

Введем обозначения:

 

 

 

 

h

h

Дх

./

ч Дх

* - ш - P ” , _ 2 S - Y" T -

которые позволяют записать предыдущее выражение в форме Ук+. =Ук + h[P f(xk,yk) + a f ( x k + y h ,y k + 8 h )].

1Кутта Мартин Вильгельм [3.11.1867 - 25.12.1944] - немецкий физик и математик, был профессором Высшей технической школы Штудгарта.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]