用matlab求微分方程 y’=-y2+x,y(0)=1的数值解,

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 02:59:50

用matlab求微分方程 y’=-y2+x,y(0)=1的数值解,
用matlab求微分方程 y’=-y2+x,y(0)=1的数值解,

用matlab求微分方程 y’=-y2+x,y(0)=1的数值解,
function [x,y]=Classical_RK4(odefun,xspan,y0,h,varargin)
x=xspan(1):h:xspan(2);
y(1)=y0;
for k=1:length(x)-1
K1=feval(odefun,x(k),y(k),varargin{:});
K2=feval(odefun,x(k)+h/2,y(k)+h/2*K1,varargin{:});
K3=feval(odefun,x(k)+h/2,y(k)+h/2*K2,varargin{:});
K4=feval(odefun,x(k)+h,y(k)+h*K3,varargin{:});
y(k+1)=y(k)+h/6*(K1+K2+K3+K4);
end
x=x';y=y';
采用经典4阶龙格库塔方法计算,编写function函数,调用如下:
f=@(x,y)-y^2+x;
[x,y]=Classical_RK4(f,[0,5],1,0.1);
plot(x,y,'--*')