Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
0552 / Курсач / Записка.doc
Скачиваний:
7
Добавлен:
14.02.2023
Размер:
198.14 Кб
Скачать

1.2 Численные методы решения дифференциальных уравнений

1.2.1 Метод Эйлера

Метод Эйлера – наиболее простой и легко реализуемый, но его точность сильно зависит от величины шага интегрирования (см. описание метода). Применение метода Эйлера для решения одиночного дифференциального уравнения показано в примере 1, где в качестве первообразной выбрана синусоида. График в примере демонстрирует высокую погрешность при заданном числе шагов интегрирования. Изменяя этот параметр и анализируя результат, можно наглядно исследовать влияние шага на точность решения.

Для решения системы дифференциальных уравнений предложен программный блок, реализующий метод Эйлера в общем виде. Им можно воспользоваться при решении других подобных задач. Выражения для производных вычисляются в виде вектора-функции.

Решим задачу Коши для дифференциального уравнения первого порядка

методом Эйлера.

Пусть правая часть уравнения равна

Зададим границы изменения x:

Зададим число точек и величину шага:

Зададим начальные условия:

Вычислим x и y по формулам Эйлера

1.2.2 Метод Рунге-Кутты

Метод Рунге–Кутта дает более точное решение, но он сложнее в реализации за счет двух- или четырехкратного вычисления производной для уточнения угла наклона касательной. Для решения обыкновенных дифференциальных уравнений методом Рунге–Кутта в Mathcad введен ряд функций:

rkadapt(y, х1, х2, асc, n, F, k, s) – возвращает матрицу, содержащую таблицу значений решения задачи Коши на интервале от х1 до х2 для системы обыкновенных дифференциальных уравнений, вычисленную методом Рунге–Кутта с переменным шагом, допустимой погрешностью решения асс (рекомендуется порядка 0,001) и начальными условиями в векторе у (правые части системы записаны в векторе F, n – число шагов, k – максимальное число промежуточных точек решения и s – минимально допустимый интервал между точками);

Rkadapt(y, x1, x2, n, F) – возвращает матрицу решений методом Рунге–Кутта с переменным шагом для системы обыкновенных дифференциальных уравнений с начальными условиями в векторе у, правые части которых записаны в символьном векторе F на интервале от х1 до х2; n – число шагов;

rkfixed(y, x1, x2, n, F) – возвращает матрицу решений методом Рунге–Кутта системы обыкновенных дифференциальных уравнений с начальными условиями в векторе у, правые части которых записаны в символьном векторе F, на интервале от х1 до х2 при фиксированном числе шагов п.

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

Решаем задачу Коши для дифференциального уравнения первого порядка методом Рунге–Кутты.

Зададим границы изменения x:

Зададим число точек внутри интервала

Зададим начальные условия

Поскольку мы решаем только одно дифференциальное уравнение первого порядка, а не систему дифференциальных уравнений, матрица y содержит только один элемент, однако запись y=1 была бы неправильной. Необходимо явно указывать на то, что величина y – матрица, то есть писать индекс.

Определим теперь матрицу производных. Эта матрица тоже состоит только из одного элемента. Этот элемент с точностью до обозначений совпадает с правой частью исходного дифференциального уравнения:

Соседние файлы в папке Курсач