Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЧМ_Лекции2009.pdf
Скачиваний:
15
Добавлен:
05.06.2015
Размер:
1.42 Mб
Скачать

Лекция 7.

Метод конечных разностей. Решение задачи Коши ОДУ.

Самым распространенным методом решения задач с ОДУ и ДУ с ЧП является метод конечных разностей. Во всех вариантах этого метода в области определения искомых функций вводится сетка, и решение ищется на сетке.

Для значений искомой сеточной функции строится система алгебраических уравнений, решение которой и служит приближенной таблицей значений решения исходной задачи.

Простейший способ построения этой системы алгебраических уравнений - разностной схемы - состоит в приближенной замене производных, входящих в ДУ и в краевые условия, разностными отношениями. Этим объясняется название метода - метод конечных разностей.

Задача Коши. Рассмотрим задачу Коши для системы:

dy (i)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (i) (x, y1,..., y(n) ) = 0

 

 

 

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx

 

 

 

 

 

 

 

 

 

 

 

(i)

i

заданные значения

 

 

 

 

 

 

y

 

 

 

(a) = ya

 

 

 

 

 

 

Система (1) может быть записана в векторной форме

 

 

 

 

 

 

y(1)

(x)

 

f (1)

(x, y(1)

,..., y(n) )

 

 

d y

 

f (x, y) = 0

 

 

 

 

 

 

 

 

 

(2)

 

 

 

f =

...

 

dx

 

,где y = ...

,

 

 

 

 

 

 

 

 

 

(n)

 

 

 

 

 

 

 

 

y(a) = ya

 

 

 

 

 

y

 

(x)

 

f (n) (x, y(1)

,..., y(n) )

 

Будем предполагать, что на [a;b] для задачи (1) выполнены условия суще-

ствования и единственности решения.

Обсуждение методов решения задачи Коши для простоты будем проводить на примере задачи для одного уравнения:

dy

f (x, y) = 0,

a < x < b

 

 

 

(3)

 

dx

 

 

 

 

 

 

y(a) = ya

 

 

59

Построение численных алгоритмов опирается на дискретизацию задачи.

Введем

в

области

расчета

x [a;b]

дискретный набор точек

ωh ={xk = a + hk;

k = 0,1,..., K; Kh = b a} , в которых будем вычислять при-

ближенное решение.

 

 

 

Точки

xk будем называть узлами сетки,

h - шагом, совокупность узлов

ωh - сеточной областью.

 

 

Другие обозначения:

 

 

yh ={yk ,

k = 0,1,..., K} - совокупность искомых приближенных значений

решения задачи (3);

 

 

 

[ y]h ={y(xk ),

k = 0,1,..., K} - совокупность точных значений решения задачи

(3) в узлах сетки;

 

 

 

f h ={ f (xk , yk ),

k = 0,1,..., K}

- значения правой части в узлах.

Совокупность величин, отнесенных к узлам сетки, будем называть сеточными функциями. Т.о., сеточные функции являются элементами (K +1) -

мерного векторного пространства.

Введем погрешность численного решения

δh = yh [ y]h ={yk y(xk ), k = 0,1,..., K}.

Введем норму δh = max yk y(xk ) .

k

Ставится вопрос о вычислении сеточной функцииyh , т.к. при измельчении сетки, т.е. при h 0 , она является все более полной таблицей искомого решения y(x) и дает о нем все более полное представление.

Пользуясь интерполяцией, можно было бы с возрастающей при h 0 точностью восстановить решение y(x) всюду в области [a;b] . Ясно, что точность,

с которой это можно сделать при заданном фиксированном числе узлов и рас-

положении узлов сетки ωh зависит от дополнительных сведений о решении типа оценок его производных и расположения узлов сетки.

Рассмотрение вопроса восстановления функции по ее таблице составляет предмет теории интерполяции. Здесь рассматривается только задача вычисле-

ния таблицы yh .

60

Будем считать, что задача решена точно, если найдена сеточная функ-

ция[y]h . Однако ее вычислить точно нельзя. Вместо сеточной функции [y]h

вычисляется другая сеточная функция - yh . В связи с этим возникает вопрос о сходимости.

Определение. Будем говорить, что численное решение сходится к точно-

му, yk y(xk ) , если δh 0 .

h 0

h 0

Определение. Будем говорить, что метод, по которому получено решение,

является методом p го порядка точности, δh const h p .

Итак, пусть дана задача Коши

dy

f (x, y) = 0,

a < x < b (3)

 

 

dx

y(a) = ya

 

Заменим производную по формулам численного дифференцирования. Метод Эйлера (явный).

y

k +1

y

k

f (xk , yk ) = 0

 

k = 0,1,..., K 1

 

 

 

 

 

 

(4)

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

y0 = ya

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 7.1 Ломаная ABCDEF

61

В данном случае искомая интегральная кривая AB приближается к ломаной ACDEF (Рис. 7.1), наклон которой на элементарном участке [xk ; xk +1] оп-

ределяется наклоном интегральной кривой уравнения, выпущенной из точки(xk , yk ).

Последовательные значения получаются по формуле yk +1 = yk + h fk , кото-

рая сразу получается из уравнения.

Метод Эйлера (неявный). Заменяем производную левым разностным соотношением,

y

k

y

k 1

f (xk , yk ) = 0

k =1, 2,..., K

 

 

 

 

(5)

 

 

h

 

 

 

 

 

 

y0 = ya

 

 

 

Здесь при расчете слева направо возникают трудности, т.к. неизвестная величина yk входит в каждое уравнение нелинейным образом. Можно органи-

зовать итерационный процесс МПИ:

yk(s+1) = yk 1 + h f s (xk , yk ) = φ(s) ( yk ); yk(0) = yk 1;

s - порядок приближения.

Достаточное условие сходимости:

 

φy = h

 

f y

 

x=xk <1, если h мало.

 

 

 

 

 

 

 

 

 

 

 

y=yk

 

Определение.

Алгебраические соотношения между компонентами сеточной функции, которыми заменяют исходные ДУ в окрестности каждого узла сетки, называются разностными уравнениями.

Определение.

Замкнутую систему разностных уравнений (они разные при разныхh ) вместе с дискретизованными дополнительными (начальными или краевыми) условиями называют разностной схемой.

Таким образом, (4) – явная разностная схема Эйлера;

(5) – неявная разностная схема Эйлера.

62

Определение.
Если эта невязкаδφh

Определение.

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

Пример.

 

yk +1 = yk + h fk ,

yk , hk известны k .

Если необходимо решать систему уравнений (линейных или нелинейных), для определения сеточных значений функции, то РС называют неявной.

Пример.

1)yk = yk 1 + h f (xk , yk )

2)

Ak yk 1 Ck yk + Bk yk +1 = −Fk

k = 2,3,..., K 1

 

 

Итак, для задачи Коши записаны две разностные схемы. Общий вид:

L yh = φh . (*)

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

Нужно проверить являются ли

 

δh

 

= max

 

yk y(xk )

 

0 действительно

 

 

 

 

 

 

 

 

 

k

 

 

 

h 0

 

 

 

 

 

 

 

сходящимися.

Пусть задача (*) имеет единственное решение yh . Если бы при подстанов-

ке в левую часть (*) вместо yh сеточной функции [ y]h равенство оказалось бы в точности выполненным, то в силу единственности решения имело бы место

равенство yh =[y]h , при

 

δh

 

 

 

= 0 . Однако, как правило, систему (*) не удается

 

 

 

выбрать так, чтобы [ y]h

ей удовлетворяла в точности. При подстановке [ y]h в

уравнение возникает некоторая невязка

Lh [y]h = φh + δφh (**)

0 , так что [ y]h удовлетворяет уравнению (*)

h 0

все точнее, то будем говорить, что РС Lh yh = φh аппроксимирует дифференци-

63

альную краевую задачу Ly = φ на решении y этой дифференциальной краевой задачи.

В случае аппроксимации можно считать, что уравнение (**), которому удовлетворяет [ y]h , получается из уравнения (*) путем прибавления некоторой

малой (при малом h ) добавки δφh к правой части φh .

Следовательно, если решение yh задачи (*) устойчиво относительно из-

менений правой части ϕh , т.е. мало изменяется при изменении правой части,

то решение yh задачи L yh = φh

и решение [ y]h задачи (**) различаются мало,

h

 

 

 

 

 

 

 

 

 

так что из аппроксимации следует сходимость yh [y]h приh 0 .

Таким образом, путь

проверки сходимости

 

 

 

δh

 

 

 

0 или

 

 

 

 

 

 

 

 

 

 

 

 

 

h 0

 

 

 

 

 

 

 

 

yh [y]h

 

 

 

0

состоит в том, чтобы разбить этот трудный вопрос на два

 

 

 

 

 

 

 

 

h 0

 

 

 

 

 

более простых:

 

сначала проверить, имеет ли место аппроксимация задачи Ly = φ за-

дачей Lh yh = φh ;

затем выяснить, устойчива ли задача Lh yh =ϕh .

В этом содержится и указание на способы построения сходящихся РС

для численного решения задачи Ly =ϕ :

надо строить аппроксимацию ее РС;

из многих возможных способов аппроксимации надо выбирать такие, при которых РС оказываются устойчивыми.

Замечание.

Понятие устойчивости введено неточно.

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

64

Почему же проблема устойчивости возникает заново при переходе к РС, которой мы заменяем исходную задачу. Дело в том, что для исходной задачи значения решения в разных точках «жестко» связаны между собой ДУ, которым решение обязано удовлетворять.

После дискретизации, т.е. перехода к РС, значения разностного решения хоть и связаны (через разностные уравнения), но каждое из них вычисляется индивидуально. В расчет каждого привносится тем самым своя погрешность (за счет округлений при выполнении арифметических операций). Коррелируя друг с другом, эти погрешности при значительном количестве расчетных точек (узлов) могут быстро нарастать. Это и есть, в сущности, механизм возникновения неустойчивости при переходе к разностной задаче.

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

Вернемся к явной схеме метода Эйлера для задачи Коши:

y

k +1

y

k

f (xk , yk ) = 0

k = 0,1,..., K 1

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

y0 = ya

 

 

 

 

По определению погрешности:

 

yk = y(xk ) + δk ,

 

k = 0,1,..., K .

 

 

Подставляя

 

это

 

выражение

в

РС,

получим

 

y(xk +1) y(xk )

+

δk +1 δk

f (xk , y(xk ) + δk ) = 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

По теореме Лагранжа о среднем (из мат. анализа):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

~

- производная от

f по y в

 

 

f (xk , y(xk ) + δk ) = f (xk , y(xk ))+ ( f y)k δk , где ( f y)k

точке

 

~

 

 

 

 

~

 

 

 

 

 

 

 

 

(xk , y),

 

 

y(xk ) y y(xk ) + δk .

 

 

 

 

Перепишем уравнение в виде

 

 

 

 

 

 

 

 

δ

k +1

δ

k

 

~

 

y(x

k +1

) y(x

k

)

 

 

 

 

 

 

 

 

(f y)

δk = −

 

 

 

f (xk , y(xk ))

(6)

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

h

 

 

 

k

 

 

 

 

 

 

 

 

 

 

Решением (4)

является yh . При подстановке другой функции,

например

[y]h , возникает невязка, или погрешность аппроксимации

 

65

 

y(x

k +1

) y(x

k

)

 

k = 0,1,..., K 1 .

ψh = ψk =

 

 

 

f (xk , yk ) ,

 

 

h

 

 

 

 

 

 

 

 

 

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

нений, соответствующих этому методу.

 

 

Величину

ошибки

аппроксимации

нетрудно

оце-

нитьψk =

y(xk +1) y(xk )

f (xk , y(xk )) .

 

 

 

 

 

 

 

 

h

 

 

 

 

 

По

формуле

 

Тейлора,

предполагая

гладкость

функции,

y(xk +1) = y(xk )+ hy(xk ) +

h2

~

~

 

 

 

 

 

 

 

 

 

yk′′ , где

yk′′ = y′′

x [xk ;xk +h]

.

2

 

 

 

h

 

Отсюда, ψk =[y(xk ) f (xk , y(xk ))]+

~

 

 

 

yk′′ или ψk =

2

 

 

 

 

 

 

 

 

h ~′′ .

2 yk

Если

 

y′′

 

< M 2 , то

 

 

ψh

 

 

 

M 2

h,

M 2 = max

 

y′′

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[a;b]

 

 

 

 

 

 

 

 

 

 

2

 

[a;b]

 

 

 

 

 

 

 

 

Явный метод Эйлера – метод 1-го порядка точности.

Другой метод:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

k +1

 

y

k 1

f (xk

, yk ) = 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- метод 2-го порядка точности

 

ψh

 

C h2 .

 

= ya

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

= y

0

+ f (x

0

, y

0

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MATLAB имеет множество функций для численного решения обыкновенных дифференциальных уравнений и их систем. Солверы ode23 и ode45 основаны на формулах Рунге-Кутты 2,3 и 4,5 порядков соответственно.

Метод Рунге-Кутты четвертого порядка (без вывода).

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

k +1

= y

k

+

 

( p

+ 2 p

 

+ 2 p

+ p

 

)

 

 

 

 

 

 

 

 

6

 

 

 

1

 

 

 

 

2

 

 

3

 

4

 

 

 

= f (xk , yk )

 

 

 

 

 

 

 

 

 

 

 

 

 

p1

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

здесь pi - вспомогательные величины.

p2

= f xk +

 

 

, yk +

 

p1

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

h

 

 

 

 

 

 

 

p

3

= f x

k

+

 

 

 

, y

k

+

 

 

p

2

 

 

 

 

 

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

4

= f (x

k

+ h, y

k

+ hp

 

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

Проделывая разложение в ряд Тейлора, можно убедиться, что ψh C h4 .

66