Office中国论坛/Access中国论坛
标题:
使用Excel的VBA求逆矩阵
[打印本页]
作者:
admin
时间:
2004-6-24 06:01
标题:
使用Excel的VBA求逆矩阵
转自 问专家 网
编号:
QA000090
建立日期:
1998年11月11日
最后修改日期:
1998年11月11日
所属类别:
yanrong
:
在以下“过程”中使用EXCEL中的MINVERSE,但结果不对,也与在工作表上直接MINVERSE计算的结果不同,请教在VBA中应用MINVERSE求逆矩阵的办法--或者下列“过程”不对?
Private Sub inv588()
Dim a(3, 3) As Single
Dim b(3, 3)
Dim i As Integer
Dim j As Integer
a(1, 1) = 11.1469
a(1, 2) = -8.5919
a(1, 3) = -7.4236
a(2, 1) = -8.5919
a(2, 2) = 308.5973
a(2, 3) = -44.0458
a(3, 1) = -7.4236
a(3, 2) = -44.0458
a(3, 3) = 253.8423
For i = 1 To 3
For j = 1 To 3
b(i, j) = Application.MInverse(a(i, j))
Next j
Next i
End Sub
回答
:
问题出在你的“过程”上。让我们来看看b(i, j) = Application.MInverse(a(i, j))这一句。MInverse是对数组整体求逆,而Application.MInverse(a(i, j))相当与对每个元素单独求逆,显然分块求逆的结果组成一个矩阵并不是逆矩阵。正确的方法是对矩阵整体求逆,如果要获得逆矩阵的某个元素应使用Index()工作表函数。例如:
b(i,j) = Application.Index(Application.MInverse(Worksheets(1).Range("A1:c3").Value), i,
此问题由
李海
回答。
作者:
sky007
时间:
2007-9-13 19:36
不错不错~~~~
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3