求助 我编的程序出现循环次数不对
for i=2:nxf(1,i)=l*x(1,i)+(1-l)*xf(1,i-1);
vf(1,i)=w*(x(1,i)-xf(1,i-1))*(x(1,i)-xf(1,i-1))+(1-w)*vf(1,i-1);
df(1,i)=q*(x(1,i)-x(1,i-1))*(x(1,i)-x(1,i-1))+(1-q)*df(1,i-1);
R(i)=(1-l)*vf(1,i)/df(1,i);
end
最后以为R(i)能出现n次,结果 不止n次, 不知道什么原因:@Q
有老师知道吗,谢谢指教
[ 本帖最后由 prince00840 于 2008-12-6 15:45 编辑 ] 你这个程序能运行?当i=1时,xf(1,1)=l*x(1,1)+(1-l)*xf(1,0);xf(1,0)不可能存在,matlab矩阵下标是从1而不是0开始的。 不好意思啊,假设xf(1,1)、vf(1,1)、df(1,1)已知;
l、w、q也是已知(大于零小于一) 暂时看不出你的程序有什么问题,程序结束后R的维数不是1×n的? 楼主的程序错误很多! 不是直接复制的吧! 回复 楼主 prince00840 的帖子
不太明白你的意思,循环是n-1次,R也应该是n-1次吧 :@( 目的是1xn维的,结果不是
我怕不知道哪里错了
for i=2:n
xf(1,i)=l*x(1,i)+(1-l)*xf(1,i-1);
vf(1,i)=w*(x(1,i)-xf(1,i-1).^2+(1-w)*vf(1,i-1);
df(1,i)=q*(x(1,i)-x(1,i-1)).^2+(1-q)*df(1,i-1);
R(i)=(1-l)*vf(1,i)/df(1,i);
end
回复 楼主 prince00840 的帖子
xf(1,i)=l*x(1,i)+(1-l)*xf(1,i-1);不知道上下文的情况下,看这句挺奇怪的。既然只要1*n,那就用
xf(i)=l*x(i)+(1-l)*xf(i-1);就可以。
还有就是我觉得楼主需要自己设置断点,跟踪变量调试,看究竟是哪里错了。 搞不懂楼主是什么意思,你两次给出的代码都有很明显的错误,根本不可能运行,不知道你是怎么得到结果的。你最好是把你运行的matlab原始程序复制粘贴过来,另外说明下x,l,q,w的维数,最好给出值。 l,q,w 是系数,0<l,q,w <1 clear
clc
%~~~~~~~~~~~~~~~~~~~~~~
% 假设
n=10;
xf=;
x=ones(1,10);
vf=;
df=;
l=0.1;
w=l;
q=l;
R=; % R如果不预先假定,第一个值为零
%~~~~~~~~~~~~~~~~~~~~~~
for i=2:n
xf(1,i)=l*x(1,i)+(1-l)*xf(1,i-1);
vf(1,i)=w*(x(1,i)-xf(1,i-1).^2+(1-w)*vf(1,i-1)); % 原程序此处少以括号,我在最后添了一个括号
df(1,i)=q*(x(1,i)-x(1,i-1)).^2+(1-q)*df(1,i-1);
R(i)=(1-l)*vf(1,i)/df(1,i);
end :hug: XIEXIExiexie谢谢各位老师了,我好感动啊,这么多帮忙的
ydlcus friendchj sogooda :handshake 非常感谢啊:loveliness: 也不知道你问题解决没有,希望这么多人没白忙活。
现在还没想明白你怎么会碰到这样的问题 我本来打算看看一组数的稳态检测
x=;
l=0.2;w=0.1;q=0.1;
xf(1,1)=x(1,1);
xf(1,2)=l*x(1,2)+(1-l)*x(1,1);
vf(1,2)=w*(x(1,2)-xf(1,1))*(x(1,2)-xf(1,1));
df(1,2)=q*(x(1,2)-x(1,1))*(x(1,2)-x(1,1));
for i=3:10
xf(1,i)=l*x(1,i)+(1-l)*xf(1,i-1);
vf(1,i)=w*(x(1,i)-xf(1,i-1)).^2+(1-w)*vf(1,i-1);
df(1,i)=q*(x(1,i)-x(1,i-1)).^2+(1-q)*df(1,i-1);
R(i)=(1-l)*vf(1,i)/df(1,i);
end
i=3:10
plot(i,R(i));
通过R看看x的稳定性,不知道对不对呵呵
[ 本帖最后由 prince00840 于 2008-12-8 12:57 编辑 ]
看一组数的稳定性
我打算检测一组数,这组数可以有在线数据采集得到,要检测这按照时间序列得到的数稳定程度x=;
l1=0.2;l2=0.1;l3=0.1;
xf(1,1)=x(1,1);
xf(1,2)=l1*x(1,2)+(1-l1)*x(1,1);
vf(1,2)=l2*(x(1,2)-xf(1,1))*(x(1,2)-xf(1,1));
df(1,2)=l3*(x(1,2)-x(1,1))*(x(1,2)-x(1,1));
n=length(x);
for i=3:n;
xf(1,i)=l1*x(1,i)+(1-l)*xf(1,i-1);
vf(1,i)=l2*(x(1,i)-xf(1,i-1)).^2+(1-l2)*vf(1,i-1);
df(1,i)=l3*(x(1,i)-x(1,i-1)).^2+(1-l3)*df(1,i-1);
R(i)=(2-l1)*vf(1,i)/df(1,i);
end
i=3:n
plot(i,R(i));
hold on
plot(x/50)
这种方法检测稳定性行吗?看到哪一时刻是不稳定的
[ 本帖最后由 prince00840 于 2008-12-25 12:51 编辑 ]
页:
[1]