[問題] 高斯消去法的問題

看板C_and_CPP (C/C++)作者 (我愛大胸部)時間16年前 (2010/06/29 22:44), 編輯推噓2(208)
留言10則, 5人參與, 最新討論串1/1
大家好! 最近在寫一個高斯消去法的C++ code, 但是邏輯上已經檢查過很多次了, 還是不知道發生了什麼問題, 答案跟用手算的答案不同。 我的原始array是 a[0][0] = 1; a[0][1] = 1; a[0][2] = 3; a[1][0] = 1; a[1][1] = -1; a[1][2] = 1; 也就是 x1 + x2 = 3 x1 - x2 = 1 用以下的程式碼去跑: t = 0; double factor = 0; do { for(j=0; j<=n; j++) { a[t][j]=a[t][j]/a[t][t]; } for(i=0; i<= n-1; i++)//row { if (i != t) { for(j=0; j<=n; j++)//column { factor = (a[i][t] / a[t][t]); a[i][j] = a[i][j]-( factor * a[t][j]); } } } t++; } while(t<n); 拜託大家了!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.107.241

06/29 22:51, , 1F
你可以逐步執行或利用printf來觀察中間發生啥事
06/29 22:51, 1F

06/30 00:47, , 2F
我想你應該開另外一個陣列存結果 不然你的結果會和原來
06/30 00:47, 2F

06/30 00:47, , 3F
的數字衝到 意思是 原來的數值後來被用的會錯
06/30 00:47, 3F

06/30 01:41, , 4F
謝謝樓上兩位!! 不過我有點不知道要怎麼存結果耶
06/30 01:41, 4F

06/30 01:41, , 5F
因為原來的是一直會被用到的耶@@ 請大家指點一下
06/30 01:41, 5F

06/30 04:04, , 6F
開個 b[][] 來存計算結果
06/30 04:04, 6F

06/30 11:48, , 7F
婀 其實我要問的是應該在程式裡的哪個地方存結果XD
06/30 11:48, 7F

06/30 17:30, , 8F
!!!通了 謝謝大家
06/30 17:30, 8F

07/10 18:23, , 9F
我可以問一下t用來?還有factor = (a[i][t] / a[t][t]);如果
07/10 18:23, 9F

07/10 18:23, , 10F
a[t][t]=0 還能除嗎?
07/10 18:23, 10F
文章代碼(AID): #1CAWRQyh (C_and_CPP)
文章代碼(AID): #1CAWRQyh (C_and_CPP)