Решение дифференциальных уравнений




Скачать 216.82 Kb.
НазваниеРешение дифференциальных уравнений
страница1/2
Дата публикации12.08.2013
Размер216.82 Kb.
ТипРешение
lit-yaz.ru > Математика > Решение
  1   2


Решение дифференциальных уравнений

Цель работы — изучить возможности пакета Mathcad для решения дифференциальных уравнений и систем дифференциальных уравнений
Основные теоретические сведения

1.

Пусть необходимо найти решение уравнения

(1)

с начальным условием . Такая задача называется задачей Коши. Разложим искомую функцию в ряд вблизи точки и ограничимся первыми двумя членами разложения . Учтя уравнение (1) и обозначив , получаем Эту формулу можно применять многократно, находя значения функции во все новых и новых точках.

(2)

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

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



Можно также оценить среднее значение производной на интервале





Такие модификации метода Эйлера имеет уже точность второго порядка.

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













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

Еще один тип задач, часто встречающихся на практике, – краевые задачи. Пусть имеется дифференциальное уравнение второго порядка . Решение уравнения требуется найти на интервале , причем известно, что Понятно, что произвольный интервал заменой переменных может быть сведен к единичному. Для решения краевой задачи обычно применяют метод стрельб. Пусть где k – некоторый параметр. Для некоторого пробного значения k может быть решена задача Коши, например, методом Рунге-Кутта. Полученное решение будет зависеть от значения параметра . Мы хотим найти такое значение параметра, чтобы выполнялось условие . Фактически мы свели исходную задачу к задаче решения трансцендентного уравнения с таблично заданной функцией. Если найдены такие значения параметра k1 и k2, что , то дальнейшее уточнение значения параметра можно проводить методом деления отрезка пополам.
^

1.1. Метод Эйлера для дифференциальных уравнений первого порядка


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

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

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

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

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

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





Представим результат графически и сравним его с аналитическим решением





Точное аналитическое решение и решение, полученное численно, отличаются в точке x=1 на

То есть относительная ошибка составляет
^

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


Для решения дифференциальных уравнений Mathcad имеет ряд встроенных функций, в частности, функцию rkfixed, реализующую метод Рунге–Кутты четвертого порядка с фиксированным шагом. Фактически эта функция предназначена для решения систем дифференциальных уравнений первого порядка.


Функция rkfixed(y, x1, x2, npoints, D) возвращает матрицу. Первый столбец этой матрицы содержит точки, в которых получено решение, а остальные столбцы – решения и его первые производные.

Аргументы функции:

  • y – вектор начальных значений (n элементов).

  • x1 и x2 – границы интервала, на котором ищется решение дифференциального уравнения.

  • npoints – число точек внутри интервала (x1,x2), в которых ищется решение. Функция rkfixed возвращает матрицу, состоящую из 1+npoints строк.

  • D – вектор, состоящий из n элементов, который содержит первые производные искомой функции.

В качестве примера рассмотрим решение системы Вольтерры–Лотки. Эта система описывает динамику численности хищников и жертв на замкнутом ареале и является одной из базовых моделей экологии.


Для решения систем дифференциальных уравнений используются функция rkfixed.

Внимание! В этом примере установлено значение ORIGIN=1, то есть нумерация элементов массива начинается с 1, а не с 0, как это принято в Mathcad'е по умолчанию.

Пусть в начальный момент времени число хищников и число жертв

Задаем вектор начальных значений

параметры системы

интервал времени и количество точек, в которых будет вычислено решение

и вектор правых частей системы. (Поскольку исходная система не зависит явно от времени t, функция D так же не зависит от времени явно хотя и содержит его в числе своих аргументов.)



Решаем систему с помощью встроенной функции





Представим на графике результаты расчета – зависимость численности популяций от времени



и зависимость числа жертв от числа хищников



Можно использовать обозначения или  – это одно и то же.

Поскольку дифференциальное уравнение порядка выше первого может быть преобразовано к системе дифференциальных уравнений первого порядка, функция rkfixed может быть использована и для решения дифференциальных уравнений
^

1.3. Решение дифференциальных уравнений методом Рунге–Кутта


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

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

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

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

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

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

Решаем дифференциальное уравнение





Точное аналитическое решение и решение, полученное численно отличаются в точке на

Относительная ошибка составляет
^

1.4. Решение дифференциальных уравнений второго порядка


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



преобразуем к системе из двух дифференциальных уравнений первого порядка



Пусть декремент затухания

Пусть циклическая частота

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

y0 соответствует начальной координате, а y1 – начальной скорости. Зададим теперь матрицу D. С учетом того, что искомая величина соответствует нулевому элементу массива y, ее первая производная – первому, а вторая – второму, имеем





Представим результаты расчета на графике и сравним их с аналитическим решением





Для контроля точности вычислений нарисуем фазовую траекторию (зависимость смещения от скорости). Для гармонического осциллятора фазовая траектория должна иметь вид эллипса.



Примечание: Mathcad имеет еще две функции для решения задачи Коши. Это функции Rkadapt и Bulstoer. Эти функции имеют те же самые аргументы и возвращают решения в такой же форме, что и функция rkfixed. Первая из этих функций использует метод Рунге–Кутты с переменным шагом, что позволяет повысить точность вычислений и сократить их объем, если искомое решение имеет области, где ее значения меняются быстро, и области плавного изменения. Функция Rkadapt будет варьировать величину шага в зависимости от скорости изменения решения.

Функция Bulstoer реализует иной численный метод – метод Булирша–Штёра. Ее следует применять, если известно, что решение является гладкой функцией.
^

1.5. Решение краевой задачи.


Пусть требуется найти решение дифференциального уравнения при условиях и .

При значениях параметров

Для решения краевой задачи имеется встроенная функция sbval, реализующая метод стрельб и позволяющая свести краевую задачу к задаче Коши. Функция sbval имеет следующие параметры:

  • v– вектор, содержащий начальные приближения для недостающих начальных условий,

  • xmin, xmax – границы интервала, на котором ищется решение,

  • D(x,y) – вектор–функция, содержащий правые части системы дифференциальных уравнений первого порядка, эквивалентной исходному уравнению, размер вектора n совпадает со степенью старшей производной дифференциального уравнения

  • load(xmin,v) – вектор–функция, элементы которой соответствуют n значениям функций на левой границе интервала. Часть этих значений известна, а для части заданы начальные приближения в векторе v. Их уточненные значения будут найдены в процессе вычисления

  • score(xmax,y) – вектор–функция, имеющая то же число элементов, что и v. Каждое значение является разностью между начальными значениями в конечной точке интервала и соответствующей оценки для решения. Этот вектор показывает, на сколько близко найденное решение к истинному.

Наша задача сводится к системе двух дифференциальных уравнений первого порядка:



Поэтому функция D имеет вид

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

Задача Коши для дифференциального уравнения второго порядка содержит два начальных условия. Нам известно только одно. Начальное приближение для недостающего значения задаем в векторе v, который в нашем случае состоит только из одного элемента. Несмотря на это, индекс о должен быть обязательно указан, чтобы подчеркнуть векторный характер этой величины:

На левой границе интервала нам известно значение и задано начальное приближение для . Это значение записано в . Задаем вектор-функцию load. Ее нулевой элемент – начальное значение для , первый – для .









Теперь, когда нам стало известно недостающее начальное условие в задаче Коши, можно воспользоваться, например, функцией rkfixed






^

1.6. Решение обыкновенных дифференциальных уравнений в Mathcad


Mathcad предлагает новый способ для решения обыкновенных дифференциальных уравнений, разрешенных относительно старшей производной. Для этих целей служит уже известный нам блок given совместно с функцией odesolve. Дифференциальное уравнение совместно с начальными или граничными условиями записывается в блоке given. Производные можно обозначать как штрихами (Ctrl+F7), так и с помощью знака производной . Пример использования функции для решения задачи Коши приведен ниже.

















Обратите внимание! У искомой функции явно указан аргумент, знак производной стоит перед скобкой.

Функция odesolve имеет три аргумента. Первый аргумент – независимая переменная, вторая – граница интервала, на котором ищется решение, последний аргумент – шаг, с которым ищется решение. Последний аргумент может быть опущен.

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















  1   2

Добавить документ в свой блог или на сайт

Похожие:

Решение дифференциальных уравнений iconТехническая постановка задачи
Спроектировать и реализовать объектно-ориентированный шаблон взаимодействия математической модели и численного метода интегрирования...

Решение дифференциальных уравнений iconУрок составлен в соответствии с фгост и сдп. Тема: «Решение уравнений...
Цели урока: Обобщить и систематизировать изученный материал и знания учащихся по теме: «Уравнения»

Решение дифференциальных уравнений iconУрок по теме «Решение тригонометрических уравнений»
Данный урок является уроком закрепления в теме «Решение тригонометрических уравнений»

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

Решение дифференциальных уравнений iconМетодические указания к выполнению лабораторной работе «решение систем...
В ряде практических задач управления и оптимизации приходится решать системы линейных алгебраических уравнений (слу). В настоящей...

Решение дифференциальных уравнений icon7. Системы эконометрических уравнений Виды систем регрессионных уравнений
Любая экономическая система – это сложная система с множеством входов, выходов и сложной структурой взаимосвязей показателей, характеризующих...

Решение дифференциальных уравнений iconОказание помощи студентам факультета математики, информатики и физики...
«Системы уравнений». На эту тему отдельных часов в программе не выделено, она изучается в рамках тех занятий курса «Элементарная...

Решение дифференциальных уравнений iconПрограмма для вступительных экзаменов на психологический факультет
Определение многочлена. Теорема Виета. Решение квадратных уравнений. Разложение трехчлена на множители. Выделение полного квадрата....

Решение дифференциальных уравнений icon«Решение уравнений, содержащих обратные тригонометрические функции»
Образовательные – обеспечить повторение, обобщение и систематизацию мате риала темы и создать условия контроля (самоконтроля) усвоения...

Решение дифференциальных уравнений iconТема: Решение задач при помощи квадратных уравнений. Теорема Виета
Систематизировать знания учащихся по теме "Теорема Виета" и "Квадратные уравнения"



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
lit-yaz.ru
главная страница