[VBA ] 方陣求逆矩陣

看板Visual_Basic作者 (RW)時間12年前 (2013/06/22 21:44), 編輯推噓3(302)
留言5則, 2人參與, 最新討論串1/1
以搜尋過版上文章,但是沒有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)

06/23 05:56, , 1F
我沒跑你的程式,不過倒是看到倒數第二行有問題
06/23 05:56, 1F

06/23 05:58, , 2F
至少也要寫成 InverseA = Application.Minverse(MatrixA)
06/23 05:58, 2F
我有照H大這樣改了,毫無反應就只是個#VALUE ※ 編輯: riceworm520 來自: 163.18.80.7 (06/23 20:02) ※ 編輯: riceworm520 來自: 163.18.80.7 (06/23 20:10)

06/23 20:49, , 3F
你有確定你的矩陣不是singular?
06/23 20:49, 3F

06/23 20:54, , 4F
而且我記得應該是Application.worksheetfunction.MInverse
06/23 20:54, 4F

06/23 20:58, , 5F
Google matrix inverse vba 一定有一堆
06/23 20:58, 5F
我有將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)
文章代碼(AID): #1HnQeZ8j (Visual_Basic)
文章代碼(AID): #1HnQeZ8j (Visual_Basic)