这货编的一个MATLAB程序一直死循环T T急求帮助

function[xp,yp,xm,ym]=euler4(h)Vp=135;Vm=450;xp(1)=0;yp(1)=120;xm(1)=0;ym(1)=0;d(1)=1... function [xp,yp,xm,ym]=euler4(h)
Vp=135;Vm=450;
xp(1)=0;
yp(1)=120;
xm(1)=0;
ym(1)=0;
d(1)=120;
T(1)=0;
k=1;
while d>0.1
k=k+1;
xp(k)=xp(k-1)+Vp*(yp(k-1)-ym(k-1))*h/d(k-1);
yp(k)=yp(k-1)-Vp*(xp(k-1)-xm(k-1))*h/d(k-1);
xm(k)=xm(k-1)+Vm*(xp(k-1)-xm(k-1))*h/d(k-1);
ym(k)=ym(k-1)+Vm*(yp(k-1)-ym(k-1))*h/d(k-1);
d(k)=sqrt((xp(k)-xm(k))^2+(yp(k)-ym(k))^2);
T(k)=T(k-1)+h;
end;
end
展开
 我来答
dukinkin
2014-03-23 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:929万
展开全部
有可能是你的h取得太大,导致,上一步未相遇,下一步已经走远
未能满足小于一定距离

或许可以让判断条件定为距离差是否在变小

如果在变小说明还在靠近
一旦距离差变大,说明这一步已经让两者又重新远离
这时候循环就该结束了
那样就不会死循还
百度网友3c63e6c
2014-03-23 · TA获得超过2848个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2783万
展开全部
也就是d始终大于0.1,可以修改一下阈值判定 比如0.1改为0.01什么的
更多追问追答
追问
d如果始终大于0.1,那就肯定始终大于0.01啊。。。。
追答
看错了。。。改成0.2 什么的,反正是阈值的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式