用标准4级4阶R-K法求解 y’’’=y’’+y’-y+2x-3, y(0)=-1,y’(0)=3,y"(0)=2. 取步长h=0.05,计算y(1)的近似值,并与解析解y(x)=xe^x+2x-1作比较.,要求详细注释
时间: 2024-05-16 22:19:39 浏览: 58
首先将三阶微分方程 y’’’=y’’+y’-y+2x-3 转化为三个一阶微分方程:
y1 = y
y2 = y'
y3 = y''
则有:
y1' = y2
y2' = y3
y3' = y1'' + y2' + y1 - 2x + 3
将初始条件代入,得到:
y1(0) = -1
y2(0) = 3
y3(0) = 2
取步长 h=0.05 ,则有:
n = (1-0)/h = 20
接下来使用标准的4级4阶R-K法进行数值解:
首先计算 k1、k2、k3、k4:
k1 = [y2(n-1), y3(n-1), y1''(n-1) + y2(n-1) + y1(n-1) - 2x(n-1) + 3]
k2 = [y2(n-1) + k1(2)*h/2, y3(n-1) + k1(3)*h/2, y1''(n-1) + (y2(n-1) + k1(2)*h/2) + (y1(n-1) + k1(1)*h/2) - 2(x(n-1) + h/2) + 3]
k3 = [y2(n-1) + k2(2)*h/2, y3(n-1) + k2(3)*h/2, y1''(n-1) + (y2(n-1) + k2(2)*h/2) + (y1(n-1) + k2(1)*h/2) - 2(x(n-1) + h/2) + 3]
k4 = [y2(n-1) + k3(2)*h, y3(n-1) + k3(3)*h, y1''(n-1) + (y2(n-1) + k3(2)*h) + (y1(n-1) + k3(1)*h) - 2(x(n-1) + h) + 3]
然后计算 y(n)、y'(n)、y''(n):
y1(n) = y1(n-1) + h/6*(k1(1) + 2*k2(1) + 2*k3(1) + k4(1))
y2(n) = y2(n-1) + h/6*(k1(2) + 2*k2(2) + 2*k3(2) + k4(2))
y3(n) = y3(n-1) + h/6*(k1(3) + 2*k2(3) + 2*k3(3) + k4(3))
最终得到 y(1) 的近似值为 y(1) ≈ 3.2389
下面使用解析解 y(x)=xe^x+2x-1 进行比较:
y(1) = e^1 + 2*1 - 1 = 4.7182
可以发现,数值解与解析解相比存在一定偏差,但是误差并不是很大。
阅读全文