声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 918|回复: 1

[编程技巧] Subscript indices must either be real positive integers or logicals?

[复制链接]
发表于 2009-11-17 21:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
高手们快来帮我看看这个程序,改了好久都改不了错。程序如下:
dufftingrk4.m(主程序)
L=testfun20091105(@testfun20091106,0,100,1000);

testfun20091105.m
function L=testfun20091105(F2,a,b,N)
ya=[1,0];
L=rk4(F2,a,b,ya,N);


rk4.m
function R=rk4(F,a,b,ya,N)
% y'=f(x,y);
% a,b 左右端点
% N 迭代步长
% h 为步长
% ya 为初值
h=(b-a)/N;
T=zeros(N+1,1);
Y=zeros(N+1,2);
T=a:h:b;
for j=1:N
    k1=F(T(j),Y(j,1),Y(j,2));
    k2=F(T(j)+h/2,Y(j,1)+Y(j,2)*h/2,Y(j,2)+k1*h/2);
    k3=F(T(j)+h/2,Y(j,1)+Y(j,2)*h/2+k1*h*h/4,Y(j,2)+k2*h/2);
    k4=F(T(j)+h,Y(j,1)+h*Y(j,2)+k2*h*h/2,Y(j,2)+h*k3);
    Y(j+1,1)=Y(j,1)+h*Y(j,2)+h*h*(k1+k2+k3)/6;
    Y(j+1,2)=Y(j,2)+h*(k1+2*k2+2*k3+k4)/6;
end
R=[Y']

testfun20091106.m
function dy=testfun20091106(t,y(1),y(2));
c=0.5;
F0=0.91175;
dy=[y(2),-c*y(2)+y(1)-y(1)^3+F0*cos(t)];                              

出现的错误如下: Subscript indices must either be real positive integers or logicals.
Error in ==> C:\Documents and Settings\Administrator\桌面\rk4.m
On line 16  ==>     k1=F(T(j),Y(j,1),Y(j,2));
Error in ==> C:\Documents and Settings\Administrator\桌面\testfun20091105.m
On line 4  ==> L=rk4(F2,a,b,ya,N);
Error in ==> C:\Documents and Settings\Administrator\桌面\dufftingrk4.m
On line 1  ==> L=testfun20091105(@testfun20091106,0,100,1000);
好像我的下标都是正整数啊

[ 本帖最后由 ChaChing 于 2009-11-20 22:17 编辑 ]

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2009-11-18 09:34 | 显示全部楼层
T(j)+h/2是小数

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-29 18:39 , Processed in 0.060054 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表