Глава 5. Решение  дифференциальных уравнений

      5.6 Жесткие системы дифференциальных уравнений


Система дифференциальных уравнений, записанная в матричном виде, Y=AX, считается жесткой, если матрица коэффициентов почти вырожденная. В этом случае решение, возвращаемое функцией rkfixed, может быть неустойчивым. При решении жесткой системы необходимо использовать одну из трех функций, специально разработанных для решения жестких систем дифференциальных уравнений. К ранее существовавшим функциям Stiffb и Stiffr, реализующим методы Булирша – Штера или Розенброка соответственно, в MathCAD 2001i добавилась функция Radau, реализующая метод RADAU5. рассмотрим вначале  функции Stiffb и Stiffr.

Вид матрицы, возвращаемой этими функциями, совпадает с возвращаемым функцией rkfixed. Однако функции Stiffb и Stiffr требуют дополнительно задания якобиана системы уравнений.

Обращение к этим функциям:

Stiffb(y, x1, x2, n, D, J);

Stiffr(y, x1, x2, n, D, J).

Здесь у – вектор начальных условий размерности m, где m– порядок ОДУ или число уравнений в системе ОДУ; х1 и х2 – начало и конец интервала интегрирования, на котором ищется решение системы ОДУ; начальные условия, заданные вектором у, – это значение решения системы в точке х1; n – число точек (не считая начальной), в которой ищется решение; D(x,y)m– мерный вектор, который содержит первые производные неизвестных функций; J(x,y)– функция, которая возвращает матрицу размером . Первый столбец ее содержит производные F(t, y) по у. Остальные столбцы представляют собой матрицу Якоби системы ОДУ.

Пример решения жесткой системы ОДУ приведен на рис. 5.14.

                                                                              Жесткие ОДУ

                                                                                                     

                                                                                                

                                                                                                 

                                                                                                 

                                                           Рис. 5.14 Пример решения жесткой системы ОДУ

 

Следует заметить, что увеличение числа шагов в 1000 раз позволяет решить приведенную систему с помощью функции rkfixed (рис. 5.15), но это оттого, что заданная система не слишком жесткая. Если увеличить разницу в коэффициентах уравнений, то функция rkfixed потребует гигантского числа шагов и в принципе не сможет решить систему.

                                                                              

                                                                         

                                                                         

                                                                               

                                                            Рис. 5.15 Решение жесткой системы ОДУ функцией rkfixed

 

Новая функция Radau, введенная в MathCAD 2001i, имеет такой же список аргументов, как и функция Rkadapt и Bulstoer, а именно: Radau(у,x1,x2, D).

Функция Radau предназначена для решения систем жестких ОДУ, как и функции Stiffr и Stiffb. Преимуществом функции Radau перед Stiffr и Stiffb является то, что она требует указания якобиана в качестве параметра функции.

Сравнение результатов расчета жесткой системы ОДУ с помощью функций Radau и Stiffr приведено на рис. 5.16. Численные результаты, естественно, совпадают, но использование функции Radau проще.

                                                                                           

                                                                                                   

                                                                                  

                                                                   

                                                                             

                                                                   

                                                                                      

                                                     Рис. 5.16 Решение жесткой системы уравнений функциями Radau и Stiffr

 

На рис.5.17 показано решение той же системы ОДУ с использованием функции Odesolve (в контекстном меню выбран способ решения Stiff).

                                                                         Given          

                                                                                                           

                                                                                               

                                                                                            

                                                       Рис. 5.17 Решение жесткой системы уравнений функцией Odesolve

                                                                                                 

НазадВперед

Оглавление   Глава 5