Как решать системы дифференциальных уравнений в mathcad

Видео:Пример решения уравнения в MathCAD 14 (33/34)Скачать

Пример решения уравнения в MathCAD 14 (33/34)

Как решать системы дифференциальных уравнений в mathcad

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

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

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

Дифференциальные уравнения первого порядка

Дифференциальное уравнение первого порядка — это уравнение, которое не содержит производных выше первого порядка от неизвестной функции. На Рисунке 1 показан пример того, как решить относительно простое дифференциальное уравнение:

Как решать системы дифференциальных уравнений в mathcad

с начальными условиями: y(0) = 4

Функция rkfixed на Рисунке 1 использует для поиска решения метод Рунге-Кутты четвертого порядка. В результате решения получается матрица, имеющая два следующих столбца:

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

Как решать системы дифференциальных уравнений в mathcad

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

Функция rkfixed имеет следующие аргументы:

y =Вектор начальных условий размерности n, где n — порядок дифференциального уравнения или число уравнений в системе (если решается система уравнений). Для дифференциального уравнения первого порядка, как, например, для уравнения, приведенного на Рисунке 1, вектор начальных значений вырождается в одну точку y0 = y(x1).
x1, x2 =Граничные точки интервала, на котором ищется решение дифференциальных уравнений. Начальные условия, заданные в векторе y, — это значение решения в точке x1.
npoints =Число точек (не считая начальной точки), в которых ищется приближенное решение. При помощи этого аргумента определяется число строк (1 + npoints) в матрице, возвращаемой функцией rkfixed.
D (x, y) =Функция, возвращающая значение в виде вектора из n элементов, содержащих первые производные неизвестных функций.

Наиболее трудная часть решения дифференциального уравнения состоит в определении функции D(x, y), которая содержит вектор первых производных от неизвестных функций. В примере, приведенном на Рисунке 1, было достаточно просто разрешить уравнение относительно первой производной , и определить функцию D(x, y). Иногда, особенно в случае нелинейных дифференциальных уравнений, это может быть трудно. В таких случаях иногда удаётся разрешить уравнение относительно в символьном виде и подставить это решение в определение для функции D(x, y). Используйте для этого команду Решить относительно переменной из меню Символика.

Как решать системы дифференциальных уравнений в mathcad

Рисунок 2: Более сложный пример, содержащий нелинейное дифференциальное уравнение.

Дифференциальные уравнения второго порядка

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

  • Вектор начальных условий y теперь состоит из двух элементов: значений функции и её первой производной в начальной точке интервала x1.
  • Функция D(t, y) является теперь вектором с двумя элементами:

Как решать системы дифференциальных уравнений в mathcad

  • Матрица, полученная в результате решения, содержит теперь три столбца: первый столбец содержит значения t, в которых ищется решение; второй столбец содержит y(t); и третий — y‘(t).
  • Пример, приведенный на Рисунке 3, показывает, как решить следующее дифференциальное уравнение второго порядка:

    Как решать системы дифференциальных уравнений в mathcad

    Рисунок 3: Решение дифференциального уравнения второго порядка.

    Уравнения более высокого порядка

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

    • Вектор начальных значений y теперь состоит из n элементов, определяющих начальные условия для искомой функции и ее производных y, y’ , . y (n-1)
    • Функция D является теперь вектором, содержащим n элементов:

    Как решать системы дифференциальных уравнений в mathcad

  • Матрица, получаемая в результате решения, содержит теперь n столбцов: первый — для значений t, и оставшиеся столбцы — для значений y (t), y’ (t), (t). y (n-1) (t).
  • Пример, приведенный на Рисунке 4, показывает, как решить следующее дифференциальное уравнение четвертого порядка:

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

    Как решать системы дифференциальных уравнений в mathcad

    Рисунок 4: Решение дифференциального уравнения более высокого порядка.

    Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter

    Видео:Работа с 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 14 (34/34)Скачать

    Пример решения системы уравнений в MathCAD 14 (34/34)

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

    Как решать системы дифференциальных уравнений в mathcad

    Краткие теоретические сведения

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

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

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

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

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

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

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

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

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

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

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

    Как решать системы дифференциальных уравнений в mathcad

    Как решать системы дифференциальных уравнений в mathcad

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

    При решении дифференциального уравнения первого порядка нужно создать вектор начальных условий из одного элемента Y 1 , который затем используется при формировании вектора-функции правой части дифференциального уравнения. При обращении к функции 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 показана возможность вычисления вектора второй производной найденной функции – вектора а, построены графики исходной функции, функций первой и второй производных.

    Практическая часть темы 7

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

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

    q сформировать вектор начальных условий из одного элемента, присвоив начальное значение искомой функции переменной с индексом, например: Как решать системы дифференциальных уравнений в mathcadили Как решать системы дифференциальных уравнений в mathcad(в зависимости от значения переменной ORIGIN );

    q определить вектор-функцию из одного элемента, которая содержит первую производную неизвестной функции:

    · набрать имя функции с двумя параметрами: первый параметр – аргумент искомой функции (независимая переменная), второй – имя вектора, содержащего искомую функцию (можно использовать имя вектора начальных условий), например, D ( x , Y );

    · набрать оператор «:=» и выражение для первой производной (выразить из дифференциального уравнения), в котором вместо имени искомой функции подставлен первый элемент вектора-параметра, например, для уравнения Как решать системы дифференциальных уравнений в mathcadвектор-функция будет определятся следующим образом: Как решать системы дифференциальных уравнений в mathcad( если ORIGIN = 0 , подставлять Как решать системы дифференциальных уравнений в mathcad);

    q присвоить некоторой переменной значение функции rkfixed , указав в скобках следующие параметры:

    · первый – имя вектора начальных условий,

    · второй – левая граница интервала, на котором ищется решение, в виде числовой константы,

    · третий – правая граница интервала, на котором ищется решение, в виде числовой константы,

    · четвертый – количество точек, в которых ищется решение,

    · пятый – имя вектора-функции, описывающего первую производную, без параметров;

    например: Как решать системы дифференциальных уравнений в mathcad,

    (в результате получится матрица Z , в первом столбце которой содержатся значения аргумента искомой функции, во втором – значения самой функции);

    q вывести матрицу, содержащую решение ДУ с помощь оператора «=», например: Z = ;

    q построить график найденной функции ( см. тему 5 ), указав в качестве аргумента по оси абсцисс столбец Как решать системы дифференциальных уравнений в mathcad, а в качестве значения функции по оси ординат – столбец Как решать системы дифференциальных уравнений в mathcad( если ORIGIN = 0 , набирать соответственно Как решать системы дифференциальных уравнений в mathcadи Как решать системы дифференциальных уравнений в mathcad).

    Пример 7.1 Найти численное решение дифференциального уравнения первого порядка Как решать системы дифференциальных уравнений в mathcadна интервале от 0.2 до 5 в 1000 точках, при начальном условии y (0)=0.1.

    Выполнить графическую интерпретацию результатов.

    Как решать системы дифференциальных уравнений в mathcad

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

    Последовательность действий для р ешения системы дифференциальных уравнений первого порядка такова (описана для значения ORIGIN =0 ):

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

    например, систему Как решать системы дифференциальных уравнений в mathcadможно преобразовать в Как решать системы дифференциальных уравнений в mathcad;

    q в документе MathCad сформировать вектор начальных условий, количество элементов которого равно количеству уравнений системы, присвоив его некоторой переменной (см. тему 2);

    например, Как решать системы дифференциальных уравнений в mathcad;

    q определить вектор-функцию, которая содержит первые производные искомых функций:

    · набрать имя функции с двумя параметрами: первый параметр – аргумент искомых функций (независимая переменная), второй – имя вектора, содержащего искомые функции (можно использовать имя вектора начальных условий), например, D ( t , V );

    (Замечание: если независимая переменная явно не присутствует в системе, то в качестве ее имени можно выбрать любую переменную)

    · набрать оператор «:=» и вставить шаблон вектора, количество элементов которого равно количеству уравнений системы (см. тему 2)

    · набрать в качестве элементов вектора правые части системы уравнений, в которых искомые функции представлены соответствующими элементами вектора-параметра, например,

    Как решать системы дифференциальных уравнений в mathcad;

    q присвоить некоторой переменной значение функции rkfixed , указав в скобках следующие параметры:

    · первый – имя вектора начальных условий,

    · второй – левая граница интервала, на котором ищется решение, в виде числовой константы,

    · третий – правая граница интервала, на котором ищется решение, в виде числовой константы,

    · четвертый – количество точек, в которых ищется решение,

    · пятый – имя вектора-функции, описывающего первые производные, без параметров;

    например: Как решать системы дифференциальных уравнений в mathcad,

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

    q вывести матрицу, содержащую решение системы ДУ с помощь оператора «=», например: Z = ;

    q построить графики найденных функций ( см. тему 5 ), указав в качестве аргумента по оси абсцисс первый столбец матрицы решений, например, Как решать системы дифференциальных уравнений в mathcad, а в качестве значений функций по оси ординат – остальные столбцы матрицы через запятую, например, Как решать системы дифференциальных уравнений в mathcad, Как решать системы дифференциальных уравнений в mathcadи т. д.

    Пример 7.2 Найти решение системы дифференциальных уравнений

    Как решать системы дифференциальных уравнений в mathcad

    на интервале от 0 до 0.5 в 1000 точках, при следующих начальных условиях: x (0)=0.1 и y (0)=1.

    Выполнить графическую интерпретацию результатов.

    🎬 Видео

    Решение систем Д/У: 1. Знакомство с функциями odeXYСкачать

    Решение систем Д/У: 1. Знакомство с функциями odeXY

    Средство для решения систем уравнений в MathCAD 14 (29/34)Скачать

    Средство для решения систем уравнений в MathCAD 14 (29/34)

    MathCAD Решение системы уравненийСкачать

    MathCAD  Решение системы уравнений

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

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

    Решение дифференциальных уравнений в вычислительной среде Mathcad с помощью функционала Rkadapt .Скачать

    Решение дифференциальных уравнений в вычислительной среде Mathcad с помощью функционала Rkadapt .

    Mathcad-09. Пример: уравненияСкачать

    Mathcad-09. Пример: уравнения

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

    1 Одно уравнение

    Системы дифференциальных уравнений. Часть 2Скачать

    Системы дифференциальных уравнений. Часть 2

    Решение СЛАУ в пакете MathCadСкачать

    Решение СЛАУ в пакете MathCad

    Mathcad Prime. Урок 5 - Способы решения уравненийСкачать

    Mathcad Prime. Урок 5 - Способы решения уравнений

    Решение системы дифференциальных уравнений методом ЭйлераСкачать

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

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

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

    Математика это не ИсламСкачать

    Математика это не Ислам

    MathCAD Решение системы линейных уравнений матричным методомСкачать

    MathCAD  Решение системы линейных уравнений матричным методом

    Ключевое слово solve в MathCAD 14 (26/34)Скачать

    Ключевое слово solve в MathCAD 14 (26/34)
    Поделиться или сохранить к себе:
    Как решать системы дифференциальных уравнений в mathcad