写了一个MATLAB程序,可是除了B=0以外,其余取值都是无限死循环T
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/19 06:06:22
写了一个MATLAB程序,可是除了B=0以外,其余取值都是无限死循环T
function [xp,yp,xm,ym,T]=euler6(h,B)
Vp=135;Vm=450;
xp(1)=0;
yp(1)=120;
xm(1)=0;
ym(1)=0;
d(1)=120;
T(1)=0;
A(1)=pi/2;
C(1)=A(1)-B;
k=1;
while d>0.1
k=k+1;
xp(k)=xp(k-1)+Vp*h*cos(C(k-1));
yp(k)=yp(k-1)+Vp*h*sin(C(k-1));
xm(k)=xm(k-1)+Vm*h*cos(A(k-1));
ym(k)=ym(k-1)+Vm*h*sin(A(k-1));
d(k)=sqrt((xp(k)-xm(k))^2+(yp(k)-ym(k))^2);
A(k)=asin((yp(k)-ym(k))/d(k));
C(k)=A(k)-B;
T(k)=T(k-1)+h;
end;
xp,yp,xm,ym,T
这个就是那个程序,当h=0.001,B=0时能得出正确答案,可是代入B的别的取值后就是无限死循环T T不知道到底是哪里的问题T T
function [xp,yp,xm,ym,T]=euler6(h,B)
Vp=135;Vm=450;
xp(1)=0;
yp(1)=120;
xm(1)=0;
ym(1)=0;
d(1)=120;
T(1)=0;
A(1)=pi/2;
C(1)=A(1)-B;
k=1;
while d>0.1
k=k+1;
xp(k)=xp(k-1)+Vp*h*cos(C(k-1));
yp(k)=yp(k-1)+Vp*h*sin(C(k-1));
xm(k)=xm(k-1)+Vm*h*cos(A(k-1));
ym(k)=ym(k-1)+Vm*h*sin(A(k-1));
d(k)=sqrt((xp(k)-xm(k))^2+(yp(k)-ym(k))^2);
A(k)=asin((yp(k)-ym(k))/d(k));
C(k)=A(k)-B;
T(k)=T(k-1)+h;
end;
xp,yp,xm,ym,T
这个就是那个程序,当h=0.001,B=0时能得出正确答案,可是代入B的别的取值后就是无限死循环T T不知道到底是哪里的问题T T
粗略看了下,应该是while后面条件写错了,我估计你的意思应该是写成d(k)>0.1这样应该不会死循环了
再问: 不是这个的问题的说。。。。。因为。。。h=0.0001,B=0的时候算出来的答案是对的。。。顺便可不可以问下。。。怎么改才能求出B在区间【0,pi】上那个值的时候,T最大?
再问: 不是这个的问题的说。。。。。因为。。。h=0.0001,B=0的时候算出来的答案是对的。。。顺便可不可以问下。。。怎么改才能求出B在区间【0,pi】上那个值的时候,T最大?
这货编的一个MATLAB程序一直死循环T
优化一个MATLAB的程序,解释为什么陷入了死循环?
求救!一个MATLAB的程序 一直死循环
数学高手来看一下1、一个关于字母a、b的多项式,除了常项数(不等于零)以外,其余各项的次数都是4,这个多项式最多有几项?
我的球除了3个以外,其余的都是白球;除了3个以外,其余的都是红球;除了3个以外,其余的都是黄球;除了3个以外,其余的都是
如何编制一个死循环的程序
求matlab高手看看,程序为何死循环
matlab的一个循环程序,TAT
请问用MATLAB 怎么样这样一个矩阵:1.8行14列,且每个数字都是0到14的随机数 2.每一行 除了0以外,互不
matlab 矩阵连乘程序如何写?想在一个for循环里实现
设有程序段 int k=3 ;while(k)=k-1;则下面描述中正确的是 A一次不循环 B无限循环 Cwhile循环
matlaB程序调试 MM是一个7776*3的矩阵,里面都是现成的数据程序如下t=zeros(20,20,2); for