登录论坛

查看完整版本 : 求助!matlab解符号方程出错!


kaka768
2009-05-14, 19:07
代码如下:
syms Ry Rb Rc Ra Rd Rf X E Iy Ib
>> [Ry Iy Ib]=solve('Iy*Ry+X*Rf=Ib*Rb','(Iy-X)*Rc=X*Rf+(X+Ib)*Ra','(Iy+Ib)*Rd+Iy*Ry+(Iy-X)*Rc=E','Ry','Iy','Ib')

Ry =

(-Rd*Rc*X+Rc*E-Rd*X*Rf-Rd*Ra*X-Rc*X*Ra)/(Rb*Rc+Rd*Ra+Rd*Rc+Rc*Ra)



Iy =

(X*Rf*Ra+Rb*Rc*X+Rb*X*Rf+Rb*Ra*X+Rd*Rc*X+Rd*X*Rf+Rd*Ra*X+Rc*X*Ra+E*Ra)/(Rb*Rc+Rd*Ra+Rd*Rc+Rc*Ra)



Ib =

(-Rb*X*Rf*Rd-X*Rf*Ra*Rd-X*Rf*Ra*Rc+Rb*Rc*E-Rb*Ra*X*Rd-Rb*Ra*X*Rc-X*Rf*Rb*Rc-X*Rf*Rd*Rc-Rb*Rc*Rd*X)/(X*Rf*Ra+Rb*Rc*X+Rb*X*Rf+Rb*Ra*X+Rd*Rc*X+Rd*X*Rf+Rd*Ra*X+Rc*X*Ra+E*Ra)
其中I,R表示电流、电阻,X也为电流,E为电势!

电阻Ry =(-Rd*Rc*X+Rc*E-Rd*X*Rf-Rd*Ra*X-Rc*X*Ra)/(Rb*Rc+Rd*Ra+Rd*Rc+Rc*Ra)
其量纲为电流!而电流Ib =(-Rb*X*Rf*Rd-X*Rf*Ra*Rd-X*Rf*Ra*Rc+Rb*Rc*E-Rb*Ra*X*Rd-Rb*Ra*X*Rc-X*Rf*Rb*Rc-X*Rf*Rd*Rc-Rb*Rc*Rd*X)/(X*Rf*Ra+Rb*Rc*X+Rb*X*Rf+Rb*Ra*X+Rd*Rc*X+Rd*X*Rf+Rd*Ra*X+Rc*X*Ra+E*Ra)
其量纲为电阻!!!!
这是为什么?哪里出错了!高手指点!!!

yisanming
2010-07-18, 22:45
主要是matlab中的solve函数求解出结果后会按照变量的字母顺序列出,最后相当于对Iy、Ib、Ry进行了一次重新赋值。[Ry Iy Ib]=solve('Iy*Ry+X*Rf=Ib*Rb','(Iy-X)*Rc=X*Rf+(X+Ib)*Ra','(Iy+Ib)*Rd+Iy*Ry+(Iy-X)*Rc=E','Ry','Iy','Ib'),解出来之后Ry=ans(Ib)、Iy=ans(Iy)、Ib=ans(Ry)。