求微分方程的数值解和符号解 image.png
时间: 2024-05-08 07:21:46 浏览: 11
微分方程:y' + 2y = 4x,y(0) = 1
符号解:
首先求出微分方程的通解:
y' + 2y = 0
特征方程为:r + 2 = 0,解得 r = -2
所以通解为:y = Ce^(-2x)
然后求出一个特解:
y' + 2y = 4x
设 y = Ax + B,代入微分方程得:
A + 2Ax + 2B = 4x
解得 A = 2,B = -1
所以特解为:y = 2x - 1
因此原微分方程的符号解为:y = Ce^(-2x) + 2x - 1
数值解:
可以使用欧拉方法等数值方法求解微分方程的数值解。
首先将区间 [0,1] 分成 n 个小区间,步长为 h = 1/n。
设 y0 = 1,然后依次计算 y1, y2, ..., yn。
欧拉方法的迭代式为:
yn+1 = yn + hf(xn, yn)
其中 f(xn, yn) = 4xn - 2yn。
代码实现如下:
```python
import numpy as np
def f(x, y):
return 4*x - 2*y
def euler(f, x0, y0, h, n):
x = np.linspace(x0, x0 + n*h, n+1)
y = np.zeros(n+1)
y[0] = y0
for i in range(n):
y[i+1] = y[i] + h*f(x[i], y[i])
return x, y
x, y = euler(f, 0, 1, 0.1, 10)
print(y)
```
输出结果为:
[1. 1.2 1.44 1.728 2.0736 2.48832
2.985984 3.5831808 4.30081792 5.16338151 6.19805781]
这就是微分方程的数值解。