数值分析上机题Matlab(东南大学)6
时间:2026-01-16
时间:2026-01-16
数值分析上机题Matlab(东南大学)
数值分析上机题6
2010/12/17
一、题目
二、程序
数值分析上机题Matlab(东南大学)
21 - (4) 改进的AB4-AM4预测校正方法的通用方程
数值分析上机题Matlab(东南大学)
21 - (5) 运行结果比较
表1 各种方法运行结果比较
方法
按精度排序 RK4 1 AB4 4 AB4-AM4 3 改进
AB4-AM4 2
由图表可见RK4的精度最高,改进AB4-AM4得精度比AB4-AM4高,AB4最差。
21 - (6) 结论
单步方法RK4的精度很好,多步法中改进AB4-AM4得精度比AB4-AM4高,AB4最差。
数值分析上机题Matlab(东南大学)
三、附录
数值分析上机题Matlab(东南大学)
k3= f(x(i)+1/2*h, k4= f(x(i)+h, end end% AB4方法的通用方程% f -函数句柄% x0=[x1,x2] -求解范围% y0 -初值% h -计算步长
y(i)+1/2*h*k2); y(i)+h*k3);
y(i+1)= y(i)+ h/6*(k1+2*k2+2*k3+k4);
function[x,y]= AB4(f,x0,y0,h) x=[x0(1):h:x0(2)]';%#ok<NBRAK>[~,y0]= RK4(f,x([1 4]),y0,h); y= zeros(length(x),1); y(1:4)= y0; for i= 4:length(x)-1 y(i+1)= y(i)+... h/24*(55*f(x(i),y(i)) -... 59*f(x(i-1),y(i-1))+... 37*f(x(i-2),y(i-2)) -... 9*f(x(i-3),y(i-3))); end end% AB4-AM4预测校正方法的通用方程% f -函数句柄% x0=[x1,x2] -求解范围% y0 -初值% h -计算步长 function[x,y]= AB4AM4(f,x0,y0,h) x=[x0(1):h:x0(2)]';%#ok<NBRAK>[~,y0]= RK4(f,x([1 4]),y0,h); y= zeros(length(x),1); y(1:4)= y0; for i= 4:length(x)-1 y(i+1)= y(i)+... h/24*(55*f(x(i),y(i)) -... 59*f(x(i-1),y(i-1))+... 37*f(x(i-2),y(i-2)) -... 9*f(x(i-3),y(i-3))); y(i+1)= y(i)+... h/24*(9*f(x(i+1),y(i+1))+... 19*f(x(i),y(i)) -...
数值分析上机题Matlab(东南大学)
5*f(x(i-1),y(i-1))+... f(x(i-2),y(i-2))); end end%改进的 AB4-AM4预测校正方法的通用方程% f -函数句柄% x0=[x1,x2] -求解范围% y0 -初值% h -计算步长 function[x,y]= advanceAB4AM4(f,x0,y0,h) x=[x0(1):h:x0(2)]';%#ok<NBRAK>[~,y0]= RK4(f,x([1 4]),y0,h); y= zeros(length(x),1); y(1:4)= y0; for i= 4:length(x)-1 yp= y(i)+... h/24*(55*f(x(i),y(i)) -... 59*f(x(i-1),y(i-1))+... 37*f(x(i-2),y(i-2)) -... 9*f(x(i-3),y(i-3))); yc= y(i)+... h/24*(9*f(x(i+1),yp)+... 19*f(x(i),y(i)) -... 5*f(x(i-1),y(i-1))+... f(x(i-2),y(i-2))); y(i+1)= 251/270*yc+19/270*yp; end end