作者PanJC ((#‵Д′)f〒﹌﹌﹌﹌﹌ꄩ
看板NCTU-STAT100
標題[閒聊] HINT: inverse matrix
時間Thu Jul 28 21:18:52 2011
Step 1: for k= 0 : n-1
do Step 2 ~ Step 6
Step 2: (is[k], js[k]) = arg max{ |a(i,j)| | i = k:n-1, j = k:n-1 }
(i,j)
Step 3: if( | a(is[k], js[k]) | < eps ) then stop
else do Step 4 ~ Step 6
Step 4: if( is[k] != k ) then
a(k,:) <=> a(is[i],:)
if( js[k] != k ) then
a(:,k) <=> a(:,js[k])
Step 5: a(k,k) = 1.0 / a(k,k)
for j = 0 : n-1 ; j != k // 注意這裡的 j != k 意指 j 要跳過 k
do a(k,j) = a(k,j) * a(k,k)
Step 6: for i = 0 : n-1 ; i != k
for j = 0 : n-1 ; j != k
a(i,j) = a(i,j) - a(i,k) * a(k,j)
for i = 0 : n-1 ; i != k
a(i,k) = - a(i,k) * a(k,k)
Step 7: for k = n-1 : 0
for l = 0 : n-1
a(k,l) <=> a(js[k],l)
a(l,k) <=> a(l,is[k])
請同學們多多瞭解為什麼這個程式能 work, 在使用它時, 信心就會多一點.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.233.7.208
1F:推 gentlecat:推薦這個認真的學長XD 07/28 22:58
2F:→ PanJC:大家都很認真, 加油 07/29 06:28
3F:推 sukotoko:謝謝學長:) 07/30 20:25
4F:推 gentlecat:可以問一下STEP5~7的意思嗎? 有點看不太懂@@ 08/01 00:56