Программа для численного решения системы обыкновенных дифференциальных уравнений

While (не конец расчетов)

While 1

IF

END

IF

END

end

end

В целом, в данных циклах вычисляется номер шага, и если он меньше 5, то вычисления сводятся к вычислению методом Р-К, а если больше 5, то производятся вычисления по методу Хемминга со всеми своими дополнительными действиями, как вычисление по корректирующей формуле и т. д. В обоих случаях происходит обновление рабочих и других промежуточных массивов и вывод информации на экран. В случае решения в точках «разгона» вычисляются также коэффициенты K1, K2, K3, K4, используемые в методе Р-К. Также функция сама проверяет точность вычислений и в случае необходимости корректирует шаг. Если шаг «сделан», то программа выводит результаты на экран и заносит их в массив, который представлен в виде нескольких столбцов. Также в необходимых для функции случаях она обращается к подпрограмме FunFcn, которая занимается вычислением левых частей, вызов и возврат значений которой должен быть следующим:

Z=feval (FunFcn, x, y), где

Z — вектор вычисленных левых частей,

X, Y — векторы точек, для которых производится вычисление.

Для удобства отладки и описания, программа разбита на части, обозначенные русскими заглавными буквами (Ш, Щ, Л и т. д.), которые соответствуют блокам, обозначенным в примере программы, приведенной в задании. Несмотря на то, что приведенная программа написана на условном языке, прокомментировать текст нашей программы на языке MathLab довольно удобно с использованием данных обозначений (Конечно, часть блоков опущена, в связи с отсутствием принципиальной значимости. Кроме того изменен порядок появления блоков в программе):

«Э» — начальное вычисление левых частей.