作者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)