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

作者: english12335 (eason)   2015-11-02 14:52:30
大家好
我有一個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都會有解阿
謝謝大家
作者: celestialgod (天)   2015-11-02 15:03:00
你eval(S.x)會出現NaN -> 解有問題我用solve(.==., .==., x, z)會直接無解XD.是兩個等式的左右...建議solve不要用字串,其他都會被當成syms
作者: english12335 (eason)   2015-11-02 16:05:00
好喔 謝謝celestialgod大的解說 我試試

Links booklink

Contact Us: admin [ a t ] ucptt.com