看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《goodcharming (未知的未來)》之銘言: : 請問一下高斯消去法要求MxN個矩陣要怎麼寫呢 : 比如像是20x10 : http://codepad.org/TXY8pO8n : 這是我的範例 : 不過我只會簡單的3x3 : 是要把static int n=3; : static float a_init[10][11] : 改成 : static int n=20; : static int m=10; : static float a_init[20][10] : 後面也都改成[20][10]嗎 : 不過DEBUG沒問題但是都沒有結果 : 請問一下是要怎麼改才會有答案出來 : 謝謝 高斯消去法主要是以列(Row)運算為重心,透過列運算 逐列把方陣中 行數小於列數(Column < Row) 的元素化為0,即成為所謂的上三角矩陣 若是輸入的矩陣不為方陣,必須要 行數 >= 列數, 否則在列運算時,算到 大於行數的列 時會出現 "整列都被化為0" 的狀況, 一般常見應用的輸入矩陣有 N x N 矩陣:求行列式值 N x N+1 (增廣)矩陣:求解連立方程式 N x 2N (增廣)矩陣(右半邊是單位矩陣):求反矩陣(配合Jordan法) 詳細的原理、證明有點不容易三言兩語說明白,建議可以看看線性代數相關的書籍。 依我的經驗,在工程計算裡高斯消去法是個非常好用的東西,蠻值得投資點時間研究一下 以上為小弟淺見,若有誤還請前輩們指教。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.98.181 ※ 編輯: yuchih0519 來自: 114.42.158.46 (10/21 23:35)
costbook:算法很簡單,但是初學要算半天 10/22 07:56