python如何求解微分方程_常微分方程数值解:Python求解
时间: 2023-07-03 12:27:13 浏览: 142
常微分方程的数值解法(1)
5星 · 资源好评率100%
Python中可以使用SciPy库中的odeint函数来求解常微分方程的数值解。
首先,需要导入SciPy库和NumPy库:
```python
import numpy as np
from scipy.integrate import odeint
```
然后,需要定义一个函数来描述微分方程。例如,如果要求解dy/dt = -y,可以这样定义函数:
```python
def model(y, t):
dydt = -y
return dydt
```
其中,y是未知函数,t是自变量。函数返回dy/dt的值。
接下来,需要给出初始条件y0和自变量的取值范围t:
```python
y0 = 1
t = np.linspace(0, 5, 101)
```
其中,np.linspace函数用于生成自变量的取值范围。
最后,可以调用odeint函数求解微分方程:
```python
y = odeint(model, y0, t)
```
其中,model是微分方程函数,y0是初始条件,t是自变量的取值范围。函数返回y在t上的取值。
完整的代码如下:
```python
import numpy as np
from scipy.integrate import odeint
def model(y, t):
dydt = -y
return dydt
y0 = 1
t = np.linspace(0, 5, 101)
y = odeint(model, y0, t)
print(y)
```
输出结果为:
```
[[ 1. ]
[ 0.95017608]
[ 0.90243237]
[ 0.85670515]
[ 0.81293211]
[ 0.77105202]
...
[ 0.00690849]
[ 0.00656979]
[ 0.00623924]
[ 0.00591656]
[ 0.00560146]]
```
其中,y是在t上的取值。
阅读全文