数值分析各种公式的解法

源代码在线查看: milne.m

软件大小: 14 K
上传用户: tzxiaojian
关键词: 数值分析
下载地址: 免注册下载 普通下载 VIP

相关代码

				% milne.m  常微分方程初值问题的数值解法的“线性多步法”
				% MATLAB上提供的“改进的欧拉方法”
				function s=milne(fun,x0,xn,y0,n)
				% 用线性多步法计算常微分方程初值问题,这里是基于数值积分的Milne公式
				% x0和y0分别为初值条件y(x0)=y0中的x0,y0
				% xn为x取值区间的最后一个节点的横坐标值,n为把区间分成的等份数
				if nargin				    error
				    return
				end
				h=(xn-x0)/n;
				y(1)=y0;
				xx=x0;
				% 先用改进的eule方法计算前4各y的初值
				for i=1:3
				    yp=y(i)+h*feval(fun,xx,y(i));
				    xx=x0+i*h;
				    yc=y(i)+h*feval(fun,xx,yp);
				    y(i+1)=(yp+yc)/2;
				end
				for i=1:n
				    xx=x0+i*h;
				    t1=2*feval(fun,xx,y(i+1));
				    t2=-feval(fun,(xx+2*h),y(i+2));
				    t3=2*feval(fun,(xx+2*h),y(i+3));
				    y(i+4)=y(i)+4/3*h*(t1+t2+t3);
				end
				s=y(n);
				return
				
				% 首先建立链接向fun的函数
				function y=ff2(x,y)
				y=-2*x*y;			

相关资源