有限差分法求救微分方程python
时间: 2023-10-23 22:14:07 浏览: 129
好的,有限差分法是一种常用的求解微分方程的数值方法。下面是一个使用有限差分法求解一维热传导方程的 Python 代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义模拟参数
L = 1.0 # 区域长度
T = 1.0 # 模拟时间
nx = 100 # 空间网格数
nt = 1000 # 时间网格数
alpha = 0.01 # 热扩散系数
# 初始化网格
dx = L / nx
dt = T / nt
x = np.linspace(0, L, nx+1)
t = np.linspace(0, T, nt+1)
u = np.zeros((nx+1, nt+1))
# 设置初始条件
u[:, 0] = np.sin(np.pi * x)
# 使用有限差分法求解
for n in range(nt):
for i in range(1, nx):
u[i, n+1] = u[i, n] + alpha * dt / dx**2 * (u[i+1, n] - 2*u[i, n] + u[i-1, n])
# 绘制结果
plt.plot(x, u[:, -1])
plt.xlabel('x')
plt.ylabel('u')
plt.show()
```
阅读全文