Поскольку для оценки точности решения необходим материал для сравнения предлагается рассматривать приближенные (численные) методы решения применительно к тем задачам, для которых ранее было получено аналитическое решение (т.е. линейных уравнений вида (1)).
Обозначим
. Тогда данное уравнение можно преобразовать в следующую систему уравнений первого порядка, разрешенных относительно первой производной (форма Коши):Поэтому, идея применения численных методов для решения уравнения старших порядков, в принципе, ничем не отличается от идеи численного решения уравнения первого порядка, которые рассматривались в лабораторной работе №10.
Нетрудно расширить применение описанной выше методики на случай системы линейных уравнений. В примерах 2 и 3 представлены реализации метода Эйлера в рамках векторной процедуры и с помощью программы-функции. В обоих случаях получены одинаковые результаты, которые поверяются по полученному ранее (см. пример 1) аналитическому решению. Решение приближенное и точное сильно отличаются и величина относительной ошибки (для выбранного шага) составляет ~13%. Пример 3 нетрудно оптимизировать и придать ему более компактный вид, считая начальные условия и правые части системы уравнений компонентами некоторых векторов. Также допустима доработка программы-функции на случай любого числа уравнений путем изменения числа аргументов программы-функции, а также числа строк в программе: в задании начальных условий и в цикле вычисления массива решений.
Аналогично методу Эйлера векторная и программная реализации вычислений по методу Рунге-Кутта могут быть распространены на случай решения системы дифференциальных уравнений. Прямое решение задачи в этом случае представляется достаточно громоздким и желательно предусмотреть расчета констант метода в рамках внутренних циклов. В пакете MathCAD имеются встроенные функции, решающие подобные задачи. Так, процедуру расчета приближенного решения по методу Рунге-Кутта решается с помощью функций rkfixed и Rkadapt. Пример решения той же системы дифференциальных уравнений дан в примере 4. Отличие в точности полученных решений для данного дифференциального уравнения невелико, однако, если решением дифференциального уравнения является сильно осциллирующая функция, то метод с переменным шагом обеспечивает большую точность.
Примеры решения различных уравнений с помощьюкомпьютерного пакета MathCAD.
Пример №1 |
Пример №2 |
Пример №3 |
Пример №4 |
Задание к контрольной роботе:
Дифференцируем левые части уравнения методом Лапласа, а затем суммируем их.
Заменяя функцию y(x) на Y, получим выражение, которое потом упрощаем с помощью функции collect.
Находим правую часть уравнения таким же способом
Получаем исходное алгебраическое уравнение которое решаем в символьном виде:
Решение уравнения
Теперь выполняем обратное преобразование и находим решение исходной дифференциальной задачи
Ответ
. |
Проводим проверку правильности начальных условий, используя функцию subtitute
Графическое представление результатов решения: