Методы Эйлера и Рунге-Кутта.
Принцип этих методов состоит в переходе от непрерывной искомой функции к дискретной, то есть существующей только для заданных значений аргумента. Значений аргумента не может быть много, так как при вычислениях накапливается ошибка. Шаг ( интервал между смежными значениями аргумента) обычно берется постоянным.
Количество шагов ( ) определяется требуемой точностью.
Метод Эйлераявляется самым простым. Он дает относительно большую погрешность, поэтому практически не применяется. Но позволяет понять принцип методов Рунге-Кутта.
Пусть дано дифференциальное уравнение первого порядка и начальное условие .
Для первого значения аргумента: . Так как искомая функция дискретна, то производную нельзя понимать в полном смысле согласно её определению
, так как приращение аргумента не стремится к нулю, а является шагом вычислений ( ). Поэтому можно записать приближение: . Тогда дифференциальное уравнение принимает вид:
. (4.1.)
Аналогично находят следующие значения функции:
, (4.2.)
По этим формулам находят все значения функции для заданных значений аргумента.
Заметим, что расчетная формула является рекуррентной, то есть, чтобы найти значение надо знать предыдущее значение . И, следовательно, ошибка, допущенная при вычислении автоматически переходит в результат вычисления .
Метод Рунге-Куттапозволяет вычислитьзначения функции более точно. Его можно представить рекуррентными формулами нескольких порядков. Формулы более высокого порядка обеспечивают более высокую точность ( ) при том же шаге ( ). Метод позволяет дискретно решать дифференциальные уравнения 1-го порядка.
· Формула 1-го порядка
, ( ~ . (4.3.)
является формулой Эйлера.
· Формула 2-го порядка
( ~ (4.4.)
где
· Формула 3-го порядка
( ~ (4.5.)
где
· Формула 4-го порядка
( ~ (4.6.)
где
Формулы 2-го и 3-го порядка применяются для вычислений на калькуляторе, а формулы 4-го порядка – только на ЭВМ.
Погрешности вычисленийобусловлены двумя причинами. Первая – переходом к дискретным значениям функции, что требует округления этих значений.
Вторая – рекуррентностью расчетных формул, что приводит к накоплению погрешности.
Уменьшение шага позволяет уменьшить погрешности. Однако при этом увеличивается число дискретов на заданном интервале аргумента.
Что приводит к увеличению накопленной погрешности. Чтобы найти оптимальный шаг применяют оценки погрешностей расчетных формул. Они приведены рядом с расчетными формулами.
Так, для формулы 4-го порядка оценка: ( ~ . Следовательно, рекомендуемый шаг . Например, при требуемой точности вычислений , рекомендуется брать шаг аргумента .
Окончательно, чтобы после выполнения расчетов выяснить, достигнута ли требуемая точность, применяют прием Рунге. Он заключается в том, что расчеты повторяют с шагом, уменьшенным вдвое, и сравнивают результаты. Погрешность определяют по формуле
, (4.7.)
где приближенное решении е последнего вычисления при ом шаге;
порядок используемой формулы. Так, если используется формула 2-го порядка, то =2 . (4.8.)
Если погрешность результатов вычислений оказалась больше заданной, то вычисления повторяют, уменьшив шаг ещё в 2 раза. После этого сравнивают результаты второго и третьего вычислений.
ПРИМЕР 4.1. Найти приближенное решение дифференциального уравнения на отрезке с точностью . Если
РЕШЕНИЕ. Имеем дифференциальное уравнение первого порядка.
Расчеты будем выполнять по формуле Рунге – Кутта 2-го порядка.
Ширину шага аргумента берем из оценки: .
Число шагов:
Вычисления выполняем в таблице 4.1. Вторые строки в "шапке" таблицы означают действия с числами соответствующих колонок.
Стрелки означают, что числа надо брать из предыдущей строки. Например,
вычисления второй строки: = 0 – 1 = -1; = 0,1*(-1);
0,1- (1+(-0,1)) = -0,8; = 0,1*(-0,8) = -0,08; =1+ = 0,91.
Таблица 4.1.
1,000 | |||||
-1,000 | -0,100 | -0,800 | -0,080 | 0,910 | |
-0,810 | -0,081 | -0,629 | -0,0629 | 0,838 | |
-0,638 | -0,0638 | -0,474 | -0,0474 | 0,782 | |
-0,482 | -0,0482 | -0334 | -0,0334 | 0,742 | |
-0,342 | -0,0342 | -0,208 | -0,0208 | 0,714 | |
-0,214 | -0,0214 | -0,093 | -0,0093 | 0,699 | |
-0,099 | -0,0099 | 0,011 | 0,0011 | 0,694 | |
0,005 | 0,0005 | 0,105 | 0,0105 | 0,700 | |
0,100 | 0,0100 | 0,199 | 0,0199 | 0,714 | |
0,186 | 0,0186 | 0,267 | 0,0267 | 0,737 |
Результаты решения представлены в колонках 1 и 6 таблицы. Вычисления выполнены с точностью выше требуемой на 2 знака. Согласно приему Рунге повторяем вычисления, уменьшив шаг вдвое ( При этом в расчетной таблице в 3 и 5 колонках 5 умножение выполняют на 0,05, а не на 0,1, как в таблице 4.1.
Результаты вычислений приведены в таблице 4.2.
Таблица 4.2.
0,05 | 0,10 | 0,15 | 0,20 | 0,25 | 0,30 | 0,35 | 0,40 | 0,45 | ||
1,00 | 0,95 | 0,91 | 0,87 | 0,84 | 0,81 | 0,78 | 0,76 | 0,74 | 0,73 | |
0,50 | 0,55 | 0,55 | 0,60 | 0,65 | 0,70 | 0,75 | 0,80 | 0,85 | 0,90 | 1,00 |
0,71 | 0,70 | 0,70 | 0,69 | 0,69 | 0,70 | 0,70 | 0,70 | 0,71 | 0,72 | 0,736 |
Определяем погрешность согласно (4.8.):
Следовательно требуемая точность достигнута, и данные таблицы 4.2 являются искомым решением.
Дата добавления: 2020-10-25; просмотров: 430;