马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
各位大侠,在下编了个变步长的四阶龙格库塔解方程组的程序,可是老出错,请各位大侠指正,程序如下:
clc
clear
AbsTol=1e-6;
h=0.01;
p=4;
a=0;
b=500;
p(21)=2^p-1;
T=a:h:b;
while T(end)<T(500);
[T(1),X(:,1)]=rk44(a,b,h);
[T(2),X(:,2)]=rk44(a,b,h/2);
if abs(X(:,1)-X(:,2))/p(21)>AbsTol;
T(1)=T(2);
X(:,1)=X(:,2);
h=h/2;
[T(2),X(:,2)]=rk44(a,b,h/2);
end
end
[T(j+1),X(:,j+1)]=rk44(a,b,h);
j=j+1;
if abs(X(1,j)-0.1)<=10e-6;
X(3,j+1)=-0.8*X(3,j);
end
plot(X(1,(end-1000):end),X(3,(end-1000):end),'-k')
错误信息如下
??? Subscript indices must either be real positive integers or logicals.
Error in ==> changerk44 at 20
[T(j+1),X(:,j+1)]=rk44(a,b,h);请各位大侠帮忙!不胜感激 |