MATLAB解方程组出问题了Sg和Sw是未知数,其它字母都是已知量,我解出来的结果却有问题,怎么回事eq1=sym('S

MATLAB解方程组出问题了
Sg和Sw是未知数,其它字母都是已知量,我解出来的结果却有问题,怎么回事
eq1=sym('Sw+So+Sg=1');
eq2=sym('Sw*Pw+So*Po+Sg*Pg=Pf');
[Sw,Sg]=solve(eq1,eq2)
Sw =
(-Sw*Po+Sw*Pw-Pf+Po)/(Po-Pg)
Sg =
-(Sw*Pw-Pg*Sw+Pg-Pf)/(Po-Pg)
门口ww以内机 1年前 已收到1个回答 举报

竹影清瞳 幼苗

共回答了14个问题采纳率:100% 举报

可以这样试试;
clear,clc;
%Sw=x; Sg=y;
syms So Pw Po Pg Pf x y
S=solve('x+So+y=1','x*Pw+So*Po+y*Pg=Pf');
S=[S.x,S.y]
系统的默认未知量是以x为中心的,向周围辐射,相距近的默认为未知量,所以Sw,Sg在系统里不会认为是未知量,或者你可以在solve函数里设定它为未知量,求解!
建议新手使用上述办法(改变未知量),有问题都看看帮助!

1年前 追问

2

门口ww以内机 举报

犀利啊,但是问一下,solve函数改未知量是怎么改,是永久改掉默认的还是。

举报 竹影清瞳

这个未知量不是改的,是暂时辨识,就是让系统把它当做未知量来处理,只适用于该solve函数,具体识别方法看帮助吧!它上面的例子会很清楚地的告诉你方法,我一般是用上述方法解决,建议你也这样来做!
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.028 s. - webmaster@yulucn.com