matlab数值分析作业答案,数值分析作业MATLAB程序题

function [x,y1,y2]=my(dyfun,xspan,y0,h)

x=xspan(1):h:xspan(2);

y1(1)=y0;

y2(1)=y0;

for n=1:length(x)-1

y1(n+1)=y1(n)+h*feval(dyfun,x(n),y1(n)); k1=feval(dyfun,x(n),y2(n));

k2=feval(dyfun,x(n)+h/2,y2(n)+h/2*k1);

k3=feval(dyfun,x(n)+h/2,y2(n)+h/2*k2);

k4=feval(dyfun,x(n)+h,y2(n)+h*k3);

y2(n+1)=y2(n)+h/6*(k1+2*k3+2*k2+k4);

end

x=x';y1=y1';y2=y2';

x3=0:0.02:1;y3=1/3*exp(-50*x)+x.^2;

plot(x,y1,'r',x,y2,'g',x3,y3,'b');

legend('Euler','Runge-Kutta','真值解')

>> dyfun=inline('-50*y+50*x.^2+2*x');

[x,y1,y2]=my(dyfun,[0,1],1/3,0.02);[x,y1,y2]

H=0.02时

matlab数值分析作业答案,数值分析作业MATLAB程序题_第1张图片

你可能感兴趣的:(matlab数值分析作业答案)