Wolfram Language Fast Introduction for Math Students
Начать работу »

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

Язык Wolfram позволяет решать обыкновенные дифференциальные уравнения, дифференциальные уравнения в частных производных и уравнения с запаздыванием.

Функция DSolveValue возвращает решение дифференциального уравнения в общем виде:

(C[1] - константа интегрирования.)
In[1]:=
Click for copyable input
sol = DSolveValue[y'[x] + y[x] == x, y[x], x]
Out[1]=

Используем символ /. для замены константы:

In[2]:=
Click for copyable input
sol /. C[1] -> 1
Out[2]=

Или добавим начальные условия для получения частного решения:

In[3]:=
Click for copyable input
DSolveValue[{y'[x] + y[x] == x, y[0] == -1}, y[x], x]
Out[3]=

Функция NDSolveValue позволяет находить численные решения:

In[1]:=
Click for copyable input
NDSolveValue[{y'[x] == Cos[x^2], y[0] == 0}, y[x], {x, -5, 5}]
Out[1]=

Объект InterpolatingFunction можно визуализировать без дополнительной обработки:

In[2]:=
Click for copyable input
Plot[%, {x, -5, 5}]
Out[2]=

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

(Обратите внимание, что перенос уравнений на новую строку не влияет на результат.)
In[1]:=
Click for copyable input
{xsol, ysol} = NDSolveValue[
  {x'[t] == -y[t] - x[t]^2,
   y'[t] == 2 x[t] - y[t]^3,
   x[0] == y[0] == 1},
  {x, y}, {t, 20}]
Out[1]=

Построим решения системы в виде параметрического графика:

In[2]:=
Click for copyable input
ParametricPlot[{xsol[t], ysol[t]}, {t, 0, 20}]
Out[2]=

Справочная информация: Дифференциальные уравнения »