作业帮 > 综合 > 作业

请问下面程序要怎样在MATLAB里面运行出来?

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/01 10:29:21
请问下面程序要怎样在MATLAB里面运行出来?
function [x,y] = MyRunge_Kutta(fun,x0,xt,y0,PointNum,varargin)
c=[1/2-sqrt(3)/6 1/2+sqrt(3)/6]';
a=[1/4 1/4-sqrt(3)/6;
1/4+sqrt(3)/6 1/4];
b=[1/2 1/2];
Tol = 1e-6;
maxiter = 10000;
y(1,:) = y0(:)'; % 初值存为行向量形式
h = (xt-x0)/(PointNum); % 计算步长
x = x0+[0:PointNum-1]'*h; % 得x向量值
for k=1:PointNum
K1=feval(fun,x(k),y0+c(1)*h);
K2=feval(fun,x(k),y0+c(2)*h);
for i=1:maxiter
k1=feval(fun,x(k),y0+h*a(1,1)*K1'+h*a(1,2)*K2');
k2=feval(fun,x(k),y0+h*a(2,1)*K1'+h*a(2,2)*K2');
tol = max(norm(k1-K1,2),norm(k2-K2,2));
K1 = k1;
K2 = k2;
if (tol < Tol)
break
end
end
y(k,:)=y0+h*(b(1)*k1'+b(2)*k2');
y0=y(k,:);
end
请问下面程序要怎样在MATLAB里面运行出来?
运行结果如图:
事实上你的这个是MATLAB内置的peaks函数,它的图形用来表示山峰,适合进行三维图形测试.
用surf(peaks)就可以得到这个图形了