Re: [問題] 降階法

看板C_and_CPP作者 (昱)時間15年前 (2009/10/20 12:24), 編輯推噓9(9012)
留言21則, 5人參與, 最新討論串5/5 (看更多)
如果只是想要求行列式值的話, 基本上我個人不太建議用降階法或是排列法(行列式值定義), 因為這樣在矩陣變大的時候會很慢!(我的電腦大概10x10以上就感覺得出來了) 用高斯消去法將方陣變成上三角矩陣以後,把主對角線元素全部乘起來就好, 這樣我即使算到20x20都還感覺不出delay... ※ 引述《tyc5116 (累人啊....)》之銘言: : 請問,降階法用程式該怎麼寫啊,我指的是針對n*n的行列式 : 主要我是要算det值啦 : n*n的動態陣列我搞定了,我用vector of vector弄出來了 : 但對於數學式不知道該怎麼寫(知道原理了) : 精華區裡面提供的我看不懂他的意思 : 所以我用了一個很傳統的方法表示,以下面例子為例 : 0 1 2 : 3 4 5 : 6 7 8 : det值則為(0*4*8+1*5*6+2*7*3)-(2*4*6+1*3*8+0*7*5) : ^^^A ^^^B : 我的方式是擴張該陣列,變成 : 0 1 2 0 1 : 3 4 5 3 4 : 6 7 8 6 7 : 然後一個巢狀迴圈,得到A的值,B的值便是將陣列反轉,再擴張,算出B : 寫完發現...3*3以上似乎都是對的 : 不過2*2就錯了 : 可見不是一個很好的方法@@ : 有誰可以提供方法嗎.....(因為我精華區的看不懂...@@) : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.124.31.121

10/20 20:56, , 1F
降階法是指數成長,高斯消去法是多項式時間
10/20 20:56, 1F

10/20 21:05, , 2F
說錯了,是階乘 (n!)
10/20 21:05, 2F

10/21 03:13, , 3F
謝謝...不過為什麼這個方法可以算啊...不懂~~有根據嗎?
10/21 03:13, 3F

10/21 09:06, , 4F
這是行列式的數學特性不是嗎?? 而消到剩對角線以後,
10/21 09:06, 4F

10/21 09:07, , 5F
再展開時就會發現只剩下主對角線的需要算, 因為其他
10/21 09:07, 5F

10/21 09:07, , 6F
展開後都會乘以0....@_@"
10/21 09:07, 6F

10/21 11:31, , 7F
不過高斯消去法,過程中可能遇到分數,進而導致誤差,
10/21 11:31, 7F

10/21 11:31, , 8F
這個是要注意的地方。
10/21 11:31, 8F
回c大,老實說關於這點我也有蠻困擾,在主對角線元素(絕對值)比其他元素大很多時, Rounding Error(捨入誤差)就會很明顯,所以我儘量都用精確度比較高的Double來算, 有沒有人能提供比較低誤差的撇步呀?

10/21 12:22, , 9F
我的意思是,我的理解,高斯消去法是用來求inverse的
10/21 12:22, 9F

10/21 12:23, , 10F
然後我們在這裡自行作列運算,不會影響到什麼嗎??
10/21 12:23, 10F

10/21 12:24, , 11F
(聽起來好像是很白痴的問題....XDDDDD)
10/21 12:24, 11F

10/21 12:27, , 12F

10/21 12:27, , 13F
%E8%A1%8C%E5%88%97%E5%BC%8F 自己接....
10/21 12:27, 13F

10/21 12:28, , 14F
我已經說過了, 這是行列式的性質了....
10/21 12:28, 14F

10/21 13:50, , 15F
高斯消去法用到的地方很多, 這只是個簡單的數學問題, 真的
10/21 13:50, 15F

10/21 13:51, , 16F
還有疑問的話就翻翻教科書吧~~
10/21 13:51, 16F

10/21 13:51, , 17F
(比較好奇高斯消去法只能用來求 inverse 的想法是誰教的呢)
10/21 13:51, 17F

10/21 15:28, , 18F
inverse只是舉例啦....當我問了一個白痴問題好了....XD
10/21 15:28, 18F
補充:高斯消去法的應用除了求反矩陣、行列式值以外, 也有在解聯立方程式(就是國中學的加減消去法)、最小平方法回歸分析時被用到喔!

10/21 15:58, , 19F
這不是白痴問題, 不懂的當然要弄懂, 你現在知道為什麼可以
10/21 15:58, 19F

10/21 15:58, , 20F
用高斯消去了嗎? 還是只是當作死背下來就好?
10/21 15:58, 20F

10/21 17:19, , 21F
恩...我知道~~謝謝你~~~
10/21 17:19, 21F
※ 編輯: yuchih0519 來自: 118.167.98.181 (10/21 22:10)
文章代碼(AID): #1AtQlkJC (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
3
7
16年前, 2009/10/15 16:51
完整討論串 (本文為第 5 之 5 篇):
問題
9
21
問題
1
2
問題
1
1
問題
問題
3
7
16年前, 2009/10/15 16:51
文章代碼(AID): #1AtQlkJC (C_and_CPP)