作者ax80097 (零度空间)
看板MATLAB
标题Re: [讨论] solve後电脑会当掉
时间Fri Apr 6 00:34:58 2012
※ 引述《ax80097 (零度空间)》之铭言:
: 各位神人好
: 想请大家帮我看一下程式
: 最後建出来的方程式没有错误
: 但求解会一直当在那里
: 我猜想可能是方程式比较复杂
: 不知大家有没有建议的方法
: 程式如下
: ------------------------------------------------
: Acz=167.7598;
: Acy=189.1289;
: Sz=-7.6482;
: Sy=210.4124;
: R=[166.5252 165.2098 168.6954];
: d=1;
: syms x;
: length_SE=abs(Acy-Sy-(Sz-Acz)*x/(1-x^2)^0.5);
: length_AE=((Acz-Sz+R(d)*(1-x^2)^0.5)^2+((Sz-Acz)*x/(1-x^2)^0.5-R(d)*x)^2)^0.5;
: length_SA=(Acz(d)-Sz+R(d)*(1-x^2)^0.5)^2+(Acy-Sy-R(d)*x^2)^0.5;
: alpha=acos((length_AE^2+length_SA^2-length_SE^2)/(2*length_AE*length_SA));
: length_AB=((Acz-Bz+R(d)*(1-x^2)^0.5)^2+(Acz-By-R(d)*x)^2)^0.5;
: length_AF=((Acz-Bz+R(d)*(1-x^2)^0.5)^2+((Bz-Acz)*x/(1-x^2)^0.5-R(d)*x)^2)^0.5;
: length_BF=abs(Acy-By-(Bz-Acz)*x/(1-x^2)^0.5);
: beta=acos((length_AF^2+length_AB^2-length_BF^2)/(2*length_AF*length_AB));
:
x0=1;
eq=sin(alpha)-n*sin(beta);
opts=optimset('Display','iter');
[fi,fval]=fsolve(inline(eq),x0,opts)
最後程式码改写如下
解出的数值
fi=2.1447;fval=-5.2420e-007;
但藉由图形
ezplot('eq')
解预估应为fi=0.05左右
但若给x0=0.05
则会跑出结果
fi=1.4013 - 1.2254i
fval=3.2444e-008 -1.0017e-007i
产生虚数
想请教前辈们问题大概出在哪里
希望能给个方向
万分感谢!!!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.57.216