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

методами Эйлера и Рунге-Кутта в системе MathCAD

Построение решений обыкновенных дифференциальных уравнений

Решение дифференциального уравнения 1-го порядка

, .

Простой метод Эйлера реализуется применением на каждом шаге вычислений следующих итерационных выражений:

,

.

Рассмотрим реализацию метода в MathCADна примере уравнения:

, , .

Аналитическое решение известно и имеет вид:

.

Краткие сведения о составлении программ в MathCAD

знак присваивает функции или переменной (они помещаются слева) выражение или число, которые помещаются справа. Набирается клавишей двоеточие «:» или из меню по цепочке View→ Toolbars→ Calculator.

знак обозначает последовательное изменение переменной через единицу от значения слева до значения справа. Набирается клавишей точка с запятой «;».

матрица вставляется командой меню Insert→ Matrixили клавишами Ctrl-M. Нижний индекс добавляется клавишей квадратная скобка «[».

Графиквставляется командой Insert→ Graph→ X-YPlotили клавишей «@».

Для удобства в работе рекомендуется отключить автоматическое вычисление, убрав галочку с опции меню Tools→ Calculate→ AutomaticCalculation. Тогда расчет не будет выполняться в ходе набора программы, а запуститься только после нажатия кнопки Calculate, расположенной на панели инструментов (в виде значка ).

Ниже приведена расчетная программа. Повторите её. Получите графики с тем же форматом линий. Формат линий графика можно изменить, открыв с помощью ПК мыши контекстное меню и выбрав Format… → Traces.

Программа для простого метода Эйлера

Шаг изменения x
Число шагов
Функция, определяющая производную
Задание цикла
Задание начальных условий
Итерационные уравнения
Результаты решения:

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

Программа для модифицированного метода Эйлера

Шаг изменения x
Число шагов
Функция, определяющая производную
Задание цикла
Задание начальных условий
Итерационные уравнения
Результаты решения:

Метод Рунге-Кутта 4-го порядка используется в тех случаях, когда необходима высокая точность расчетов, недостигаемая методами Эйлера.

Программа для метода Рунге-Кутта

Шаг изменения x
Число шагов
Функция, определяющая производную
Задание коэффициентов k1, k2, k3, k4 как функций пользователя:
Усредненная функция
Задание цикла
Задание начальных условий
Итерационные уравнения
Результаты решения:

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

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

, , .

Преобразуем задачу к системе из двух уравнений:

, ,

, .

Тогда получим следующее обобщение итерационной схемы:

. ,

, ,

, ,

, ,

, .

Отметим, что значения на каждом следующем шаге рассчитываются по значениям, полученным на предыдущем. Кроме того, использованы прежние правила «взвешивания» коэффициентов при усреднении.

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

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

,

где t– время, и искомой является зависимость ;

– круговая частота собственных колебаний;

– круговая частота внешнего воздействия с амплитудой «a».

Если , то общее решение уравнения имеет вид (проверьте подстановкой):

,

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

Когда , общее решение имеет вид:

.

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

Моделирование резонансных колебаний

Методом Рунге-Кутта найдем решение задачи:

, , , .

Согласно изложенной выше теории, аналитическое решение уравнения имеет вид:

.

Ниже приведен алгоритм расчета и его реализация в MathCAD.

Программа расчета резонансных колебаний методом Рунге-Кутта

Шаг изменения x
Число шагов
Функция в системе уравнений dy/dx = z и dz/dx = f(x,y,z)
Задание коэффициентов как функций пользователя:
Усредненные функции:
Задание цикла
Задание начальных условий
Итерационные уравнения
Результаты решения:

Задание для самостоятельного выполнения

Найти решение уравнения вынужденных колебаний:

, , , .

Решение представить в виде графика. Для сравнения привести и график точного решения (также как это было сделано для резонансных колебаний).

28. Тема 7. Решение дифференциальных уравнений и систем в MathCad. Краткие теоретические сведения

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

Rkfixed – функция для решения ОДУ и систем ОДУ методом Рунге–Кутта четвертого порядка с постоянным шагом;

Rkadapt – функция решения ОДУ и систем ОДУ методом Рунге–Кутта с переменным шагом;

Odesolve – функция, решающая ОДУ блочным методом.

Ниже приведено описание стандартной функции Rkfixed с указанием параметров функции.

Y – вектор начальных условий из K элементов (k – количество уравнений в системе);

X1 и X2 – левая и правая границы интервала, на котором ищется решение ОДУ или системы ОДУ;

P – число точек внутри интервала (x1, x2), в которых ищется решение;

D – вектор, состоящий из K-Элементов, который содержит первую производную искомой функции или первые производные искомых функций, если речь идет о решении системы.

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

На рисунке 2.7.1 приведены конкретные примеры решения различных дифференциальных уравнений и систем ОДУ в MathCAD.

При решении дифференциального уравнения первого порядка нужно создать вектор начальных условий из одного элемента Y1, который затем используется при формировании вектора-функции правой части дифференциального уравнения. При обращении к функции Rkfixed Указывается имя вектора Y, границы интервала, на котором ищется решение уравнения, например, (0 ; 2), количество точек, в которых ищется решение – 100, вектор-функция, описывающая правую часть дифференциального уравнения – D. В результате получается матрица Z, в первом столбце которой содержатся значения аргумента искомой функции, во втором – значения самой результирующей функции. При построении графика функции первый столбец полученной матрицы указывается как аргумент, второй столбец – как функция.

При решении системы дифференциальных уравнений нужно создать вектор начальных условий из двух элементов, например, вектор V, который затем используется при формировании вектора-функции правой части дифференциального уравнения. При обращении к функции Rkfixed Указывается имя вектора V, и границы интервала, на котором ищется решение уравнения, например, (0 ; 5), количество точек, в которых ищется решение – 100, вектор-функция, описывающая правую часть дифференциального уравнения – D. В результате получается матрица S, в первом столбце которой содержатся значения аргумента искомых функций, во втором и третьем столбцах – значения самих функций при соответствующем значении аргумента. При построении графика можно воспользоваться первым столбцом полученной матрицы как аргументом, а вторым и третьим столбцами – как функциями.

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

Рисунок 2.7.2 – Пример решения дифференциальных уравнений второго порядка с помощью Rkfixed

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

Документ формируется точно так же, как и при решении системы ОДУ.

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

Дифференциальные уравнения в MathCad

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

Решение данного уравнения будет представлено следующим образом.

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

Метод Эйлера

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

Постепенно проследим изменения

Сравниваем результативность и правильный ответ

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

Блок решения ОДУ

Mathcad вмещает в себя все самые важные опции для решения уравнения дифференциального типа. В данном уроке мы обратим внимание на самую важную функцию такого типа. Она характеризуется максимальной точностью и простотой использования. Методика сочетает пользование блоком решения и опцией odesolve(). Перед решением устанавливаем такие параметры:

Каждое вхождение переменной с в блок решения представляется как функция независимой переменной.

Данный метод во многом похож на принципы аналитического решения. Точно такой же результат удается получить после записи производной через штрих (Ctrl+’)

Сердце и артерии

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

Пульсирование потока можно снизить, расширяя и сжимая стенки артерии.

Перепады давления возле легких достаточно низкие. Давайте установим, что повышенное давлении в точках А и В равняется нулю. Центральный элемент – это артерия, которая может изменяться в объемах.

Допустим, что объемы сердца могут изменяться в соответствии с особенностями синусоидального закона. Однако впырск крови происходит исключительно во время положительных полуволн.

График для восьми ударов:

Средний поток представляет собой интеграл объема, который задействован при одном ударе и поделен на его продолжительность.

Расширение артерий прямо зависит от общей эластичности стенок и особенностей их строений. Однако мы в математических целях предположим, будто объем прямо зависит от превышения давления.

Чем выше эластичность стенки, тем больше оказывается значение k. Установим ему три значения.

Баланс объемов артерий:

Вышеуказанная формула приводит к таковым результатам:

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

Теперь конвертируем решения.

Максимальные показания давления прямо зависят от уровня эластичности давления. Чем она выше, тем ниже оказывается само давление.

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

Уважаемые пользователи, хотим Вас проинформировать о том, что некоторые антивирусные программы и браузеры ложно срабатывают на дистрибутив программы MediaGet, считая его зараженным. Данный софт не содержит никаких вредоносных программ и вирусов и многие из антивирусов просто Вас предупреждают, что это загрузчик (Downloader). Если хотите избежать подобных проблем, просто добавьте MediaGet в список доверенных программ Вашей антивирусной программы или браузера.

Выбрав нужную версию программы и кликнув ссылку, Вам на компьютер скачивается дистрибутив приложения MediaGet, который будет находиться в папке «Загрузки» для Вашего браузера. Находим этот файл с именем программы и запускаем его. И видим первый этап установки. Нажимаем унопку «Далее»

Далее Вам предлагается прочитать и одобрить лицензионное соглашение. Нажимаем кнопку «Принимаю»

В следующем окне Вам предлагается бесплатное полезное дополнительное программоное обеспечение, будь то антивирус или бразуер. Нажимаем кнопку «Принимаю». Также Вы можете отказаться от установки дополнительного ПО, нажав кнопку «Отклоняю»

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

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

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


источники:

http://matica.org.ua/metodichki-i-knigi-po-matematike/reshenie-zadach-v-srede-mathcad/28-tema-7-reshenie-differentcialnykh-uravnenii-i-sistem-v-mathcad-kratkie-teoreticheskie-svedeniia

http://stylingsoft.com/sapr/mathcad/uroki-mathcad/1433-differentsialnye-uravneniya-v-mathcad