Решение нежестких ОДУ методом Рунге-Кутты (листинг 11.11)



Решение нежестких ОДУ методом Рунге-Кутты (листинг 11.11)

На рис. 11.17 показано решение того же ОДУ с коэффициентом -50. Вас, несомненно, должен насторожить результат, выданный Mathcad. Характерная "разболтка" решения говорит о неустойчивости алгоритма. Первое, что можно сделать, — увеличить количество шагов в методе Рунге-Кутты. Для этого достаточно добавить третий параметр step в функцию odesoive(t,i,step). После нескольких экспериментов можно подобрать такое значение step, которое будет обеспечивать устойчивость решения. Читатель может самостоятельно убедиться, что при step>20 "разболтка" пропадает, и решение становится похожим на графики, показанные на рис. 11.16.



Содержание раздела