Решение дифференциальных уравнений и систем дифференциальных уравнений средствами Mathcad и Maple, страница 5

Функция Rkadapt(y, x1,x2,n,D) предназначена для решения систем ОДУ адаптивным методом Рунге – Кутта. В отличие от предыдущей функции, которая ищет решение с постоянным шагом, эта функция проверяет, как быстро изменяется приближенное решение, и адаптирует соответственно размер шага. Эту функцию удобно применять для решения ОДУ с медленно меняющимся решением, так как в этом случае функция автоматически уменьшает число шагов, что позволяет повысить точность и сократить время решения уравнения.

Функция имеет те же самые аргументы, что и функция rkfixed. Матрица с приближенным решением, возвращаемая функцией Rkadapt, идентична по виду матрице, возвращаемой функцией rkfixed.

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

Функция rkadapt(y,x1,x2,acc,n,D,k,s) возвращает матрицу, содержащую таблицу значений решения задачи Коши на интервале от х1 до х2 для системы ОДУ, вычисленную методом Рунге – Кутта с переменным шагом.

Аргументы функции: y,x1,x2,n,D имеют тот же смысл, что и для функции rkfixed.

·  аcc – параметр, контролирующий точность решения. Малое значение асс вынуждает алгоритм брать меньшие шаги вдоль траектории, что увеличивает точность решения. Значения асс, близкие к 0.001, приводят к хорошей точности решения.

·  к – максимальное число промежуточных точек решения.

·  s – минимально допустимый интервал между точками решения.

Функция Bulstoer(y,x1,x2,N,D)

реализует метод Булирша-Штера и используется, если решения системы ОДУ является гладкой функцией. В этом случае найденное приближенное решение будет более точным, чем в случае применения функции rkfixed.

Список аргументов и матрица решения, возвращаемая функцией Bulstoer, те же, что и для функции rkfixed.

Вычислительный блок для решения одиночных ДУ любого порядка (2000/2001)

Структура:

Given

Уравнение

Начальные условия

Выражение с функцией odesolve.

Функция odesolve(x,b,[steps]) возвращает решение одиночного ДУ, описанного в блоке Given…, при заданных начальных условиях и конце интервала интегрирования b. Если указано число шагов [steps], то решение выполняется с фиксированным шагом, иначе – адаптивным методом.

Система MAPLE  позволяет решать дифференциальные уравнения и системы дифференциальных уравнений как аналитически, так и численно.

Функции:

Для решения ОДУ и систем ОДУ предназначена функция dsolve(deqn, var, opt), где deqn – одно дифференциальное уравнение n-ого порядка или система дифференциальных уравнений первого порядка, var – переменная или переменные, относительно которых ищется решение, opt – необязательный аргумент, в котором можно указать вид представления решения:

·  еxact – аналитическое решение;

·  explicit – решение в явном виде;

·  numeric – решение в численном виде;

·  laplace – решение через преобразование Лапласа;

·  series – решение в виде ряда с порядком, указанным переменной Order;

В случае поиска численного решения дополнительно можно указать:

Метод решения – method=<method>, где в качестве <method> можно задать:

·  rkf45 – метод Рунге-Кутта порядка 4 или 5

·  dverk78 – метод Рунге-Кутта порядка 7или 8

Ø  classical – библиотека классических методов:

¨  foreuler – метод Эйлера;

¨  heunform – улучшенный метод Эйлера( формула Хойна или правило трапеции);

¨  impoly – модифицированный метод Эйлера;

¨  rk2,rk3,rk4 – методы Рунге-Кутта 2, 3, 4 порядков соответственно;

¨  adambash, abmoulton – методы Адамса-Башфорда и Адамса-Бошфорда-Мултона соответсвенно;

Ø  gear – библиотека одношаговых экстраполяционных методов;