yexl 发表于 2006-12-5 18:35

请指导!急……!

这是我自己编的关于显式3阶Runge_Kutta方法
M文件1:
function E=rk3(a,b,ya,m)
% a,b区间两端点值
% ya为给定某一点的函数值
% m最大迭代次数
h=(b-a)/m;
T=zeros(1,m+1);
Y=zeros(1,m+1);
T=a:h:b;
Y(1)=ya;
for y=1:m;
    k1=f(T(j),Y(j));
    k2=f(T(j)+0.5*h,Y(j)+0.5*h*k1);
    k3=f(T(j)+h,Y(j)-h*k1+2*h*k2);
    Y(j+1)=Y(j)+1/6*h*(k1+4*k2+k3);
end
E=;

M文件2:
functionz=f(x,y)
z=y-2*x/y;

脚本文件:
>> rk3(0,1,1,10);
可是每次运行的时候它总是报错:??? Input argument "b" is undefined.

                                                            Error in ==> rk3 at 5
                                                            h=(b-a)/m;

:@L

wf1254 发表于 2006-12-6 13:03

应该没问题,是不是你的其它目录下有同名的m文件,再执行rk3命令时自动执行它了
但你上面的程序也有错误,for y=1:m; 后多了分号,循环变量应为j不是y

lygmj 发表于 2006-12-6 14:24

where is j

for y=1:m;
    k1=f(T(j),Y(j));
    k2=f(T(j)+0.5*h,Y(j)+0.5*h*k1);
    k3=f(T(j)+h,Y(j)-h*k1+2*h*k2);
    Y(j+1)=Y(j)+1/6*h*(k1+4*k2+k3);
end

to check where j it is???
页: [1]
查看完整版本: 请指导!急……!