Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мустафин.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
180 Кб
Скачать
☆

11) Решение дифференциальных уравнений математической модели обобщенного электромеханического преобразователя методом Рунге –Кутта 4-го порядка

Теперь остановимся на реализации решения дифференциального уравнения у'=f(х,у) другим хорошо известным методом — методом Рунге—Кутта. Пусть h — шаг приращения переменной х, i — индекс, имеющий значения от 1 до N (N — число интервалов решения с шагом h). Метод Рунге—Кутта четвертого порядка дает погрешность решения порядка h-4, что удовлетворяет самым придирчивым требованиям к точности численных методов. Реализация метода показана на рис. 14.49.

Для решения надо задать функцию f(х, у), шаг изменения переменной х - h, число точек решения N и начальные значения х и у. На рис. 14.49 представлены вектор начальных значений х и у, а также заданная в векторной форме система уравнений метода Рунге—Кутта. Вычисление коэффициентов формул Рунге-Кутта задано в виде функции пользователя. Решение абсолютно наглядно.

Вторая часть документа (рис. 14.50) содержит формулу точного решения, гра­фики точного и приближенного решений и векторы решений.

Нетрудно заметить, что в пределах точности вычислений (три знака после деся­тичной точки) точное и приближенное решения совпадают.

Дифференциальные уравнения n-го порядка при решении приводятся к системе дифференциальных уравнений первого по­рядка и решаются стандартными средствами решения, входящими в большинство математических систем.

4.1.2 Решение систем дифференциальных уравнений методом Рунге-Кутта

При переходе от решения одиночных дифференциальных уравнений к реше­нию систем дифференциальных уравнений сложность решения быстро нараста­ет. Уже при решении системы из двух дифференциальных уравнений значительно усложняются рекуррентные формулы, определяющие коэффициенты в формулах Рунге—Кутта. . При этом добавление каждый раз очередного уравнения увеличивает число уравнений в их векторной записи. Естественно, это увеличивает сложность решения, ведет к увеличению .числа переменных в функциях, задающих коэффициенты Ki, но принципиально не меняет реализации алгоритма вычислений.

При решении систем дифференциаль­ных уравнений «в лоб» этот путь оказывается тупиковым из-за быстрого нара­стания сложности уравнений и их частного характера.

Встроенные в «Mathcad» функции для решения систем дифференциальных урав­нений обходят эти трудности, поскольку не требуют составления формул для решения систем дифференциальных уравнений и задают такое решение в общем виде. Надо, однако, учитывать, что реальные алгоритмы решения диффе­ренциальных уравнений оказываются заметно сложнее рассмотренных. Так, широкое распространение получили адаптивные алгоритмы, в которых на каж­дом шаге выполняется контроль погрешности решения (функция Rkadapt в «Mathcad»). Если погрешность падает ниже заданной, шаг h уменьшается. И так до тех пор, пока погрешность не станет меньше заданной. Это заметно снижает неустойчивость решения, но одновременно увеличивает время вычислений как на каждом шаге, так и в области возможной неустойчивости решения.

Последние версии компьютерных математических систем оснащены встроенными функциями численного решения как отдельных дифференциальных уравнений, так и систем ДУ. В для решения задач такого класса введен ряд функций.

rkfixed(y,x1,x2,N,D) – матрица решений методом Рунге – Кутта системы обыкновенных дифференциальных уравнений с начальными условиями в векторе y на интервале от x1 до x2 с фиксированным числом шагов N; правые части уравнений записаны в векторе D.

Rkadapt(y,x1,x2,N,D) – матрица решений методом Рунге – Кутта (с переменным шагом) системы обыкновенных дифференциальных уравнений с начальными условиями в векторе y на интервале от x1 до x2 с фиксированным числом шагов N; правые части уравнений записаны в векторе D.

В качестве примера рассмотрим динамическую модель электрической схемы, изображенной на рисунке 2.

Электрическое равновесие в предложенной схеме определяется системой дифференциальных уравнений