Re: [問題] 如何用eval寫出兩個for?已回收

看板MATLAB作者 (神無月 孝臣)時間15年前 (2010/11/18 20:07), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
: 沒有很懂 : 如果已知 c=[c1;c2;c3]; y=[y1;y2;y3] : 未知x矩陣 : c為3x1矩陣 y也是3x1 : 那x就一定要就只能是1x1的矩陣?? : 這樣好像有點怪怪的...? : 因為我的x是一個序列 : : 照理說應該是 : x1 x2 x3 : x=[x2 x3 x4] : x3 x4 x5 : x4 x5 x6 : : 所以還真的不知道怎麼用AX=B列 : : 還請指教 : : 感激不盡! 你的資料給的不夠多 我只能用現有的資訊來寫 就你原本列的範例方程式來說 eq1='c1*x1 + c2*x2 = y1'; eq2='c1*x2 + c2*x3 = y2'; eq3='c1*x3 + c2*x4 = y3'; x1~x4未知 c1和c2已知 y1~y3已知 想要解x1~x4 可以先將方程式處理一下 c1*x1 + c2*x2 + 0*x3 + 0*x4 = y1 0*x1 + c1*x2 + c2*x3 + 0*x4 = y2 0*x1 + 0*x2 + c1*x3 + c2*x4 = y3 然後改寫矩陣格式 ┌ ┐┌ ┐ ┌ ┐ │ c1 c2 0 0 ││ x1 │ │ y1 │ │ 0 c1 c2 0 ││ x2 │=│ y2 │ │ 0 0 c1 c2 ││ x3 │ │ y3 │ └ ┘│ x4 │ └ ┘ └ ┘ 儲存成AX=B形式 A = [ c1 c2 0 0 ; 0 c1 c2 0 ; 0 0 c1 c2 ] B = [ y1 ; y2 ; y3 ] 有了A和B矩陣便可將X解出來 但三條方程式理論上是不能解四個未知數的 我是不太清楚你的問題還有啥資訊 總之這樣未知數比方程式還多的情形 就算成功弄出eval來用solve解聯立 所得到的答案還是有一定的問題 矩陣運算法請用X = pinv( A ) * B 若是最後處理出未知數與方程式一樣多的話 直接用X = inv( A ) * B即可 -- On the surface, your parents sought a private life, using their great talents to provide for you. They learned to twist the lies of church and government, believing themselves masters of the system. But the parasites say "NO! The child has a duty! He'll go to war and die for the nation." ─Andrew Ryan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.131.231.210 ※ 編輯: Gwaewluin 來自: 220.131.231.210 (11/18 20:08)

11/18 21:01, , 1F
喔喔 原來是這樣 感謝你!!
11/18 21:01, 1F
文章代碼(AID): #1CvHS6nY (MATLAB)
文章代碼(AID): #1CvHS6nY (MATLAB)