|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
%marunge4s.m
function [x,y]=marunge4s(dyfun,xspan,y0,h)
%4阶龙格库塔通用程序
%dyfun为向量函数f(x,y),xspan为求解区间[x0,xn]
%y0为初始向量,h为步长,x返回节点,y返回数值解向量
x=xspan(1):h:xspan(2);
y=zeros(length(y0),length(x));
y(:,1)=y0(:);
for n=1:(length(x)-1)
k1=feval(dyfun,x(n),y(:,n));
k2=feval(dyfun,x(n)+h/2,y(:,n)+h/2*k1);
k3=feval(dyfun,x(n)+h/2,y(:,n)+h/2*k2);
k4=feval(dyfun,x(n+1),y(:,n)+h*k3);
y(:,n+1)=y(:,n)+h*(k1+2*k2+2*k3+k4)/6;
end
x=x';
y=y';
就是这个程序,存为marunge4s.m文件,求解微分方程组没有问题,求解单个方程的时候怎么做?
请指教 !
比如求解:
dy/dx=2/3*x*y^(-2)
y(0)=1
0<=x<=1.2
谢谢! |
|