
- •Министерство образования и науки российской федерации
- •Методические указания
- •Часть 2
- •Р.Б.Салимов
- •4. Аппроксимация функций.
- •4.1. Интерполяция.
- •4.1.1. Интерполяционный полином в форме Лагранжа.
- •4.1.2. Интерполяционный полином в форме Ньютона.
- •4.2. Сглаживание. Метод наименьших квадратов (мнк).
- •5. Численное интегрирование.
- •5.1. Метод прямоугольников.
- •5.2. Метод трапеций.
- •5.3. Метод парабол (Симпсона).
- •5.4. Оценка точности вычисления определенного интеграла.
- •6. Численное решение обыкновенных дифференциальных уравнений.
- •6.1. Решение задачи Коши для обыкновенных дифференциальных уравнений.
- •6.1.1. Метод Эйлера.
- •6.1.2. Модифицированный метод Эйлера.
- •6.1.3. Метод Рунге-Кутта.
- •6.1.4. Оценка точности решения дифференциального уравнения.
- •6.2. Разностные методы решения краевой задачи для обыкновенного дифференциального уравнения.
- •Определение сетки.
- •Аппроксимация уравнения:
- •7. Задачи линейного программирования.
- •7.1. Графический метод решения задач линейного программирования.
- •Литература
6.1.3. Метод Рунге-Кутта.
Формулы (6.9-6.10) можно представить в виде
где
Такая формулировка модифицированного метода Эйлера представляет собой метод Рунге-Кутта второго порядка. На основе метода Рунге-Кутта могут быть построены разностные схемы разного порядка точности. Наиболее употребительной является следующая схема четвертого порядка:
(6.11)
где
(6.12)
Таким образом, метод Рунге-Кутта требует на каждом шаге четырехкратного вычисления правой части уравнения. Однако это окупается повышенной точностью, что дает возможность проводить счет с относительно большим шагом.
Программа решения задачи Коши методом Рунге-Кутта отличается от приведенной на рис. 6.2 заменой отмеченных строк на следующие:
1 k0 = h*f(x, y)
k1 = h*f(x+h/2, y+k0/2)
k2 = h*f(x+h/2, y+k1/2)
k3 = h*f(x+h, y+k2)
y = y + (k0 + 2*k1 + 2*k2 + k3)/6
Пример 6.4. Решить задачу Коши методом Рунге-Кутта для дифференциального уравнения на отрезке с шагом .
Решение.
По формулам (6.12) вычислим значения
,
,
,
:
Используя формулу
(6.11), находим значение
в точке
:
Аналогично вычисляются последующие значения функции в узловых точках
Сеточную функцию записываем в виде таблицы
|
0 |
0,1 |
0,2 |
0,3 |
|
1 |
1,105513 |
1,224208 |
1,359576 |
6.1.4. Оценка точности решения дифференциального уравнения.
Для практической
оценки погрешности решения дифференциального
уравнения проводят вычисления с шагами
и
.
За оценку погрешности решения, полученного
с шагом
,
принимают величину, равную
где
- значение сеточной функции в
-й
точке, вычисленное с шагом
;
- порядок точности, равный для метода Эйлера, 2 для модифицированного метода Эйлера и 4 для метода Рунге-Кутта 4-го порядка.
Для достижения
заданной точности вычисления повторяют,
последовательно уменьшая шаг. Процесс
вычислений заканчивается, когда для
очередного значения
будет выполнено условие
,
где ε ‑ заданная
точность.
6.2. Разностные методы решения краевой задачи для обыкновенного дифференциального уравнения.
Линейная краевая задача имеет вид:
(6.12)
(6.13)
при
.
Решение задачи (612)-(613) проводится в следующей последовательности:
Определение сетки.
Отрезок ab делится на частей
|
|
… |
|
… |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||||
|
|
… |
|
… |
|
|
|
,
,
Определение сеточной функции
:
|
|
|
… |
|
|
|
|
… |
|