看板 MATLAB 關於我們 聯絡資訊
大家好 我有一個syms解聯立的問題 式子如下 p=0; sum_y_2order=0.9989; sum_y_4order=1.0894; syms z x S=solve('(1-p)*z+p*(1+x)*z+1=sum_y_2order','(1-p)*(1+6*z+(sqrt(3)*z)^2)+p*(1+6*z*(1+x)+(sqrt(3)*z*(1+x))^2)=sum_y_4order'); S=[S.z S.x] subs(S,{'sum_y_2order','sum_y_4order','p'},[sum_y_2order sum_y_4order p]) z = double(subs(S,{'sum_y_2order','sum_y_4order','p'},[sum_y_2order sum_y_4order p])) 照理說 我p已經設為0了 所以第一個方程式或變成z=sum_y_2order也就是0.9989 但是我執行後matlab會發生錯誤 變成下面這樣 Error using mupadmex Error in MuPAD command: Division by zero. [_power] Evaluating: symobj::trysubs Error in sym/subs>mupadsubs (line 139) G = mupadmex('symobj::fullsubs',F.s,X2,Y2); Error in sym/subs (line 124) G = mupadsubs(F,X,Y); Error in testtest (line 7) subs(S,{'sum_y_2order','sum_y_4order','p'},[sum_y_2order sum_y_4order p]) 想請問是甚麼原因呢 p不代0都會有解阿 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.123.116.128 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1446447156.A.A5A.html
celestialgod: 你eval(S.x)會出現NaN -> 解有問題 11/02 15:03
celestialgod: 我用solve(.==., .==., x, z)會直接無解XD 11/02 15:07
celestialgod: .是兩個等式的左右... 11/02 15:07
celestialgod: 建議solve不要用字串,其他都會被當成syms 11/02 15:07
english12335: 好喔 謝謝celestialgod大的解說 我試試 11/02 16:05