动力系统的Euler方法
许多示例的图形
本章中的许多示例包括某种类型的解图形,无论是相位平面中的曲线,还是 x ( t ) x(t) x(t)-图或 y ( t ) y(t) y(t)-图。在大多数情况下,这些图形的提供并没有说明我们是如何获得它们的。偶尔,解决方案是线段、圆或椭圆,我们能够通过解析方法验证这一点。但更多时候,解决方案并不位于熟悉的曲线之上。例如,考虑捕食者-猎物型系统
d x d t = 2 x − 1.2 x y \frac{dx}{dt} = 2x - 1.2xy dtdx=2x−1.2xy
d y d t = − y + 1.2 x y \frac{dy}{dt} = -y + 1.2xy dtdy=−y+1.2xy
以及满足初始条件 ( x ( 0 ) , y ( 0 ) ) = ( 1.75 , 1.0 ) (x(0), y(0)) = (1.75, 1.0) (x(0),y(0))=(1.75,1.0) 的解。图2.43展示了这个解在相位平面和 x y xy xy-平面中的图像,图2.44包含了对应的 x ( t ) x(t) x(t)-图和 y ( t ) y(t) y(t)-图。图2.43表明这个解是一个闭合曲线,但这个曲线显然既不是圆形的,也不是椭圆形的。类似地, x ( t ) x(t) x(t)-图和 y ( t ) y(t) y(t)-图似乎是周期性的,尽管它们似乎不是任何标准周期函数(如正弦函数、余弦函数等)的图像。那么我们是如何计算这些图形的呢?
这个问题的答案本质上与对一阶方程类似问题的答案相同。我们使用一种可靠的数值技术,并借助计算机。在本节中,我们将定义一阶系统的欧拉方法。其他数值方法将在第7章中讨论。
欧拉方法的推导
考虑一阶自治系统
d x d t = f ( x , y ) \frac{dx}{dt} = f(x, y) dtdx=f(x,y)
d y d t = g ( x , y ) , \frac{dy}{dt} = g(x, y), dtdy=g(x,y),
以及初始条件 ( x ( t 0 ) , y ( t 0 ) ) = ( x 0 , y 0 ) (x(t_0), y(t_0)) = (x_0, y_0) (x(t0),y(t0))=(x0,y0)。我们已经看到可以使用向量表示法将这个系统重写为
d Y d t = F ( Y ) , \frac{dY}{dt} = F(Y), dtdY=F(Y),
其中 Y = ( x , y ) Y = (x, y) Y=(x,y), d Y d t = ( d x d t , d y d t ) \frac{dY}{dt} = \left(\frac{dx}{dt}, \frac{dy}{dt}\right) dtdY=(dtdx,dtdy),而 F ( Y ) = ( f ( x , y ) , g ( x , y ) ) F(Y) = (f(x, y), g(x, y)) F(Y)=(f(x,y),g(x,y))。向量值函数 F F F 生成了一个向量场,而解是一个曲线,其在曲线上任何一点的切向量都与向量场相符(见图2.45)。换句话说,曲线的“速度”向量等于向量 F ( x ( t ) , y ( t