Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2010-03-23, 22:07   #1
BlueInk
初级会员
 
注册日期: 2010-03-23
帖子: 1
声望力: 0
BlueInk 正向着好的方向发展
默认 求助:高手请看看while循环的问题

时间走不动,貌似是死循环了,请大家帮忙看看我这个while循环出了什么问题。
谢谢大家!
-----------------------------------------------------------------------
function v0best = fcn(vzmin,vzmax,va0,vb0,vc0,ia,ib,ic,f,C)%参数都是恒定值。
v0=vzmin;
v0best=v0;%v0从vzmin开始取值
u0best=1000;%任意设定初始值

while v0<vzmax%判断v0值是否满足条件
va=va0+v0;%以下是计算取此v0时的u0
vb=vb0+v0;
vc=vc0+v0;
tla=(va-floor(va))/f;
tlb=(vb-floor(vb))/f;
tlc=(vc-floor(vc))/f;
if va>0
ta=(1/f)-tla;
else ta=tla;
end
if vb>0
tb=(1/f)-tlb;
else tb=tlb;
end
if vc>0
tc=(1/f)-tlc;
else tc=tlc;
end
i0=ia*ta+ib*tb+ic*tc;
u0=abs(i0/(f*C));%得到此时的u0值

if u0<u0best%比较得出较小u0对应的V0
u0best=u0;
v0best=v0;
end
deltavz=min(min(1-va+floor(va),1-vb+floor(vb)),min(1-vb+floor(vb),1-vc+floor(vc)));%计算v0下次的叠加量
v0=v0+deltavz; %v0增加
end

end
BlueInk 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 14:48


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.