-
Notifications
You must be signed in to change notification settings - Fork 14
/
chapter12.qq
618 lines (526 loc) · 42.3 KB
/
chapter12.qq
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
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
\chapter Устойчивость положений равновесия \label{chap:12:stability}
Важный вопрос, который можно задавать о дифференциальных уравнениях: насколько
сильно поменяется решение, если мы чуть-чуть поменяем начальное условие? Для конечных промежутков времени на этот вопрос отвечает \em{уравнение в вариациях}
(мы рассматривали его простейшую версию, когда обсуждали линейные уравнения
первого порядка, см. \ref[параграф][par:9:eq-in-var]). Однако зачастую нас
интересует, как устроено \em{установившееся} движение, то есть что происходит
при $t$, стремящемся к бесконечности. Для анализа этого случая нужно ввести
новые понятия. Чем мы и займёмся.
\section Интуитивное представление об устойчивости
В принципе, можно сформулировать понятие устойчивости применительно к любому
решению, но мы сосредоточимся на положениях равновесия.
Собственно, мы уже говорили о том, что положения равновесия (они же \snref{особые
точки}) дифференциального уравнения бывают устойчивыми или неустойчивыми, не
вводя аккуратно соответствующие понятия. Напомним те примеры, для которых нам
хватало интуиции, а потом сформулируем соответствующие определения аккуратно.
\subsection Одномерное фазовое пространство
Рассмотрим уравнение
\equation \label eq:12:x2_1
\dot x = x^2-1
Его \snref{фазовый портрет} состоит из
пяти фазовых кривых: двух особых точек $1$ и $-1$, двух лучей $(-\infty, -1)$
и $(1, \infty)$ и интервала $(-1, 1)$. Направления движения вдоль фазовых кривых
определяются знаком правой части: от точки $1$ и к точке $-1$, см.
\ref[рис.][fig:12:x2_1_rhs] и \ref{fig:12:x2_1}.
\figure \showcode \collapsed \label fig:12:x2_1_rhs
\pythonfigure \style max-width: 350px;
plt.figure(figsize=(6, 4))
plt.subplot2grid((6, 1), (0, 0), rowspan=5)
ob.axes4x4(labels=('x', '\\dot x'), ymin=-2)
x = np.linspace(-4, 4)
plt.plot(x, x**2 - 1, '-', lw=2)
plt.plot([1, 1], [-2, 4], '--', color='gray', lw=2)
plt.plot([-1, -1], [-2, 4], '--', color='gray', lw=2)
plt.subplot2grid((6, 1), (5, 0))
plt.yticks([])
plt.xlim(-4, 4)
ob.onedim_phasecurves(-4, 4, [-1, 1], [-1, 1, -1], orientation='horizontal')
\caption График правой части (сверху) и фазовые кривые (снизу) для уравнения
\ref{eq:12:x2_1}
\figure \showcode \collapsed \label fig:12:x2_1
\pythonfigure
plt.figure(figsize=(8, 5))
plt.subplot2grid((1, 10), (0, 0))
plt.xlim(-0.5, 0.5)
plt.xticks([], [])
plt.ylim(-4, 4)
ob.onedim_phasecurves(-4, 4, [-1, 1], [1, -1, 1])
plt.subplot2grid((1, 10), (0, 1), colspan=8)
ob.axes4x4()
def f(t, x):
return x ** 2 - 1
for x0 in [1.0001, 1.001, 1.01, 1, 0.95, 0.99, 0.999, -1, -2, -4]:
ob.eulersplot(f, -4, 4, x0, color='steelblue')
\caption Фазовые кривые (слева) и интегральные кривые (справа) для уравнения
\ref{eq:12:x2_1}
Точка $-1$ является устойчивым положением равновесия: если начальное условие
немного «не попадёт» в эту точку или в какой-то момент чуть-чуть отклонится от него
(например, в результате маленького случайного шока), то оно не только не уйдёт
«далеко», но и наоборот будет стремиться к этому же положению равновесия в
будущем.
А вот точка $1$ совсем другая: если начальное условие отклоняется от него (даже
совсем чуть-чуть), всё равно решение со временем уйдёт достаточно далеко либо в
положительном направлении (уйдёт на бесконечность), либо в отрицательном (притянется к точке $-1$). Эта точка является неустойчивой.
\subsection Двумерное фазовое пространство
Давайте вспомним, какие особые точки на плоскости нам встречались. В
\ref[главе][chap:10:linear-systems] мы построили полную классификацию
невырожденных линейных особых точек.
\figure \showcode \collapsed \label fig:12:linear
\pythonfigure
from itertools import product
def reset_plt():
plt.xlim(-3, 3)
plt.ylim(-3, 3)
plt.xticks([], [])
plt.yticks([], [])
def linfield(A, C, inits):
ob.phaseportrait(lambda X: C @ A @ np.linalg.inv(C) @ X,
inits=(C @ inits).T, t=(-2, 2), n=50, head_length=0.4,
head_width=0.2, linewidth=1)
plt.plot([0], [0], marker='o', mew=2, lw=0, markersize=5,
markerfacecolor='white', markeredgecolor='steelblue')
plt.figure(figsize=(8, 6))
plt.rcParams['font.family'] = 'Arial'
############# Unstable node #############
plt.subplot(231)
reset_plt()
theta = np.linspace(0, 2 * np.pi, 4 * 3 + 1)
r = 1
u = np.cos(theta) * r
v = np.sin(theta) * r
inits = np.array([u, v])
C = np.array([[-3, 1], [1, 1]])
linfield(np.diag([1, 3]), C, inits)
plt.title("Неустойчивый узел")
############# Stable node #############
plt.subplot(234)
reset_plt()
linfield(np.diag([-1, -3]), C, inits)
plt.title("Устойчивый узел")
############# Unstable focus #############
plt.subplot(232)
reset_plt()
C = np.array([[1, 3], [2, -2]])
linfield(np.array([[1, 1], [-1, 1]]), C, 0.8 * inits)
plt.title("Неустойчивый фокус")
############# Stable focus #############
plt.subplot(235)
reset_plt()
linfield(np.array([[-1, 1], [-1, -1]]), C, 0.8 * inits)
plt.title("Устойчивый фокус")
############# Saddle #############
plt.subplot(233)
reset_plt()
C = np.array([[2, 1], [1, -1]])
inits = 0.5 * np.array(list(product(np.linspace(-10, 10, 6), [-1, 1]))
+ [[-1, 0], [1, 0], [0, 1], [0, -1]]).T
linfield(np.diag([-1, 1]), C, inits)
plt.title("Седло")
############# Center #############
plt.subplot(236)
reset_plt()
inits = 0.8 * np.array([[0, x] for x in range(-4, 5) if x != 0]).T
linfield(np.array([[0, 1], [-1, 0]]), C, 0.8 * inits)
plt.title("Центр")
\caption Линейные особые точки
Напомним также, как выглядят фазовые кривые математического маятника, см.
\ref[рис.][fig:12:pendulum] (подробнее см. в \ref[параграфе][sec:7:pendulum]).
\figure \showcode \collapsed \label fig:12:pendulum
\pythonfigure \style width: 400px;
plt.figure(figsize=(6,6))
ob.axes4x4(labels=('\\\\theta', 'v'))
def H(theta, v):
return v**2 / 2 - np.cos(theta)
v_levels = np.linspace(0, 4, 17)
levels = []
for v in v_levels:
levels.append(H(0, v))
# levels = [H(0, v) for v in v_levels]
ob.mcontour(np.linspace(-5, 5, 300), np.linspace(-5, 5, 300),
H, levels=levels, colors='steelblue', linestyles='solid')
theta_inits = np.linspace(0, np.pi, len(v_levels))
v_inits = np.sqrt(2 * np.cos(theta_inits) + v_levels ** 2 - 2)
ob.phaseportrait(lambda X: np.array([X[1], -np.sin(X[0])]),
list(np.array([theta_inits, v_inits]).T)[4::4],
t = (0, 0.01), color='steelblue')
ob.phaseportrait(lambda X: np.array([X[1], -np.sin(X[0])]),
list(np.array([theta_inits, -v_inits]).T)[5::4],
t = (0, 0.01), color='steelblue')
ob.phaseportrait(lambda X: np.array([X[1], -np.sin(X[0])]),
list(np.array([-theta_inits, -v_inits]).T)[2::4],
t = (0, 0.01), color='steelblue')
ob.phaseportrait(lambda X: np.array([X[1], -np.sin(X[0])]),
list(np.array([-theta_inits, v_inits]).T)[3::4],
t = (0, 0.01), color='steelblue')
\caption Фазовые кривые математического маятника
Здесь мы видим два типа особых точек: вблизи точки $(0,0)$ фазовые кривые похожи
на окружности (прямо как в линейном центре), а около точек $(\pm\pi, 0)$ —
гиперболы (как в седловой особой точке).
Какие из особых точек, изображённых на рисунках \ref{fig:12:linear} и
\ref{fig:12:pendulum}, являются устойчивыми, а какие неустойчивыми? Проще всего
разобраться с узлами и фокусами: это такие особые точки, что все траектории
стремятся к ним либо в прямом времени (когда $t\to +\infty$), либо в обратном
($t \to -\infty$). Если все траектории стремятся к узлу (или фокусу) в прямом
времени, то отклонившись немножко от этого положения равновесия мы со временем не только не
уйдём от него далеко, но и будем неограниченно приближаться к нему. Мы уже раньше
назвали такие особые точки устойчивым узлом и устойчивым фокусом (см.
соответствующие картинки в нижнем ряду \ref[рис.][fig:12:linear]) и было бы
логично ожидать, что когда мы придумаем определение устойчивости, такие особые
точки будут
устойчивыми в соответствии с этим определением. Наоборот, если все траектории
стремятся к положению равновесию в обратном времени, то в прямом времени они
уходят от него. В этом случае, если мы чуть-чуть «промахнёмся» мимо особой
точки, то попадём на одну
из таких убегающих траекторий и уйдём достаточно далеко от особой точки. Это
соответствует неустойчивому фокусу и узлу (верхний ряд на
\ref[рис.][fig:12:linear]).
Посмотрим теперь на седло. Большинство траекторий седла имеют форму гипербол:
они проходят вблизи седла, но со временем отдаляются от него, приближаясь к
отталкивающему собственному направлению. Они не стремятся к седлу ни в прямом,
ни в обратном времени. Однако, так ведут себя не все траектории: среди них есть
так называемые сепаратрисы, проходящие вдоль собственных направлений и
стремящиеся к седлу в прямом или обратном времени.
Точки $(\pm \pi, 0)$ на фазовом портрете маятника похожи на седла (хотя они не
являются линейными особыми точками). Они соответствуют положениям равновесия,
при которых маятник направлен вертикально вверх и неподвижен. Понятно, что такое
положение равновесия трудно назвать устойчивым: малейшее отклонение маятника от
вертикали скорее всего приведёт к тому, что он придёт в движение и через
какое-то время уйдёт далеко от вертикального положения равновесия. Логично
ожидать, что такие положения равновесия (и вообще любые седловые особые
точки) будут неустойчивыми с точки зрения любого разумного определения
устойчивости.
Наконец, рассмотрим особые точки типа «центр». Они похожи на положения равновесия
$(0, 0)$ для математического маятника. При этом маятник направлен вертикально
вниз и неподвижен. Небольшое отклонение маятника от такого положения приведёт к
тому, что он начнёт колебаться — на фазовом портрете это соответствует замкнутой
траектории, похожей на окружность. Чем меньше исходное отклонение, тем меньше
амплитуда колебаний. Устойчиво ли такое положение равновесия? Вроде бы, да.
Итак, устойчивый узел, устойчивый фокус и центр устойчивы, неустойчивый узел,
неустойчивый центр и седло — неустойчивы. Остаётся придумать математическое
определение устойчивости, которое бы не противоречило нашей интуиции.
\section Придумываем определение устойчивости
Рассмотрим дифференциальное уравнение
\equation \label eq:12:gen
\dot{\mb x} = \mb v(\mb x).
Пусть точка $\mb x_*$ является положением равновесия, то есть $\mb v(\mb x_*)=0$.
Пусть $\mb x=\ph(t; \mb x_0)$ — решение этого уравнения с начальным условием
$\ph(0; \mb x_0)=\mb x_0$.
\exercise
Придумайте определение устойчивости особой точки $\mb x_*$.
Это упражнение очень полезно сделать перед чтением последующего текста: даже
если ваши попытки окажутся неудачными, они помогут глубже понять правильное
определение устойчивости. На лекциях в этом месте мы всегда играем в такую игру: аудитория пытается
придумать определение, а потом мы обсуждаем, почему оно оказывается
неправильным. Вот пара примеров таких попыток.
\definition \label def:12:incorrect-lim
(Неверное.) Особая точка $\mb x_*$ называется устойчивой, если для любого
начального условия $\mb x_0$, достаточно близкого к $\mb x_*$,
соответствующая траектория стремится к особой точке $\mb x_*$. Иными
словами, существует такое $\eps>0$, что для всякого начального условия $\mb
x_0 \in U_\eps(\mb x_*)$ (здесь как обычно $U_\eps(\mb x_*)$ — это
$\eps$-окрестность точки $\mb x_*$) выполняется следующее: $\lim_{t\to +\infty}
\ph(t; \mb x_0) = \mb x_*$.
\question
Почему это определение — не то, которое мы хотим?
\quiz
\choice \correct
Узнать ответ
\comment
Например, особая точка типа «центр» согласно такому определению
является неустойчивой, а нам бы хотелось, чтобы она была
устойчивой.
\definition
(Снова неверное.) Особая точка $\mb x_*$ называется устойчивой, если для любого
начального условия $\mb x_0$, достаточно близкого к $\mb x_*$,
соответствующая траектория не уходит от $\mb x_*$ слишком далеко. Иными
словами, существует такое $\eps>0$, что для всякого начального условия $\mb
x_0 \in U_\eps(\mb x_*)$ выполняется следующее:
$\rho(\ph(t,\mb x_0), \mb x_*) \leq M$, где $\rho(\mb x, \mb y)$ — расстояние (в
какой-то метрике) между $\mb x$ и $\mb y$, а $M$ — какая-то константа.
\question
Почему это определение тоже не подходит?
\quiz
\choice \correct
Узнать ответ
\comment
Рассмотрим уравнение на прямой $\dot x=-x(x-1)(x+1)$. Точка $0$
является особой, если $x \in (0, 1)$, то $\dot x > 0$, а если $x\in
(-1, 0)$, то $\dot x<0$. Отклонившись от точки $0$ чуть-чуть мы
начнём отклоняться от неё всё сильнее, однако не уйдём дальше точки
$1$ или $-1$, см. \ref[рис.][fig:12:three_points]. В то же время,
сколь малым ни было бы наше отклонение от $0$, траектория уйдёт от $0$
достаточно далеко (на расстояние порядка 1). Поэтому точка $0$ не
должна быть устойчивой, а по предложенному определению была бы.
\figure \showcode \collapsed \label fig:12:three_points
\pythonfigure
plt.figure(figsize=(8, 5))
plt.subplot2grid((1, 10), (0, 0))
plt.xlim(-0.5, 0.5)
plt.xticks([], [])
plt.ylim(-4, 4)
plt.quiver([0, 0, 0, 0], [4, 0.1, -0.1, -4], [0, 0, 0, 0],
[-3 + 0.1, 1-0.2, -1 + 0.2, 3 - 0.1], angles='xy',
scale_units='xy', scale=1, units='inches',
width=0.03, color='Teal')
plt.plot([0, 0, 0], [1, -1, 0], color='Teal', marker='o',
fillstyle='none', mew=5, lw=0, markersize=2)
plt.subplot2grid((1, 10), (0, 1), colspan=8)
ob.axes4x4()
def f(t, x):
return -x ** 3 + x
for x0 in [0, 1, -1, 0.001, -0.001, 0.01,
-0.01, 0.1, -0.1, 4, -4]:
ob.eulersplot(f, -4, 4, x0, color='steelblue')
\caption
Фазовые кривые (слева) и интегральные кривые (справа)
для уравнения $\dot x = -x(x-1)(x+1)$.
\definition
(Опять неверное!) Особая точка $\mb x_*$ называется устойчивой, если
существует такое $\eps>0$, что любая траектория, стартующая в
$\eps$-окрестности точки $\mb x_*$, не покидает эту окрестность. Иными
словами, для всякого начального условия $\mb x_0 \in
U_\eps(\mb x_*)$ выполняется следующее: $\ph(t,\mb x_0) \in U_\eps(\mb x_*)$.
\question
Почему и это определение не подходит?
\quiz
\choice \correct
Узнать ответ
\comment
Рассмотрим особую точку типа «центр», но пусть фазовые кривые
являются не окружностями, а вытянутыми по горизонтали эллипсами,
см. \ref[рис.][fig:12:center]. Нарисуем какую-нибудь окрестность
точки $(0,0)$: для стандартной метрики она будет иметь форму
круга. Траектории, стартующие вблизи верхней точки этого круга
покидают эту окрестность из-за вытянутости эллипсов. Таким
образом, данная особая точка была бы неустойчивой по нашему
«определению», вопреки ранее принятым решениям.
\figure \showcode \collapsed \label fig:12:center
\pythonfigure \style width: 350px;
plt.figure(figsize=(6,6))
ob.axes4x4(labels=('x', 'y'))
ob.phaseportrait(lambda X, t=0: np.array([-2*X[1], 0.5*X[0]]),
[[0.7, 0.7], [1.4, 1.4]])
theta = np.linspace(0, 2 * np.pi)
plt.plot(np.cos(theta), np.sin(theta), color='black')
Ну что же, дадим, наконец, и верное определение.
\definition \label def:12:Lyapunov
(Теперь верное.) Особая точка $\mb x_*$ называется \em{устойчивой по
Ляпунову}, если для всякого $\eps >0$ найдётся такое $\delta >0$, что
для всякого начального условия $\mb x_0 \in U_\delta(\mb x_*)$, решение с
этим начальным условием не покинет $\eps$-окрестность точки $\mb x_*$ (то
есть для всякого $t>0$, $\ph(t, \mb x_0)\in U_\eps(\mb x_*)$).
Это определение похоже на определение предела: строго говоря, это определение
\em{равномерного предела} семейства функций. Его можно понимать так: для всякой
целевой окрестности можно выбрать окрестность поменьше, такую, что все
траектории, стартующие в этой маленькой окрестности, не покинут целевую. Условие
о том, что рассматриваются только значения $t>0$, очень важное — нас интересует,
что происходит в прямом времени (при $t\to +\infty$), а не в обратном.
\section Используем определение устойчивости по Ляпунову
Проверим, что для тех точек, которые мы обсуждали, определение устойчивости по
Ляпунову согласуется с нашими интуитивными представлениями.
\subsection Устойчивый узел
Сначала рассмотрим устойчивый линейный узел. Перейдём в нормализующие координаты
(соответствующие собственному базису). Система примет вид
\eq
\dot x = -\lambda x\quad \dot y = -\mu y,
где $\lambda >0$ и $\mu > 0$. В любой момент времени обе координаты убывают по
модулю, следовательно, убывает и расстояние до нуля. Значит в определении
устойчивости для всякого $\eps$ можно положить $\delta = \eps$: любая
траектория, стартующая в $\eps$-окрестности нуля, не покидает эту
$\eps$-окрестность.
\remark
Строго можно в этом убедиться следующим образом:
\snref[производная][snip:Lie-deriv] функции $F(x,y)=x^2 +
y^2$ вдоль векторного поля $v=(-\lambda x, -\mu y)$ равна $L_v F=-2 \lambda x^2
- 2\mu y^2 < 0$. Это означает, что любая траектория может войти в любую
окружность вида $F=const$, но не может из неё выйти.
\figure \showcode \collapsed
\pythonfigure \style width: 400px;
plt.figure(figsize=(6, 6))
ob.axes4x4(labels=('x', 'y'))
def linfield(A, C, inits):
ob.phaseportrait(lambda X, t=0: C @ A @ np.linalg.inv(C) @ X,
(C @ inits).T, t=(-2, 2), n=50, head_length=0.3,
head_width=0.15, linewidth=1)
plt.plot([0], [0], marker='o', mew=2, lw=0, markersize=5,
markerfacecolor='white', markeredgecolor='steelblue')
C = np.array([[1, 0], [0, 1]])
theta = np.linspace(0, 2 * np.pi, 4 * 3 + 1)
r = 3
u = np.cos(theta) * r
v = np.sin(theta) * r
inits = np.array([u, v])
linfield(np.diag([-1, -3]), C, inits)
theta = np.linspace(0, 2 * np.pi, 101)
plt.plot(np.cos(theta), np.sin(theta))
\subsection Центры
Рассмотрим далее особую точку типа «центр». Её траекториями могут быть достаточно вытянутые эллипсы: точка, движущаяся вдоль такой траектории может как приближаться, так и удаляться от начала координат.
\figure \showcode \collapsed
\pythonfigure \style width: 350px;
plt.figure(figsize=(6,6))
ob.axes4x4(labels=('x','y'))
ob.phaseportrait(lambda X, t=0: np.array([7.0*X[0]-9.0*X[1], 9*X[0]-7.0*X[1]]),
[[x,-x] for x in np.linspace(0,20,20)/3], [-2,2], n=150,
head_length=0.3, head_width=0.15, linewidth=1)
circ = lambda x, y: y**2/2 + x**2/2
data = [(4, 'black'), (1, 'red'), (.2, 'purple')]
for level, color in data:
ob.mcontour(np.linspace(-5,5,300), np.linspace(-5,5,300), circ,
levels=[level], linewidths=2, colors=color)
Тем не менее, особая точка является устойчивой по Ляпунову. Действительно, если
нам дали черную окрестность, то красной окрестности будет недостаточно:
существуют траектории, начинающиеся внутри красной окрестности, но покидающие
чёрную. Зато фиолетовой окрестности нам хватит: выбирая любое начальное условие
внутри фиолетового круга мы никогда не сможем выйти за черный круг. Можно
аккуратно показать, что для любого чёрного круга найдётся свой фиолетовый.
\subsection Седло
Рассмотрим теперь особую точку вида седло:
\figure \showcode \collapsed
\pythonfigure \style width:350px;
def linfield(A, C, inits):
ob.phaseportrait(lambda X, t=0: C @ A @ np.linalg.inv(C) @ X,
(C @ inits).T, t=(-2, 2), n=50, head_length=0.4,
head_width=0.2, linewidth=1)
plt.plot([0], [0], marker='o', mew=2, lw=0, markersize=5,
markerfacecolor='white', markeredgecolor='steelblue')
from itertools import product
plt.figure(figsize=(6,6))
ob.axes4x4(labels=('x','y'))
C = np.array([[2, 1], [1, -1]])
inits = 0.5 * np.array(list(product(np.linspace(-10, 10, 6), [-1, 1]))
+ [[-1, 0], [1, 0], [0, 1], [0, -1]]).T
linfield(np.diag([-1, 1]), C, inits)
theta = np.linspace(0, 2 * np.pi)
plt.plot(3 * np.cos(theta), 3 * np.sin(theta), color='black', lw=2)
Сколь бы малую $\delta$-окрестность мы бы ни выбрали, эту окрестность пересекают траектории из семейства гипербол, уходящие далеко от седла. Из этого следует, что седло является неустойчивым.
\remark
Чтобы продемонстрировать, что особая точка не является
устойчивой, достаточно было бы иметь хотя бы одну траекторию, по которой можно
уйти из любой окрестности особой точки на какое-то фиксированное расстояние.
\section Асимптотическая устойчивость
Когда мы обсуждали вопрос об «интуитивной» устойчивости линейных особых точек, у
нас не возникло никаких сомнений по поводу узлов, фокусов и сёдел. С центрами
всё не так однозначно. С одной стороны, траектории, близкие к особой точке,
не уходят слишком далеко, и это вроде бы соответствует нашим представлениям об
устойчивости и согласуется с определением устойчивости по Ляпунову. С другой стороны, нам может потребоваться более сильное условие: чтобы со временем траектория не просто не уходила далеко от особой точки, но и приближалась к ней. Это условие даёт нам определение \emph{асимптотической} устойчивости.
\definition \label def:12:asy
Особая точка $\mb x_*$ называется \em{асимптотически устойчивой}, если она
устойчива по Ляпунову и существует такое $\delta>0$, что для всякого
начального условия $\mb x_0 \in
U_\delta(\mb x_*)$ верно следующее: $\lim_{t\to+\infty} \ph(t,\mb x_0) =
\mb x_*$.
Заметим, что \ref[определение][def:12:asy] очень похоже на неверное
\ref[определение][def:12:incorrect-lim]: разница состоит в том, что в определение
асимптотической устойчивости явно входит требование устойчивости по Ляпунову.
Может быть, достаточно только условия на предел? Оказывается, нет: можно
построить пример системы, у которой имеется такая особая точка, что любая
траектория, стартующая вблизи этой точки, возвращается к ней, но при этом может
уйти достаточно далеко — и таким образом особая точка не является устойчивой по
Ляпунову.
\exercise
Рассмотрим дифференциальное уравнение, в полярных координатах задающееся
следующим образом:
\eq
\dot \varphi = \sin (\varphi)+1,\quad \dot r = r(1-r).
\enumerate
\item
Построить фазовый портрет в координатах $(r, \varphi)$ и $(x, y)$.
\item
Что можно сказать о поведении решений при $t\to +\infty$?
\item
Является ли положение равновесия $(r=1, \varphi = 0)$ асимптотически устойчивым?
\item Устойчивым по Ляпунову?
\section Теорема об устойчивости по первому приближению
Доказывать устойчивость особой точки, пользуясь только определением, обычно
не очень просто. К счастью, существует теорема, которая сильно упрощает решение
задач такого типа.
\theorem \label thm:12:Lyap
(Ляпунова, об устойчивости по первому приближению.)
Для особой точки $\mb x_*$ системы дифференциальных уравнений \ref{eq:12:gen}
рассмотрим матрицу Якоби:
\eq
A = \left. \frac{\partial \mb v}{\partial \mb x} \right|_{\mb x = \mb x_*}.
Пусть собственные значения матрицы $A$ равны $\lambda_1 , \ldots, \lambda_n$.
\enumerate
\item Если все собственные значения имеют отрицательные вещественные
части, то есть для всех $i=1,\ldots, n$, $\re (\lambda_i) <0$ то особая точка
\em{асимптотически устойчива}.
\item Если хотя бы одно собственное значение имеет положительную
вещественную часть, то есть найдётся такое $i$, что $\re (\lambda_i)
>0$, то особая точка \em{не является устойчивой по Ляпунову}.
Между двумя утверждениями теоремы есть «зазор»: бывают такие особые точки, про
устойчивость которых теорема не говорит ничего.
\question
Что вы можете сказать о собственных значениях особых точек, для которых
теорема об устойчивости не говорит ничего?
\quiz
\choice \correct
Узнать ответ
\comment
Это особые точки, у которых есть собственные значения, лежащие
на мнимой оси, то есть имеющие нулевую вещественную часть, а
также, быть может, есть какое-то количество собственных значений
с отрицательной вещественной частью.
Полное доказательство этой теоремы довольно сложное и мы не будем здесь его
приводить. Рассмотрим лишь случай линейных уравнений; после этого поверить в
общий случай можно будет легко, зная, что поведение нелинейных уравнений похоже
на поведение соответствующих линейных.
\proof (Набросок доказательства для линейных уравнений)
Начнём со второй части. Если есть хотя бы одно собственное значение
$\lambda_j$ с положительной вещественной частью, ему соответствует некоторый
собственный вектор $v$ и у уравнения есть решение вида $c e^{\lambda_j t}
v$. Если $\re \lambda_j>0$, экспонента возрастает при $t\to +\infty$, и
существует далеко уходящее решение со сколь угодно близким к началу
координат начальным условием (параметр $c$ можно делать сколь угодно
маленьким). Значит, особая точка не является устойчивой по Ляпунову.
Докажем теперь первую часть. Если все собственные числа имеют отрицательную
вещественную часть, и матрица диагонализируема, вдоль всех направлений идёт
приближение к нулю, и особая точка асимптотически устойчива.
Доказательство для жордановой клетки более сложное. Рассмотрим уравнение
$\mb x=J_{\lambda} \mb x$, где $J_\lambda$ — жорданова клетка с собственным
значением $\lambda$, причём $\re \lambda <0$. Рассмотрим для простоты случай
вещественного $\lambda$, то есть $\lambda < 0$. (Случай комплексного
$\lambda$ рассматривается аналогично, но с некоторыми техническими
усложнениями.)
Идея состоит в том, чтобы доказать, что траектория, войдя в произвольный
круг радиуса $\eps$, никогда из него не выйдет. Чтобы это утверждение стало
верным, нужно выбрать правильную систему координат. (В исходной системе
координат вместо кругов нужно брать эллипсы.)
Заметим, что выбором координат можно единички в жордановой форме заменить на
произвольное число $\mu$. Действительно, рассмотрим такую диагональную
матрицу перехода:
\eq
C = \begin{pmatrix}
1 & 0 & 0 & \cdots & 0\\\\
0 & \mu & 0 & \cdots & 0\\\\
0 & 0 & \mu^2 & \cdots & 0\\\\
\vdots & \vdots & \vdots & \ddots & \vdots \\\\
0 & 0 & 0 & \cdots & \mu^{n-1}
\end{pmatrix}
Прямое вычисление показывает, что
\eq
C^{-1}J_{\lambda}C= \begin{pmatrix}
\lambda & \mu & 0 & \cdots & 0 & 0\\\\
0 & \lambda & \mu & \cdots & 0 & 0\\\\
0 & 0 & \lambda & \cdots & 0 & 0\\\\
\vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\\\
0 & 0 & 0 & \cdots & \lambda & \mu \\\\
0 & 0 & 0 & \cdots & 0 & \lambda
\end{pmatrix}
В дальнейшем мы будем работать в новой системе координат. Число $\mu$
подберем позднее.
Теперь рассмотрим функцию $\rho(\mb x)=\\|\mb x\\|^2=x_1^2+\ldots+x_n^2$. Мы
хотим доказать, что $L_{v} \rho(\mb x) < 0$ для всех $\mb x\ne 0$, то есть
\snref[производная вдоль векторного поля][snip:Lie-deriv] от функции $\rho$
везде отрицательна (кроме нуля). Это будет означать, что в любой момент
времени расстояние до начала координат уменьшается. Имеем:
\eq
L_{v} \rho = \sum_{k=1}^n \frac{\partial \rho}{\partial x_k} v_k =
\sum_{k=1}^{n-1} 2x_k (\lambda x_k + \mu x_{k+1}) + 2 \lambda x_n^2 =
\lambda \sum_{k=1}^{n} x_k^2 + \mu \sum_{k=1}^{n-1} x_k x_{k+1}.
Первое слагаемое является отрицательным, поскольку $\lambda < 0$. Мы хотим
подобрать такое маленькое $\mu$, чтобы второе слагаемое по модулю было
меньше первого. Это всегда можно сделать, поскольку
\eq
x_k x_{k+1} \le \frac{1}{2} (x_k^2 + x_{k+1}^2) < \sum_{k=1}^n x_k^2
Выбирая $\mu=\frac{1}{n\lambda}$, получаем требуемое.