常微分方程和差分方程
第四章-常微分方程和差分方程
习题1
\[ 2x_{n+2}-x_{n+1}-2x_{n}=0 \]
并且初值为\(x_0=-2;x1=0;\)
解法一:
其对应的特征方程为:
\[ 2\lambda^2-\lambda-2=0 \]
求解特征值可以通过一元二次方程的公式求解,也可以通过scipy直接求解。
求解出的特征值有两个,不是重根,分别为\(\lambda_1,\lambda_2\),则其通解为 \[ x_n=C_1\lambda_1^n+C_2\lambda_2^n \]
其中C1和C2常量由初始条件求出。
解法二:
通过迭代法求出$ x_n $对应的数值解。
1 | import math |
结果为:
1 | ----通过math计算特征方程的根---- |
最终其结果为
\[ x_n=(-1-\frac{\sqrt17}{17})*(\frac{1-\sqrt17}{4})^n+(-1+\frac{\sqrt17}{17})*(\frac{1+\sqrt17}{4})^n \]
以上结果可以发现特征方程的解法和迭代解法的完全一致。
习题2
令\(x(t)=[x_1(t),x_2(t)]^T\)其中,\(x_1(t)=x,x_2(t)=y\);则题目描述可以变成
\[ \frac{dx}{dt}=Ax,x(0)=[1,0]^T,A=\begin{bmatrix} %中括号 1&-2\\ 1&2 \end{bmatrix} \]
1 | import sympy as sp |
结果为:
1 | D:\anaconda\envs\pytorch\python.exe "D:/pythonMath/Deffrential Equations/homework2.py" |
因此其解析解为:
\[ x(t)=-sqrt(7)*exp(3*t/2)*sin(sqrt(7)*t/2)/7 + exp(3*t/2)*cos(sqrt(7)*t/2) \]
\[ y(t)=2*sqrt(7)*exp(3*t/2)*sin(sqrt(7)*t/2)/7) \]
解析解和数值解由于十分相似,在画图时不容易分辨,于是我将数值解的步长设置为0.2,解析解的步长为0.02时,其结果为:

当解析解与数值解的步长相等,均为0.02时,结果如下图:

可见二者几乎完全重合。