Re: [討論] solve後電腦會當掉
※ 引述《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
討論串 (同標題文章)