Иллюстрированный самоучитель по Mathematica 5

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

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

Пример 10.9.
Найдем решение системы дифференциальных уравнений х' = у, у' = -а2 х, удовлетворяющее начальным условиям х = 1, у' = 0 при t = 0.

Иллюстрированный самоучитель по Mathematica 5 › Алгебра и анализ › Системы дифференциальных уравнений

Теперь построим графики функций x(t) и y(t) для случая, когда параметр а принимает значение 1/2.

Иллюстрированный самоучитель по Mathematica 5 › Алгебра и анализ › Системы дифференциальных уравнений

Чтобы построить фазовый портрет, нужно воспользоваться функцией ParametricPlot.

Иллюстрированный самоучитель по Mathematica 5 › Алгебра и анализ › Системы дифференциальных уравнений

Однако не всегда функция DSolve справляется с системами дифференциальных уравнений.

Пример 10.10.
Найдем решение системы дифференциальных уравнений у"= y2 +z, z'= -2yy'+y, удовлетворяющее начальным условиям у = 0, у'= 0, z = 0 при х = 0.

sol2=DSolve[{y''[x]==y[x]^2+z[x],
z'[x]==-2*y[x]*y'[x]+y[x], y[0]==1,y'[0]==l,z[0]==0},{y,z},{x})
DSolve [{y"[x]==y[x]2+z[x],
z'[x]=y[x]-2y[x]y'[x],y[0]==1,y'[0] = 1,z[0] == 0},{y, z),{x}]

Как видите, несмотря на то что в данном случае решением является пара функций у = е*, z -ef -e1*, функция DSolve не смогла найти его. В таких случаях, как и одно дифференциальное уравнение, так и систему дифференциальных уравнений приходится решать численно.

Для этого можно воспользоваться функцией NDSolve. Вызов ее отличается от вызова функции DSolve лишь тем, что в нем нужно указать интервал, на котором ищется решение.

sol2=NDSolve[{y''[x]==y[x]^2+z[x],
2'[x]==-2*y[x]*y'[x]+y[x],
y[0]==1,y'[0]= =1, z[0]==0}, {y,z},{x,0.10}]
{{y > InterpolatingFunction[{{0.,10.}},<>],
z > InterpolatingFunction[{{0.,10.}),<>]}}

В данном случае уравнения представлены в виде интерполяционных функций для у(х) и z(x) на интервале (0, 10). Хотя это и не аналитические выражения, они позволяют вычислить значения наших функций – решений системы дифференциальных уравнений – в любой точке интервала (0, 10).

{y[5],z[5]}/.sol2
{ {148.413,-21878.}}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.