matlab多元方程组求解结果不对

clear all; syms Ra Rb Ua Ub Va Vb U1 U2 V1 V2 R1 R2 [Ra,Rb,Ua,Ub,Va,Vb,U1,U2,V1,V2,R1,R2]=solve('U1=14.3','U2=514.3','V1=-15.7','V2=484.3','R1=3340','R2=3340',... 'U1+Ua=-15',... 'U2+Ub=-15',... 'U1/R1+U2/R2-Ua/Ra-Ub/Rb=0',... 'V1+Va=... clear all; syms Ra Rb Ua Ub Va Vb U1 U2 V1 V2 R1 R2 [Ra,Rb,Ua,Ub,Va,Vb,U1,U2,V1,V2,R1,R2]=solve('U1=14.3','U2=514.3','V1=-15.7','V2=484.3','R1=3340','R2=3340',... 'U1+Ua=-15',... 'U2+Ub=-15',... 'U1/R1+U2/R2-Ua/Ra-Ub/Rb=0',... 'V1+Va=15',... 'V2+Vb=15',... 'V1/R1+V2/R2-Va/Ra-Vb/Rb=0') 结果是: Ra = 3340.0 Rb = 3340.0 Ua = -2385714.2857142857142857142857143 Ub = -3344.6825555778089325055077107951 Va = 14.3 Vb = 514.3 U1 = -29.3 U2 = -529.3 V1 = -15.7 V2 = 484.3 R1 = 30.7 R2 = -469.3 很明显Ua的值就不对,是什么问题呢? matlab版本2015b 展开

你这样做是不明智的,为什么不能简化呢。这样做势必造成计算困难,易判断错误,Matlab软件有不是很特别智能。
将你的程序简化如下:
clear
all;
syms
Ra
Rb
Ua
Ub
Va
Vb
U1=14.3,U2=514.3,V1=-15.7,V2=484.3,R1=3340,R2=3340
[Ra,Rb,Ua,Ub,Va,Vb]=solve(U1+Ua+15,U2+Ub+15,U1/R1+U2/R2-Ua/Ra-Ub/Rb,V1+Va-15,V2+Vb-15,V1/R1+V2/R2-Va/Ra-Vb/Rb)
简化后,运行得到
向左转|向右转

温馨提示:答案为网友推荐,仅供参考
相似回答