Многошаговые методы численного интегрирования

advertisement
Государственное образовательное учреждение высшего профессионального
образования
"Уральский государственный технический университет-УПИ
имени первого Президента России Б.Н.Ельцина"
ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА
(Конспект лекций)
Лекция № 23
МНОГОШАГОВЫЕ МЕТОДЫ ЧИСЛЕННОГО ИНТЕГРИРОВАНИЯ
ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
Екатеринбург
2008
2
Цель изучения материала: знакомство с основами построения алгоритмов
численног интегрирования дифференциальных уравнений
Перечень компетенций, формирующихся или получающих приращение в
процессе знакомства с материалом:
готовность учитывать современные тенденции развития информатики
и вычислительной техники, компьютерных технологий в своей
профессиональной деятельности;

готовность применять аппарат вычислительной математики, методы
аналитической геометрии, оптимизации, теории вероятностей и
математической статистики, математической логики, теории графов и
теории алгоритмов;

способность самостоятельно работать в средах
операционных систем и наиболее распространенных программ;

современных
собирать,
обрабатывать
с
использованием
современных
информационных технологий и интерпретировать необходимые данные для
формирования суждений по соответствующим научным проблемам;

осваивать методики использования программных средств для решения
практических задач

3
СОДЕРЖАНИЕ
МНОГОШАГОВЫЕ МЕТОДЫ ЧИСЛЕННОГО ИНТЕГРИРОВАНИЯ
ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ. ............................................................... 4
1. Методы Адамса-Башфорта .............................................................................. 4
2. Методы Адамса-Моултона ............................................................................ 13
3. Методы прогноза-коррекции ......................................................................... 15
4. Итоги: многошаговые методы ....................................................................... 19
СПИСОК ЛИТЕРАТУРЫ ......................................................................................... 20
4
МНОГОШАГОВЫЕ МЕТОДЫ ЧИСЛЕННОГО ИНТЕГРИРОВАНИЯ
ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ.
Одношаговые методы численного решения ДУ для нахождения значения
y в последующей точке x i 1 используют только решение в точке x i . В этом
разделе будут изложены многошаговые методы, использующие для решения
задачи Коши информацию о нескольких точках. Широко распространенным
семейством многошаговых методов являются методы Адамса. Различают
явные и неявные многошаговые методы. Явные многошаговые методы
используют явную схему (по известным значениям функции в предыдущих
узлах находится значение в последующем узле x i 1 ). К классу неявных методов
относятся методы, использующие информацию о последующих и предыдущих
точках.
К явной группе относятся методы Адамса-Башфорта, к неявной –
методы Адамса-Моултона.
1. Методы Адамса-Башфорта
Пусть дано уравнение y (1)  f ( x, y) с начальным условием y( x0 )  y 0 .
y (1)  f ( x, y ) , y( x 0 )  y 0
(1)
Многошаговые методы численного интегрирования основываются на
интерполяции правой части уравнения (1). Запишем это уравнение в виде
dy  f ( x, y )dx и проинтегрируем его на отрезке xi ; xi 1 :
xi  1
xi  1
xi
xi
 dy   f ( x, y)dx  y( x
i 1
)  y( xi ) 
xi  1
 f ( x, y)dx
xi
где y( xi ) - точное значение функции y в точке xi .
Идея состоит в том, чтобы заменить f ( x, y ) функцией, интеграл от
которой легко вычисляется. Существует множество типов интерполирующих
функций; в этом разделе рассмотрим методы, связанные с полиномиальной
интерполяцией. Функция f заменяется полиномом P степени N , таким, что
PN ( xm )  f m , m  i, i  N (многочлен аппроксимирует функцию f на отрезке
xi ; xi 1  по значениям f ( xi  N , yi  N ), f ( xi  N 1 , yi  N 1 ), , f ( xi , yi ) ).
Общая формула явного метода Адамса:
y i 1  y i 
xi  1
P
N
( x)dx
xi
где y i - приближенные значения, найденные с помощью численного метода.
5
Явно интегрируя многочлен, получают формулы численного решения
ДУ.
Простейший метод Адамса получается при N  0 и совпадает с методом
Эйлера первого порядка точности:
P0 ( x)  f ( xi , y i )
(2)
y i 1  y i  hf ( xi , y i ), h  xi 1  xi
При N  1 (порядок метода p  2 ) многочлен задает прямую, проходящую
через точки ( xi 1 , f i 1 ), ( xi , f i ) .
f i 1
f i 1 f i
P1 ( x)
xi 1 xi xi 1
Рис.1.
Интерполяционный многочлен Ньютона (далее ИМН) на [ xi 1 ; xi ] :
P1 ( x)  C 0  C1 ( x  xi ) .
Подставим значения xi 1 , xi :
P1 ( xi )  C 0  f i
f  f i 1
 C1  i

h
P1 ( xi 1 )  f i  C1 ( xi 1  xi )  f i 1
Проинтегрируем полином и подставим значения коэффициентов C k :
xi 1
xi 1
xi
xi
 P1 ( x)dx 
h
 C0  C1 ( x  xi )dx  C0 h  C1
2
2
 fi h 
f i  f i 1 2 h
h  (3 f i  f i 1 )
2h
2
Получили формулу двухшагового метода Адамса-Башфорта:
y i 1  y i 
h
(3 f i  f i 1 )
2
(3)
Чтобы начать решение по формуле (3), необходимо знать значение y1 .
Для запуска решения используется одношаговый метод того же порядка
(для данного случая - метод Эйлера с пересчетом (метод трапеций),
модифицированный метод Эйлера и т. д.):
x0 , y 0  f 0  f ( x0 , y 0 )
x1 , y1  f1  f ( x1 , y1 )
6
Дальше работает только многошаговый метод:
h

 y 2  y1  (3 f 1  f 0 )
x2 , 
2
 f 2  f ( x 2 , y 2 )

Пример 1: y ( 2)  2 y (1)  y  1  0 , y (0)  1, y (1) (0)  2 .
Аналитическое решение: y( x)  2 xex  1 .
Рис.2.
Сведем это уравнение к СДУ второго порядка:
y  y1
y   y
 1
2
 
 y 2  2 y 2  y1  1
Запишем систему в векторной форме:
y2


y 
1
 , x0  0 , Y0  Y ( x0 )    .
Y   1  , f  Y  
 2
 2 y 2  y1  1
 y2 
Используем явный двухшаговый метод (3):
y2
y2
 y1 
y  h 
 
 
    1   3
  
  .
 y 2  i 1  y 2  i 2   2 y 2  y1  1 i  2 y 2  y1  1 i 1 
Возьмем h  0.1 .
Первые две точки решения получим одношаговым методом трапеций:
7
x0  0
x0 , Y0  f 0  f ( x0 , Y0 )
y2
2



  2

   
f 0  
 
 2 y 2  y1  1 x0 , Y0  2  2  1  1  4 
x1  0.1
h
~
~
Y1  Y0  ( f 0  f ( x1 , Y1 )), Y1  Y0  hf 0
2
 2   1.2 
~ 1
Y1     0.1     
 2
 4   2.4 
(собственно метод трапеций)
y2
2.4


  2.4 
~ 
 ~  
   
f ( x1 , Y1 )  
 2 y2  y1  1 x1 , Y1  2  2.4  1.2  1  4.6 
 1  0.1  2   2.4   1 
 4.4   1   0.22   1.22 
     
  

Y1    
         0.05  
 2  2  4   4.6   2 
10.6   2   0.53   2.53 
y2
2.53



  2.53 

  

f1  
 
 2 y2  y1  1 x1 , Y1  2  2.53  1.22  1  4.84 
Теперь у нас достаточно данных для продолжения решения только
двухшаговым методом:
x 2  0.2
h
3 f1  f 0 
2
 y1 
 1.22  0.1   2.53   2   1.22 
 7.59  2   1.4995 
   
 
     
  0.05  
  

3
14.52  4   3.0560 
 y 2  2  2.53  2   4.84   4   2.53 
y2
3.0560



  3.0560 

  

f 2  
 
 2 y 2  y1  1 x 2 , Y2  2  3.0560  1.4995  1  5.6125 
Y2  Y1 
x 3  0. 3
h
3 f 2  f1 
2
 y1 
 1.4995  0.1   3.0560   2.53   1.8314 
   
 
  
  

3
 y 2  3  3.0560  2   5.6125   4.84   3.655875 
...........................................................................................
Y3  Y2 
8
Пусть N  2 , P есть квадратичный полином, интерполирующий данные
( xi 2 , f i 2 ), ( xi 1 , f i 1 ), ( xi , f i )
P2 ( x)
f i 1
f i 2
fi
f i 1
xi  2 xi 1 xi xi 1
Рис.3.
.
Итерполяционный многочлен Ньютона: P2 ( x)  C0  C1 ( x  xi )  C 2 ( x  xi )( x  xi 1 )
Найдем коэффициенты интерполяционного многочлена:

 P2 ( x i )  C 0  f i

f i  f i 1

 P2 ( x i 1 )  f i  C1 ( x i 1  x i )  f i 1  C1 
h

f i  f i 1

( xi  2  xi )  C 2 ( x i  2  x i )( xi  2  x i 1 )  f i  2
 P2 ( x i  2 )  f i 
h

f  2 f i 1  f i
 C 2  i 2
2h 2
Определим значение интеграла
xi  1
xi  1
 P ( x)dx   C
2
xi
0
 C1 ( x  xi )  C 2 ( x  xi )( x  xi 1 )dx .
xi
Введем замену переменных

x  xi
,
h
(4)
 x  xi  h
 x  xi    0
Тогда:  x  xi 1  ( x  xi )  ( xi  xi 1 )  h  h  h(  1) 
 x  xi 1    1
dx  h d

Определенный интеграл:
1
3

2
 2  1
2
2

 
P
(
x
)
dx

C

C

h

C
h

(


1
)
h
d


h
C


C
h

C
h

 0
2
1
2
 2
0 0 1
 3
2
2  0

xi

Ch
5 h
h

 h C 0  1  C 2 h 2   (12 f i  6 f i  6 f i 1  5 f i  2  10 f i 1  5 f i )  (23 f i  16 f i 1  5 f i  2 )
2
6  12
12

xi 1


9
Формула трехшагового метода Адамса-Башфорта имеет вид:
y i 1  y i 
h
(23 f i  16 f i 1  5 f i  2 ) ,
12
(5)
Решение запускается с помощью одношагового метода третьего порядка
точности:
x0 , y 0  f 0  f ( x0 , y 0 )
x1 , y1  f 1  f ( x1 , y1 ) ,
x2 , y 2  f 2  f ( x2 , y 2 )
Дальше расчет производится многошаговым методом:
h

 y 3  y 2  (23 f 2  16 f 1  5 f 0 )
x3 , 
12
,
 f 3  f ( x 3 , y 3 )

Пример 2:
Воспользуемся методом Адамса-Башфорта третьего порядка
для решения ДУ из примера 1: y ( 2)  2 y (1)  y  1  0 , y (0)  1, y (1) (0)  2 .
Рис.4.
Соответствующая система дифференциальных уравнений в векторной
форме:
y2


y 
1
 , x0  0 , Y0  Y ( x0 )    .
Y   1  , f  Y  
 2
 2 y 2  y1  1
 y2 
Задействуем формулу (5):
y2
y2
y2
 y1 
y 




 
h  
    1   23
  16
  5
 
 y 2  i 1  y 2  i 12   2 y 2  y1  1 i
 2 y 2  y1  1 i 1  2 y 2  y1  1 i  2 
Шаг интегрирования оставим прежним: h  0.1 .
10
Для запуска решения применим метод Рунге-Кутта третьего порядка
точности:
1
( K 1  3K 3 )
4
K1  hf ( xi , yi )
y i 1  y i 
h
K 

K 2  hf  xi  , yi  1 
3
3 

2h
2K 2 

K 3  hf  xi  , yi 

3
3 

Решение:
x0  0
x0 , Y0  f 0  f ( x0 , Y0 )
y2
2



  2

   
f 0  
 
 2 y2  y1  1 x0 , Y0  2  2  1  1  4 
x1  0.1
1
Y1  Y0  ( K1  3K 3 )
4
 2   0.2 
K1  hf 0  0.1     
 4   0.4 
 0.1  1  1  0.2  
 0.1  1.066667    0.213333 
   

f 
,        0.1  f 
, 
 3  2  3  0.4  
 3  2.133333    0.420000 
 2  0.1  1  2  0.213333    0.228000 
2h
2K2 

   

K 3  hf  x0  , Y0 
,    
  0.1  f 
3
3 

 3  2  3  0.420000    0.441778 
h
K 

K 2  hf  x0  , Y0  1   0.1 
3
3 

 1  1   0.2   0.228000    1.221000 
   

Y1         3
 2  4   0.4   0.441778    2.431334 
y2


 2.431334 


f1  
 
 2 y2  y1  1 x1 , Y1  4.641668 
x2  0.2
1
Y2  Y1  ( K1  3K 3 )
4
 2.431334   0.243133 
  

K1  hf1  0.1  
 4.641668   0.464167 

K 
h
0.1  1.221000  1  0.243133    0.258606 

  
   

K 2  hf  x1  , Y1  1   0.1  f  0.1 
, 
2.431334
0
.
464167
0.487007
3
3 
3
3










2K 2 
2h
2  0.1  1.221000  2  0.258606    0.275601

 
  

K 3  hf  x1  , Y1 
,
  0.1  f  0.1 
3
3 
3  2.431334  3  0.487007    0.511861


 1.221000  1   0.243133   0.275601   1.488484 
   
  3
   

Y2  
 2.431334  4   0.464167   0.511861   2.931272 
11
y2


 2.931272 


f 2  
 
 2 y 2  y1  1 x2 , Y2  5.374060 
Теперь вступает в действие многошаговый метод:
x3  0.3
h
(23 f 2  16 f1  5 f 0 )
12
 1.488484  0.1   2.931272 
 2.431334   2   1.809467 
 
  16
  5   

 
23
 2.931272  12   5.374060 
 4.641668   4   3.509078 
Y3  Y2 
 y1 
 
 y2 3
y2


 3.509078 


f 3  
 
 2 y 2  y1  1 x3 , Y3  6.208689 
x 4  0.4
Y4  Y3 
1.809467  0.1   3.509078 
 2.931272   2.431334 
h
 
  16
  5

(23 f 3  16 f 2  5 f1 )  
23
12
 3.509078  12   6.208689 
 5.374060   4.641668 
 2.192510 

Y4  
 4.175938 
...........................................................................................
В практических расчетах чаще всего используется вариант метода
Адамса, имеющий четвертый порядок точности и использующий на каждом
шаге результаты предыдущих четырех ( N  3 , интерполяционный многочлен
здесь является кубическим полиномом). Именно его и называют обычно
методом Адамса:
y i 1  y i 
h
(9 f i 3  37 f i  2  59 f i 1  55 f i ) ,
24
(6)
Методы более высоких порядков получаются при увеличении числа
предыдущих точек. С ростом степени многочлена N формулы становятся более
громоздкими, но принцип остается тем же.
Для запуска решения используется метод Рунге-Кутта того же порядка.
Получим формулу (6).
Итерполяционный многочлен Ньютона имеет вид:
P3 ( x)  C0  C1 ( x  xi )  C2 ( x  xi )( x  xi 1 )  C3 ( x  xi )( x  xi 1 )( x  xi 2 ) .
Пусть xi 1  xi  h .
Определим разность первого порядка функции f i как f i  f i 1  f i , а
разности более высокого порядка как результат повторного применения этой
операции:
12
2 f i  f i 1  f i  ( f i  2  f i 1 )  ( f i 1  f i )  f i  2  2 f i 1  f i
3 f i  3 f i 1  3 f i  f i 3  3 f i  2  3 f i 1  f i
..............................................................................................................
n
n
n f i  n 1 f i 1  n 1 f i  f i  n    f i  n 1    f i  n 2    (1) n f i ,
1
 2
(7)
n
n!
n(n  1)  (n  m  1)
  
- биномиальные коэффициенты

1 2  m
 m  m!(n  m)!
С помощью разностей (7) определим полином степени N как:
PN ( x)  f i 
f i 1
2 f i 2
N f i  N
( x  xi ) 
(
x

x
)(
x

x
)



( x  xi )( x  xi 1 ) ( x  xi  N 1 ) ,
i
i 1
h
2h 2
N!h N
k f i  k
Ck 
, k  0, N
k! h k
(8)
При N  3 многочлен примет вид:
f i  f i 1
f  2 f i 1  f i  2
( x  xi )  i
( x  x i )( x  x i 1 ) 
h
2h 2
,
f i  3 f i 1  3 f i  2  f i 3

( x  x i )( x  x i 1 )( x  x i  2 )
6h 3
P3 ( x)  f i 
Введя замену (4), получим:
P3 ( )  C0  C1h  C 2 h 2 (  1)  C3 h 3 (  1)(  2) , dx  hd .
Найдем интеграл:
 P ( x)dx   C
xi  1
1
3
xi
0

 C1h  C2 h 2 (  1)  C3h3 (  1)(  2) h d 
0

3  2 
 4
2
3
 2  1
Ch
5
9

 h C0  C1h  C2 h 2     C3h3   3  2   h C0  1  C2 h 2  C3h3  
2
2
3
2  0
2
6
4

 3
 4

f  f i 1 f i  2 f i 1  f i  2 5 f i  3 f i 1  3 f i  2  f i  3 9 

 h  fi  i

 
 
2
2
6
6
4

h
24 fi  12 fi  12 fi 1  10 fi  20 fi 1  10 fi  2  9 fi  27 fi 1  27 fi  2  9 fi 3  
24
h

(55 f i  59 f i 1  37 f i  2  9 f i 3 )
24
Отсюда непосредственно следует формула (6).
Объем вычислений по методу Адамса примерно в четыре раза меньше,
чем в методе Рунге-Кутта, поскольку последний требует четырехкратного
вычисления правой части уравнения на каждой итерации, а в методе Адамса
правая часть вычисляется один раз; остальные значения ( f i 1 , f i 2 и f i 3 )
13
однократно вычисляются на предыдущих трех итерациях и пересылаются в
текущую итерацию простым копированием. Такая экономия особенно
существенна, если в правой части ДУ стоит сложное аналитическое выражение.
Таким образом, точность метода можно повысить как увеличением объема
вычислений на каждом шаге, так и использованием информации о предыдущих
точках на каждой итерации.
2. Методы Адамса-Моултона
Методы Адамса-Башфорта используют ранее найденные значения
решения дифференциального уравнения в точке xi и в предыдущих точках. При
построении интерполяционного полинома можно использовать и точки xi 1 , xi  2
и т. д. При этом возникает класс неявных методов, известных как методы
Адамса-Моултона.
Простейший случай состоит в использовании точек xi 1 , xi , …, xi ( N 1) и
построении интерполяционного многочлена P степени N , удовлетворяющего
условиям PN ( xm )  f m , m  i  1, i  ( N  1) .
Методы Адамса-Моултона используются в т. н. «методах прогнозакоррекции».
Если N  1, P - линейная функция, график которой проходит через точки
( xi , f i ) и ( xi 1 , f i 1 ) .
f i 1
fi f
i 1
P1 ( x)
xi 1 xi xi 1
Рис.5.
ИМН на [ xi ; xi 1 ] : P1 ( x)  C0  C1 ( x  xi 1 ) .
Подставим точки xi 1 и xi :
 P1 ( xi 1 )  C0  f i 1


f i 1  f i
 P1 ( xi )  f i 1  C1 ( xi  xi 1 )  f i  C1 
h
xi 1
xi 1
xi
xi
 P1 ( x)dx 
h
 C0  C1 ( x  xi1 )dx  C0 h  C1
2
2
 f i 1 h 
f i 1  f i 2 h
h  ( f i 1  f i )
2h
2
Соответствующий метод Адамса-Моултона второго порядка:
h
yi 1  yi  ( f i 1  f i )
2
При
N 2
интерполяционный
полином
(9)
определяет
параболу,
14
проходящую через точки ( xi 1 , f i 1 ) , ( xi , f i ) и ( xi 1 , f i 1 ) :
P2 ( x)
f i 1
fi
f i 1
xi 1 xi xi 1
Рис.6.
ИМН: P2 ( x)  C0  C1 ( x  xi 1 )  C2 ( x  xi 1 )( x  xi )
Для нахождения коэффициентов многочлена воспользуемся представлением
(8), увеличив на единицу коэффициенты при f :

C 0  f i 1

f i 1  f i

C1 
h

f i 1  2 f i  f i 1

C 2 
2h 2
Введем замену
 
x  xi 1
h
(10)
 x  xi 1  h
 x  xi    1
Тогда:  x  xi  x  ( xi 1  h)  h  h  h(  1) 
.
 x  xi 1    0
dx  h d

xi 1
 P2 ( x)dx 
xi
 C
0
1
0

  3  2  0
2

 C1 h  C 2 h 2  (  1) h d  h C 0   C1 h
 C 2 h 2  

2
2   1
 3



C h C h2  h
h
 h C 0  1  2   (12 f i 1  6 f i 1  6 f i  f i 1  2 f i  f i 1 )  (5 f i 1  8 f i  f i 1 )
2
6  12
12

Получили метод Адамса-Моултона третьего порядка:
y i 1  y i 
h
(5 f i 1  8 f i  f i 1 )
12
(11)
Выведем формулу метода четвертого порядка точности.
Ему соответствует кубический полином, построенный по точкам
( xi 1 , f i 1 ) , ( xi , f i ) , ( xi 1 , f i 1 ) и ( xi 2 , f i 2 ) :
P3 ( x)  C0  C1 ( x  xi 1 )  C2 ( x  xi 1 )( x  xi )  C3 ( x  xi 1 )( x  xi )( x  xi 1 ) .
15
Коэффициенты C k , k  0,3 найдем из представления (8):
C0  f i 1 , C1 
f  3 f i  3 f i 1  f i 2
f i 1  f i
f  2 f i  f i 1
, C2  i 1
, C3  i 1
.
2
h
2h
6h 3
Воспользуемся заменой (10), получим:
P3 ( )  C 0  C1 h  C 2 h 2  (  1)  C3 h 3 (  1)(  2) , dx  hd .
Определим приращение yi :
xi 1
 P3 ( x)dx 
xi
 C
0
0

 C1 h  C 2 h 2  (  1)  C 3 h 3 (  1)(  2) h d 
1

 3  2 
 4
2
3
 2  0
  C 3 h 3 
 h C 0   C1 h
 C 2 h 2  
 3  2 

2
2 
3
2   1
 3
 4


C1 h C 2 h 2 C3 h 3  h
  h  C 0 


24C 0  12C1 h  4C 2 h 2  6C 3 h 3 

2
6
4  24

h
24 f i 1  12( f i 1  f i )  2( f i 1  2 f i  f i 1 )  ( f i 1  3 f i  3 f i 1  f i 2 ) 
24
h
(9 f i 1  19 f i  5 f i 1  f i  2 )
24


Метод Адамса-Моултона четвертого порядка:
y i 1  y i 
3.
h
(9 f i 1  19 f i  5 f i 1  f i  2 )
24
(12)
Методы прогноза-коррекции
Заметим, что в полученных методах Адамса-Моултона значение
f i 1  f ( xi 1 , yi 1 ) неизвестно: ведь значение y i 1 определяется только неявно.
h
( f i 1 ( xi 1 , y i 1 )  f i )
2
относительно неизвестного значения y i 1 .
Например, соотношение
y i 1  y i 
является уравнением
На практике обычно не решают непосредственно такие уравнения, а
используют совокупность явных и неявных многошаговых методов, что
приводит к методу прогноза и коррекции (они называются также методами
предиктор-корректор). Суть этих методов состоит в следующем. На каждом
шаге вводятся два этапа, использующих многошаговые методы:
1. С помощью явного метода (предиктора) по известным значениям функции в
предыдущих узлах находится начальное приближение y i 1  y i(01) в новом
узле.
2. Используя неявный метод (корректор), в результате итераций находятся
приближения y i(11) , y i(21) ,  , y i(k1) ,  . Критерий окончания итерационного
процесса: yi(k11)  yi(k1)   .
16
Явная схема используется на каждом шаге один раз, а с помощью неявной
схемы строится итерационный процесс вычисления y i 1 , поскольку это
значение входит в правую часть выражения f i 1  f ( xi 1 , yi 1 ) .
Одним из широко используемых методов прогноза и коррекции является
объединение методов Адамса четвертого порядка:
Прогноз:
y i 1  y i 
h
(55 f i  59 f i 1  37 f i  2  9 f i 3 )
24
(13)
f i 1  f ( xi 1 , yi 1 )
Коррекция:
y i 1  y i 
h
(9 f i 1  19 f i  5 f i 1  f i  2 )
24
(14)
В целом этот метод является явным. Сначала по формуле (13) вычисляется
значение yi(k1) , являющееся «прогнозом» для y k 1 . Затем yi(k1) используется для
вычисления промежуточного значения f i ( k1) , которое, в свою очередь,
используется в формуле (14). Таким образом, формула Адамса-Моултона
«корректирует» приближение, даваемое формулой Адамса-Башфорта.
17
Пример 3. Решение ДУ методом прогноза-коррекции второго порядка.
3 y y   2 y
y (0)  y (0)  1
3
x
Аналитическое решение: y ( x)  1   .

3
Система в векторной форме:
y2
y 


1
, Y0  Y ( x0  0)    .
Y   1 , f  Y  
1
 y2 
 2 y1 /(3 y 2 ) 
4
Возьмем h  0.1 и   10 .
Рис.8.
Метод прогноза-коррекции образован объединением методов Адамса
второго порядка:
Этап прогноза:
h
(3 f i  f i 1 )
2
 f ( xi 1 , Yi 1 )
Yi 1  Yi 
f i 1
Этап коррекции:
Yi 1  Yi 
h
( f i 1  f i )
2
Начальные точки найдем модифицированным методом Эйлера:
h
f ( xi , Yi )
2
 Yi  hf ( xi 1 / 2 , Yi 1 / 2 )
Yi 1 / 2  Yi 
Yi 1
Решение:
1



f 0  f ( x0 , Y0 )  
 0.666667 
1
1

  1.05 
0.1
  

Y1 / 2  Y0 
f 0     0.05
2
1
 0.666667  1.033333 

1
 1.05   1.103333 
   

x1  0.1 Y1  Y0  hf ( x1 / 2 , Y1 / 2 )     0.1 f  0.05, 
1
1.033333
 

  1.067742 

18
i 1
 1.067742 

f1  f ( x1 , Y1 )  
 0.688889 
Предиктор:
  1.067742  
1
1.103333 
  1.213494 
h
  0.05 3
  
   

Y2( 0)  Y1  (3 f1  f 0 )  
2
1.067742 
  0.688889   0.666667   1.137742 
Промежуточное значение f :
 1.137742 

f 2( 0)  f ( x 2 , Y2( 0) )  
 0.711054 
Корректор:
  1.137742   1.067742   1.213607 
1.103333 
h
  0.05 
  
   

Y2(1)  Y1  ( f 2( 0)  f1 )  
1.067742
0.711054
0.688889
1.137739
2


 
 


Проверяем условие:
Y2(1)  Y2( 0)
 0.000113 
  0.000113  
 

 - 0.000003  
1.213607 

Y2( 0)  Y2(1)  
1.137739


Новое промежуточное значение:
 1.137739 

f 2( 0)  f ( x 2 , Y2( 0) )  
 0.711122 
Коррекция:
  1.137739   1.067742   1.213607 
1.103333 
h
  0.05 
  
   

Y2(1)  Y1  ( f 2( 0)  f1 )  
1.067742
0.711122
0.688889
2


 
  1.137743 

1.213607  1.213607 
  

 

1.137743  1.137739 
1.213607 

 
1.137743 
 0.000004  
Y2(1)  Y2( 0)
x 2  0.2 Y2  Y2(1)

................................................................................................................................................
19
4.
Итоги: многошаговые методы
1. Многошаговые методы не являются самостартующими. Хотя начальное
значение y 0 известно, но, например, метод Адамса-Башфорта четвертого
порядка нельзя использовать, т.к. информация о предыдущих точках
отсутствует. Обычно здесь используется одношаговый метод такого же
порядка точности (например, метод Рунге-Кутта), до тех пор, пока не
будет получено достаточно значений для работы многошагового метода.
2. Методы Адамса более экономичны по сравнению с методами РунгеКутта того же порядка точности, поскольку они требуют вычисления
лишь одного значения правой части на каждом шаге (методы Рунге-Кутта
порядка p требуют p вычислений значений f при 2  p  4 , p  1
вычислений при 5  p  7 и p  2 вычислений при p  8 ). Если
интерполируемая функция является гладкой, многошаговые методы
работают быстрее одношаговых.
3. Метод Адамса не позволяет (без усложнения формул) менять шаг
интегрирования h в процессе счета.
20
СПИСОК ЛИТЕРАТУРЫ
1. Турчак Л. И. Основы численных методов: Учеб. пособие. – М.: Наука. Гл.
ред. физ.-мат. лит., 1987. – 320 с.
2. Ортега Дж., Пул У. Введение в численные методы решения
дифференциальных уравнений. - М.: Наука. Гл. ред. физ.-мат. лит., 1986. 288 с.
3. Вержбицкий В. М. Численные методы (математический анализ и
обыкновенные дифференциальные уравнения): Учеб. пособие для вузов. –
2-е изд., испр. – М.: ООО «Издательский дом «ОНИКС 21 век»», 2005. –
400 с.
4. Мэтьюз Д., Финк К. Численные методы. Использование MATLAB, 3-е
издание. - М.: Вильямс, 2001. - 720 с.
Download