Дифференциальные уравнения. Решение дифференциальных уравнений в символьном виде.
Дифференциальными принято называть уравнения, в состав которых входят производные функции у(х), представляющей решение уравнения. Дифференциальные уравнения могут быть представлены в различной форме, например в общеизвестной форме Коши:
y'(x)
=
eqn
=
f(x, y)
Несколько дифференциальных уравнений образуют систему дифференциальных уравнений. Решение таких систем также возможно средствами Mathematica и подробно описано в ряде книг по использованию системы. Дифференциальные уравнения и системы дифференциальных уравнений могут быть линейными и нелинейными. Для линейных уравнений обычно существуют решения в аналитическом виде. Нелинейные дифференциальные уравнения в общем случае аналитических решений не имеют, но могут решаться приближенными численными методами.
Дифференциальные уравнения широко используются в практике математических вычислений. Они являются основой при решении задач моделирования – особенно в динамике. Немногие математические системы имеют реализации численных методов решения систем дифференциальных уравнений. Но система Mathematica имеет средства как для символьного, так и для численного решения дифференциальных уравнений и их систем.
Для решения дифференциальных уравнений в символьном виде используются следующие средства:
- DSolve[eqn, y[x], х] – решает дифференциальное уравнение относительно функций у [ х ] с независимой переменной х;
- DSolve[{eqnl, eqn2,…}, {yl [xl,…],…}, {xl,…}]– решает систему дифференциальных уравнений.
У функции DSolve и ее численного варианта NDSolve есть пара опций, на которые следует обратить внимание:
- DSolveConstants – опция к DSolve, определяющая постоянные интегрирования, которые будут использованы в результате;
- StartingStepSize – опция к NDSolve, определяющая величину начального шага.
В решении дифференциальных уравнений встречаются постоянные интегрирования. По умолчанию они обозначаются как С [ i ].
Приведем примеры решения дифференциальных уравнений:
DSolve [Derivative [
1
] [y] [x]
=
=
2
*
a
*
x
^
3
, y[x], x]
{{y[x]
>
ax4
/
2
+
C[
1
]}}
DSolve[{y1`[x]
=
=
2
x2, y2`[x]
=
=
3
x}, {y1[x], y2[x]}, x]
{{y1[x]
>
-
2x3
/
3
+
C[
1
], y2[x]
>
3x2
/
2
+
C[
2
]}}
DSo2ve{y`[x]
+
y[x]
=
=
x, y[x], x}
{{y[x]
-
*
-
1
+
x
+
e
-
xC[
1
]}}
DSolve [y``[x]
-
y`[x]
-
6
y [x]
=
=
0
, y [x], x]
{{y[x]
>
| e
-
4xC
[
1
]
+
C[
2
]
-
Cos[
2x
]
-
|sin[
2x
]}}
DSolve [y``[x]
+
4
y`[x]
=
=
10
Sin [
2
x], y [x], x]
{{y[x]
>
| e
-
4xC
[
1
]
+
C[
2
]
-
Cos[
2x
]
-
|sin[
2x
]}}
DSolve[y`[x]
=
=
Sin[Ex], y[x], x]
{{y[x]
>
C[
1
]
+
Sinlntegral[ex]}}
DSolvefz2 w``[z]
+
zw`[z]
-
(z2
+
1
)w[z]
=
=
0
, w[z], z]
{{w[z]
>
BesselI[
1
, z] C[
1
]
+
BesselK[
1
, z] C[
2
] }}
Как нетрудно заметить, аналитические решения дифференциальных уравнений могут содержать не только элементарные, но и специальные математические функции, что заметно расширяет возможности применения системы Mathematica в решении задач динамического моделирования.