- •Введение
- •Символьная математика
- •Функции
- •Создание программ
- •Графические возможности Mathcad
- •Работа с файлами
- •Решение обыкновенных дифференциальных уравнений первого порядка
- •Решение обыкновенных дифференциальных уравнений n-го порядка
- •Жесткие системы дифференциальных уравнений
- •Численное решение задачи Коши для системы обыкновенных дифференциальных уравнений
- •Работа № 4 Решение краевой задачи методом стрельбы
- •Список рекомендуемой литературы
Решение обыкновенных дифференциальных уравнений n-го порядка
Рассмотрим задачу Коши для ДУ второго порядка
Решение будем искать на интервале . Сведем это уравнение к системе ДУ первого порядка, состоящей из двух уравнений.
Рассмотрим, как решить эту задачу с использованием функции rkfixed. Функцию определим как вектор с двумя элементами
Пример
Решение ищем на отрезке [1,4].
Сначала найдем аналитическое решение задачи Коши для этого примера:
.
Разрешим данное ДУ относительно второй производной . Запишем функцию : . Воспользуемся функцией пакета rkfixed.
Сплошная линия – интегральная кривая, а вторая кривая – график первой производной.
В таблице в первом столбце выведена переменная x, во втором столбце – искомая функция, а в третьем – первая производная искомой функции.
Полученное решение можно сравнить с аналитическим решением, найденным выше.
В отчет надо включить таблицу с результатами аналитического и численного решения и сравнить их.
Для ДУ более высокого порядка будем использовать тот же метод, что и для ДУ второго порядка. Тогда вектор начальных условий и функция будут содержать элементов.
Задание
Найти аналитическое решение задачи Коши.
Решить задачу Коши, используя функции rkfixed или Rkadapt или Bulstoer.
Построить интегральную кривую и график первой производной, вывести таблицы полученных результатов и сравнить их (вывести таблицу разностей).
Отчет оформить как файл пакета MathCad.
Варианты задания для этой работы взять в работе №3.
Опишем возможности пакета MathCad для решения жестких систем дифференциальных уравнений.
Жесткие системы дифференциальных уравнений
Система дифференциальных уравнений, записанная в матричной форме y=A*X , где А – почти вырожденная матрица, называется жесткой. В этом случае решение, возвращаемое функцией rkfixed может быть неустойчивым. Для решения жестких систем в пакете есть специальные функции: Stiffb, Stiffr, stiffb, stiffr. Функции Stiffb и stiffb используют метод Булирша-Штера соответственно с постоянным и переменным шагом. А функции Stiffr и stiffr используют метод Розенброка соответственно с постоянным и переменным шагом.
Метод Розенброка решения жестких систем дифференциальных уравнений (y и f – векторы, t – независимая переменная) заключается в следующем: 1. На каждом шаге вычисляется матрица производных в точке : ; 2. следующая точка находится из матричного уравнения:
, в котором постоянные параметры алгоритма имеют, к примеру, такие значения: .
Таким образом, алгоритм Розенброка является одношаговым и явным (не требуется решения нелинейных уравнений на каждом шаге). Однако пересчет каждого шага требует численного определения производных функции и решения системы линейных уравнений (т.к. искомые компоненты вектора входят в матричное уравнение в линейной комбинации).
Алгоритм Розенброкка, благодаря своей вычислительной простоте, реализован не только в пакете MathCad , но и во многих других математических пакетах.
Вид матрицы, возвращаемой этими функциями, совпадает с возвращаемым функцией rkfixed. Однако эти функции требуют задания дополнительных аргументов.
Функции Stiffb, Stiffr имеют следующие аргументы:
– вектор начальных условий размерности , где – порядок дифференциального уравнения или число уравнений в системе ОДУ ( если решается система уравнений);
– граничные точки интервала, на котором ищется решение ДУ. Начальные условия, заданные в векторе , – это значение решения в точке ;
– число точек (не считая начальной), в которых ищется приближенное решение. Этот аргумент определяет число строк в матрице, возвращаемой функциями Stiffb, Stiffr;
– функция, возвращающая значение в виде вектора из элементов, содержащих первые производные неизвестных функций;
– функция, которая возвращает матрицу размером . Первый столбец содержит производные . Остальные строки и столбцы представляют собой матрицу Якоби системы ОДУ. Например, если
, то .
Если надо найти приближенное решение задачи Коши только в конечной точке интервала, то для жестких систем используют функции stiffb, stiffr.
Рассмотрим только те параметры, которых нет в функциях Stiffb, Stiffr:
– параметр, контролирующий точность решения. Малое значение заставляет алгоритм брать меньшие шаги вдоль траектории, что увеличивает точность решения. Значения, близкие к 0.001, дают хорошую точность решения;
– максимальное число промежуточных точек, в которых ищется приближенное решение. Значение ограничивает сверху число строк матрицы, возвращаемой функцией;
– минимально допустимый интервал между точками, в которых ищется приближенное решение. Он определяет нижнюю границу различия между любыми двумя числами в первом столбце матрицы, возвращаемой функцией.
Работа № 3