📄 milne.m
字号:
% milne.m 常微分方程初值问题的数值解法的“线性多步法”
% MATLAB上提供的“改进的欧拉方法”
function s=milne(fun,x0,xn,y0,n)
% 用线性多步法计算常微分方程初值问题,这里是基于数值积分的Milne公式
% x0和y0分别为初值条件y(x0)=y0中的x0,y0
% xn为x取值区间的最后一个节点的横坐标值,n为把区间分成的等份数
if nargin<5
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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -