-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathchapter10_prim.qq
More file actions
592 lines (485 loc) · 34.8 KB
/
chapter10_prim.qq
File metadata and controls
592 lines (485 loc) · 34.8 KB
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
\chapter Особые точки нелинейных систем на плоскости \label chap:10prim:linearization
В \ref[предыдущей главе\nonumber][chap:10:linear-systems] мы обсудили, как
устроены особые точки линейных систем на плоскости. Но что мы будем делать,
если нам встретится нелинейное уравнение?
\section Линеаризация особой точки
Рассмотрим систему
\equation
\dot x = f(x, y),\quad \dot y = g(x, y).
Пусть точка $\mb z_*=(x_*, y_*)$ является положением равновесия, то есть особой
точкой нашей системы. В этом случае $f(x_*, y_*)=0$ и $g(x_*, y_*)=0$. Чтобы не
писать каждый раз две переменные, введём векторные обозначения: $\mb z = (x, y)$
и $\mb F(\mb z) = (f(\mb z), g(\mb z))$. Система принимает вид
\equation \label eq:10prim:dotz
\dot{\mb z} = \mb F(\mb z)
Мы предполагаем, что функции $f$ и $g$ по крайней мере $C^1$-гладкие (то есть
имеют непрерывные частные производные) и значит отображение $\mb F$ является
дифференцируемым. Из определения производной для функции нескольких переменных
следует, что
\equation \label eq:10prim:Fz
\mb F(\mb z) = \mb F(\mb z_*) + \left.\frac{\partial \mb F}{\partial \mb
z}\right|_{\mb z = \mb z_*}(\mb z-\mb z_*) + o(\\|\mb z-\mb z_*\\|).
Здесь $\frac{\partial \mb F}{\partial \mb z}$ — матрица Якоби для отображения
$\mb F$, то есть матрица, составленная из частных производных функций $f$ и $g$. Обозначим эту матрицу через $A$:
\eq
A = \begin{pmatrix}
f'_x(x_*, y_*) & f'_y(x_*, y_*) \\\\
g'_x(x_*, y_*) & g'_y(x_*, y_*)
\end{pmatrix}.
Заметим, что в \ref{eq:10prim:Fz} слагаемое $\mb F(\mb z_*)$ равно нулю, поскольку
$\mb z_*$ является особой точкой.
Сделаем замену переменных: $\mb w = (u, v) = \mb z - \mb z_* = (x-x_*,
y-y_*)$. Таким образом мы перенесли особую точку в начало координат. Соотношение
\ref{eq:10prim:Fz} принимает вид
\equation \label eq:10prim:wA
\mb F(\mb z_* + \mb w)=A\mb w+o(\\|\mb w\\|).
И уравнение \ref{eq:10prim:dotz} записывается таким образом:
\equation
\dot{\mb w} = A \mb w + o(\\|\mb w\\|).
Если отбросить второе слагаемое $o(\\|\mb w\\|)$, малое по сравнению с первым,
получится система
\equation
\dot{\mb w} = A \mb w,
являющаяся линейной. Она называется \emph{линеаризацией} нелинейной системы
\ref{eq:10prim:dotz} в особой точке $\mb z = \mb z_*$.
Как связаны решения нелинейной системы с решениями её линеаризации в окрестности
особой точки? Отброшенное при переходе к линеаризации слагаемое является очень
маленьким, и чем ближе мы к особой точке, тем оно меньше. Можем ли мы им
пренебречь, если нас интересует поведение системы вблизи особой точки, по
крайней мере, на каком-то качественном уровне? Оказывается, ответ зависит от
типа получившейся линейной особой точки.
\section Свойства нелинейных особых точек
Говорят, что нелинейная особая точка является, например, центром \emph{по
линейным членам}, если её линеаризация является центром. Аналогично с другими
типами особых точек.
Если говорить коротко, то фазовые портреты особых точек, являющихся узлами,
фокусами или сёдлами по линейным членам, очень похожи на фазовые портреты своих
линеаризаций. Для точек с линеаризацией «центр» это утверждение неверно. Ниже мы
сформулируем что это значит более строго.
\subsection Невырожденный узел
Фазовые портреты линейных узлов выглядят по-разному в зависимости от типа узла.
Если узел невырожденный, то есть собственные значения различны и существуют два
разных собственных вектора, то почти все траектории стремятся к особой точке (в прямом
или обратном времени), касаясь того собственного вектора, чьё собственное
значение меньше по модулю. Фазовые кривые похожи на ветви парабол. Исключение
составляют траектории с начальными условиями, лежащими на том собственном
векторе, у которого собственное значение больше по модулю.
Например, у системы
\eq
\dot x = x, \quad \dot y = 2y
собственные векторы — $(1, 0)$ с собственным значением 1 и $(0, 1)$ с
собственным значением 2. Решением является вектор-функция, задаваемая компонентами $x(t)=x_0e^t$, $y(t)=y_0 e^{2t}$. При $x_0 \ne 0$ траектория лежит на параболе
\eq
y = \frac{y_0}{x_0^2} x^2
и стремится к началу координат в обратном времени (при $t\to -\infty$), касаясь
горизонтального направления (то есть направления собственного вектора с меньшим
по модулю собственным значением). Исключением являются траектории с $x_0=0$: они
стремятся к нулю вдоль вертикального направления (то есть вдоль собственного
вектора с большим собственным значением).
\theorem
Вблизи нелинейной особой точки, являющейся невырожденным узлом по линейным
членам, почти все фазовые кривые стремятся к особой точке, касаясь
собственного вектора с меньшим по модулю собственным значением. Исключением
является сама особая точка и ещё две специальные траектории, касающиеся
другого собственного вектора.
Эту и следующие теоремы можно было бы вывести из так называемой теории
нормальных форм, но это выходит за рамки нашего курса. Поэтому мы ограничимся
примерами.
\example
Построим фазовый портрет системы
\eq
\begin{cases}
\dot x = 2x+3y+0{,}3 x^2+0{,}2 y^2 \\\\
\dot y = x + 4y + 0{,}1 x^2
\end{cases}
вблизи особой точки $(0, 0)$. Её линеаризация в этой точке имеет матрицу из
\ref[примера][ex:10:example] предыдущей главы.
\eq
\begin{pmatrix}
2 & 3 \\\\
1 & 4
\end{pmatrix}.
Собственные значения $1$ и $5$, собственные векторы $(-3, 1)$ и $(1, 1)$. На
рис. \ref{fig:10prim:node} видно, что почти все отмеченные траектории
касаются вектора $(-3, 1)$.
\figure \label fig:10prim:node \showcode \collapsed
\pythonfigure \style max-width: 700px;
plt.figure(figsize=(12, 6))
theta = np.linspace(0, 2 * np.pi, 4 * 5 + 1)
r = 3
u = 1.5 * np.cos(theta) * r
v = 4 * np.sin(theta) * r
C = np.array([[-3, 1], [1, 1]])
def linear(X, t=0):
return np.array([2 * X[0] + 3 * X[1], X[0] + 4 * X[1]])
def non_linear(X, t=0, linear=linear):
return linear(X) + np.array([0.3 * X[0]**2 + 0.2 * X[1]**2,
0.1 * X[0]**2])
plt.subplot(122)
ob.axes4x4(labels=('x','y'))
ob.phaseportrait(linear,
(0.25 * C @ np.array([u, v])).T, [-2, 2], n=50,
linewidth=1.5)
plt.arrow(0,0,-3,1,head_width=0.2, head_length=0.3,color='olive',lw=2)
plt.arrow(0,0,1,1,head_width=0.2, head_length=0.3,color='olive',lw=2)
plt.subplot(121)
ob.axes4x4(labels=('x','y'))
ob.phaseportrait(non_linear,
(0.25 * C @ np.array([u, v])).T, [-2, 0.3], n=50,
linewidth=1.5)
plt.arrow(0,0,-3,1,head_width=0.2, head_length=0.3,color='olive',lw=2)
plt.arrow(0,0,1,1,head_width=0.2, head_length=0.3,color='olive',lw=2)
\caption
Фазовые портреты нелинейного узла (слева) и его линеаризации
(справа) в малой окрестности особой точки $(0, 0)$.
Заметим, что фазовые портреты похожи только в небольшой окрестности особой
точки. Если мы удаляемся от особой точки, то нелинейные слагаемые начинают
играть всё большую роль, и фазовые портреты сильно различаются, см.
\ref[рис.][fig:10prim:node-zoomout].
\figure \label fig:10prim:node-zoomout \showcode \collapsed
\pythonfigure \style max-width: 700px;
def linear(X, t=0):
return np.array([2 * X[0] + 3 * X[1], X[0] + 4 * X[1]])
def non_linear(X, t=0, linear=linear):
return linear(X) + np.array([0.3 * X[0]**2 + 0.2 * X[1]**2,
0.1 * X[0]**2])
plt.figure(figsize=(12, 6))
xmin, xmax, ymin, ymax = -10, 10, -10, 10
x = np.linspace(xmin, xmax, 500)
y = np.linspace(ymin, ymax, 500)
X, Y = np.meshgrid(x, y)
U, V = linear([X, Y])
plt.subplot(121)
ob.axes4x4(labels=('x', 'y'), xmin=xmin, xmax=xmax, ymin=ymin,
ymax=ymax,
fontsize=14)
plt.streamplot(x, y, U, V)
plt.subplot(122)
ob.axes4x4(labels=('x', 'y'), xmin=xmin, xmax=xmax, ymin=ymin,
ymax=ymax,
fontsize=14)
U_, V_ = non_linear([X, Y])
plt.streamplot(x, y, U_, V_)
\caption
Фазовые портреты нелинейной системы (справа) и её линеаризации
(слева) в большой окрестности начала координат
\subsection Дикритический узел: скалярная матрица
Если собственные значения совпадают и матрица линеаризации является скалярной
(то есть тождественной умноженной на число), то все фазовые траектории (кроме
особой точки) — лучи прямых, каждая стремится к особой точке под собственным
углом. Для соответствующей нелинейной системы траектории не обязаны быть лучами
прямых, но характеристическое свойство — стремиться к особой точке под своим
собственным углом — у них сохраняется.
\theorem
Вблизи нелинейной особой точки, являющейся дикритическим узлом по линейным
членам, все траектории (кроме самой особой точки) стремятся к особой точке,
каждая под своим собственным углом. Для всякого ненулевого вектора,
приложенного к началу координат, существует единственная траектория, касающееся
этого вектора при $t\to +\infty$ или $t\to -\infty$.
\figure \label fig:10prim:dicritic \showcode \collapsed
\pythonfigure \style max-width: 700px;
plt.figure(figsize=(12, 6))
theta = np.linspace(0, 2 * np.pi, 4 * 5 + 1)
r = 4
x = np.cos(theta) * r
y = np.sin(theta) * r
plt.subplot(122)
ob.axes4x4(labels=('x', 'y'))
ob.phaseportrait(lambda X, t=0: np.array([X[0], X[1]]),
np.array([x, y]).T, [-4, 2], n=50, linewidth=1.5)
plt.subplot(121)
ob.axes4x4(labels=('x', 'y'))
ob.phaseportrait(lambda X, t=0: np.array([X[0] - 0.2*X[0]**2, X[1]]),
np.array([x, y]).T, [-4, 0.2], n=50, linewidth=1.5)
\caption
Нелинейный дикритический узел (слева) и его линеаризация (справа).
\subsection Вырожденный узел: жорданова клетка
Если собственные значения совпадают, но матрица не является скалярной, то она в
некотором базисе является жордановой клеткой. У неё есть единственный
собственный вектор и все траектории такой системы, кроме особой точки, стремятся
к особой точке, касаясь этого собственного вектора.
\theorem
Вблизи нелинейной особой точки, являющейся вырожденным узлом по линейным
членам, все траектории (кроме самой особой точки) стремятся к особой точке,
касаясь единственного собственного вектора матрицы линеаризации.
\figure \showcode \collapsed
\pythonfigure \style max-width: 700px;
plt.figure(figsize=(12, 6))
y = np.linspace(-4, 4, 21)
x = y * 0.2
plt.subplot(122)
ob.axes4x4(labels=('x', 'y'))
ob.phaseportrait(lambda X, t=0: np.array([- X[0] + 3 * X[1], -X[1]]),
np.array([x, y]).T, [-2, 4], n=50, linewidth=1.5)
plt.subplot(121)
ob.axes4x4(labels=('x', 'y'))
ob.phaseportrait(lambda X, t=0: np.array([- X[0] + 3 * X[1] + 0.1*X[1]**2,
-X[1] + 0.05 * X[0] ** 2]),
np.array([x, y]).T, [-2, 4], n=50, linewidth=1.5)
\caption
Нелинейный вырожденный узел (слева) и его линеаризация
(справа) в малой окрестности особой точки.
\subsection Фокус
В отличие от узлов, траектории фокусов стремятся к особой точке, не касаясь
какого-то направления, а совершая бесконечное число оборотов вокруг особой
точки. Аналогичное утверждение справедливо и для соответствующих нелинейных
систем.
\theorem
Вблизи нелинейной особой точки, являющейся фокусом по линейным
членам, все траектории (кроме самой особой точки) являются спиралями,
совершающими бесконечное число оборотов при при $t\to +\infty$ или $t\to
-\infty$.
\subsection Седло
У сёдел есть два вещественных собственных значения разных знаков и,
соответственно, два собственных вектора. Их фазовые кривые — ветви гипербол,
кроме самой особой точки и четырёх прямолинейных лучей, называющихся
\emph{сепаратрисами}. Две сепаратрисы стремятся к седлу при $t\to +\infty$ вдоль
собственного вектора с отрицательным собственным значениям (такие сепаратрисы
называются \emph{входящими}), две другие
сепаратрисы стремятся к седлу при $t\to -\infty$ вдоль собственного вектора с
положительным собственным значением (это \emph{исходящие} сепаратрисы).
Например, для простейшего случая
\eq
\dot x = x, \quad \dot y = -y
входящие сепаратрисы — лучи $x=0, y>0$ и $x=0, y<0$, а исходящие — лучи $x>0,
y=0$ и $x<0, y=0$.
У соответствующей нелинейной особой точки также существуют сепаратрисы. Они не
обязаны быть прямыми, но обязаны касаться собственных векторов.
\theorem
Вблизи нелинейной особой точки, являющейся седлом по линейным
членам, существуют две траектории, стремящиеся
к особой точке при $t\to +\infty$, касаясь собственного вектора с
отрицательным собственным значением, и ещё две траектории, стремящиеся к
особой точке при $t\to -\infty$, касаясь собственного вектора с
положительным собственным значением. Эти траектории называются
\emph{сепаратрисами} нелинейного седла.
Это — знаменитая теорема Адамара — Перрона, первый результат так называемой
гиперболической динамики.
\figure \showcode \collapsed
\pythonfigure \style max-width: 700px;
from itertools import product
from scipy.integrate import odeint
from scipy.optimize import bisect
C = np.array([[2, 1], [1, -1]])
A = C @ np.diag([1, -1]) @ np.linalg.inv(C)
def find_sep(f, init_func, test_func, T=10):
def my_test(s):
init = init_func(s)
out = odeint(f, init, [0, T])[1]
return test_func(out)
return init_func(bisect(my_test, 0, 1))
def linear_homotopy(A, B, s):
return A*(1-s) + B*s
def linear(X, t=0):
return np.tensordot(A, X, axes=(1, 0))
def non_linearity(X):
return np.array([0.2*X[0]**2, -0.1*X[0]**2])
def non_linear(X, t=0):
return linear(X) + non_linearity(X)
def draw_seps(field):
stable_sep_inits = [find_sep(field,
lambda s: linear_homotopy(*endpoints, s),
lambda X: X[0] + X[1], T=20)
for endpoints in np.array([[[-3, 0], [0, 3]],
[[0, -3], [3, 0]]])]
unstable_sep_inits = [find_sep(lambda X, t: -field(X, t),
lambda s: linear_homotopy(*endpoints, s),
lambda X: X[0] - X[1], T=20)
for endpoints in np.array([[[-3, 0], [0, -3]],
[[0, 3], [3, 0]]])]
ob.phaseportrait(field, stable_sep_inits, t=(-1, 5), color='green')
ob.phaseportrait(field, unstable_sep_inits, t=(-5, 1), color='red')
plt.figure(figsize=(12, 6))
plt.subplot(122)
ob.axes4x4(labels=('x','y'), fontsize=14)
x = np.linspace(-4, 4)
y = np.linspace(-4, 4)
Z = np.meshgrid(x, y)
W = linear(Z)
plt.streamplot(*Z, *W)
draw_seps(linear)
plt.subplot(121)
ob.axes4x4(labels=('x','y'), fontsize=14)
W_ = non_linear(Z)
plt.streamplot(*Z, *W_)
draw_seps(non_linear)
\caption
Фазовый портрет нелинейного седла (слева) и его линеаризации (справа).
Зелёным выделены входящие сепаратрисы, красным исходящие.
\subsection Центр
Во всех предыдущих примерах было справедливо неформальное утверждение «фазовый
портрет вблизи нелинейной особой точки качественно похож на фазовый портрет
линеаризации». Для центров это утверждение неверно. Фазовые кривые линейного
центра обязательно замкнуты. Фазовые кривые соответствующей нелинейной особой
точки могут быть спиралями.
\example
Рассмотрим систему
\equation \label eq:10prim:slowfocus
\begin{cases}
\dot x = y - (x^2 + y^2) x\\\\
\dot y = -x - (x^2 + y^2) y
\end{cases}
Её линеаризация в нуле имеет матрицу
\eq
\begin{pmatrix}
0 & 1 \\\\
-1 & 0
\end{pmatrix}
с собственными значениями $+i$ и $-i$, то есть соответствует центру.
Чтобы построить фазовый портрет системы, перейдём в полярные координаты. Нам
будет проще работать не с полярным радиусом, а с его квадратом: $\rho = x^2
+ y^2$. Вычислим \snref[производную][snip:Lie-deriv] функции $\rho$ вдоль
векторного поля, заданного системой \ref{eq:10prim:slowfocus}:
\eq
\dot \rho = 2x\dot x + 2y \dot y = 2x (y-(x^2+y^2)x) + 2y(-x -
(x^2-y^2)y)=-(x^2+y^2)^2=\rho^2.
Таким образом, имеем уравнение на $\rho$:
\eq
\dot \rho = -\rho^2.
Решение этого уравнения можно найти явно, но нам достаточно того факта, что
правая часть всегда отрицательна (кроме точки $\rho=0$) и следовательно
$\rho$ будет монотонно убывать. То есть траектория будет приближаться к
началу координат.
Можно также найти уравнение на полярный угол $\theta = \arctan (y/x)$.
Напоминим, что $(\arctan z)'=1/(1+z^2)$. Значит по теореме о производной
сложной функции:
\align
\item \nonumber
\dot \theta& = \frac{\dot y x - \dot x y}{x^2}\cdot
\frac{1}{1+\frac{y^2}{x^2}}=
\item \nonumber
&= \frac{(-x-(x^2+y^2)y)x - (y-(x^2+y^2)x)y}{x^2+y^2}=
\frac{-x^2-y^2}{x^2+y^2}=-1
Уравнение на $\theta$ имеет вид
\eq
\dot \theta = -1.
Таким образом, двигаясь по траектории, точка приближается к началу
координат, при этом её полярный угол равномерно уменьшается. Значит, эта
траектория — спираль, наматывающаяся на особую точку, см.
\ref[рис.][fig:10prim:slowfocus].
\figure \showcode \collapsed \label fig:10prim:slowfocus
\pythonfigure \style max-width: 400px;
plt.figure(figsize=(6, 6))
ob.axes4x4(labels=("x", "y"), xmin=-1, xmax=1,
ymin=-1, ymax=1)
theta = np.linspace(0, 2 * np.pi, 4 * 5 + 1)
r = 1
x = np.cos(theta) * r
y = np.sin(theta) * r
c = 1
ob.phaseportrait(lambda X, t=0: np.array(
[-X[1] - c*X[0]*(X[0]**2 + X[1]**2),
X[0] - c*X[1]*(X[0]**2 + X[1]**2)]),
np.array([x, y]).T, t=(-0.09, 200), n=5000,
head_width=0.04, head_length=0.07, linewidth=1.5)
plt.plot([0], [0], marker='o', mew=2, lw=0, markersize=5,
markerfacecolor='white', markeredgecolor='steelblue')
\caption Медленный фокус.
Такая особая точка похожа на фокус, хотя её линеаризация является центром.
Она называется \emph{медленным фокусом}.
\section Пример исследования нелинейной особой точки
Рассмотрим систему
\equation
\begin{cases}
\dot x = \ln(x^2/8+1/2) \\\\
\dot y = \arctan(x+y+1)
\end{cases}
Найдём её особые точки. Приравнивая правые части к нулю, получаем такую систему:
\equation
\begin{cases}
\ln(x^2/8+1/2) = 0 \\\\
\arctan(x+y+1)=0
\end{cases}
Из первого уравнения мгновенно следует, что $x=\pm 2$. Подставляя эти значения
для $x$ во второе уравнение находим $y$ и видим, что у системы есть две особые
точки: $(2, -3)$ и $(-2, 1)$. Матрица Якоби имеет вид:
\equation
\begin{pmatrix}
\frac{x}{x^2/2+4} & 0 \\\\
\frac{1}{1+(x+y+1)^2} & \frac{1}{1+(x+y+1)^2}
\end{pmatrix}
Рассмотрим точку $(2, -3)$. Подставляя её в матрицу Якоби, получаем матрицу линаризации:
\eq
\begin{pmatrix}
1/3 & 0 \\\\
1 & 1
\end{pmatrix}
Эта матрица нижнетреугольная и значит её собственные значения стоят на диагонали. Они равны $1/3$ и $1$. Следовательно соответствующая особая точка является неустойчивым узлом.
Собственные векторы равны $(-2, 3)$ и $(0, 1)$. Первый из них имеет меньшее собственное значение, поэтому почти все траектории будут его касаться, стремясь к особой точке в обратном времени.
\question
Какой тип имеет вторая особая точка?
\quiz
\choice
Тоже узел!
\comment
А вот и нет
\choice
Это фокус
\comment
Нет, не фокус
\choice
Центр по линейным членам
\comment
Нет.
\choice \correct
Седло
\comment
Да! Собственные значения $-1/3$ и $1$. А фазовый портрет в целом
выглядит вот так.
\figure \showcode \collapsed
\pythonfigure \style max-width: 500px;
plt.figure(figsize=(6, 6))
ob.axes4x4(labels=('x', 'y'))
x = np.linspace(-4, 4)
y = np.linspace(-4, 4)
X, Y = np.meshgrid(x, y)
plt.streamplot(x, y, np.log(X**2/8 + 0.5), np.arctan(Y+X+1))
plt.plot([-2, 2], [1, -3], marker='o', mew=2, lw=0,
markersize=5, markerfacecolor='white',
markeredgecolor='steelblue')
\remark
Представленный способ анализа нелинейных особых точек работает только в том
случае, когда линаризация имеет невырожденную матрицу. Особые точки, матрица
линеаризации которых вырождена, то есть имеет нулевые собственные значения,
могут иметь более сложные фазовые портреты. Существуют математические
методы, которые позволяют исследовать и их тоже, но обсуждение этих методов
выходит за рамки нашего курса.
\example
В качестве примера приведём фазовые портреты двух систем с нулевой
линеаризацией, см. \ref[рис.][fig:10prim:degenerate].
\align
\item \label eq:10prim:multisaddle
\dot x = x^2 - y^2&, \quad \dot y = -2xy;
\item \label eq:10prim:dipole
\dot x = x^2 - y^2&, \quad \dot y = 2xy.
\figure \showcode \collapsed \label fig:10prim:degenerate
\pythonfigure \style max-width: 700px;
plt.figure(figsize=(12, 6))
x = np.linspace(-4, 4)
y = np.linspace(-4, 4)
X, Y = np.meshgrid(x, y)
plt.subplot(121)
ob.axes4x4(labels=('x', 'y'))
plt.streamplot(x, y, X**2 - Y**2, -2*X*Y)
plt.subplot(122)
ob.axes4x4(labels=('x', 'y'))
plt.streamplot(x, y, X**2 - Y**2, 2*X*Y)
\caption
Фазовые портреты систем \ref{eq:10prim:multisaddle} (слева) и
\ref{eq:10prim:dipole} (справа)
\exercise
Вы можете найти уравнения фазовых кривых для этих систем с помощью
перехода к неавтономному уравнению (как обсуждалось в
\ref[разделе][sec:4:auto-nonauto]) и замены $z=y/x$.
\remark
С помощью линеаризации можно понять, как выглядит фазовый портрет вблизи
каждой из особых точек, но получить надежную информацию о том, что
происходит между ними, как ведут себя траектории, выходя из этих
окрестностей, и как выглядит глобальная картинка мы не можем. В общем случае
точное построение фазового портрета нелинейной системы является
исследовательской задачей, не имеющей универсального решения. Однако на
практике можно получить приближенные решения и слелать какие-то выводы с
помощью численных методов.
\section Выводы
Фазовые портреты нелинейных систем на плоскости можно исследовать, переходя к линеаризации. Для этого надо вычислить матрицу Якоби правой части системы в особой точке — она и будет матрицей линеаризованной системы. Если линеаризация имеет особую точку типа узел, фокус или седло, фазовый портрет исходной (нелинейной) системы в окрестности особой точки похож на фазовый портрет линеаризации. Для центров это неверно: центры по линейным членам могут выглядеть как фокусы. К особым точкам с вырожденной матрицей линеаризации этот метод неприменим.
Дифференциальные уравнения на плоскости изучены относительно неплохо: хотя нахождение точных решенений конкретного уравнения может составлять сложную (или даже нерешенную) проблему, в целом человечество понимает, какие эффекты в этом мире встречаются и чего от таких уравнений можно ждать. Переход к пространствам больших размерностей принципиально усложняет динамику: мы далеки от полного понимания нелинейных уравнений уже с трёхмерным фазовым пространством. Однако линейные системы в любой размерности анализируются сравнительно несложно. Ими мы и займёмся в следующей главе.