[讨论] 用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