请问下面程序要怎样在MATLAB里面运行出来?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 13:54:07
请问下面程序要怎样在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
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内置的peaks函数,它的图形用来表示山峰,适合进行三维图形测试.
用surf(peaks)就可以得到这个图形了
事实上你的这个是MATLAB内置的peaks函数,它的图形用来表示山峰,适合进行三维图形测试.
用surf(peaks)就可以得到这个图形了
请问下面程序要怎样在MATLAB里面运行出来?
matlab程序运行出现the statement is incomplete的错误,下面是程序,请问怎样解决
请问下面Matlab程序哪里有问题?运行不出来啊!
MATLAB程序问题:运行下面的程序,
下面的matlab程序错误在哪里?怎么不运行?
下面程序为何在matlab中运行不了啊?
MATLAB 响应面法程序为什么运行不出来?
求教OLS Matlab程序,看不懂,运行不出来.
matlab 运行下面的程序出现一些错误,请帮忙看看错误在哪里,谢谢.
【Matlab程序运行出错】!
matlab程序运行,出错,
matlab程序中为什么下面这个式子运行不下去: