Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция моделирование.doc
Скачиваний:
32
Добавлен:
17.11.2019
Размер:
4.87 Mб
Скачать
  1. Методы Рунге-Кутты третьего и четвертого порядков

Рассмотрим две различные схемы Рунге-Кутты, предназначенные для численного решения обыкновенных дифференциальных уравнений первого порядка и имеющие третий порядок аппроксимации:

И две схемы Рунге-Кутты, имеющие четвертый порядок аппроксимации:

Пример. Решить методом Рунге-Кутты четвертого порядка уравнение dy/dx = –y, y(0) = 1.

В соответствии с приведенными выше соотношениями определяем коэффициенты:

Построим последовательность значений искомой функции:

Результаты получаемого численного решения для значения аргумента x = 10 при различных шагах интегрирования приведены в табл. 15.2. Три верные значащие цифры получены для шага h = 0.25.

Таблица 15.2. Результаты численного решения yn методом Рунге-Кутты четвертого порядка дифференциального уравнения y' = –y с начальным условием y(0) = 1

Величина шага h

0.5

0.25

0.1

0.01

0.001

0.0001

Число шагов n

20

40

100

1000

10 000

100 000

yn · 104

0.457608

0.454181

0.454003

0.453999

0.453999

0.453999

Сравнение таблиц 15.1 и 15.2 с решениями одной и той же задачи позволяет сделать вывод, что более высокая степень аппроксимации дифференциального уравнения разностным аналогом позволяет получать более точное решение при более крупном шаге и, следовательно, меньшем числе шагов, то есть приводит к снижению требуемых ресурсов ЭВМ.

На сегодняшний день для грубого расчета вычисления производятся методом Эйлера, для точного расчета — методом Рунге-Кутты

  1. Лекция 16. Методы прогноза и коррекции (итерационные методы)

Изученные нами ранее методы обладали одной важной особенностью — каждому методу соответствует обычно определенный класс точности, который мы обозначали как Oi. Например, метод Эйлера обладал первым классом точности O1. Это означало, что с уменьшением шага в 10 раз (на порядок) точность результата повышается тоже в 10 раз (на один порядок). Метод Рунге-Кутты обладает 4 порядком точности — O4, при уменьшении шага в 10 раз, результат улучшается в 10 000 раз. Поскольку этот метод по сравнению с методом Эйлера использует всего в 4 раза больше вычислений, то использование его более выгодно. На сегодняшний день известны методы до 8 порядка точности (например, метод Prince Dortmund), хотя одновременно стоит иметь в виду, что написание алгоритмов для них — задача достаточно трудная. Достоинством всех этих алгоритмов является то, что объем вычислений для них заранее известен.

Если требуется достичь ЛЮБОЙ точности на шаге, то следует использовать методы прогноза и коррекции. Этот подход состоит в том, что расчет траектории, задаваемой уравнением, на каждом шаге происходит многократно. А именно, сначала происходит расчет приближенного значения функции на конце шага какой-либо простой формулой (например, методом Эйлера), далее в этой точке вычисляется производная, и расчет происходит снова из начальной точки на шаге, но с уточненным значением производной. Последняя операция — уточнения производной и значения функции на конце шага — происходит МНОГОКРАТНО НА КАЖДОМ ШАГЕ, то есть до тех пор, пока вычисленные значения (функции и производной в конце шага) не перестанут меняться или будут меняться уже незначительно, меньше чем задаваемая заранее величина ε. Только тогда можно сказать, что точность ε достигнута.

Итак, за счет итерационной процедуры на каждом отдельном шаге можно достичь любой, наперед заданной точности ε. За такое достоинство метода приходится платить: к сожалению, невозможно сказать заранее, сколько итераций потребуется для достижения на шаге заданной точности ε. Поэтому такие методы нельзя, например, использовать в системах реального времени.

Рассмотрим для примера два метода из этого класса. Как и ранее задача состоит в нахождении функции y(t) из дифференциального уравнения dy/dt = f(yxt) или множества функций из системы таких уравнений.