Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив ZIP - WinRAR / Динамика / Моделирование динамических режимов подсистем РЭС1.doc
Скачиваний:
39
Добавлен:
11.05.2015
Размер:
1.12 Mб
Скачать
    1. Жесткие системы оду

Имеется класс так называемых жестких (stiff) систем ОДУ, для которых стандартные методы практически неприменимы, поскольку их решение требует исключительно малого значения шага численного метода. Некоторые из специальных алгоритмов, разработанных для этих систем, реализованы в MathCAD.

Жесткие системы - это те уравнения, решение которых получить намного проще с помощью определенных неявныхметодов, чем с помощью явных методов (типа тех, что были рассмотрены в предыдущих разделах). Так как в моделях РЭС, отображаемых с помощью систем ОДУ, наблюдается большой разброс постоянных времени, то чаще всего они относятся именно к классу именно жестких систем ОДУ.

Пример 7.6.Решить уравнениеметодом Рунге –Кутта.

На Рис. 7.1. приведен листинг решения этого уравнения с помощью системы MathCAD. Как показывает листинг программы, решение уравнения не составило труда, и численный метод Рунге-Кутта дал правильный результат.

Нарис. 7.2показано решение того же ОДУ с коэффициентом -50.

Вас, несомненно, должен насторожить результат, выданный MathCAD. Характерная "разболтка" решения говорит о неустойчивости алгоритма. Первое, что можно сделать, - увеличить количество шагов в методе Рунге-Кутта. Для этого достаточно добавить третий параметрstepв функциюodesolve(t, tk, step). После нескольких экспериментов можно подобрать такое значениеstep, которое будет обеспечивать устойчивость решения2.

Таким образом, одни и те же уравнения с разными параметрами могут быть как жесткими, так и нежесткими. Во-вторых, чем жестче уравнение, тем больше шагов в обычных численных методах требуется для его устойчивого решения. С нашим примером ОДУ все получилось хорошо, т.к. оно было не очень жестким, и небольшое увеличение числа шагов разрешило все проблемы. Однако для решения обычными методами более жестких уравнений требуются миллионы, миллиарды и даже большее число шагов.

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

- stiffb(y0, to, tk, M, F, j) - метод Булирша-Штера для жестких систем ОДУ;

- stiffr(y0, to, tk, M, F, j) - метод Розенброка для жестких систем ОДУ;

у0- вектор начальных значений в точке to;

to, tk- начальная и конечная точки расчета;

M- число шагов численного метода;

F - векторная функцияF(t,y) размераIXN, задающая систему ОДУ;

J - матричная функцияJ(t, y) размера (N+IJN, составленная из вектора производных функцииF(t, y) not(правый столбец) и ее якобиана (Nлевых столбцов).

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

Пример 7.7.Решить жесткую систему уравнений.

Бросается в глаза сильно различающийся порядок коэффициентов при разных слагаемых. Именно степень этого различия чаще всего и определяет жесткость системы ОДУ. В качестве соответствующей характеристики выбирают матрицу Якоби (якобиан) векторной функции F(t, y), т.е. функциональную матрицу, составленную из производныхF(t,y). Чем вырожденнее матрица Якоби, тем жестче система уравнений. Решение приведено нарис. 7.3.

Соседние файлы в папке Динамика