Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Имитац. моделирование.docx
Скачиваний:
39
Добавлен:
29.10.2018
Размер:
2.97 Mб
Скачать

3.4. Модифицированный метод Эйлера

Хотя тангенс угла наклона касательной к истинной кривой в исходной точке известен и равен 0 y¢(t ) , он изменяется в соответствии с изменением независимой переменной. Поэтому в точке t0 + h наклон касательной уже не таков, каким он был в точке t0. Следовательно, при сохранении начального наклона касательной на всем интервале h в результаты вычислений вносится погрешность. Точность метода Эйлера можно существенно повысить, используя,

например, среднее значение производной в начале и конце интервала.

Рис. 3.4. Геометрическая интерпретация модифицированного метода

В модифицированном методе Эйлера сначала вычисляется значение функции в следующей точке по простому методу Эйлера:

которое используется для вычисления приближенного значения производной в конце интервала f(tn+1, ). Вычислив среднее между этим значением призводной и её значением в начале интервала, найдем более точное значение yn+1:

(3.11)

Графическая интерпретация модифицированного метода Эйлера представлена на рис. 3.4. Принцип, на котором основан модифицированный метод Эйлера, можно пояснить иначе. Для этого вернемся к разложению функции в ряд Тейлора.

Кажется очевидным, что, сохранив член с h2 и отбросив члены более высоких порядков, можно повысить точность. Однако чтобы сохранить член с h2 , надо знать вторую производную y’’(t0) . Её можно аппроксимировать конечной разностью

Подставив это выражение в ряд Тейлора с отброшенными членами третьего порядка, найдем

что совпадает с ранее полученным выражением (3.11).

Этот метод является методом второго порядка, так как в нем используется член ряда Тейлора, содержащий h2 . За повышение точности приходится расплачиваться дополнительными затратами машинного времени, необходимыми для вычисления .

Примеры:

Определить решение дифференциальных уравнений модифицированным методом Эйлера

1) y’ = xy.

Решение:

2)

Решение:

3)

Решение:

3.5. Метод Рунге – Кутта

Пусть требуется найти решение дифференциального уравнения

y’ = f (t, y),

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

y’(t0) = y0.

Принцип, на котором основан метод Рунге – Кутта, можно пояснить, как и принцип, на котором основан метод Эйлера, с помощью разложения функции в ряд Тейлора

Чтобы удержать в ряде Тейлора член n-го порядка, необходимо вычислить n-ю производную зависимой переменной. При использовании модифицированного метода Эйлера для получения второй производной в конечно-разност-ной форме достаточно было знать наклон кривой на концах рассматриваемого интервала. Чтобы вычислить третью производную в конечно-разностном виде, необходимо иметь значения второй производной, по меньшей мере, в двух точках. Для этого необходимо дополнительно определить наклон кривой в некоторой промежуточной точке интервала h, т. е. между tn и n 1 t + . Очевидно, чем выше порядок вычисляяемой производной, тем больше дополнительных точек потребуется вычислить внутри интервала. Так как существует несколько способов расположения внутренних точек и выбора относительных весов для найденных производных, то метод Рунге – Кутта, в сущности, объединяет целое семейство методов решения дифференциальных уравнений.

Наиболее распространенным из них является метод четвёртого порядка точности, при котором удерживаются все члены ряда Тейлора, включая h4. Расчеты при использовании этого классического метода производятся по формулам:

где

Метод Эйлера и его модификация по сути дела являются методами Рунге – Кутта первого и второго порядка соответственно. Более высокая точность метода Рунге – Кутта позволяет увеличить шаг интегрирования h. Допустимая погрешность на шаге определяет его максимальную величину. В прикладных пакетах программ выбор шага часто осуществляется автоматически. Для этого проводят вычисления сначала с шагом h, а затем – с шагом h/2.

За оценку погрешности вычислений с шагом h/2 можно принять приближенную формулу

где - вычисленное значение с шагом h/2; yn – вычисленное значение с шагом h. Пример: y’ = xy.

Решение:

При реализации методов Рунге – Кутта на ЭВМ для каждой точки проводят двойной счет. Если полученные при этом значения удовлетворяют выражению (5.4), то для точки t n+1 шаг удваивают, в противном случае уменьшают вдвое. Однако необходимо помнить, что выражение (5.4) приближенное и при неблагоприятных условиях можно получить совершенно ошибочные результаты, хотя в большинстве случаев дело обстоит благополучно.