Алгебра и пакет Mathematica 5

         

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



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

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

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

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

Однако не всегда функция 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], у[0]==1,у'[0]==l,z[0]==0},{y,z},{x})
DSolve [{у"[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'[х]==-2*у[х]*у'[х]+у[х],
у[0]==1,у'[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.}} 


Несложно представить решение и в табличном виде. Ниже, например, приведена таблица значений функций у(х) и z(x) на отрезке [1, 5].

Конечно, это совершенно нечитаемо, и лучше превратить это в обычную таблицу.

x
y(x)
z(х)
1
2.71828
-4.67077
1.2
3.32012
-7.70305
1.4
4.0552
-12.3894
1.6
4.95303
-19.5795
1.8
6.04965
-30.5486
2.
7.38906
-47.2091
2.2
9.02501
-72.4259
2.4
11.0232
-110.487
2.6
13.4637
-167.808
2.8
16.4446
-253.982
3.
20.0855
-383.343
3.2
24.5325
-577.312
3.4
29.9641
-867.883
3.6
36.5982
-1302.83
3.8
44.7012
-1953.49
4.
54.5981
-2926.36
4.2
66.6863
-4380.38
4.4
81.4508
-6552.79
4.6
99.4843
-9797.64
4.8
121.51
-14643.3
5.
148.413
-21878.


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

Содержание раздела