作者riceworm520 (RW)
看板Visual_Basic
標題[VBA ] 方陣求逆矩陣
時間Sat Jun 22 21:44:01 2013
以搜尋過版上文章,但是沒有MInverse這個指令有相關問題故PO文求教
我用兩個迴圈 i j 跑出了一個矩陣,也確定為方陣
但是想用application.MInverse(MatrixA) 求逆矩陣
求出來都是#value
矩陣確定正確,裡面也沒有空白或包含文字,也確定為方正
一整個撞牆Q_Q
可以請各位幫我看看嗎?
For i = 1 To (Snum - 1)
For j = 1 To (Snum - 1)
If i - j = -1 Then
MatrixA(i, j) = 0.5 * (R - Q) * (j - 1) * dt - 0.5 * Sigma ^ 2 *
(j - 1) ^ 2 * dt
ElseIf i - j = 0 Then
MatrixA(i, j) = 1 + R * dt + Sigma ^ 2 * j ^ 2 * dt
ElseIf i - j = 1 Then
MatrixA(i, j) = -0.5 * (R - Q) * (j + 1) * dt - 0.5 * Sigma ^ 2 *
(j + 1) ^ 2 * dt
Else:
MatrixA(i, j) = 0
End If
Next j
Next i
Application.MInverse(MatrixA) = InversA
Msgbox (InversA(1,1))
我載網路上找到利用MINVERSE求逆矩陣都會按CTRL+SHIFT+ENTER 請問會跟這個有關西嗎?
如何寫成程式碼?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.122.200
※ 編輯: riceworm520 來自: 60.248.122.200 (06/22 22:16)
1F:→ hulapig:我沒跑你的程式,不過倒是看到倒數第二行有問題 06/23 05:56
2F:→ hulapig:至少也要寫成 InverseA = Application.Minverse(MatrixA) 06/23 05:58
我有照H大這樣改了,毫無反應就只是個#VALUE
※ 編輯: riceworm520 來自: 163.18.80.7 (06/23 20:02)
※ 編輯: riceworm520 來自: 163.18.80.7 (06/23 20:10)
3F:推 s06yji3:你有確定你的矩陣不是singular? 06/23 20:49
4F:推 s06yji3:而且我記得應該是Application.worksheetfunction.MInverse 06/23 20:54
5F:推 s06yji3:Google matrix inverse vba 一定有一堆 06/23 20:58
我有將i,j用較小的數字帶進去跑出行列式之後在求他的值 不為0
也把算出來的數字一個一個打在儲存格上計算逆矩陣 是可以求的
但是用application 就是會跑出#VALUE
worksheetfunction也跑過了 沒作用
※ 編輯: riceworm520 來自: 218.173.45.248 (06/24 17:27)
已解決 感謝s06ji3的文章,我曾懷疑矩陣起始點是不是(0,0)看到S大的文章發現真的是
所已在前面宣告多宣告了一行導致無法進行inverse
修正後已解決,感謝各位
※ 編輯: riceworm520 來自: 218.173.45.248 (06/24 18:43)