Решение дифференциальных уравнений и систем.(Задача Коши и граничные задачи).
Для численного решения одиночного дифференциального уравнения в MathCAD имеется функция Odesolve, с помощью которой может быть решена как задача Коши для обыкновенного дифференциального уравнения, так и граничная задача. Эта функция входит в состав блока решения и сявляется его заключительным ключевым словом. Odesolve(x,b,[step]) - Возвращает функцию, которая является решением дифференциального уравнения. Используется в блоке с оператором Given. Замечания:
Для численного решения задачи Коши для дифференциальных уравнений и систем могут быть использованы функции: rkfixed(y,x1,x2,n,F) - возвращает матрицу решений системы уравнений методом Рунге-Кутта 4-го порядка при фиксированном шаге по x rkadapt(y,x1,x2,n,F) - ищет решение с переменным шагом (там, где решение меняется медленнее, шаг увеличивается, а в области быстрого изменения решения шаг функции уменьшается). Возвращается решение с равным шагом. Функция работает быстрее, чем rkfixed Bulstoer(y,x1,x2,n,F) - дает более точное решение (методом Bulirsch-Stoer) Агрумкнты вышеуказанных функций: При решении дифференциальных уравнений порядка выше первого (или систем уравнений, выше первого порядка) исходное уравнение (систему) необходимо преобразовать к системе дифференциальных уравнений первого порядка.
В результате работы укзанных функций рассчитывается матрица, количество стобцов которой равно порядку уравнения +1(или сумме порядков уравнений в системе +1), а количество строк равно параметру n. Первый столбец содержит значения независимой переменной, второй - значение функции, третий - для диф. уравнений 2-го порядка - значение производной искомой функции (если решается система двух уравнений 1-го порядка, то третий столбец будет содержать значения второй функции). Для выделения решений (функций или их производных) можно воспользоваться стандартным оператором вывода столбцов матрицы M< >
Если матрица правых частей дифференциальных уравнений почти вырождена, то такие системы называются жесткими. В этом случае решения, возвращаемые функцией rkfixed будет неустойчивым и для решения таких систем необходимо применять функции Stiffb, Stiffr Stiffb(y,x1,x2,n,F,J) - ищет решение диф. уравнения или системы дифференциальных уравнений методом Bulirsch-Stoer Stiffr(y,x1,x2,n,F,J) - ищет решение диф. уравнения или системы дифференциальных уравнений методом Rosenbrock
Для отыскания решения системы диф. уравнений только в конечной точке используются функции bulstoer,rkadapt, stiffb, stiffr (начинаются с прописной буквы).
Первые три параметра и пятый (F) этих функций те же, что идля функции Rkadapt. Дополнительные параметры:
Если для дифференциального уравнения n -го порядка k граничных условий заданы в начальной точке х1, а (n-k) граничных условий - в конечной точке х2, то такая задача называется краевой. В MathCAD реализованы две функции, позволяющие численно найти недостающие условия в точках х1 и х2. Двухточечная краевая задача Задача решается в два этапа. Сначала с помощью функции sbval находятся недостающие начальные значения, а затем применяется одна из выше описанных функций для решения стандартной задачи Коши на отрезке. sbval(v,x1,x2,F,load,score) - ищет недостающие начальные условия в точке х1
Краевая задача с условиями внутри интервала. На первом этапе используется функция balfit(V1,V2,x1,x2,xf,F,load1,load2,score) - ищет недостающие начальные условия в точках х1 и х2, сшивая решения, выходящие из этих точек, в точке xf Электронный курс по MathCAD
|