-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathchapter04.qq
786 lines (691 loc) · 53.8 KB
/
chapter04.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
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
\chapter Дифференциальные уравнения в многомерных фазовых пространствах
\label chap:4:phasespace
\section Многомерные фазовые пространства
До сих пор мы рассматривали дифференциальные уравнения с одномерным фазовым пространством: искомая функция принимала значения во множестве вещественных чисел. На практике нам зачастую нужны более сложные дифференциальные уравнения с многомерными фазовыми пространствами. Для простоты обозначений здесь и ниже мы будем рассматривать преимущественно двумерные фазовые пространства. Большинство определений мгновенно обобщаются на случай произвольной размерности.
\subsection Отступление: что такое фазовое пространство?
\definition
\emph{Фазовое пространство} — это пространство, точка в котором описывает состояние
всей системы целиком в фиксированный момент времени. Изменение системы с
течением времени соответствует движению точки в фазовом пространстве.
Сложные системы описываются большим количеством параметров и требуют
рассмотрения многомерных фазовых пространств. Координаты в фазовом
пространстве называются \emph{фазовыми переменными}.
\example
Зачастую просто использование понятия фазового пространства позволяет сильно
продвинуться в понимании задачи. Приведем задачу Н.Н.Константинова из книги
Арнольда:
Пусть есть два города — A и B — и между ними проведены две дороги. Из города
А в какой-то момент вышли Ромео и Джульетта и направились в сторону города
B. При этом они решили идти каждый по своей дороге, держась за веревочку
длиной 5 метров — Ромео за один конец, Джульетта за другой. Веревочка может
не быть натянутой (то есть расстояние между Ромео и Джульеттой может быть
меньше 5 метров, но не может быть больше), они могут притормаживать,
ускоряться, пропускать друг друга вперед, идти назад и т.д. — двигаться как
угодно. Известно, что двигаясь таким образом им удалось попасть из города A
в город B.
В другой день из города B в город A выехал воз, нагруженный товаром, а из
города A в город B выехал другой воз, тоже нагруженные товаром, и ехали они
по разным тропинкам. Возы круглые (если смотреть сверху), их радиус 3 метра.
\proposition \nonumber
Если два человека смогли пройти, держась за верёвочку, то возы не смогут
разъехаться.
\proof
Для решения мы нарисуем \em{фазовое пространство} — в данном
случае, фазовую плоскость. По горизонтальной оси отложим расстояние до
объекта (будь то человек или воз) от города А по одной дороге, а по
вертикальной — расстояние до другого объекта по другой дороге. Таким
образом, расположение \em{обоих} объектов будет задано \em{одной} точкой на
плоскости. Движению обоих объектов будет соответствовать некоторая
кривая на фазовом пространстве — \em{фазовая кривая} (или \em{траектория}).
\figure \label fig:4:r-and-j \showcode \collapsed
\pythonfigure
plt.axis([-0.1,1.1,-0.1,1.1])
ob.center_spines()
plt.plot([1, 1, 0, 0, 1],[0, 1, 1, 0, 0], linewidth=2)
plt.text(0.02, 1.02, "B",fontsize=20)
plt.text(1.02, 0.02, "B",fontsize=20)
plt.text(0.02, 0.02, "A",fontsize=20)
ob.mplot(np.linspace(0, 1),
lambda x: 1 - ((1 - x)**2 + np.sin(3 * np.pi * (1 - x)) * 0.3 * (x - x**2)))
ob.mplot(np.linspace(0, 1), lambda x: (1 - x**2) - np.cos(3 * np.pi * x) * 0.3 * (x - x**2))
\caption Фазовая плоскость
В начальный момент времени Ромео и Джульетта находились в городе A,
что соответствует точке $(0,0)$ на картинке. В конечный момент
времени они оказались в городе B, что соответствует точке $(1,1)$ на
картинке. Таким образом, если смотреть на траектории, они «прошли»
из левого нижнего угла в правый верхний. Наоборот, возы в фазовом
пространстве двигались из левого верхнего угла в правый нижний. На
картинке рыжим цветом изображено движения возов, зеленым — движение
людей. Очевидно, что траектория может быть не только графиком
функции, но и произвольной непрерывной кривой. Теперь заметим, что
две кривые, соединяющие противоположные углы квадрата, в какой-то
момент обязательно пересекутся. (Строгое доказательство этого
утверждения нетривиально — оно требует сложной в доказательстве
леммы Жордана — но интуитивно оно не вызывает сомнений.) Это
означает, что как минимум в одном месте фазового пространства
\em{одновременно} будет выполнены условия, что расстояние между
возами не более пяти (люди держатся за веревочку), но и не менее
шести (сумма радиусов возов). Противоречие.
\example
В \snref[модели Солоу][snip:Solow] рассматривалось одномерное фазовое пространство —
единственной переменной была капиталовооруженность $k$, потребление
считалось постоянным. В более сложной \em{модели Рамсея} учитывается, что
потребление $c$ может меняться со временем, и оно вступает в игру как одна
из неизвестных функций. Фазовое пространство становится двумерными, фазовыми
переменными являются капиталовооруженность $k$ и потребление $c$.
\example
Когда мы обсуждали \snref[мальтузианский рост популяции][snip:Malthus], наше
пространство было одномерным: нас интересовал только размер популяции в данный
момент времени. Если бы мы рассмотрели более сложную модель, включающую,
например, взаимодействующие популяции двух разных видов, нам потребовалось бы
два числа для описания состояния системы — количество особей одного вида и
другого вида.
\hidden
\snippet \label snip:Lotka-Volterra \flabel модель Лотки — Вольтерра
\emph{Модель Лотки — Вольтерра} описывает динамику популяций двух
взаимодействующих видов: например, кроликов и лис. Если ни одной
лисы нет, скорость роста числа кроликов пропорциональна числу самих
кроликов, а если нет кроликов, то лисы вымирают от голода — за
единицу времени какая-то доля популяции погибает. Каждая встреча
лисы с кроликом вносит положительный вклад в динамику лис и
отрицательный — в динамику кроликов.
Если $x$ — число лис, а $y$ — число кроликов, то соответствующее
дифференциальное уравнение имеет вид:
\eq
\begin{cases}
\dot x = - \beta x + \gamma \cdot xy,\\\\
\dot y = ky-\lambda \cdot xy.
\end{cases}
где $k$, $\lambda$, $\beta$, $\gamma$ — некоторые положительные параметры.
Фазовым пространством здесь является первая координатная четверть $x\ge 0,
y\ge 0$.
Рассмотрим, скажем, простейшую модель взаимодействия двух видов, один из
которых является хищником, а другой — жертвой — например, взаимодействие
кроликов и лис, или щук и карасей.
Пусть $x$ — число лис, $y$ — число кроликов. Если ни одной лисы нет,
скорость роста числа кроликов пропорциональна числу самих кроликов (как в
мальтузианской модели — какая-то часть популяции воспроизводится за единицу
времени). Наоборот, если нет кроликов, то лисы вымирают от голода — за
единицу времени какая-то доля популяции погибает. Каждая встреча лисы с
кроликом (которые происходят с частотой, пропорциональной произведению $xy$)
вносит положительный вклад в динамику лис и отрицательный — в динамику
кроликов. Запишем дифференциальное уравнение (систему из двух уравнений):
\eq
\begin{cases}
\dot y = ky-\lambda \cdot xy\\\\
\dot x = - \beta x + \gamma \cdot xy,
\end{cases}
где $k$, $\lambda$, $\beta$, $\gamma$ — некоторые положительные параметры.
Фазовым пространством здесь является первая координатная четверть $x\ge 0,
y\ge 0$.
Эта система называется \em{моделью Лотки—Вольтерры}. Мы к ней ещё вернёмся в
будущем.
\section Дифференциальные уравнения в многомерных пространствах
Нам потребуется напомнить некоторые определения из математического анализа.
\definition \label def:4:area
\snippet \label snip:area \flabel Область
\em{Областью} в пространстве $\mathbb R^n$ мы будем называть связное
подмножество в $\mathbb R^n$. Часто под областью подразумевают открытое
подмножество, но мы не будем накладывать этого требования. Например,
отрезок, интервал, полуинтервал, луч — все они являются областями в
$\mathbb R^1$. Первая четверть (открытая или замкнутая — не важно) —
область в $\mathbb R^2$.
\definition \label def:4:vectorfunc
\snippet \label snip:vectorfunc \flabel Вектор-функция
\em{Вектор-функцией} называется отображение $\ph\colon I \to \mathbb
R^n$ из \snref[области][snip:area] $I \in \mathbb R$ числовой прямой в
многомерное векторное пространство. Вектор-функцию можно представлять
себе как упорядоченный набор числовых функций (то есть отображений
числовой прямой в себя):
\eq
\ph(t)=(\ph_1(t), \ph_2(t), \ldots, \ph_n(t)) \in \mathbb R^n,
где $\ph_j\colon I\to \mathbb R$ для всех $j=1,\ldots, n$.
\definition \label def:4:vf-deriv
\snippet \label snip:vf-deriv \flabel Производная вектор-функции
\em{Производной} вектор-функции $\ph\colon I\to \mathbb R^n$,
$\ph(t)=(\ph_1(t),\ldots,\ph_n(t))$ называется вектор-функция,
составленная из производных каждой компоненты функции $\ph$:
\eq
\dot \ph(t)=(\dot \ph_1(t), \ldots, \dot \ph_n(t))
Теперь мы готовы к тому, чтобы сформулировать общее определение
дифференциального уравнения первого порядка с фазовым пространством произвольной
размерности.
Пусть $z\colon I\to \mathbb R^n$ — $n$-мерная вектор-функция, $U$ — фазовое пространство, являющееся некоторой областью в $\mathbb R^n$, $I\times U$ — расширенное фазовое пространство, $F\colon I \times U \to \mathbb R^n$ — гладкое отображение. Тогда можно рассмотреть дифференциальное уравнение
\equation \label eq:4:general
\dot z = F(t, z)
Его решением является вектор-функция $z=\ph(t)$, такая, что
\equation
\dot \ph(t) = F(t, \ph(t))
для всех $t$ из области определения $\ph$.
Понятия «система дифференциальных уравнений» и «дифференциальное уравнение с
многомерным фазовым пространством» эквивалентны. Действительно,
рассмотрим, например, систему из двух дифференциальных уравнений:
\equation \label eq:4:system
\begin{cases}
\dot x=f(x,y,t)\\\\
\dot y=g(x,y,t)
\end{cases}
Систему \ref{eq:4:system} можно представить как одно дифференциальное уравнение вида \ref{eq:4:general} на вектор-функцию $z(t)=(x(t),y(t))$, где $F(t, z) = (f(x, y, t), g(x, y, t))$.
Здесь ситуация полностью аналогична линейной алгебре: нет никакой разницы между системой линейных уравнений и одним линейным уравнением относительно вектора (например, записанным в матричной форме).
\subsection Теорема существования и единственности решения задачи Коши
Мы уже формулировали кратко теорему существования и единственности для
многомерных дифференциальных уравнений, но сейчас не грех и повторить.
\snippet \label snip:thm:eu \flabel Теорема существования и единственности
\theorem \label{thm:4:eu}
Рассмотрим уравнение \ref{eq:4:general}, в котором правая часть $F(t, z)$
непрерывно дифференцируема ($C^1$-гладкая, то есть дифференцируемая и все
частные производные непрерывны) в окрестности точки $(t_0, z_0)$
расширенного фазового пространства.
Тогда найдётся такая окрестность $U=U_\delta(t_0)$, что на $U$ существует
решение $z=\ph(t)$ уравнения \ref{eq:4:general}, удовлетворяющее условию
$\varphi(t_0)=z_0$, и при этом любое другое решение уравнения
\ref{eq:4:general}, удовлетворяющее этому же условию, совпадает с
$\varphi$ на некоторой окрестности точки $t_0$.
\section Автономные системы дифференциальных уравнений
\subsection Геометрия вектор-функций
Ещё один небольшой экскурс в математический анализ. С любой вектор-функцией
связаны два геометрических понятия, которые нам сейчас понадобятся: её
\emph{график} и \emph{траектория}. Проще начать с траектории.
\definition \label def:4:vf-traj
\snippet \label snip:vf-traj \flabel Траектория вектор-функции
\em{Траекторией} вектор-функции $\ph \colon I \to \mathbb R^n$
называется кривая в $\mathbb R^n$, являющаяся образом для отображения
$\ph$, с отмеченным на ней направлением, соответствующим увеличению
аргумента. Иными словами, траектория — это кривая
\eq
\\{\ph(t)\mid t\in I\\},
на которой нарисована стрелочка, соответствующая направлению увеличения параметра
$t$.
\example
Рассмотрим вектор-функцию $\ph(t)=(\cos(t), \sin(t))$, $t\in [0, 2\pi)$. Её
траекторией будет единичная окружность, ориентированная против часовой
стрелки.
\figure \showcode \collapsed
\pythonfigure \style max-width: 300px
plt.figure(figsize=(3,3))
plt.axis([-1.1, 1.1, -1.1, 1.1])
ob.center_spines()
T = np.linspace(0, 2*np.pi, 200)
plt.plot(np.cos(T), np.sin(T))
ax = plt.gca()
ax.arrow(np.sqrt(1/2),np.sqrt(1/2),
-0.00001, 0.00001, head_width=0.04,
head_length=0.07, fc='b', ec='b')
\question \label quest:4:tr
Что будет траекторией для вектор-функции $\ph(t)=(\sin(2t), \cos(2t))$?
\quiz
\choice
Такая же окружность.
\comment Не совсем. Что насчёт ориентации?
\choice
Окружность радиуса 2.
\comment
Нет. Подставьте любое значение $t$ и посмотрите, что получится.
\choice \correct
Единичная окружность, ориентированная по часовой стрелке.
\comment Верно!
Если кривая задана как траектория некоторой вектор-функции, говорят также, что
эта кривая задана \em{параметрически}: параметр — это аргумент вектор-функции.
Как следует из \ref[вопроса][quest:4:tr], одна и та же кривая может быть задана
разными вектор-функциями.
\snref[Производная][snip:vf-deriv] вектор-функции имеет следующую геометрическую интерпретацию: это вектор скорости точки, движущейся вдоль траектории. Естественно изображать векторы скорости на картинке с траекторией вектор-функции, откладывая их от соответствующих точек.
\example
Для вектор-функции $\ph(t)=(\cos t, \sin t)$ производной является
вектор-функция $\dot \ph(t) = (-\sin t, \cos t)$. Нетрудно видеть, что
вектор $\dot \ph(t)$ перпендикулярен радиус-вектору точки $\ph(t)$. На
картинке это будет выглядеть так.
\figure \showcode
\pythonfigure \style max-width: 400px
plt.figure(figsize=(4,4))
plt.axis([-2, 2, -2, 2])
ob.center_spines()
T = np.linspace(0, 2*np.pi, 200)
plt.plot(np.cos(T), np.sin(T))
ax = plt.gca()
T = np.linspace(0, 2*np.pi, 4*4+1)
plt.quiver(np.cos(T), np.sin(T), -np.sin(T), np.cos(T),
scale=0.9, scale_units='x', color='Teal', headlength=7)
\proposition \label prop:4:tang
Вектор производной вектор-функции $\ph$ в точке $t_0$ касается траектории
этой функции в точке $t_0$.
\exercise \nonumber
Доказать \ref[утверждение][prop:4:tang].
Теперь разберёмся с графиком. В отличие от траектории, которая рисуется в
пространстве-образе вектор-функции, график рисуется в декартовом произведении
прообраза на образ, то есть в пространстве $I\times \mathbb R^n$. Например, для
вектор-функции $\ph\colon I\to \mathbb R^2$, это будет картинка в трёхмерном
пространстве с координатами $t, x, y$. Рисуется она так: для каждого значения
$t\in I$ рисуется точка $(t, x(t), y(t))$, где $(x(t), y(t))=\ph(t)$. Иными
словами, для каждого значения $t$ можно провести плоскость, проходящую через
точку $(t, 0, 0)$ параллельно координатной плоскости $Oxy$, и она должна
пересечь наш график в единственной точке $(t, x(t), y(t))$, соответствующий
значению функции $\ph$ в точке $t$. (Если вдуматься, здесь всё совершенно
аналогично понятию графика для функции одной переменной. Вдумайтесь.)
Формальное определение такое:
\definition \label def:4:vf-graph
\emph{Графиком} вектор-функции $\ph\colon I\to \mathbb R^n$ называется
подмножество декартова произведения $I\times \mathbb R^n$, устроенное
следующим образом:
\eq
\\{(t, \ph(t))\mid t\in I\\}
\example
Графиком вектор-функции $\ph(t)=(\cos t, \sin t)$ будет спираль.
\figure \showcode \collapsed
\plotly
t = np.linspace(0, 2*np.pi,50)
trace1 = go.Scatter3d(
x = t,
y = np.cos(t),
z = np.sin(t),
mode = 'lines+markers',
marker = {'size': 3},
hoverinfo = 'none',
name = 'График',
line = go.Line(width = 4),
projection = {'x': {'show': True, 'opacity': 1}},
)
trace2 = go.Scatter3d(
x = np.zeros_like(t),
y = np.cos(t),
z = np.sin(t),
mode = 'lines',
hoverinfo = 'none',
name = 'Траектория',
line = go.Line(width = 4)
)
trace3 = go.Scatter3d(
x = t,
y = np.zeros_like(t),
z = np.zeros_like(t),
mode = 'lines',
hoverinfo = 'none',
name = 'x=0, y=0'
)
layout = go.Layout(
scene = go.Scene(
xaxis = {'title': 't'},
yaxis = {'title': 'x'},
zaxis = {'title': 'y'},
camera = {'eye': {'x': 1, 'y': -2, 'z': 1}}
)
)
plot(dict(data=[trace1, trace3], layout=layout))
\caption
Траектория и график вектор-функции $\ph(t)=(\cos t, \sin t)$.
Картинку можно крутить!
\remark \label rem:4:proj
Траектория вектор-функции является проекцией её графика вдоль оси $t$.
\hide
\paragraph Репараметризация
\subsection Автономные дифференциальные уравнения на плоскости
Если правая часть не зависит от $t$ явно, система из двух дифференциальных уравнений становится \em{автономной} и принимает вид:
\equation \label eq:4:auto
\begin{cases}
\dot x=f(x,y)\\\\
\dot y=g(x,y)
\end{cases}
Напомним, что \em{интегральной кривой} дифференциального уравнения называется
график его решения; интегральная кривая лежит в расширенном фазовом
пространстве. Для автономных уравнений также оказываются содержательными
геометрические объекты, определённые в фазовом пространстве.
\definition
\em{Траекторией} (или \em{фазовой кривой}) системы \ref{eq:4:auto}
называется траектория вектор-функции, являющейся решением этой системы.
\remark
Фазовая кривая — это проекция интегральной кривой на фазовое пространство
вдоль оси времени (ср. с \ref[замечанием][rem:4:proj]).
\proposition
Через любую точку $(x_0, y_0)$ фазовой плоскости уравнения \ref{eq:4:auto}
проходит фазовая кривая, причём ровно одна.
\proof
Возьмём произвольный момент времени $t=t_0$. По \ref[теореме существования
и единственности\nonumber][thm:4:eu] существует и единственно решение $\ph(t)=(x(t),\\
y=y(t))$ уравнения \ref{eq:4:auto}, определённое в некоторой окрестности
точки $t_0$, и такое, что $x(t_0)=x_0$, $y(t_0)=y_0$. Его траектория даёт
фазовую кривую, проходящую через точку $(x_0, y_0)$.
Остаётся доказать, что эта траектория единственна. Для конкретного $t_0$
единственность следует из единственности решения; остаётся доказать, что от
выбора $t_0$ фазовая кривая не зависит. Действительно, уравнение
\ref{eq:4:auto} автономно, а, следовательно сдвиг по времени начального
условия приведёт к такому же сдвигу по времени всего решения. Иными словами,
для другого начального момента времени $t=t_1$ решением будет функция
$\ph_1(t)=\ph(t-t_1+t_0)$. Траектории у функций $\ph$ и $\ph_1$ совпадают.
Следовательно, фазовая кривая единственна.
\figure \label fig:4:proj \showcode \collapsed
\plotly
t = np.linspace(0, 1.5, 20)
t0 = 0.5
data = []
def f(t):
return (np.cos(2*t), np.sin(2*t))
data.append(go.Scatter3d(
x = t,
y = f(t)[0],
z = f(t)[1],
mode = 'lines+markers',
hoverinfo = 'none',
name = 'График',
line = go.Line(width = 4),
marker = {'size': 3},
projection = {'x': {'show': True, 'opacity': 0.6}}
))
data.append(go.Scatter3d(
x = [t0],
y = [f(t0)[0]],
z = [f(t0)[1]],
hoverinfo = 'none',
showlegend = False,
projection = {'x': {'show': True}}
))
deltat = 0.5
data.append(go.Scatter3d(
x = t + deltat,
y = f(t)[0],
z = f(t)[1],
mode = 'lines+markers',
hoverinfo = 'none',
name = 'Траектория',
line = go.Line(width = 4),
marker = {'size': 3},
projection = {'x': {'show': True, 'opacity': 0.7}}
))
data.append(go.Scatter3d(
x = [t0 + deltat],
y = [f(t0)[0]],
z = [f(t0)[1]],
hoverinfo = 'none',
showlegend = False,
projection = {'x': {'show': True}}
))
layout = go.Layout(
scene = go.Scene(
xaxis = {'title': 't'},
yaxis = {'title': 'x', 'range': [-1.2, 1.2]},
zaxis = {'title': 'y', 'range': [-1.2, 1.2]},
camera = {'eye': {'x': 1, 'y': -2, 'z': 1}}
),
showlegend = False,
)
plot(dict(data=data, layout=layout))
\caption
Интегральные кривые, отличающиеся сдвигом по времени, проецируются
в одну и ту же фазовую кривую
\snippet \label snip:phaseportrait \flabel фазовый портрет
\definition
Если нарисовать на фазовом пространстве все возможные траектории, получится
\em{фазовый портрет}.
С \snref{интегральными кривыми} связаны \snref{поля направлений}; для фазовых кривых есть
похожий объект: векторное поле.
\definition \label{def:4:vectorfield}
\em{Векторным полем}, заданным системой \ref{eq:4:auto}, называется
следующий объект: в каждой точке $(x_0, y_0)$ фазового пространства
нарисован вектор, выходящий из точки $(x_0, y_0)$ и имеющий координаты
$(f(x_0,y_0), g(x_0,y_0))$.
\snippet \hidden \label snip:vfield \flabel Векторное поле
\backref def:4:vectorfield
\em{Векторным полем}, заданным автономным дифференциальным уравнением $\dot
x=v(x)$, $x(t)\in \mathbb R^n$, $v(x) = (v_1(x),\ldots, v_n(x))$ называется
следующий объект: в каждой точке $x_0$ фазового пространства
нарисован вектор, выходящий из точки $x_0$ и имеющий координаты
$(v_1(x), \ldots, v_n(x))$.
\remark \nonumber
Каждый вектор векторного поля показывает, с какой скоростью движется точка
вдоль фазовой кривой, проходя определённое место в фазовом пространстве.
Фазовые кривые системы касаются векторов соответствующего векторного поля в
каждой своей точке. Это мгновенно следует из \ref[утверждения][prop:4:tang].
Рассмотрим несколько примеров.
\example
Нулевое поле:
\equation \label eq:4:zero
\dot x=0,\quad \dot y=0
В каждой точке отложен нулевой вектор.
\figure \label fig:4:zero \showcode \collapsed
\pythonfigure \style max-width: 400px;
plt.figure(figsize=(6,6))
plt.axis([-4,4,-4,4])
X = np.arange(-4,4,0.7)
x, y = np.meshgrid(X, X)
plt.plot(x, y, 'o', color='Teal');
\caption Нулевое векторное поле: кружочки символизируют нулевые векторы
\question
Как выглядят фазовые кривые этого уравнения?
\quiz
\choice
Произвольные кривые
\comment
Это неверно: у системы \ref{eq:4:zero} и начального
условия $x(0)=x_0, y(0)=y_0$ всегда существует тождественное решение
$x(t)=x_0, y(t)=y_0$, а по \ref[теореме существования и
единственности\nonumber][thm:4:eu] других решений нет.
\choice
Вся плоскость
\comment
Это неверно: вся плоскость не может быть фазовой кривой, например,
потому что не бывает дифференцируемого отображения из прямой
на всю плоскость.
\choice \correct
Каждая точка является отдельной фазовой кривой
\comment
Верно! У системы \ref{eq:4:zero} и начального
условия $x(0)=x_0, y(0)=y_0$ всегда существует тождественное решение
$x(t)=x_0, y(t)=y_0$, а по \ref[теореме существования и
единственности\nonumber][thm:4:eu] других решений нет.
Траектория постоянной вектор-функции — одна точка.
\example
Постоянное поле:
\eq
\dot x=1,\quad \dot y=2
В каждой точке отложен один и тот же вектор с координатами $(1, 2)$.
Фазовыми кривыми являются параллельные прямые с угловым коэффициентом $2$.
\figure \label fig:4:const \showcode \collapsed
\pythonfigure \style max-width: 400px
plt.figure(figsize=(4,4))
fs = lambda x, y: (1,2)
ob.vectorfield(np.linspace(-4, 4, 6),
np.linspace(-4, 4, 6),
fs, color='Teal',
headlength=7, scale=0.9,
scale_units='x')
\caption Постоянное векторное поле
\example Эйлерово поле:
\eq
\dot x=x,\quad \dot y=y
\figure \label fig:4:euler \showcode
\pythonfigure \style max-width: 400px;
plt.figure(figsize=(4,4))
plt.xlim(-1, 1)
plt.ylim(-1, 1)
theta = np.linspace(0, 2*np.pi, 4*5+1)
r = np.linspace(0, 1, 5)**3
r, theta = np.meshgrid(r, theta)
x = np.cos(theta)*r
y = np.sin(theta)*r
plt.quiver(x, y, x, y, color='Teal', headlength=7, scale=1,
scale_units='x')
\caption Эйлерово векторное поле
\question
Каковы фазовые кривые этого уравнения?
\quiz
\choice
Прямые, проходящие через начало координат.
\comment
Неверно. Фазовая кривая, стартовавшая вне начала координат, не
может попасть в начало координат: это противоречило бы
\ref[теореме существования и единственности\nonumber][thm:4:eu].
\choice
Открытые лучи, выходящие из начала координат.
\comment
Не совсем верно. Есть ещё одна фазовая кривая.
\choice \correct
Открытые лучи, выходящие из начала координат, а также само начало координат.
\comment
Так и есть!
\choice
Открытые лучи, выходящие из начала координат (кроме вертикального),
и само начало координат
\comment
Нет, в данном случае вертикальный луч является полноправной
фазовой кривой: ничто не запрещает его рассматривать.
\subsection Особые и неособые точки векторного поля
\snippet \label{snip:singular} \flabel{Особая точка}
\definition \label{def:singular}
Точка фазового пространства называется \emph{особой}, если векторное
поле в этой точке равно нулю (нулевому вектору). Иными словами, правая часть
дифференциального уравнения в особой точке обнуляется. Все остальные точки
называются \emph{неособыми}. Особые точки также называются \emph{положениями
равновесия} (\emph{equilibrium point} или \emph{steady state}).
Пусть $(x_0, y_0)$ — особая точка для некоторого дифференциального уравнения.
Тогда вектор-функция $\ph(t)\equiv (x_0, y_0)$, тождественно равная этой точке,
очевидно, является решением соответствующего уравнения (ведь её производная
равна нулевому вектору). Если уравнение удовлетворяет условию \snref{теоремы
существования и единственности}, эта функция является единственным решением
уравнения с начальным условием $(x_0, y_0)$. Иными словами, если решение
начинается в особой точке, то оно вечно живёт в этой особой точке (и, более
того, вечно жило в этой точке в прошлом). Никакое другое решение попасть в
особую точку не может (но может долго-долго к ней приближаться). Особые точки
являются отдельными траекториями и обычно изображаются на фазовом портрете
маленькими кружочками.
\section Связь между автономными и неавтономными уравнениями
\label sec:4:auto-nonauto
Между автономными и неавтономными дифференциальными уравнениями есть важная
связь, которую неформально можно сформулировать так: мир неавтономных систем
ровно на одно измерение богаче мира автономных систем; чтобы перейти от
неавтономной системы к автономной, нужно увеличить размерность фазового
пространства на один, а для обратного перехода — уменьшить на один.
Сейчас мы обсудим одну из версий этого принципа.
\theorem \label thm:4:auto-nonauto
Рассмотрим систему
\equation \label eq:4:auto2d
\begin{cases}
\dot x=f(x,y)\\\\
\dot y=g(x,y)
\end{cases}
Для любой точки $P=(x_0, y_0)$, такой, что $f(x_0,y_0)≠0$, фазовая кривая
системы \ref{eq:4:auto2d}, проходящая через $P$, совпадает с интегральной кривой для
уравнения
\equation \label eq:4:nonauto
\frac{dy}{dx}=\frac{g(x,y)}{f(x,y)}
\proof
Построим векторное поле системы \ref{eq:4:auto2d}, а также поле
направлений уравнения \ref{eq:4:nonauto}. Рассмотрим произвольную точку
$(x_1,y_1)$, близкую к точке $P$. В ней поле направлений задается
вектором $(f(x_1,y_1),g(x_1,y_1))$. Угловой коэффициент прямой, на
которой лежит этот вектор, равен $\frac{g(x_1,y_1)}{f(x_1,y_1)}$.
Угловой коэффициент прямой из поля направлений уравнения
\ref{eq:4:nonauto}, проведенной в точке $(x_1,y_1)$, будет равен тому же
числу: $\frac{g(x_1,y_1)}{f(x_1,y_1)}$. По теореме о существовании и
единственности, кривая, касающаяся в каждой своей точке соответствующего
направления, единственна. Значит, фазовая кривая автономного уравнения и
интегральная кривая неавтономного совпадают.
Этот принцип работает во всех точках, когда $f(x_0,y_0)\neq 0$. В
точках, когда это не выполнено можно поменять ролями $x$ и $y$: выражать
не $y$ через $x$, а $x$ через $y$. Наконец, когда оба выражения
обнуляются: $g(x_0,y_0)=f(x_0,y_0)= 0$ — то эта точка является
\em{особой}, и в ней не определено поле направлений.
\example \label ex:4:euler
Рассмотрим систему, задающую эйлерово векторное поле:
\eq
\dot x = x\quad \dot y = y.
Уравнения, входящие в эту систему, не зависят друг от друга (в уравнении на
$x$ фигурирует только $x$, в уравнении на $y$ — только $y$). Решения этих
уравнений нам уже известны (см. \ref[параграф][par:1:xdotx]):
\equation \label eq:4:sol
x(t)=x_0 e^t,\quad y(t)=y_0 e^t,
где $x(0)=x_0, y(0)=y_0$ — начальные условия.
Уравнения на фазовые кривые можно получить, выразив $x$ через $y$ или $y$
через $x$. Например, из первого уравнения следует, что $e^t = x(t)/x_0$ и
подставляя это во второе уравнение, имеем:
\eq
y = x\frac{y_0}{x_0}
Иными словами, фазовые кривые лежат на прямых, проходящих через начало
координат. Из выражения для решений \ref{eq:4:sol} видно, что фазовые кривые
являются открытыми лучами: решения стремятся к точке $(0,0)$ при $t\to
-\infty$, но никогда не достигают этой точки.
С помощью \ref[теоремы][thm:4:auto-nonauto] можно было бы получить уравнение
на фазовые кривые, не находя явного вида решений. Для этого необходимо
перейти к соответствующему неавтономному уравнению
\eq
\frac{dy}{dx}=\frac{y}{x}
Это \snref{уравнение с разделяющимися переменными} и оно легко решается:
\align
\item \frac{dx}{x} &=\frac{dy}{y}
\item \int \frac{dx}{x} &=\int \frac{dy}{y}
\item
\ln |y| &= \ln |x| + C
\item
|y| &= C |x|
Поскольку $x$ и $y$ никогда не меняют знак, можно снять модули и получить
уравнение $y=Cx$, задающее то же семейство прямых, что и раньше.
При этом, однако, мы потеряли некоторую информацию: в частности, направление
движения по фазовым кривым, а также тот факт, что на самом деле фазовые
кривые являются лучами, а не прямыми. Мы также потеряли вертикальные фазовые
кривые и фазовую кривую, соответствующую тождественно нулевому решению (она
изображается одной точкой). Всё это связано с условием $f\ne 0$ в
\ref[теореме][thm:4:auto-nonauto].
Как показывает разобранный \ref[пример\nonumber][ex:4:euler], для автономного
дифференциального уравнения на плоскости можно рассматривать две разные задачи:
\enumerate
\item
Найти решения, то есть зависимость $x(t)$ и $y(t)$.
\item
Найти фазовые кривые, то есть зависимость $y$ от $x$ или $x$ от $y$.
Для решения второй из этих задач полезно использовать
\ref[теорему][thm:4:auto-nonauto], но при этом мы теряем некоторую информацию об
исходной системе.
\subsection Репараметризация фазовых кривых \label par:4:reparam
Что произойдёт с фазовыми кривыми системы дифференцальных уравнений, если её
правую часть умножить на некоторое ненулевое число?
Рассмотрим систему
\eq
\begin{cases}
\dot x=\lambda f(x,y);\\\\
\dot y=\lambda g(x,y),
\end{cases}
где $\lambda > 0$. Понятно, что уравнение \ref{eq:4:nonauto} при этом не
изменится, поскольку $h$ окажется в числителе и знаменателе и сократится. Из
\ref[теоремы][thm:4:auto-nonauto] теперь следует, что не изменятся и фазовые
кривые. Однако \em{решения} уравнения при этом изменятся.
Можно сказать, что при этом происходит \em{репараметризация} фазовых кривых: мы
посещаем те же точки фазового пространства, но в другие моменты времени.
Сформулируем необходимое определение.
\definition
Рассмотрим гладкую вектор-функцию $f\colon [a,b] \to \mathbb R^n$ и пусть
функция $h\colon [c,d]\to[a,b]$ также гладкая, причём её производная всюду
положительна и $h(c)=a$, $h(d)=b$. Тогда сложная функция $f\circ h$ (то есть
$\tilde f(s)=f(h(s))$), $s\in [c,d]$, задаёт ту же траекторию, что и
исходная вектор-функция $f$. Переход от функции $f$ к функции $f\circ h$
называется \emph{репараметризацией} кривой.
Если представить себе, что на каждой точке кривой написано значение параметра, при котором мы проходим эту точку, то репараметризация — просто изменение «номеров» точек кривой.
\proposition \label prop:4:reparam
При репараметризации вектор производной умножается на число, но не меняет
направления.
\proof
Это следует из теоремы о производной сложной функции:
\eq
\frac{d}{ds} f(h(s))=\frac{df}{dt} \cdot \frac{dh}{ds} = \dot f \frac{dh}{ds}
При этом $f$ — это вектор, $\frac{dh}{ds}$ — число (причём мы потребовали,
чтобы оно было положительным).
Неформально можно сказать, что репараметризация кривой соответствует изменению
скорости, с которой мы эту кривую обходим. Теперь легко понять, что при
умножении векторного поля на константу мы изменяем скорость движения вдоль
фазовых кривых, но не сами фазовые кривые. Более того:
аналогичное утверждение справедливо при умножении векторного поля не только на
константу, но и на любую положительную функцию.
\question
Что произойдёт с фазовыми кривыми при умножении векторного поля на
\em{отрицательное} число?
\quiz
\choice
Ничего не произойдёт
\comment
Не вполне верно: на фазовой кривой есть стрелочка, показывающая
направление движение. Что произойдёт с этими стрелочками?
\choice Фазовые кривые симметрично отразятся
\comment
Нет, это интегральные кривые симметрично отразятся относительно
плоскости $t=0$.
\choice \correct
Кривые останутся на месте, а вот стрелочки все поменяются на
противоположные
\comment
Верно! Именно так всё и будет.