[問題] solve求解的問題

看板MATLAB作者 (I will survive)時間13年前 (2012/05/29 06:22), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/2 (看更多)
%以下是有的數值 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

05/29 08:05, , 1F
你把變數寫在字串裡它不會幫你把前面給定的值代入
05/29 08:05, 1F

05/29 08:07, , 2F
可以參考一下我這篇#1FivlYq6 還有你Vr1d1到Vr2d3沒給值
05/29 08:07, 2F
是說我要把寫法 eq1 = 'Rsr1=Xr1d1+Xr1d2+Xr1d3'; eq2 = 'Rsr2=Xr2d1+Xr2d2+Xr2d3'; . . . 改成 eq1 = Rsr1-Xr1d1+Xr1d2+Xr1d3; eq2 = Rsr2-Xr2d1+Xr2d2+Xr2d3; . . . 的意思嗎 抱歉慧根不太夠orz

05/29 08:18, , 3F
eq3-8是因為怕寫在9-11裡面太大會難看懂才額外拆出來的
05/29 08:18, 3F

05/29 08:19, , 4F
所以Vr1d1到Vr2d3才會沒給值
05/29 08:19, 4F
再問一下如果等式太少 要求的解太多 他會得到多組解 還是會出現錯誤? 然後可以限制所得到的解的範圍嗎? 感謝 ※ 編輯: MuseLand 來自: 140.114.213.119 (05/29 08:41)
文章代碼(AID): #1Fm_gYul (MATLAB)
文章代碼(AID): #1Fm_gYul (MATLAB)