作者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)