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

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

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

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

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта.

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

Решение дифференциальных уравнений в mathcad рунге кутта,

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

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

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта.

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

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

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

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

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

Решение дифференциальных уравнений в mathcad рунге куттаматрица вставляется командой меню Insert→ Matrixили клавишами Ctrl-M. Нижний индекс добавляется клавишей квадратная скобка «[».

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

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

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

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

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

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

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

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

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

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

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

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

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

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта.

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

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта,

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта.

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

Решение дифференциальных уравнений в mathcad рунге кутта. Решение дифференциальных уравнений в mathcad рунге кутта,

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта,

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта,

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта,

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта.

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

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

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

Решение дифференциальных уравнений в mathcad рунге кутта,

где t– время, и искомой является зависимость Решение дифференциальных уравнений в mathcad рунге кутта;

Решение дифференциальных уравнений в mathcad рунге кутта– круговая частота собственных колебаний;

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

Если Решение дифференциальных уравнений в mathcad рунге кутта, то общее решение уравнения имеет вид (проверьте подстановкой):

Решение дифференциальных уравнений в mathcad рунге кутта,

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

Когда Решение дифференциальных уравнений в mathcad рунге кутта, общее решение имеет вид:

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

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

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

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

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта.

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

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

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

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

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

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

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

Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта, Решение дифференциальных уравнений в mathcad рунге кутта.

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

Видео:Метод ЭйлераСкачать

Метод Эйлера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Видео:Работа с MathCad Prime. Решение дифференциальных уравнений.Скачать

Работа с MathCad Prime. Решение дифференциальных уравнений.

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

Электронный курс по MathCAD

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

5.2 Решение дифференциальных уравнений и систем.(Задача Коши и граничные задачи).


Решение одиночного дифференциального уравнения.

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

Odesolve(x,b,[step]) — Возвращает функцию, которая является решением дифференциального уравнения. Используется в блоке с оператором Given.
x — переменная интегрирования, действительное число
b — конечная точка отрезка интегрирования
step — величина шага по переменной интегрирования (необязательный аргумент)

Замечания:

  1. Уравнение должно быть линейным относительно старшей производной.
  2. Число заданных начальных или граничных условий внутри блока должно быть равно порядку уравнения.
  3. При записи уравнения для обозначения производных функции используйте специальные кнопки с панели Math или ‘ (штрих) — [Ctrl+F7], для знака равенства = [Ctrl+=] (в том числе и для дополнительных условий).
  4. Конечная точка должна быть больше начальной.
  5. Не допускаются начальные и граничные условия смешанного типа (f ‘(a)+f(a)=5).
  6. Искомая функция в блоке дложна быть обязательно с аргументом ( f(x))

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

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

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

rkfixed(y,x1,x2,n,F) — возвращает матрицу решений системы уравнений методом Рунге-Кутта 4-го порядка при фиксированном шаге по x

rkadapt(y,x1,x2,n,F) — ищет решение с переменным шагом ( там, где решение меняется медленнее, шаг увеличивается, а в области быстрого изменения решения шаг функции уменьшается). Возвращается решение с равным шагом. Функция работает быстрее, чем rkfixed

Bulstoer(y,x1,x2,n,F) — дает более точное решение (методом Bulirsch-Stoer)

Агрумкнты вышеуказанных функций:
y — вектор начальных условий
x1,x2 — границы интервала для поиска решения
n — количество точек на интервале
F(x,y) — вектор-функция первых производных

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

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

В результате работы укзанных функций рассчитывается матрица, количество стобцов которой равно порядку уравнения +1(или сумме порядков уравнений в системе +1), а количество строк равно параметру n. Первый столбец содержит значения независимой переменной, второй — значение функции, третий — для диф. уравнений 2-го порядка — значение производной искомой функции (если решается система двух уравнений 1-го порядка, то третий столбец будет содержать значения второй функции). Для выделения решений (функций или их производных) можно воспользоваться стандартным оператором вывода столбцов матрицы M &lt &gt

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

Если матрица правых частей дифференциальных уравнений почти вырождена, то такие системы называются жесткими. В этом случае решения, возвращаемые функцией rkfixed будет неустойчивым и для решения таких систем необходимо применять функции Stiffb , Stiffr

Stiffb(y,x1,x2,n,F,J) — ищет решение диф. уравнения или системы дифференциальных уравнений методом Bulirsch-Stoer

Stiffr(y,x1,x2,n,F,J) — ищет решение диф. уравнения или системы дифференциальных уравнений методом Rosenbrock

Первые пять аргументов такие же,как и при решении хорошо обусловленных систем дифференциальных уравнений . Дополнительный аргумент — матрица J размером nx(n+1), первый столбец которой содержит частные производные dF/dx, остальные столбцы и строки представляют собой матрицу Якоби dF/dy

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

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

Для отыскания решения системы диф. уравнений только в конечной точке используются функции bulstoer,rkadapt, stiffb, stiffr (начинаются с прописной буквы).

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

Набор парамтров для этих функций :
bulstoer(y,x1,x2,acc,F,kmax,save)
rkadapt(y,x1,x2,acc,F,kmax,save)
stiffb(y,x1,x2,acc,F,J,kmax,save)
stiffr(y,x1,x2,acc,F,J,kmax,save)

Первые три параметра и пятый (F) этих функций те же, что идля функции Rkadapt. Дополнительные параметры:
acc — параметр, контролирующий точность решения (реком. асс=0.001)
kmax — максимальное число промежуточных точек в которых ищется решение
save — минимально допустимый интервал между точками, в которых ищется решение

Решение граничных задач для обыкновенных дифференциальных уравнений.

Если для дифференциального уравнения n-го порядка k граничных условий заданы в начальной точке х1, а (n-k) граничных условий — в конечной точке х2, то такая задача называется краевой. В MathCAD реализованы две функции, позволяющие численно найти недостающие условия в точках х1 и х2.

Двухточечная краевая задача

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

sbval(v,x1,x2,F,load,score) — ищет недостающие начальные условия в точке х1
v — вектор началных приближений для искомых начальных значений в точке х1,
х1,х2 — граничные точки интервала
F(x,y) — вектор-столбец из n элементов, содержит правые части дифференциальных уравнений
load(x1,v) — вектор-столбец из n элементов, содержит начальные значения в точке х1; некоторые из значений- константы, другие неизвестны и будут найдены в процессе решения.
score(x2,y) — вектор-столбец размерности вектора v, содержащий разность между начальным условием в точке х2 и значеием искомого решения в этой точке.

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

Краевая задача с условиями внутри интервала.

На первом этапе используется функция

balfit(V1,V2,x1,x2,xf,F,load1,load2,score) — ищет недостающие начальные условия в точках х1 и х2, сшивая решения, выходящие из этих точек, в точке xf
V1,V2 — вектора началных приближений для искомых начальных значений в точках х1 и х2
х1,х2 — граничные точки интервала
load1(x1,V1) — вектор-столбец из n элементов, содержит начальные значения в точке х1; некоторые из значений- константы, другие неизвестны и будут найдены в процессе решения
load2(x2,V2) — вектор-столбец из n элементов, содержит начальные значения в точке х2; некоторые из значений- константы, другие неизвестны и будут найдены в процессе решения.
score(xf,y) — вектор-столбец размерности n, содержащий разность между решениями, начинающимися в точках х1 и х2, в точке xf

💡 Видео

Mathcad-10. Пример: дифференциальные уравненияСкачать

Mathcad-10. Пример: дифференциальные уравнения

Численное решение задачи Коши методом ЭйлераСкачать

Численное решение задачи Коши методом Эйлера

3_11. Алгоритм Рунге-КуттыСкачать

3_11. Алгоритм Рунге-Кутты

6.4 Явные методы Рунге-КуттыСкачать

6.4 Явные методы Рунге-Кутты

04 Метод Рунге-Кутты 4-го порядкаСкачать

04 Метод Рунге-Кутты 4-го порядка

Решение задачи Коши в MathCADСкачать

Решение задачи Коши в MathCAD

Методы численного анализа - Метод Рунге-Кутта для ОДУ 2 порядкаСкачать

Методы численного анализа - Метод Рунге-Кутта для ОДУ 2 порядка

Решение ОДУ методом Рунге-Кутта 4 порядка (программа)Скачать

Решение ОДУ методом Рунге-Кутта 4 порядка (программа)

Численные методы решения ДУ: метод Рунге-КуттаСкачать

Численные методы решения ДУ: метод Рунге-Кутта

Решение ОДУ методом Рунге КуттаСкачать

Решение ОДУ методом Рунге Кутта

Решение ОДУ: метод Рунге КуттаСкачать

Решение ОДУ: метод Рунге Кутта

RungeKutta1VBAСкачать

RungeKutta1VBA

4a. Методы Рунге-КуттаСкачать

4a. Методы Рунге-Кутта

Тестирование метода Рунге-Кутта. Решение дифуравненийСкачать

Тестирование метода Рунге-Кутта. Решение дифуравнений

Самый короткий тест на интеллект Задача Массачусетского профессораСкачать

Самый короткий тест на интеллект Задача Массачусетского профессора

6.1 Численные методы решения задачи Коши для ОДУСкачать

6.1 Численные методы решения задачи Коши для ОДУ

1 Одно уравнениеСкачать

1 Одно уравнение
Поделиться или сохранить к себе:
Решение дифференциальных уравнений в mathcad рунге кутта