高等数学问题的数值解(6)--解微分方程
Python对常微分方程的数值求解是基于一阶方程进行的,高阶微分方程必须化成一阶方程组,通常采用龙格-库塔方法。
scipy.integrate模块的odeint函数可求常微分方程的数值解。
例:求下述微分方程
$ y^{\prime }=-2y+x^{2}+2x,y(1) = 2$
在$1\leq x \leq 10$内步长间隔为0.5点上的数值解
1 | from scipy.integrate import odeint |
例:求下述微分方程的数值解,并在同一个图形界面上画出符号解和数值解的曲线
$\frac{d^{2}y}{dx^{2}}+2\frac{dy}{dx}+2y=sinx,y(0)=0,y^{\prime }(0)=1$
解:引入$y_{1}=y,y_{2}=y^{\prime }$,则可以把原来的二阶微分方程化为如下一阶微分方程组
$$
\begin{cases}
y_{1}^{\prime } = y_{2} & y_{1}(0)=0 \\
y_{2}^{\prime } = -2y_{1}-2y_{2}&y_{2}(0)=0
\end{cases}
$$
1 | from scipy.integrate import odeint |