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

Компьютерное моделирование и проектирование

..pdf
Скачиваний:
18
Добавлен:
05.02.2023
Размер:
838.1 Кб
Скачать

f(x)

D

 

C

 

 

C

D

 

 

A

 

B

xi-1

xi-1/2

x

xi

Рис. 4 Геометрический смысл формулыпрямоугольников

Погрешность метода (134) определяется величиной

xi

Ψi = f (x)dx f (xi1/ 2 )h,

xi1

которую легко оценить с помощью формулы Тейлора. Действительно, запишем Ψi в виде

 

 

 

 

 

 

 

 

 

 

xi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ψi = ( f (x)dx f (xi1/ 2 ))h

(135)

 

 

 

 

 

 

 

 

 

 

xi1

 

 

 

 

 

 

 

и воспользуемся разложением

 

 

 

 

 

 

 

 

 

 

f (x) = f (xi1/ 2 ) + (x xi1/ 2 ) f '(xi1/ 2 ) +

(x x )2

f "(ζi ),

i1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

где ζi =ζi (x) [xi1/ 2 , xi ]. Тогда из (135) получим

 

 

 

 

 

 

 

 

 

 

 

xi

(x

 

2

)2

 

 

 

 

 

 

 

 

 

Ψi =

i

 

 

f "(ζi )dx.

 

 

 

 

 

 

 

 

 

 

 

1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi1

 

 

 

 

 

 

 

 

Обозначая M2,i

= max

 

f "(x)

 

, оценим Ψi

следующим образом:

 

 

 

x [ xi1 ,xi ]

 

 

 

 

 

xi

(x

 

)2

 

 

h3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ψi

M2,i

 

dx =

M2,i .

 

 

 

 

i1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi1

 

 

 

 

 

 

 

 

 

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

 

Ψi

 

h3

M

2,i ,

(136)

 

 

 

 

24

71

 

 

 

 

 

 

 

 

 

 

 

т.е. формула имеет погрешность O(h3) при h 0.

Заметим, что оценка (136) является неулучшаемой, т.е. существует функция f(x), для которой (136) выполняется со знаком равенства.

Действительно, для f (x) = (x x

 

 

 

)2

имеем M

2.i

= 2,

 

f (x

) = 0 и

 

 

 

i1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

i1/ 2

 

x

f (x)dx f (xi1/ 2 )h = h3

 

 

h3

 

 

 

 

i

=

M

2,i .

 

 

 

xi1

 

 

 

 

 

 

 

 

 

 

 

 

12

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Суммируя равенства (134) по i от 1 до N, получим составную

формулу прямоугольников

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x)dx

f (xi1/ 2 )h.

 

 

(137)

 

 

a

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

Погрешность этой формулы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

Ψ = f (x)dx

f (xi1/ 2 )h

 

 

 

 

 

a

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

равна сумме погрешностей по всем частичным отрезкам,

 

 

N

 

N

xi (x x

 

)

2

f "(ζi )dx.

 

Ψ = Ψi =

 

 

i1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=1

 

i=1 x

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

Отсюда, обозначая M2 = max

 

f "(x)

 

, получим

 

 

 

 

 

 

 

 

 

 

 

 

x [a,b]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nh3

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

Ψ

 

M

2

=

 

(b a)M

2

,

(138)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

O(h2).

В этом случае говорят, что квадратурная формула имеет второй порядок точности.

З а м е ч а н и е. Возможны формулы прямоугольников и при ином расположении узлов, например, такие

b

N

b

N

f (x)dx hf (xi1),

f (x)dx hf (xi ),

a

i=1

a

i=1

называемые формулами левых и правых прямоугольников.

Однако из-за нарушения симметрии погрешность таких формул является величиной O(h).

72

14.3 Формула трапеций

На частичном отрезке эта формула имеет вид

x

 

f (xi1) + f (xi )

 

 

i

f (x)dx

h

(139)

2

xi1

 

 

 

 

 

 

 

и получается путем замены подинтегральной функции f(x) интерполяционным многочленом первой степени, построенным по узлам xi1, xi , т.е. функцией

L1,i (x) = 1h ((x xi1) f (xi ) (x xi ) f (xi1)).

Для оценки погрешности воспользуемся известным свойством

f (x) L1,i (x) = (x xi1)(x xi ) f "(ζi (x)).

2

Отсюда получим

x

 

 

f (xi1) + f (xi )

 

 

x

 

 

 

 

 

Ψi = i

f (x)dx

h = i

( f (x) L1,i (x))dx =

 

 

 

 

xi1

 

 

 

2

 

 

 

xi1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi (x x

)(x x )

f "(ζi (x))dx

 

 

 

 

 

=

i1

i

 

 

 

 

 

 

xi1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и, следовательно,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M

2,i

h3

(140)

 

 

 

 

 

 

Ψi

 

 

 

.

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

Оценка (140)

неулучшаемая, так как

в ней достигается

равенство,

например, для f (x) = (x xi )2.

Составная формула трапеций имеет вид

b

N

f (xi ) + f (xi1)

 

 

f (x)dx

h = h(0.5 f0 + f1 +... + fn1 + 0.5 fN ),

(141)

2

a

i=1

 

 

где fi = f (xi ),

i = 0,1,..., N, hN = b a.

 

 

 

73

 

Погрешность этой формулы оценивается следующим образом:

Ψ

 

h2

(b a)

M2 , M2

= max

 

f "(x)

 

.

(142)

 

 

 

 

 

12

 

 

 

 

 

 

 

x [a,b]

 

 

 

 

 

Таким образом, формула трапеций имеет, так же как и формула прямоугольников, второй порядок точности Ψ = O(h2 ) , но ее погрешность оценивается величиной в два раза большей (см. (138)).

14.4 Формула Симпсона

При апроксимации интеграла (133) заменим функцию f(x) параболой, проходящей через точки (xj,f(xj)), j=i–1, i–0.5,i, т.е. представим

приближенно f(x) в виде

 

 

 

 

 

 

 

 

f (x) L2,i (x),

x [xi1, xi ],

 

 

 

 

 

 

где L2,i(x) – интерполяционный многочлен Лагранжа второй степени,

 

 

 

L

 

(x) =

2

{(x x

)(x x ) f

 

 

 

 

 

h2

 

 

 

 

2,i

 

i1/ 2

i

i1

 

 

 

2(x xi1)(x xi ) fi1/ 2 + (x xi )(x xi1/ 2 ) fi}.

(143)

Проводя интегрирование, получим

 

 

 

 

x

L2,i (x)dx = h

 

 

 

 

 

 

 

 

 

i

( fi1 + 4 fi1/ 2 + fi ), h = xi xi1.

 

 

 

xi1

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, приходим к приближенному равенству

 

 

 

 

x

f (x)dx h ( fi1 + 4 fi1/ 2 + fi ),

 

 

 

 

i

 

(144)

 

 

xi1

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

которое называется формулой Симпсона или формулой парабол. На всем отрезке [a, b] формула Симпсона имеет вид

b

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

f (x)dx h

( fi1 + 4 fi1/ 2 + fi ) =

 

 

 

 

 

a

 

 

 

i=1 6

 

 

 

 

 

 

 

 

 

 

 

= h[ f

0

+ f

N

+ 2( f

+ f

2

+... + f

n1

) + 4( f

+ f

3/ 2

+... + f

N 1/ 2

].

6

 

 

1

 

 

1/ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Чтобы не использовать дробных индексов, можно обозначить

74

xi = a + 0.5hi, fi = f (xi ), i = 0,1,...,2N, hN = b a

и записать формулу Симпсона в виде

b

f (x)dx b a[ f0 + f2N + 2( f2 + f4 +... + f2N 2 ) +4( f1 + f3 +... + f2N 1)].

(145)

a

 

 

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

x

f (x)dx = h

 

i

( fi1 + 4 fi1/ 2 + fi ),

xi1

6

 

 

 

если f (x) = a0 + a1x + a2 x2 + a3 x3. Это утверждение нетрудно проверить

непосредственно, что и предоставляется сделать читателю. Для погрешности формулы Симпсона справедлива оценка:

Ψi

 

h5

M

4,i .

(146)

 

 

2880

 

 

 

 

 

 

Погрешность составной формулы Симпсона (145) вычисляется так:

Ψ

 

h4 (b a)

M4 ,

hN =b a, M4 = sup

 

f IV (x)

 

.

(147)

 

 

 

 

 

 

2880

 

x [a,b]

 

 

 

 

 

Отсюда видно, что формула Симпсона существенно точнее, чем формулы прямоугольников и трапеций. На частичном отрезке она имеет точность O(h5), а на всем отрезке – O(h4).

15 Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений

15.1 Постановка задачи Коши

Будем рассматривать задачу Коши для систем обыкновенных дифференциальных уравнений

du(t)

= f (t,u), t > 0,

u(0) = u(0)

(148)

dt

 

 

 

или, подробнее,

75

 

 

 

 

dui (t) = f

(t,u ,u

2

,...,u

m

),

t > 0, i =1,2,...,m.

(149)

 

 

 

 

dt

 

 

 

i

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u (0) = u

(0) ,

 

i =1,2,...,m.

 

(150)

 

 

 

 

 

 

 

 

 

i

 

 

 

i

 

 

 

 

 

Хорошо известны условия, гарантирующие существование и

единственность решения задачи Коши. Предположим,

что функции fi ,

i =1,2,...,m непрерывны по всем аргументам в замкнутой области

 

 

 

 

 

D ={

 

t

 

a,

 

ui

ui(0)

 

 

b,i =1,2,...,m }.

 

 

 

 

 

 

 

 

 

 

 

Из непрерывности

 

 

 

функций

fi

 

следует их ограниченность, т.е.

существование константы М>0, такой, что всюду в D выполняются

неравенства

 

fi

 

M ,i =1,2,...,m.

 

 

 

 

 

 

 

в D функции

 

 

 

 

 

 

 

 

 

 

 

 

 

Предположим, кроме

того, что

 

fi удовлетворяют

условию Липшица по аргументам u1,u2 ,...,um , т.е.

fi (t,u1,u2,..., um)fi (t,u1′′,u2′′,..., um′′) L{u1′−u2′′ + u2′ −u2′′ +...+ um′ −um′′}

для любых точек (t,u1,...,um) и (t,u1′′,u2′′,...,um′′) области D.

Если выполнены сформулированные выше предположения, то существует единственное решение

u1 = u1(t),u2 (t),...,um = um (t)

системы (149), определенное при (t(t0 = min(a,b / M ) и принимающее

при t = 0 заданные начальные значения (150).

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

Для простоты изложения будем рассматривать далее одно уравнение

dudt = f (t,u), t > 0, u(0) = u0. (151)

Введем по переменному t равномерную сетку с шагом τ > 0, т.е. рассмотрим множество точек

76

ωτ ={tn = nτ,n = 0, 1, 2,...}.

Будем обозначать через u(t) точное решение задачи (151), а через yn = y(tn ) приближенное решение. Заметим, что приближенное решение является сеточной функцией, т.е. определено только в точках сетки ωτ .

15.2 Метод Эйлера

Уравнение (151) заменяется разностным уравнением

yn+1 yn

f (t

n

, y

n

) = 0,

n = 0, 1, 2,...,

y

= u

.

(152)

 

τ

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

Решение этого уравнения находится явным образом по рекуррентной формуле

yn+1 = yn +τ f (tn , yn ),

n = 0, 1, 2,..., y0 = u0.

(153)

При использовании приближенных методов основным является вопрос о сходимости. Понятие о сходимости приближенного метода можно сформулировать по-разному. Применительно к разностным методам, к которым относится метод Эйлера (153), наибольшее распространение получило понятие сходимости при τ 0. Оно означает

следующее. Фиксируем точку t и построим последовательность сеток ωτ

таких,

что τ 0 и

tn = nτ = t

(тогда необходимо n → ∞). Говорят, что

метод (153) сходится в точке t, если

 

yn u(tn )

 

0 при

τ 0,tn = t.

 

 

Метод

сходится на

отрезке

(0,T ],

если он сходится в

каждой точке

t (0,T ]. Говорят, что метод имеет р-й порядок точности, если существует

число р>0 такое, что

 

yn u(tn )

 

= O(τ P )

при τ 0.

 

 

 

 

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

zn = yn u(tn ). Подставляя yn

= zn +un в (152), получим

 

 

 

 

zn+1 zn

 

 

= f (tn ,un

+ zn ) un+1 un .

(154)

 

 

 

τ

 

 

 

 

 

 

 

 

τ

 

Правую часть уравнения (154) можно представить в виде суммы

ψn(1) +ψn(2) ,

где

77

 

ψn(1)

= −

un+1 un

+ f (tn ,un ),

 

 

 

 

 

τ

 

ψn(2)

= f (tn ,un + zn ) f (tn ,un ).

Функция

ψn(1) называется невязкой или погрешностью

аппроксимации разностного уравнения (152) на решении исходного уравнения (151). Видно, что невязка представляет собой результат подстановки точного решения u = u(t) в левую часть разностного

уравнения (152). Если бы приближенное решение yn совпадало с точным u(tn ), то невязка равнялась бы нулю. Говорят, что разностный метод

аппроксимирует исходное дифференциальное уравнение, если ψn(1) 0

при τ 0. Разностный метод имеет р-й порядок аппроксимации, если ψn(1) = O(τ p ). Можно показать, что при очень общих предположениях

порядок точности разностного метода совпадает с порядком аппроксимации.

Функция

ψn(2) = f (tn ,un + zn ) f (tn ,un )

обращается в нуль,

если правая часть f не зависит от решения u(t) . В

общем случае ψn(2)

пропорциональна погрешности zn , так как по формуле

конечных приращений имеем

 

 

 

 

 

ψn(2) = f (tn ,un +θzn )zn ,

 

θ

 

1.

 

 

 

 

u

 

 

 

 

Порядок аппроксимации метода Эйлера (153) нетрудно найти, используя разложение по формуле Тейлора. Поскольку

un+1τun = u(tn ) +O(τ),

то в силу уравнения (151)

ψn(1) = −u(tn ) + f (tn ,un ) +O(τ) = O(τ),

т.е. метод Эйлера имеет первый порядок аппроксимации. При выводе предполагалась ограниченность u′′(t).

15.3 Симметричная схема

Уравнение (151) заменяется разностным уравнением

78

f (t,u)
yn+1

yn+1 yn

1 ( f (t

n

, y ) + f (t

n+1

, y

n+1

)) = 0,

n = 0,1,...,

y

= u

. (155)

 

τ

2

n

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

Данный метод более сложен в реализации, чем метод Эйлера (153), так как новое значение определяется по найденному раннее yn

путем решения уравнения

yn+1 0.5τ f (tn+1, yn+1) = Fn ,

где

Fn = yn + 0.5τ f (tn , yn ).

По этой причине метод называется неявным. Преимуществом метода

(155)по сравнению с (153) является более высокий порядок точности. Для невязки

ψn(1) = −

un+1 un

+

1

( f (tn , yn ) + f (tn+1, yn+1))

 

2

 

τ

 

справедливо разложение

 

 

ψn

= −un′ − 2 un′′ + O(τ

2

) +

2 (un

+ un+1) = −un′ − 2 un′′ +

(1)

τ

 

1

τ

+ 12 (un′ + un′ +τun′′ + O(τ 2 )).

т.е. ψn(1) = O(τ2 ). Таким образом, метод (155) имеет второй порядок

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

разностных методов, или, как их еще называют, разностных схем.

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

15.4 Методы РунгеКутта

Явный m -этапный метод РунгеКутта состоит в следующем.

Пусть решение

yn = y(tn ) уже известно. Задаются

числовые

коэффициенты

 

 

ai ,bij ,i = 2, 3,...,m, j =1, 2,...,m 1,σi ,i =1, 2,...,m,

(156)

и последовательно вычисляются функции

79

k1 = f (tn , yn ),k2 = f (tn + a2τ, yn +b21τk1),

 

k3 = f (tn + a3τ, yn +b31τk1 +b32τk2 ),...,

(157)

km = f (tn + amτ, yn +bm1τk1 +bm2τk2 +... +bm,m1τkm1).

 

Затем из формулы

yn+1 yn

= σiki

(158)

τ

i=1

 

находится новое значение yn+1 = y(tn+1).

Коэффициенты ai ,bij ,σi выбираются из соображений точности.

Например, для того чтобы уравнение (158) аппроксимировало исходное

m

уравнение (151), необходимо потребовать σi =1. Отметим, что методы

i=1

РунгеКутта при m>5 не используются.

Остановимся более подробно на отдельных методах. При m =1 получаем рассмотренный ранее метод Эйлера. При m = 2 получаем семейство методов

k1 = f (tn , yn ),k2 = f (tn + a2τ, yn

+b21τk1),

yn+1 = yn +τ(σ1k1 +σ2k2 ).

(159)

 

Исследуем погрешность аппроксимации методов (159) в зависимости от выбора параметров. Исключая из последнего уравнения функции k1 и

k2 , получаем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn+1 yn

=σ

1

f (t

n

, y

n

) +σ

2

f (t

n

+ a τ, y

n

+b τ f (t

n

, y

n

)).

 

(160)

 

 

 

 

 

 

 

 

τ

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

(159) является выражение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ψ (1)

= −

un+1 un

+

σ

1

f (t

n

,u

n

) +

σ

2

f (t

n

+ a τ,u

n

+ b τ f (t

n

,u

n

)), (161)

 

n

 

 

τ

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

полученное заменой

в

 

(160)

 

приближенного

решения

 

 

yn

точным

решением un

= u(tn ).

 

 

Найдем

порядок

погрешности аппроксимации

в предположении

достаточной

гладкости

решения u(t) и функции

f (t,u). Для этого

 

 

80

 

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