[討論] 用syms解聯立方程式的問題

看板MATLAB作者 (eason)時間9年前 (2015/11/02 14:52), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
大家好 我有一個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

11/02 15:03, , 1F
你eval(S.x)會出現NaN -> 解有問題
11/02 15:03, 1F

11/02 15:07, , 2F
我用solve(.==., .==., x, z)會直接無解XD
11/02 15:07, 2F

11/02 15:07, , 3F
.是兩個等式的左右...
11/02 15:07, 3F

11/02 15:07, , 4F
建議solve不要用字串,其他都會被當成syms
11/02 15:07, 4F

11/02 16:05, , 5F
好喔 謝謝celestialgod大的解說 我試試
11/02 16:05, 5F
文章代碼(AID): #1MDmWqfQ (MATLAB)
文章代碼(AID): #1MDmWqfQ (MATLAB)