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

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

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

5 .1 Вычислительный блок Given– Odesolve

Применение функции Odesolve требует записи вычислительного блока, состоящего из трех частей:

1) ключевого слова Given (Дано);

2) дифференциального уравнения и начальных или граничных условий к нему;

3) функции о desolve ( x , xk , n ) (решение ОДУ), где x – имя переменной, относительно которой решается уравнение; xk – конец интервала интегрирования (начало интервала интегрирования указано ранее, в начальных условиях); n – необязательный внутренний параметр, определяющий число шагов интегрирования, на которых решается дифференциальное уравнение.

Примеры использования функции Odesolve приведены на рис. 5.2–5.5.

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

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

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

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

в начале и в конце интервала интегрирования

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

Рис. 5.2 Решение уравнения с граничными условиями

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

MathCAD позволяет записать условие несколькими способами:

– с использованием булевых операторов:

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

– с использованием функции if :

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

В данном случае невозможно записать условие с использование условного оператора программирования if , так как вертикальной черте (обязательному признаку программирования) должен предшествовать оператор присваивания :=, тогда как в нашем случае использован знак + или знак логического равенства =.

поменяйте местами закрашенные выражения

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

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

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

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

Рис. 5.3 Объединение двух дифференциальных уравнений в одно

В MathCAD все встроенные функции для решения дифференциальных уравнений требуют записи производной высшего порядка в явном виде. Однако, как показано на рис. 5 . 2 , присутствие коэффициента (постоянного или переменного) перед производной высшего порядка – не помеха при решении ОДУ. Если уравнение есть сложная функция от высшей производной, предварительно надо решить это уравнение алгебраически относительно высшей производной. На рис. 5 .4. исходное уравнение решено символьно относительно у'(х). Для выполнения этой операции надо выделить переменную, затем в главном меню выбрать команду Symbolics → Variable → Solve (Символьные вычисления→Переменная→Решить). Найденный результат подставлен в дифференциальное уравнение, которое решено с помощью функции Odesolve.

В MathCAD 2001 i возможности функции Odesolve были расширены. Теперь она может решать и системы дифференциальных уравнений. При этом несколько изменяется обращение к ней.

Дано уравнение Mathcad решение дифференциальных уравнений odesolve

решим его относительно у'(х)

Mathcad решение дифференциальных уравнений odesolvehas solution(s) Mathcad решение дифференциальных уравнений odesolve

уравнение в стандартном виде подставим в блок Given — Odesolve

два корня уравнения дают решение ОДУ

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

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

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

Рис. 5.4 Приведение дифференциального уравнения к стандртному виду и его решение

Обращение к функции для решения одного уравнения выглядит так:

о desolve ( x , xk , n ),

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

о desolve ((вектор имен неизвестных), x , xk , n ).

Н а рис. 5 .5 приведено решение системы из трех дифференциальных уравнений первого порядка. соответственно, вектор имен неизвестных содержит имена трех неизвестных, х, у и z . Граничные условия заданы в точке t = –1. конечная точка интервала интегрирования t =3. Следовательно, интервал интегрирования от –1 до 3. Конечное значение всегда должно быть больше начального.

Если график строится для значений, выходящих за пределы интервала интегрирования, MathCAD экстраполирует значения функции за пределы интервала интегрирования, получая чаще всего неправдоподобные результаты.

Mathcad решение дифференциальных уравнений odesolveЕсли в MathCAD 11 функция Odesolve решает системы уравнений только с начальными параметрами, то в MathCAD 12, 13, 14 – и с начальными, и с граничными условиями.

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

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

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

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

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

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

Рис. 5.5 Решение системы ОДУ функцией Odesolve

В MathCAD 2001 i у функции Odesolve появилась возможность принимать в качестве ограничений алгебраические уравнения (рис. 5.6 и 5.7), но только в задачах с начальными условиями.

Рассмотрим механизм работы блока Odesolve: блок Odesolve преобразует заданные дифференциальные уравнения к стандартному виду, используемому функциями rkfixed и Rkadapt . С помощью указанных функций он решает систему ОДУ (или одно ОДУ) с начальными условиями. В результате расчета получают массив значений функции и ее производные.

Далее используются функции интерполяции lspline и interp , преобразующие массив решений системы ОДУ в функцию, которую затем можно дифференцировать или интегрировать. Необязательный параметр steps в обращении к функции Odesolve как раз и задает число точек интерполяции. Чем больше steps , тем выше точность интерполяции, но тем больше время решения задачи.

При решении системы ОДУ есть возможность выбрать метод решения. Для этого надо установить курсор на слове Odesolve и нажать правую кнопку мыши. В открывшемся контекстном меню выбрать Fixed (Решение с фиксированным шагом функцией rkfixed ), Adaptive (Решение с переменным шагом функцией Rkadapt ) или Stiff (Решение жесткой системы ОДУ функцией Radau ) , как показано на рис. 5.7 .

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

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

Mathcad решение дифференциальных уравнений odesolveалгебраическое уравнение

требуется 6 начальных условий:

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

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

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

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

Рис. 5. 6 Решение системы ОДУ с алгебраическими ограничениями функцией Odesolve

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

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

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

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

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

Рис. 5.7 В ыбор метода решения дифференциальных уравнений

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

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

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

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

В статье рассмотрена работа функции odesolve для графического решения дифференциального уравнения в программе mathcad версии 15 и старше

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

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

Функция odesolve

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

В свободном поле mathcad введите оператор Given. Этот оператор запускает процесс ввода исходных данных для корректной работы функции odesolve. После этого найдите панель под названием Calculus. В этой панели нам понадобятся кнопки Derivative и Nth Derivative. Эти кнопки вводят заготовки для дифференциального уравнения. С помощью клавиатуры введите уравнение, как показано на рисунке 1. Знак равенства необходимо использовать из панели Boolean

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

Рис. 1. Ввод исходных данных для решения дифференциального уравнения

Далее введите начальные приближения. Количество начальных приближений зависит от порядка дифференциального уравнения. В нашем случае их будет 2. Введите приближения, как показано на рисунке 2. Обратите внимание, что для ввода значания первой производной вам нужно использовать символ «верхний апостроф«. Если вы его не можете ввести с клавиатуры вручную воспользуйтесь приложением windows Capter Map или используйте комбинацию клавиш Alt + 96 или Alt + 39

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

Рис. 2. Ввод первого приближения для решения дифференциального уравнения

Теперь, после начального приближения введите любую переменную (например y) и присвойте ей функцию Odesolve, как показано на рисунке 3. В качестве параметров функции Odesolve используется переменная t и интервал интегрирования. В нашем случае интервал равен 15

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

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

Можно отобразить функцию y на графике, где в качестве аргумента будет переменная t. Этот график и будет являться решением дифференциального уравнения. Обратите внимание, что график строится в пределах интервала интегрирования. Особенности оформления и отображения графиков в mathcad 15 смотрите в соответствующем разделе

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

Рис. 4. Вывод результата решения дифференциального уравнения на график

После корректного решения дифференциального уравнения функцию y(t) можно использовать далее в расчетах

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

Рис. 5. Результат решения дифференциального уравнения в mathcad 15 и старше

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

Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel venenatis mauris vehicula hendrerit.

Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.

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

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

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

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

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

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 решение дифференциальных уравнений odesolve Mathcad решение дифференциальных уравнений odesolve

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

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

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 решение дифференциальных уравнений odesolveMathcad решение дифференциальных уравнений odesolve

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

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

Если матрица правых частей дифференциальных уравнений почти вырождена, то такие системы называются жесткими. В этом случае решения, возвращаемые функцией 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 решение дифференциальных уравнений odesolve

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

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

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

Набор парамтров для этих функций :
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 решение дифференциальных уравнений odesolveMathcad решение дифференциальных уравнений odesolve

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

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

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

🔥 Видео

Решение дифференциальных уравнений. Решение задачи Коши. Урок 45Скачать

Решение дифференциальных уравнений. Решение задачи Коши. Урок 45

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

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

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

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

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

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

5 Численное решение дифференциальных уравнений Part 1Скачать

5  Численное решение дифференциальных уравнений Part 1

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

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

Mathcad Линейные дифференциальные уравнения первого порядкаСкачать

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

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

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

Mathcad - Differential EquationsСкачать

Mathcad - Differential Equations

Решение дифференциальных уравнений. Решение ОДУ 2-го порядка. Урок 46Скачать

Решение дифференциальных уравнений. Решение ОДУ 2-го порядка. Урок 46

Обзор функций в MathCAD 14 (32/34)Скачать

Обзор функций в MathCAD 14 (32/34)

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

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

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

Ключевое слово solve в MathCAD 14 (26/34)

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

Mathcad-09. Пример: уравнения
Поделиться или сохранить к себе:
Mathcad решение дифференциальных уравнений odesolve