作者MuseLand (I will survive)
看板MATLAB
标题[问题] solve求解的问题
时间Tue May 29 06:22:22 2012
%以下是有的数值
packet1=300;
packet2=300;
packet3=300;
Rsr1=30;
Rsr2=30;
Rr1d1=10;
Rr1d2=10;
Rr1d3=10;
Rr2d1=10;
Rr2d2=10;
Rr2d3=10;
Rsd1=30;
Rsd2=30;
Rsd3=30;
%想利用下列等式求解Xr1d1 Xr1d2 Xr1d3 Xr2d1 Xr2d2 Xr2d3
eq1 = 'Rsr1=Xr1d1+Xr1d2+Xr1d3';
eq2 = 'Rsr2=Xr2d1+Xr2d2+Xr2d3';
eq3 = 'Vr1d1=Xr1d1*Rr1d1/(Xr1d1+Rr1d1)';
eq4 = 'Vr2d1=Xr2d1*Rr2d1/(Xr2d1+Rr2d1)';
eq5 = 'Vr1d2=Xr1d2*Rr1d2/(Xr1d2+Rr1d2)';
eq6 = 'Vr2d2=Xr2d2*Rr2d2/(Xr2d2+Rr2d2)';
eq7 = 'Vr1d3=Xr1d3*Rr1d3/(Xr1d3+Rr1d3)';
eq8 = 'Vr2d3=Xr2d3*Rr2d3/(Xr2d3+Rr2d3)';
eq9 = 'packet1/(Rsd1+Vr1d1+Vr2d1)=packet2/(Rsd2+Vr1d2+Vr2d2)';
eq10 = 'packet2/(Rsd2+Vr1d2+Vr2d2)=packet3/(Rsd3+Vr1d3+Vr2d3)';
eq11 = 'packet1/(Rsd1+Vr1d1+Vr2d1)=packet3/(Rsd3+Vr1d3+Vr2d3)';
[Xr1d1 Xr1d2 Xr1d3 Xr2d1 Xr2d2 Xr2d3 ] = solve(
eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,eq11 )
程式码如上面
抱歉刚接触matlab
原本想测试看看所以故意凑好解的数字
想说至少会有[10 10 10 10 10 10]这个解
可是却只出现[ empty sym ]以及[]
请问是什麽原因
请板上的先进帮忙解惑一下 thanks
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.213.119
1F:→ ejialan:你把变数写在字串里它不会帮你把前面给定的值代入 05/29 08:05
2F:→ ejialan:可以参考一下我这篇#1FivlYq6 还有你Vr1d1到Vr2d3没给值 05/29 08:07
是说我要把写法
eq1 = 'Rsr1=Xr1d1+Xr1d2+Xr1d3';
eq2 = 'Rsr2=Xr2d1+Xr2d2+Xr2d3';
.
.
.
改成
eq1 = Rsr1-Xr1d1+Xr1d2+Xr1d3;
eq2 = Rsr2-Xr2d1+Xr2d2+Xr2d3;
.
.
.
的意思吗
抱歉慧根不太够orz
3F:→ MuseLand:eq3-8是因为怕写在9-11里面太大会难看懂才额外拆出来的 05/29 08:18
4F:→ MuseLand:所以Vr1d1到Vr2d3才会没给值 05/29 08:19
再问一下如果等式太少 要求的解太多
他会得到多组解 还是会出现错误?
然後可以限制所得到的解的范围吗?
感谢
※ 编辑: MuseLand 来自: 140.114.213.119 (05/29 08:41)