Информатика и интегрированные прикладные системы
.pdf
т. В – значение y1 вычисляется по формуле Эйлера.
L2 – касательная к у(х) в точке В, с tg 1 = f(x1, y1 ).
L3 – прямая через В со среднеарифметическим углом наклона.
L4 - прямая, паралельная L3, проведенная через точку А.
Рисунок 1.3.7.3.2. Геометрическая иллюстрация исправленного метода Эйлера.
|
|
Пример. Решение ранее рассмотренного уравнения (пример 1.) исправленным |
||||||||||||||||||||
методом Эйлера. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
y’ |
- 2 y + x2 = 1, |
|
x [0;1], |
y(0) = 1. |
|
|
|
|
|
|
|||||||||||
|
Пусть n = 10 , |
h = (1 - 0)/10 = 0,1. |
|
|
|
|
|
|
|
|||||||||||||
|
Начальная точка x0 = 0, y0 = 1. |
|
|
|
|
|
|
|
||||||||||||||
|
Рассчет первой точки. |
|
|
|
|
|
|
|
|
|
||||||||||||
y |
y |
|
|
h |
f(x |
|
; y |
|
) f(x |
|
h; y |
|
h f(x |
|
, y |
|
)) |
|||||
0 |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
||||||||||||||
1 |
|
2 |
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
1 |
|
0,1 |
f(0;1) f(0 0,1; 1 0,1 f(0, 1)) |
||||||||||||||||||
|
2 |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
1 |
0,1 |
[(1 2 1 02 ) f(0,1; |
1 0,1 (1 2 - 02 ))] |
|||||||||||||||
|
|
|
|
|
||||||||||||||||||
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
1 0,05 |
[3 f(0,1;1,3) ] 1 0,05 |
[3 (1 2 1,3 0,12 )] |
||||||||||||||
|
|
|
|
|
|
|
|
1 0,05 [3 3,59] 1 0,05 6,59 1,3295 |
||||||||||||||
x1 x0 |
h 0,1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
Аналогично можно вычислить значения функции во 2, 3, ... , 10 точках.
1.7.3.4. Метод Рунге-Кутта 4 порядка
На практике наибольшее распространение получил метод Рунге-Кутта 4-го порядка,
в котором усреднение проводится по трём точкам, формула Эйлера на каждом отрезке используется 4 раза: в начале отрезка, дважды в его середине и в конце отрезка.
Схема численного решения задачи Коши вида
221
y (x) f (x, y) , y(x0) y0
по методу Рунге-Кутта четвертого порядка с шагом h имеет вид
yi 1 yi yi |
(i 0,1,2,...) |
|
|
|
y |
|
1 |
|
ki |
2ki |
2ki |
ki |
|
||||
, |
6 |
|
|||||||||||||||
|
|
|
|
i |
|
1 |
2 |
3 |
4 |
|
|||||||
|
ki |
hf (x , y ) |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
1 |
i |
i |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
ki |
|
|
|
|
|
|
||
|
|
|
|
|
|
h |
|
|
|
|
|
|
|
|
|||
|
ki |
hf (x |
, y |
1 |
) |
|
|
|
|
||||||||
|
|
|
|
|
|
|
|||||||||||
|
|
2 |
i |
2 |
i |
2 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
i |
|
|
h |
|
|
|
|
|
|
|
|
|
|||
|
|
hf (xi |
|
, yi |
|
k2 |
|
|
|
|
|
|
|||||
|
k3 |
|
|
|
|
|
|
) |
|
|
|
|
|||||
|
2 |
|
2 |
|
|
|
|
|
|
||||||||
|
|
|
hf (x h, y ki ) |
|
|
|
|
||||||||||
|
ki |
|
|
|
|
||||||||||||
|
|
4 |
i |
|
|
|
i |
3 |
|
|
|
|
|
|
|
||
Погрешность метода М = О(h5).
Схема алгоритма решения ОДУ методом Рунге-Кутта 4-го порядка отличается алгоритмом расчёта новой точки.
|
|
Пример. Решение ранее рассмотренного уравнения (пример 1) методом Рунге- |
||||||||||||||||
Кутта 4 порядка. |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
y’ - 2 y + x2 = 1, |
|
x [0;1], y(0) = 1. |
|
|
||||||||||||
|
|
Пусть n = 10 , |
h = (1 - 0)/10 = 0,1. |
|
|
|||||||||||||
|
|
Начальная точка x0 = 0, y0 = 1. |
|
|
||||||||||||||
|
|
Рассчет первой точки. |
|
|
|
|
||||||||||||
|
|
Сначала вычислим значения C0, C1, C2, C3: |
|
|
||||||||||||||
k |
0 |
f (x |
; y |
) f (0; |
1) 1 2 1 02 3 |
|
|
|||||||||||
|
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
||||
k |
|
f (x |
|
h |
|
; y h |
k0 |
) f (0,05; 1,15) 1 2 1,15 0,052 |
3,2975 |
|
||||||||
|
|
|
|
|
|
|||||||||||||
1 |
0 |
2 |
|
|
0 |
|
|
2 |
|
|
|
|
|
|||||
k |
|
f (x |
|
h |
; |
y |
|
h |
k1 |
) f (0,05; 1,164875) 1 2 1,164875 0,052 |
3,32725 |
|||||||
|
|
|
|
|||||||||||||||
|
2 |
0 |
2 |
|
0 |
|
|
|
2 |
|
|
|
|
|||||
k |
|
f (x |
h; |
y |
h k |
2 |
) f (0,1; 1,332725) 1 2 1,332725 0,12 3,65545 |
|||||||||||
3 |
0 |
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|||
222
Вычислим значение y1:
y y |
h |
|
(k 2 k 2 k |
|
k ) |
|||||||||||||
|
|
|
||||||||||||||||
1 |
0 |
6 |
|
|
0 |
|
1 |
|
2 |
3 |
|
|||||||
|
1 |
|
0,1 |
(3 2 3,2975 |
|
2 3,32725 3,65545) 1,3317491667 |
||||||||||||
|
6 |
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Аналогично можно вычислить значения функции во 2, 3, ... , 10 точках. |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
Входные данные: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Начало |
|
|
|
h - шаг |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x – координата текущего узла |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y – значение функции в узле |
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k0 |
= f(x, y) |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
x = x + h/2 |
|
|
|
|
|||||
|
|
|
|
|
|
|
k1 = f(x, y + h/2 k0) |
|
||||||||||
|
|
|
|
|
|
|
k2 = f(x, y + h/2 k1) |
|
||||||||||
|
|
|
|
|
|
|
|
|
x = x + h/2 |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
k3 = f(x, y + h k2) |
|
|
||||||||
|
|
|
y=y+h/6 (k0+2 k1+2 k2+k3) |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выходные данные: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x – координата узла |
|||
|
|
|
|
|
|
|
|
Конец |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y – значение функции в новом узле |
||||
Рисунок 1.7.3.4.1. Схема алгоритма расчета новой точки методом Рунге-Кутта 4-го
порядка.
1.3.7.5.Общая характеристика методов
1.Все методы являются одношаговыми, то есть для вычисления значения функции в новой точке используется ее значение в предыдущей точке. Это свойство называется самостартованием.
Метод Адамса
Экстраполяционный метод Адамса 2 порядка:
223
yi 1 yi h2 (3 f (ti , yi ) f (ti 1, yi 1))
Экстраполяционный метод Адамса 3 порядка:
yi 1 yi 12h (23 f (ti , yi ) 16 f (ti 1, yi 1) 5 f (ti 2, yi 2 ))
Экстраполяционный метод Адамса 4 порядка:
yi 1 yi 24h 55 f (ti , yi ) 59 f (ti 1, yi 1) 37 f (ti 2, yi 2 )
9 f (ti 3, yi 3)
1.3.8. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ОБЫКНОВЕННЫХ
ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ВЫСШИХ ПОРЯДКОВ
Рассмотрим задачу Коши для ОДУ n-го порядка:
y(n) f (x, y, y , y ,..., y(n 1) ) |
(1.3.8.1) |
с начальными условиями:
y(x0) = y0, y (x0) = y 0, y (x0) = y 0,…, y(n-1)(x0) = y0(n-1).
Задача сводится к решению задачи Коши для систем n ОДУ первого порядка.
Обозначим:
y y1, y y2 ,…, y(n 1) yn 1 .
Тогда для решения уравнения (1.3.8.1) получаем систему ОДУ:
224
y y , |
|
|
|
|
|
|
|
|
|
|
||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
y y , |
|
|
|
|
|
|
|
|
|
|
||
|
1 |
2 |
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 yn 1, |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
||||
yn |
|
|
|
|
|
|
|
|
||||
|
|
1 f (x, y, y1, y2,..., yn 1). |
|
|
|
|
||||||
|
|
|
|
|
||||||||
yn |
|
|
|
|
||||||||
с начальными условиями: |
|
|
|
|
|
|
|
|
||||
y(x |
) y |
, |
y (x |
) y |
, |
y (x |
) y |
,…, y |
n -1 |
(x |
) y(n -1) . |
|
|
0 |
0 |
|
1 0 |
0 |
|
2 0 |
0 |
|
0 |
0 |
|
Численное решение обыкновенного дифференциального уравнения 2-го порядка заключается в замене этого уравнения на соответствующую систему из 2
дифференциальных уравнений первого порядка.
Пусть дано уравнение второго порядка
y |
|
|
(1.3.8.2) |
|
f (x, y, y ) |
и пусть y y(x) - точное решение уравнения (2), удовлетворяющее начальным условиям
y(x0) y0 , y (x0) z0
1.3.9. БЕЗУСЛОВНАЯ ОПТИМИЗАЦИЯ ФУНКЦИЙ
1.3.9.1. Метод Фибоначчи
Требуется |
найти безусловный минимум функции f(x) одной переменной, т.е. |
||||
* |
R , что |
|
* |
min f (x) . |
|
такую точку x |
f x |
||||
|
|
|
|
|
x R |
|
|
|
|
|
|
Для построения эффективного метода одномерной минимизации, работающего по принципу последовательного сокращения интервала неопределенности, следует задать правило выбора на каждом шаге двух внутренних точек. Желательно, чтобы одна из них
225
всегда использовалась в качестве внутренней и для следующего интервала. Тогда количество вычислений функции сократится вдвое и одна итерация потребует расчета только одного нового значения функции. Метод Фибоначчи реализован на стратегии,
обеспечивающая максимальное гарантированное сокращение интервала неопределенности при заданном количестве вычислений функции. Эта стратегия опирается на числа Фибоначчи.
Определение.
Числа Фибоначчи определяются по формуле
F |
F |
1, F |
F |
F |
, k=2,3,4,… |
0 |
1 |
k |
k 1 |
k 2 |
|
Последовательность чисел Фибоначчи имеет вид 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,
233,…
Стратегия поиска
Задается начальный интервал неопределенности и количество N вычислений функции. Алгоритм уменьшения интервала опирается на анализ значений функции в двух точках. Точки вычисления функции находятся с использованием последовательности из
N+1 чисел Фибоначчи. Как в методе золотого сечения, на первой итерации требуются два вычисления функции, а на каждой последующей – только по одному. Условия окончания процесса поиска стандартные: поиск заканчивается, когда длина текущего интервала неопределенности оказывается меньше установленной величины.
|
|
|
|
Алгоритм |
|
|
|
|
L0 a0,b0 ; |
|
||||||||||
Шаг 1. Задать начальный интервал |
неопределенности |
0 - |
||||||||||||||||||
допустимую длину конечного интервала, |
0 - константу различимости. |
|
|
|
||||||||||||||||
Шаг 2. Найти количество N вычислений функции как наименьшее целое число, |
||||||||||||||||||||
при котором удовлетворяется условие F |
|
|
L0 |
|
|
, и числа Фибоначчи F , F ,...,F . |
|
|||||||||||||
|
|
|
|
|||||||||||||||||
|
|
|
||||||||||||||||||
|
|
|
|
|
||||||||||||||||
|
|
|
|
N |
|
l |
|
|
|
|
|
0 |
1 |
N |
|
|||||
Шаг 3. |
Пусть k=0. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шаг 4. |
Вычислить y |
a |
|
FN 2 |
|
b a |
; z |
a |
|
FN 1 |
b |
a |
. |
|
||||||
|
0 |
0 |
|
FN |
0 |
|
|
0 |
0 |
0 |
|
FN |
0 |
0 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Шаг 5. |
Вычислить f ( yk ) , f (zk ) . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Шаг 6. |
Сравнить f ( yk ) с |
f (zk ) : |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
226
a) если f ( yk ) f (zk ) , положить
ak 1 ak ; bk 1 zk ; zk 1 yk ;
b)если f ( yk ) f (zk ) , положить
ak 1 yk ; bk 1 bk ; yk 1 zk ;
yk 1 ak 1 FN k 3 bk 1 ak 1 FN k 1
zk 1 ak 1 FN k 2 bk 1 ak 1 FN k 1
Шаг 7. Проверить условие окончания и в случае необходимости сделать заключительное N-e вычисление функции для получения решения:
a) |
если k N 3 , |
положить k k 1 и перейти к шагу 5; |
|
||||||||||||
b) |
если |
k N 3, |
то всегда y |
N 2 |
z |
N 2 |
|
aN 2 bN 2 , |
т.е. отсутствует |
||||||
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|||
|
точка |
|
|
нового |
вычисления |
функции. |
Следует |
положить: |
|||||||
|
y |
N |
2 |
z |
N 2 |
|
aN 2 bN 2 , т.е. отсутствует точка нового вычисления |
||||||||
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|||
|
функции. Следует положить: yN 1 yN 2 zN 2 ; |
|
|||||||||||||
yN 1 yN 1 . В точках yN 1 |
и |
zN 1 |
вычисляются значения функции и |
||||||||||||
находятся границы конечного интервала неопределенности: |
|
||||||||||||||
- |
если |
f yN 1 f zN 1 , положить aN 1 aN 2 , |
bN 1 zN 1 ; |
||||||||||||
- |
если |
f yN 1 f zN 1 , положить aN 1 yN 1, |
bN 1 bN 2 . |
||||||||||||
Процесс поиска завершается и x a |
,b |
. В качестве приближенного |
|
N 1 N 1 |
|
решения можно взять любую точку последнего интервала, например, его
середину x aN 1 bN 1 . 2
227
Электронный учебно-методический комплекс
Практический раздел
ИНФОРМАТИКА
Лабораторные задания
Минск 2016
230
