Главная  Длительная эволюция 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [ 19 ] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

DSolve[{x[t] == y[t], y[t] == -a2x[t], x[0]==l,y[0]==0}, {x[t],y[t]},t]

{{xM

p-Iat plat J J

В примере мы воспользовались встроенной функцией. Если необходимо нарисовать графики полученных решений или фазовый портрет динамической системы, то второй аргумент у функции DSolve следует задать в следующем виде:

sol2 = DSolve[{x[t] == y[t],y[t] == -a-2x[t], x[0]==l,y[0] 0},{x,y},{t}]

{x -> Function[t, ----1--],

Последний ответ представлен с помощью так называемых чистых функций, с которыми можно будет познакомиться позднее. Сейчас мы просто воспользуемся этим результатом для того, чтобы нарисовать графики функций хЩ и y[i\ (рис. 2.3).

Plot[Evaluate[{x[t],y[t]} /. sol2 /. а1/2], {t,-2Pi,2Pi}]

/-2.5

\. 25 \



Фазовый портрет можно нарисовать с помощью функции ParametricPlot (рис. 2.4):

ParametricPlot[Evaluate[{x[t],y[t]} /. sol2 /. а-> 1/2], {t,-2Pi,2Pi}, AspectRatio Automatic]

0.25

I -0.5

\ -0.25

05 J

Рис. 2.4

Даже усиленная версия функции DSolve не может найти символьных решений всех обыкновенных дифференциальных уравнений. Встроенной функцией „Математики", реализующей один из численных методов решения обыкновенных дифференциальных уравнений, является функция ND-Solve. Проанализируем, используя NDSolve, нелинейные колебания системы, параметры которой изменяются со временем. Пусть система описывается уравнениями: x{t) = y{t), y{t) = -x{t) - 0.7cos(0.3f)sini(f). Поставим начальные условия z(0) = 1, j/(0) = О и вычислим выражение:

nlosc = NDSolve[{x[t] == y[t],

y[t] == -x[t] - 0.7Cos[0.3t]Sin[x[t]],

x[0] == l,y[0] == 0},{x,y},{t,0,3Pi}]

{{i InterpolatingFunction[{0,9.4247S},<>],

у InterpolatingFunction[{0,9.42478}, <>]}}

Результатом вычисления являются две интерполяционные функции для x{t) н y{t) на интервале (0,9.42478). С их



помощью можно вычислить значения решения в любой точке этого интервала:

{х[1],у[1]} /. nlosc {{0.299012,-1.21722}}

или нарисовать фазовый портрет колебаний (рис. 2.5):

ParametricPlot[Evaluate[{x[t],y[t]} /. nlosc],{t,0,3Pi}, AspectRatio -> Automatic]


Рис. 2.5

Еще один способ получения приближенных решений, но уже в символьной форме - это метод рядов. Найдем приближенное ограниченное решение дифференциального уравнения ху{х) - y(i)2 - I = о в окрестности особой точки а; = О в виде отрезка степенного ряда с точностью 0[а:]. Задача сводится к определению семи коэффициентов в формуле у{х) = ао +aix + ... + абХ+ 0[ху. Поскольку решение ищется в виде отрезка ряда, определим объект:

у[х ] := SeriesData[x,0, Аггау[а,7,0]]

Обратим внимание на два обстоятельства. Во-первых, мы использовали так называемое отложенное определение, поэтому



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [ 19 ] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

0.0008