Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

[Trenogin_V.A.]_Obueknovennuee_differencialnuee_ur(BookZZ.org)

.pdf
Скачиваний:
52
Добавлен:
25.03.2016
Размер:
2.76 Mб
Скачать

§ 6. Метод малого параметра

291

Получаем решение задачи:

y[x] /. sol

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{1+x+

x2

 

 

2x3

 

7x4

11x5

 

 

22x6

559x7

 

 

+

 

 

+

 

 

 

+

 

+

45 +

 

+

2

3

12

20

1260

 

447x8

1637x9

 

 

29549x10

 

}

 

 

 

+

 

+

 

 

+

 

 

 

 

 

1120

 

4536

90720

 

 

 

 

§6. Метод малого параметра

Пр и м е р. Для задачи Коши y + y = εxy2, y(0) = 1 найти три члена разложения решения по степеням малого параметра ε.

Поскольку правая часть уравнения аналитична по y, ε, решение ищем в виде

n=3;

n

y[x_]:= εi yi[x];

i=0

Подставим ряд в уравнение и приравняем коэффициенты при одинаковых степенях ε:

eq = Expand[y’[x] + y[x] - ε x y[x]2];

eq1 = Table[Coefficient[eq,ε, i] == 0, {i, 0, n}] {y0[x]+y0’[x] == 0,-xy0[x]2 + y1[x] + y1’[x] == 0, -2xy0[x]y1[x] + y2[x] + y2’[x]==0,

-xy1[x]2 - 2xy0[x]y2[x] + y3[x] + y3’[x]==0}

Запишем начальные условия:

cond = {y0[0] == 1, y1[0] == 0, y2[0] == 0, y3[0] == 0};

Теперь последовательно решаем рекуррентную систему eq1, используя начальные условия cond:

ust={};

Do[r1 = DSolve[{eq2[[i + 1]] /. ust, cond[[i + 1]]}, yi[x],x] // Flatten; ust = Append[ust, r1[[1]]];

Print[r1], {i, 0, n}] {y0[x] ex}

{y1[x] e2x(-1+ex-x)} {y2[x] e3x(-1+ex-x)2} {y3[x] e4x(-1+ex-x)3}

Итак, получаем решение нашей задачи:

n

y[x]/.{ y[x] → εi yi[x] } /.ust

i=0

ex+e2x(-1+ex-x)ε+ e3x(-1+ex-x)2ε2 +e4x(-1+ex-x)3ε3

19*

292 Доп. III. Решение задач с использованием системы Mathematica

§ 7. Уравнение Эйри

П р и м е р. Рассмотрим следующую

задачу Коши для ДУ Эйри

(см. гл. V).

 

Дано уравнение y + xy, y(0) = 1,

y (0) = 0. Построить решение

ввиде степенного ряда.

Ре ш е н и е. Решение можно найти в явном виде:

sol = DSolve[{y”[x] + xy[x] == 0, y[0] == 1, y’[0] == 0}, y[x], x] {{y[x] 12 (32/3AiryAi[(-1)1/3x]Gamma[ 12 ]+

31/6 AiryBi[(-1)1/3x] Gamma[ 12 ])}}

Построим график (рис. 94):

gr1 = Plot[{y[x] /. sol }, {x, 0, 20}];

1

 

 

 

 

0.75

 

 

 

 

0.5

 

 

 

 

0.25

 

 

 

 

0

 

 

 

 

-0.25

 

 

 

 

-0.5

 

 

 

 

-0.75

 

 

 

 

-1

-0.5

0

0.5

1

Рис. 94

Найдем решение в виде степенного ряда:

y[x_] := an xn

n=0

Подставим ряд в уравнение, получим тождество:

y”[x] + xy[x]==0

(-1+n)nx2+nan + x xn an==0

n=0

n=0

Объединяем две суммы в одну, получим

2a2 + ((-1+n)n an + an-3)xn-2==0

n=2

Отсюда 2a2 = 0, (1 + n)nan + an−3, и получаем рекуррентную формулу an = −an−3/(n(n − 1)).

§ 8. Задача о релаксационных колебаниях

293

Запишем эти соотношения для коэффициентов и многочлена степени 100 в виде операторов:

a0=1; a1=0; a24=0;

Do[an =- an-3/(n(n-1)),{n,3,100}];

100

y1= xn an

n=0

Выведем первые 10 членов многочлена:

Take[y1,10]

 

x3

 

 

x6

x9

x12

x15

x18

1-

 

+

 

 

-

 

+

 

-

 

+

109930867200 -

6

180

12960

1710720

359251200

 

 

 

x21

 

 

x24

 

 

x27

46170964224000 + 25486372251648000 - 17891433320656896000

Построим график (рис. 95):

gr2 = Plot[{y1}, {x, 0, 10}]

1

0.75

0.5

0.25

2

4

6

8

10

-0.25 -0.5

Рис. 95

Как видим из рисунков, графики совпадают. Решение в виде степенного ряда можно построить практически любой длины.

§ 8. Задача о релаксационных колебаниях

Пример 1. Построить график решения уравнения, описывающего релаксационные колебания,

x + x − α(1 − x2)x = 0.

Р е ш е н и е. Напишем уравнение и его численное решение для различных значений параметра α (α = 10 на рис. 96, α = 100 на рис. 97):

sol[α_] := NDSolve[{x”[t] + x[t] - α(1 - x[t]2)x’[t] == 0, x’[0] == 1, x[0] == 0}, x[t],{t,0,α *10}, MaxStep → ∞];

Plot[Evaluate[x[t] /. sol[10], {t, 0, 200}], AxesLabel {"t "X"}] Plot[Evaluate[x[t] /. sol[100], {t, 0, 200}], AxesLabel {"t "X"}]

294 Доп. III. Решение задач с использованием системы Mathematica

X

 

 

 

2

 

 

 

1

 

 

 

50

100

150

200 t

-1

 

 

 

-2

 

 

 

 

Рис. 96

 

 

X

 

 

 

2

 

 

 

1

 

 

 

50

100

150

200 t

-1

 

 

 

-2

 

 

 

 

Рис. 97

 

 

Пример 2. Для уравнения из примера 1 при малых α (α = 0,01 на

рис. 98) колебания близки к гармоническим (аналитическим методом

Линштедта–Пуанкаре эти случаи изучены в Дополнении I):

sol = NDSolve[{x”[t] + x[t] - 0.01(1-x[t]2) x’[t]==0, x’[0]==1, x[0]==0},

x[t],{t,0,20, MaxStep → ∞];

 

 

 

Plot[Evaluate[x[t] /. sol, {t, 0, 20}], AxesLabel {"t "X"}]

X

 

 

 

1

 

 

 

0.5

 

 

 

5

10

15

20 t

-0.5

 

 

 

-1

 

 

 

 

Рис. 98

 

 

§ 9. Устойчивый и неустойчивый предельные циклы

295

§9. Устойчивый и неустойчивый предельные циклы

Пример 1. Устойчивый предельный цикл.

Построить фазовый портрет автономной системы и показать, что

система имеет устойчивый предельный цикл:

x˙ = x(1 − x2 − y2) − y, y˙ = y(1 − x2 − y2) + x.

Р е ш е н и е. Запишем уравнения системы:

eqx[x_,y_]:=x(1-x2-y2)-y; eqy[x_,y_]:=y(1-x2-y2)+x;

Определим функцию sol[x0, y0] как численное решение системы при начальных условиях x(0) = x0, y(0) = y0 на отрезке [0, 10]:

sol[x0_, y0_] := {x[t], y[t]} /.

NDSolve[{x’[t] == eqx[x[t], y[t]], y’[t] == eqy[x[t], y[t]], x[0] == x0, y[0] == y0}, {x[t], y[t]}, {t, 0, 10}];

Построим графики численных решений для различных начальных значений x0, y0 (рис. 99):

gr1 = ParametricPlot[Evaluate[Flatten[Table[sol[x0, y0],

{x0, -2, 2, 0.5}, {y0, -2, 2, 0.5}], 1]], {t, 0, 10}]

2

1

-2

-1

1

2

-1

-2

Рис. 99

Нарисуем векторное поле этой системы (рис. 100):

«Graphics‘PlotField‘

gr2 = PlotVectorField[{eqx[x, y], eqy[x, y] },

{x, -2, 2}, {y,-2, 2}, PlotPoints 25];

Совместим оба рисунка:

Show[gr1, gr2]

и получим фазовый портрет (рис. 101).

= −x(1 − x2 − y2) − y,
= −y(1 − x2 − y2) + x.

296 Доп. III. Решение задач с использованием системы Mathematica

 

 

2

 

 

 

1

 

-2

-1

1

2

 

 

-1

 

 

 

-2

 

Рис. 100

 

Рис. 101

 

Пример 17. Неустойчивый предельный цикл.

Упражнение. Пользуясь системой Mathematica, построить фазовый портрет автономной системы, показать, что она имеет неустойчи-

вый предельный цикл, и построить соответствующие графики:

x˙ y˙

Р е ш е н и е. Запишем правую часть системы: eqx[x_, y_] := -y - x(1-x2-y2) eqx[x_, y_] := x - y(1-x2-y2)

§10. Нахождение положений равновесия ДС

Пр и м е р. Найти положения равновесия ДС (стационарные решения системы ДУ)

x˙ = x(x2 + y2 1)(x2 + y2 4) − y, y˙ = (y(x2 + y2) + x3 )(x2 + y2 4) + x.

Напомним, что положения равновесия ДС (автономной системы) x = f(x, y),

y = g(x, y)

определяются как решение системы алгебраических уравнений: f(x,y) = 0,

g(x,y) = 0.

Сформируем систему алгебраических уравнений:

eq={x(x2+y2-1)(x2+y2-4)-y==0, (y(x2+y2)+ x3 ) (x2+y2-4)+x==0}

§ 11. Система Лотки–Вольтерры с насыщением

297

решаем эту систему:

res = N[Solve[eq, x,y]]

{{y 0., x -1.}, {y 0., x 0.}, {y 0., x 1.}, {y 0.907448 - 3.28081i, x -3.82322 - 0.816339i}, {y -0.907448 + 3.28081i, x 3.82322 + 0.816339i}, {y 0.907448 + 3.28081i, x -3.82322 + 0.816339i}, {y -0.907448 - 3.28081i, x 3.82322 - 0.816339i}, {y 0.+0.139514i, x 0. + 0.0339987i},

{y 0.-0.139514i, x 0. - 0.0339987i}},

и выберем действительные решения.

Select[res, Head[#[[2]][[2]]] == Real &]

{{y 0., x -1.}, {y 0., x 0.}, {y 0., x 1.}}

Таким образом, находим три положения равновесия (0, 0), (0, 1), (0, 1).

§11. Система Лотки–Вольтерры с насыщением

Пр и м е р. Исследовать ДС

 

 

 

xy

 

 

x = 2x

 

 

xy

,

 

 

 

1

+ sx

 

y = −y +

 

,

 

1 + sx

где s > 0 — параметр,

характеризующий насыщение хищников.

 

 

 

 

 

 

 

Р е ш е н и е. Найдем положения равновесия ДС. Для этого составим уравнения из правых частей и решим их:

eq1 = 2x - x y/(1 + s x); eq2 = x y/(1 + s x) - y;

sol = Solve[{eq1 == 0, eq2 == 0}, {x, y}] // Flatten

{x 0, y 0, y -12+s , x -11+s }

Выберем ненулевое решение:

sol= Take[sol,-2]

{y -12+s , x -11+s }

1 2

Итак, 1 + s , 1 + s — положение равновесия.

Далее задаем и реализуем в системе Mathematica следующий порядок действий.

298Доп. III. Решение задач с использованием системы Mathematica

1.Начало координат переносим в найденное положение равновесия.

2.Линеаризуем полученную ДС.

3.Находим собственные значения матрицы линеаризованной ДС (матрицы Якоби в точке положения равновесия):

y0 = y /. sol; x0 = x /. sol;

eq1 = Normal[Series[Simplify[Expand[eq1 /. {x x + x0, y y + y0}]],

{x, 0, 1}, {y, 0, 1}]];

eq2 = Normal[Series[Simplify[Expand[eq2 /. {x x + x0, y y + y0}]],

{x, 0, 1}, {y, 0, 1}]];

A = {{Coefficient[eq1, x] /. y 0, Coefficient[eq1, y] /. x 0}, {Coefficient[eq2, x] /. y 0, Coefficient[eq2, y] /. x 0}};

ev = Eigenvalues[A]

p p

{s- -2+2s+s2, s- -2+2s+s2}

Итак, найдены собственные значения λ1, 2 = s ± −2 + 2s + s2. При s = 0 положение равновесия является центром. В остальных случаях имеем неустойчивое положение равновесия: неустойчивый фокус или седло.

Построим графики решения ДС и фазовых траекторий.

Для этой цели определим функцию sol[x0, y0] как численное решение системы при заданных начальных условиях x0, y0:

sol[x0_, y0_] := NDSolve[{x’[t] == 2x[t] - x[t] y[t]/(1 + s x[t]), y’[t] == x[t] y[t]/(1 + s x[t]) - y[t], x[0] == x0, y[0] == y0}, {x[t], y[t]}, {t, 0, 100}, MaxSteps → ∞];

и набор значений параметра s

par = {0., 0.01};

Далее в цикле зададим построение графика решений для начальных значений (1, 1) и графика фазовых траекторий для различных начальных значений: (0,2; 2), (0,4; 2), (0,6; 2), (0,8; 2), (1, 2):

Do[s = par[[k]];

gr1 = Plot[Evaluate[{x[t], y[t]} /. sol[1, 1]], { t, 0, 100 },

PlotStyle {Dashing[{ 0.015 }], {}}];

ParametricPlot[Evaluate[Flatten[Table[{x[t], y[t]} /. sol[m, n],

{m, 0.2, 1., 0.2}, {n, 2, 2, 1}], 1]], {t, 0, 20 }],{k, 1, 2}]

В результате выполнения этих операторов получаем графики, изображенные на рис. 102–104.

§ 11. Система Лотки–Вольтерры с насыщением

299

3.5

 

 

 

 

 

 

3

 

 

 

 

 

 

2.5

 

 

 

 

 

 

2

 

 

 

 

 

 

1.5

 

 

 

 

 

 

1

 

 

 

 

 

 

0.5

 

 

 

 

 

 

20

40

60

 

80

100

 

Рис. 102. x(t) (пунктир), y(t) при s = 0

 

 

4

 

 

 

 

 

 

3

 

 

 

 

 

 

2

 

 

 

 

 

 

1

 

 

 

 

 

 

0.5

1

1.5

2

2.5

 

 

Рис. 103. Фазовые траектории при s = 0

 

 

7

 

 

 

 

6

 

 

 

 

5

 

 

 

 

4

 

 

 

 

3

 

 

 

 

2

 

 

 

 

1

 

 

 

 

20

40

60

80

100

Рис. 104. x(t) (пунктир), y(t) при s = 0,01

Случай s = 0 соответствует классической системе Лотки–Вольтерры без насыщения (см. Доп. I). Эта система консервативна, и ей соответствует семейство замкнутых траекторий, окружающих положение равновесиия (см. Доп. I, §3). В §6 замкнутые траектории вычислены аналогичным методом Линдштедта–Пуанкаре.

300 Доп. III. Решение задач с использованием системы Mathematica

При s > 0 имеем более адекватную действительности диссипативную систему Лотки–Вольтерры с насыщением. Здесь имеется устойчивый предельный цикл (см. Доп. I, §12).

На рис. 105 показана одна траектория, наматывающаяся на предельный цикл снаружи.

4

 

 

 

 

 

3

 

 

 

 

 

2

 

 

 

 

 

1

 

 

 

 

 

0.5

1

1.5

2

2.5

3

Рис. 105. Фазовые траектории при s = 0,01

§12. Брюсселятор

Пр и м е р. Исследуем ДС, предложенную брюссельской научной школой, как первое приближение к ДС Власова–Жаботинского (см. Доп. I, §12)

x = a − (b + 1)x + x2y,

y = bx − x2y, a > 0, b > 0, x > 0, y > 0.

Р е ш е н и е. Найдем сначала положения равновесия ДС. Для этого составим уравнения из правых частей и решим их:

eq1 = a-(b+1)x +x2y; eq2 = bx-x2y;

sol = Solve[{eq1 == 0, eq2 == 0}, {x, y}] // Flatten {y ba , x a}

Итак, ab , a — особая точка.

Далее переносим начало координат в эту точку:

Expand[eq1 /. {x x + x0, y y + y0}]

Expand[eq2 /. {x x + x0, y y + y0}]