Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вычислительная математика.pdf
Скачиваний:
3
Добавлен:
24.11.2025
Размер:
3.89 Mб
Скачать

Матрица Якоби

 

 

 

 

 

 

 

 

 

 

3x2

2y

 

 

 

 

I(x, y)

=

 

 

 

 

 

 

 

 

 

 

 

 

3

3xy

2

 

.

 

 

 

 

 

 

y

 

 

1

 

 

 

Дальнейшие вычисления приведены в таблице

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

xn

 

 

 

F(xn , yn )

In

x(n)

y(n)

 

 

 

 

yn

 

 

G(xn , yn )

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

1,5

 

 

0,12500

71,71875

-0,171875

-3,3750

 

 

 

 

1,5

 

 

-0,43750

 

 

 

 

 

 

 

 

 

 

 

1

 

1,502397

 

 

-0,002170

77,73277

0,0277998

0,1153255

 

 

1,547059

 

 

0,015844

 

 

 

 

 

 

 

 

 

2

 

1,5020396

 

0,0000017

 

 

 

 

 

1,545570

 

 

0,000019

 

 

 

 

 

 

 

 

 

 

 

Ответ:

x =1,502,

 

y =1,547 .

 

 

 

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

Для обыкновенных дифференциальных уравнений, даже весьма простых, не всегда удается выразить искомое решение через элементарные функции. Поэтому большое значение приобретают приближенные методы решения ОДУ. Они делятся на приближенные аналитические методы и численные методы. Примером приближенных аналитических методов может служить метод разложения решения в степенной ряд. Мы будем далее рассматривать только численные методы. Они позволяют найти решение в виде таблицы. Точнее, при численном решении задачи Коши для дифференциального уравнения первого порядка задача формулируется так: в точках x1, x2 , , xn , , называемых узлами сетки, нужно найти приближения y1, y2, , yn, , для значений точного решения y(x) дифференциального уравнения

y′ = f (x, y) ,

(1)

удовлетворяющего начальному условию

 

y(x0 ) = y0 .

(2)

Разность hn = xn xn1 называется шагом сетки. Если шаг hn

не зависит от п, т.е.

hn = h , то сетка называется равномерной, в противном случае неравномерной. Для рассматриваемых далее численных методов факт равномерности сетки не имеет принципиального значения, но для простоты будем использовать только равномерные сетки. Везде в дальней-

180

шем через yn обозначается приближенное решение дифференциального уравнения в узле xn . На практике, как правило, решение y(x) нужно найти на каком-то конечном отрезке

[x0 , x0 + H ].

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

В уравнении (1) заменим производную разностным отношением:

 

yn+1 yn

= f (xn , yn ) .

 

 

h

 

 

 

 

Тогда

 

 

 

yn+1 = yn + h(xn , yn ) .

(3)

Это расчетная формула метода Эйлера. Метод дает весьма грубое приближение решения задачи Коши. Он обычно используется в случае, когда необходимо получить примерное представление о решении на небольшом промежутке. Геометрически получаем движение с точки (xn , yn ) не по интегральной кривой уравнения (1), а по касательной к ней в точке

(xn , yn ) .

Для численного решения задачи (1)–(2) по схеме (3) достаточно, зная y0 = y(x0 ) , последовательно вычислить y1, y2, y3, . При этом на каждом шаге мы будем проводить свою касательную, следовательно, интегральная кривая будет заменена ломаной линией. Поэтому этот метод называют методом ломаных Эйлера.

О погрешности метода

Если правая часть уравнения (1) в некотором прямоугольнике R{x x0 a, y y0 b} удовлетворяет условиям

f (x, y1) f (x, y2 )

 

N

 

y1 y2

 

(N = const) ,

 

 

 

f

 

f

+ f

f

 

M

 

(M = const) ,

=

 

 

x

 

x

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

181

то имеет место следующая оценка погрешности:

y(xn ) yn

 

h M

[(1+ hN)n 1],

(4)

 

 

 

 

 

 

2 N

 

где y(xn ) – значение точного решения уравнения при x = xn , а yn – приближенное значение, полученное на п-м шаге. Формула (4) имеет лишь теоретическое применение. На практике

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

2

более точного значения yn * (при шаге h2 ) оценивают приближенно так:

yn y(xn ) yn yn .

Метод Эйлера легко распространяется на системы дифференциальных уравнений и на дифференциальные уравнения высших порядков. Последние должны быть предварительно приведены к системе ДУ первого порядка.

Например, для системы двух уравнений первого порядка

y′ =

f (x, y, z)

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

f2 (x, y, z)

 

 

 

 

 

 

 

z′ =

 

 

 

 

 

 

 

с начальными условиями

 

y(x0 ) = y0 , z(x0 ) = z0 приближенные значения y(xn ) yn и

z(xn ) zn

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

y

n+1

= y

n

+ hf

(x

n

, y

n

, z

n

)

 

 

1

 

 

 

 

zn+1

= zn + hf2 (xn , yn , zn ) (n = 0,1,2, ).

Пример. Применяя метод Эйлера, найти на отрезке [1;1,5] решение дифференциального уравнения

y′ = y +(1+ x)y2

с начальным условием y(1) = −1, выбрав шаг h = 0,1.

Решение. Здесь f (x, y) = y +(1+ x)y2 . По формуле (3) yn+1 = yn + h(yn +(1+ xn )y2n ) , y0(1) = −1,

y1(1,1) = −1+0,1(1+ 2 (1)2 ) = −0,9 ,

y2 (1,2) = −0,9 +0,1(0,9 +(1+1,1) (0,9)2 ) = −0,8199 ,

y3 (1,3) = −0,8199 +0,1(0,8199 +(1+1,2) (0,8199)2 ) = −0,753998 ,

y4 (1,4) = −0,753998 +0,1(0,753998 +(1+1,3) (0,753998)2 ) = −0,698640 , y5 (1,5) = −0,69864 +0,1(0,69864 +(1+1,4) (0,69864)2 ) = −0,651361.

182

Найдем точное решение исходного уравнения и сравним его с полученным по методу Эйлера результатом. Это уравнение Бернули: y′− y = (1+ x)y2 . Решение будем искать в виде

y = uϑ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

ϑ

2

 

 

 

 

 

 

 

 

+ x)u

2

ϑ

2

.

 

 

 

 

 

 

u ϑ+uϑ −uϑ = (1+ x)u

 

 

u

ϑ+u(ϑ −ϑ) = (1

 

 

 

 

 

 

 

 

 

 

 

dϑ

= ϑ,

dϑ

= dx,

dϑ

=

dx, ln

 

ϑ

 

= x,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ϑ −ϑ = 0,

dx

 

ϑ

ϑ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

du

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ϑ = e

x

,

e

x

= (1+ x)e

2x

u

2

,

du

=

(1+ x)e

x

 

 

dx,

du

=

(1+ x)e

x

dx,

 

 

 

 

dx

 

 

 

 

u2

 

 

 

 

u2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 = x ex +C, u = −

 

 

 

1

 

 

 

, y = −

 

ex

 

 

, 1 = −

 

1

 

 

,1+C =1, C = 0,

y = −

1

точное

x ex +C

 

x ex +C

1+C

x

u

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

решение. Составим таблицу:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

xn

 

 

 

 

 

yn

 

 

 

 

 

 

 

 

Точное

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

решение

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

1

 

 

 

 

 

–1

 

 

 

 

 

 

 

 

 

 

 

–1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

1,1

 

 

 

 

–0,9

 

 

 

 

 

–0,909091

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

1,2

 

 

 

 

–0,8199

 

 

–0,833333

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

1,3

 

 

 

 

–0,753998

 

 

–0,769231

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

1,4

 

 

 

 

–0,698640

 

 

–0,714286

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

1,5

 

 

 

 

–0,651361

 

 

–0,666667

 

 

 

 

 

Из таблицы видно, что абсолютная погрешность y5 составляет 0,0153, т.е. относительная погрешность составляет 2,35%.

Для решения задачи (1)–(2) применяются также некоторые модификации метода Эйлера – улучшенный (усовершенствованный) метод Эйлера, метод Эйлера–Коши (схема «предиктор–корректор»).

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

Методы Рунге–Кутта, как и метод Эйлера, – одношаговые методы решения задачи

(1)–(2), т.е. такие методы, которые позволяют найти приближенное значение решения заданной задачи в узле yn+1 по информации об этом решении лишь в одной предыдущей узловой

точке xn .

 

 

 

 

 

 

 

По формуле Тейлора

 

 

 

 

 

 

 

 

1

y′′(xn )h2

 

y(S) (x

)

hS + 0(hS +1)

 

y(xn+1 +1) = y(xn ) + y(xn )h +

2

+ +

n

 

(5)

S!

 

 

 

 

 

 

 

Формула Эйлера получена из (5) при S =1.

Для получения расчетных схем более высокого порядка точности Рунге предложим

183

искать y(xn+1) в виде

 

S

 

y(xn+1) = y(xn ) + Pi Ki +O(hS +1),

(6)

 

i=1

 

где K1 = hf (xn , yn ), K2 = hf (xn + α2h; yn 21K1),

 

 

 

2

K3 = hf (xn + α3h, yn 31K1 32K2) = hf (xn + α3h, yn + β3νKν),

 

 

ν=1

 

 

 

S 1

 

KS = hf (xn S h, yn + βSνKν ).

 

 

ν=1

 

а P1, P2 , , PS ,

α2, , αS , β21, β31,β32, , βS1, βS 2, ,βSS 1

– некоторые параметры. От-

брасывая O(hS +1) , для приближенного значения yn+1 решения задачи (1)–(2) в узле xn+1 получим равенство

S

 

yn+1 = yn + Pi Ki .

(7)

i=1

 

Параметры Pi ,αi и βij

выбираем так, чтобы в разложениях точного решения y(xn+1)

и приближенного решения в ряды по степеням h совпадало возможно большее число первых членов. Приравнивание коэффициентов в обоих разложениях при hν (ν = O, S) приведет к системе уравнений для определения неизвестных параметров Pi ,αi и βij .

При S=4 для определения тринадцати параметров имеем одиннадцать уравнений. Следовательно, существует двухпараметрическое семейство расчетных формул с погрешно-

стью на шаге порядка O(h5 ) . Наиболее употребительное решение:

 

P = P =

1 , P = P = 1 ,

α

2

= α

3

=

1 , α

4

=1,

 

1

4

6

2

3

3

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

β21 =

1 ,

β31 41 = β42

= 0,

β32 =

1

, β43 =1.

(8)

 

2

 

 

 

 

 

 

 

 

2

 

 

 

 

Порядком (или степенью) точности метода Рунге–Кутта называют такое число S, для

которого погрешность приближенного равенства yn y(xn+1) y(xn )

будет величиной по-

рядка Rs .

Решению (8) отвечают расчетные формулы метода Рунге–Кутта четвертого порядка точности:

K1 = hf (xn , yn ), K2 = hf (xn + 12 h, yn + 12 K1),

184

K3 = hf (xn

+

1 h, yn

+ 1 K2 ),

 

 

 

2

2

 

K4 = hf (xn + h, yn + K3 ),

 

yn+1 = yn +

1

(K1 + 2K2 + 2K3 + K4 ).

(9)

 

6

 

 

 

Расчетная схема (9) положена в основу большинства стандартных программ решения задачи Коши для дифференциального уравнения первого порядка.

О точности расчетных схем метода Рунге–Кутта

Возникает вопрос, какой из формул Рунге–Кутта целесообразно пользоваться в каждом конкретном случае и как выбирать шаг сетки h?

Если правая часть дифференциального уравнения (1) f (x, y) непрерывна и ограничена вместе со своими производными четвертого порядка в области изменения своих аргументов и эти производные невелики, то целесообразно пользоваться схемой (9) четвертого порядка. Если же f (x, y) не имеет указанных производных, то целесообразно пользоваться схемами низшего порядка точности, равного порядку имеющихся производных f (x, y) .

Шаг сетки следует выбирать настолько малым, чтобы обеспечить требуемую точность. Заметим, что шаг расчета можно менять при переходе от одной точки к другой. Для контроля правильности выбора шага h рекомендуется вычислять дробь

 

K2(i) K3(i)

 

(10)

θ =

 

 

 

K (i) K

(i)

 

 

 

1

2

 

 

Величина θ не должна превышать нескольких сотых. В противном случае шаг h следует уменьшить.

Оценка погрешности метода очень затруднительна. На практике грубую оценку погрешности можно получить с помощью двойного пересчета по формуле

yn y(xn ) 151 yn yn ,

где y(xn ) – значение точного решения уравнения (1) в точке xn , а yn , yn – приближенные значения, полученные с шагом h/2 и h.

Пример. Методом Рунге–Кутта (9) найти решение уравнения y′ = 0,25y2 + x2

c начальным условием y(0) = −1 на отрезке [0;0,5], приняв шаг h = 0,1.

 

 

 

 

Решение. x0 = 0, y0 = −1. Вычисляем

f (x0 , y0 ) = f (0;1) = 0,25

, тогда

K

(0)

= 0,1 0,25 = 0,025 . Далее x

 

+

h

=

0,1

=

0,05 ; y

 

K (0)

= −1+

0,025

= −0,98750 .

1

0

 

 

0

+

1

 

 

 

 

 

2

 

2

 

 

 

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

185

Вычисляем

 

f (x

+

h

, y

 

+

K (0)

 

 

 

 

2

 

1

) = f (0,05;0,9875) = 0,25 (0,9875)2 +0,052 = 0,24629;

 

 

0

 

0

 

2

 

 

 

 

тогда K2(0)

= 0,024629 .

 

 

 

 

 

Затем x

0

+ h

= 0 + 0,1 = 0,05; y

0

+ K2(0)

= −1+ 0,024629 = −0,98769 ,

 

 

 

 

 

2

 

 

2

2

2

 

 

 

 

 

 

 

 

 

f (x

+ h , y

+ K2(0) ) = f (0,05;0,98769) = 0,25 (0,98769)2 + 0,052 = 0,24638;

0

2

0

 

 

 

2

 

 

 

 

 

 

 

тогда K3(0) = 0,024638 .

 

 

 

 

 

Далее x0 + h = 0 +0,1 = 0,1, y0 + K3(0) = −1+0,024638 = −0,97536 .

 

Вычисляем

 

f (x0 + h, y0 + K3(0) ) = f (0,1;0,97536) = 0,25 (0,97536)2 +0,12 = 0,24783 ,

тогда K4(0)

= 0,024783.

 

 

 

 

 

Вычисляем

 

 

 

 

 

 

 

K (0)

+ 2K

(0) + 2K

3

(0) + K

(0) = 0,025 + 2 0,024629 + 2 0,024638 + 0,024783 = 0,148317 . Нахо-

1

 

2

 

 

 

 

 

 

4

 

 

 

дим y0 = 16 0,024783 = 0,02472 . Получаем: y0 + ∆y0 = −1+ 0,02472 = −0,97528. Нашли

x1 = 0,1, y1 = −0,97528 .

Проводим вычисления по формулам (9) далее при п = 1. Результаты вычислений поместим в таблицу:

n

x

y

0,25y

k = h f (x, y)

y

θ =

 

k2 k3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

k

2

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

–1

–0,25

0,025

0,025

 

 

 

 

 

 

0

0,05

–0,98750

–0,24688

0,024629

0,049258

 

 

 

 

 

 

0,05

–0,98769

–0,24692

0,024638

0,049276

 

0,024

 

 

 

 

 

 

 

0,1

–0,97536

–0,24384

0,024783

0,024783

 

 

 

 

 

 

 

 

 

 

 

0,02472

 

 

 

 

 

 

 

0,1

–0,97528

–0,24382

0,024779

0,024779

 

 

 

 

 

 

1

0,15

–0,96289

–0,24072

0,025429

0,050858

 

 

 

 

 

 

0,15

–0,96257

–0,24064

0,025413

0,050826

 

0,025

 

 

 

 

 

 

 

0,2

–0,94987

–0,23747

0,026557

0,026557

 

 

 

 

 

 

 

 

 

 

 

0,02550

 

 

 

 

 

 

 

0,2

–0,94978

–0,23745

0,026533

0,026533

 

 

 

 

 

 

2

0,25

–0,93650

–0,23413

0,028176

0,056352

 

 

 

 

 

 

0,25

–0,93569

–0,23392

0,028138

0,056276

 

0,023

 

 

 

 

 

 

 

0,3

–0,92164

–0,23041

0,030236

0,030236

 

 

 

 

 

 

 

 

 

 

 

0,02824

 

 

 

 

 

 

 

0,3

–0,92154

–0,23039

0,030231

0,030231

 

 

 

 

 

 

3

0,35

–0,90642

–0,22661

0,032790

0,065580

 

 

 

 

 

 

0,35

–0,90514

–0,22629

0,032732

0,065464

 

0,023

 

 

 

 

 

 

 

0,4

–0,88881

–0,22220

0,035743

0,035749

 

 

 

 

 

 

 

 

 

 

 

0,03284

 

 

 

 

 

 

186

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