主题:求助
wangdan1983
[专家分:0] 发布于 2008-04-28 11:29:00
请教我用MATLAB语言编程,程序未作变动可每次运行出来的结果都不一样。请问这是什么原因造成的?谢谢我用的是符号变量,是否跟占据字节有关?
回复列表 (共5个回复)
沙发
chianelxie [专家分:670] 发布于 2008-05-06 19:56:00
程序里面是否有rand,或者randn等随机函数
板凳
wangdan1983 [专家分:0] 发布于 2008-05-08 19:35:00
没有随即函数啊,符号变量很多,函数值很大。不知道是不是这个原因
3 楼
chianelxie [专家分:670] 发布于 2008-05-08 22:51:00
你吧你的程序放上来看看
4 楼
wangdan1983 [专家分:0] 发布于 2008-05-13 16:25:00
上次文的程序有点问题,我现在又有个程序出现问题,求不出来结果有错误,而且运行时间特别长,请问是什么原因?各位大虾能否给出结果。
function f=a()
syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16;
thita11=[];
thita22=[];
for duu=0:40:320
du=duu;
thita1=du*pi/180;
thita2=du*pi/180;
thita11=[thita11 thita1];
thita22=[thita22 thita2];
end
phi0=0*pi/180;
for i=1:1:9
xaa(i)=x1*cos(x15+thita11(i));
yaa(i)=x1*sin(x15+thita11(i));
xb(i)=x2*cos(x16+thita22(i));
yb(i)=x2*sin(x16+thita22(i));
phi(i)=2*sin(1/4*thita11(i)+thita22(i));
xf(i)=x11+x7*cos(phi(i)+phi0);
yf(i)=x12+x7*sin(phi(i)+phi0);
lbf(i)=sqrt((xb(i)-xf(i))^2+(yb(i)-yf(i))^2);
x1e(i)=(x10^2-x5^2+lbf(i)^2)/2/lbf(i);
y1e(i)=-sqrt(x10^2-x1e(i)^2);
fi(i)=atan((yf(i)-yb(i))/(xf(i)-xb(i)));
xe(i)=x1e(i)*cos(fi(i))-y1e(i)*sin(fi(i))+xb(i);
ye(i)=y1e(i)*sin(fi(i))+y1e(i)*cos(fi(i))+yb(i);
lef(i)=sqrt((xe(i)-xf(i))^2+(ye(i)-yf(i))^2);
x1d(i)=(x4^2-x6^2+lef(i)^2)/2/lef(i);
y1d(i)=sqrt(x4^2-x1d(i)^2);
fii(i)=atan((yf(i)-ye(i))/(xf(i)-xe(i)));
xd(i)=x1d(i)*cos(fii(i))-y1d(i)*sin(fii(i))+xe(i);
yd(i)=y1d(i)*sin(fii(i))+y1d(i)*cos(fii(i))+ye(i);
xa(i)=x1*cos(x15+thita11(i));
ya(i)=yd(i)-sqrt(x3^2-(xd(i)-x1*cos(x15+thita11(i)))^2);
ldf(i)=sqrt((xd(i)-xf(i))^2+(yd(i)-yf(i))^2);
x1p(i)=(x8^2-x9^2+ldf(i)^2)/2/ldf(i);
y1p(i)=sqrt(x8^2-x1p(i)^2);
psi(i)=atan((yf(i)-yd(i))/(xf(i)-xd(i)));
xp(i)=x1p(i)*cos(psi(i))-y1p(i)*sin(psi(i))+xd(i);
yp(i)=y1p(i)*sin(psi(i))+y1p(i)*cos(psi(i))+yd(i);
end
5 楼
wangdan1983 [专家分:0] 发布于 2008-05-13 16:27:00
最后结果不是具体数,应是以变量形式存在的。就是求不出来
我来回复