Re: [討論] solve後電腦會當掉

看板MATLAB作者 (零度空間)時間13年前 (2012/04/06 00:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1FVScqVK (MATLAB)
文章代碼(AID): #1FVScqVK (MATLAB)