怎么用matlab解如下的方程?

学习 时间:2026-04-07 21:13:56 阅读:5738
怎么用matlab解如下的方程?gm*(vin-vs)+(vd-vs)*go-gmb*vs=-vd*go-gm*vs+(vout-vs)*go-gmb*vs=-vout*go-vd*go-vout*go=vs*go我需要用以上的三个方程解得vs,vd和【vout与vin的比值】,其他的量都视为已知……请问我该在matlab里怎么操作?貌似用solve好像没办法……多谢!

最佳回答

懦弱的导师

从容的镜子

2026-04-07 21:13:56

4个未知数3个方程一般只能得到其中3个未知数关于另一个的表达式,只有在很特殊的情况下才可能完全确定其中两个未知数,很不幸你这个方程组不行。而且一般情况下其中任意两个的比值也不会是常数,但很幸运这个方程组任意两个未知数的比值都是常数。将vout也视为已知量,vs、vd、vin视为未知量可以解除vs、vd和vin关于vout的表达式:x=solve('gm*(vin-vs)+(vd-vs)*go-gmb*vs=-vd*go','-gm*vs+(vout-vs)*go-gmb*vs=-vout*go','-vd*go-vout*go=vs*go','vs,vd,vin')解得:x。vs=2*vout*go/(gm+go+gmb)x。vd=-vout*(gm+3*go+gmb)/(gm+go+gmb)x。vin=4*vout*go*(gm+2*go+gmb)/gm/(gm+go+gmb)显然vs和vd不是确定的数(倘若是确定的,那么无论vout取何值,得到的结果都一样,但显然不是)但可以求得vout与vin的比值voutbyvin=vout/x。vin解得voutbyvin =1/4/go/(gm+2*go+gmb)*gm*(gm+go+gmb)

最新回答共有2条回答

  • 爱撒娇的丝袜
    回复
    2026-04-07 21:13:56

    4个未知数3个方程一般只能得到其中3个未知数关于另一个的表达式,只有在很特殊的情况下才可能完全确定其中两个未知数,很不幸你这个方程组不行。而且一般情况下其中任意两个的比值也不会是常数,但很幸运这个方程组任意两个未知数的比值都是常数。将vout也视为已知量,vs、vd、vin视为未知量可以解除vs、vd和vin关于vout的表达式:x=solve('gm*(vin-vs)+(vd-vs)*go-gmb*vs=-vd*go','-gm*vs+(vout-vs)*go-gmb*vs=-vout*go','-vd*go-vout*go=vs*go','vs,vd,vin')解得:x。vs=2*vout*go/(gm+go+gmb)x。vd=-vout*(gm+3*go+gmb)/(gm+go+gmb)x。vin=4*vout*go*(gm+2*go+gmb)/gm/(gm+go+gmb)显然vs和vd不是确定的数(倘若是确定的,那么无论vout取何值,得到的结果都一样,但显然不是)但可以求得vout与vin的比值voutbyvin=vout/x。vin解得voutbyvin =1/4/go/(gm+2*go+gmb)*gm*(gm+go+gmb)

上一篇 谶语是什么?

下一篇 列式计算(答案要把算式写出来!)