Visual Basic 可以求矩阵的逆吗?
'矩阵求逆源程序
'本程序无满秩检查,默认要计算的矩阵是可逆的
'本程序也没有选主元,不仅凑整误差大而且有些可逆矩阵也不能计算
Private Sub Command1_Click()
Dim a() As Single
Dim i%, j%, k%, am!, bm!, cm!
n = InputBox("请输入方阵的阶数N")
ReDim a(n, 2 * n) As Single
For i = 1 To n
For j = 1 To n
a(i, j) = InputBox("请输入a(" & i & "," & j & ")的值")
If i = j Then
a(i, j + n) = 1
Else
a(i, j + n) = 0
End If
Next j, i
Print "原矩阵的增广矩阵元素"
For i = 1 To n
For j = 1 To 2 * n
If j Mod 2 * n <> 0 Then
Print a(i, j);
Else
Print a(i, j)
End If
Next j, i
'逆矩阵计算
For k = 1 To n '用主元除主元所在行的所有元素
am = 1 / a(k, k) '将主元变为1
For j = k To 2 * n
a(k, j) = a(k, j) * am
Next j
'____________________________________
For i = k + 1 To n '将原矩阵变为下三角矩阵
bm = a(i, k)
For j = 1 To 2 * n
a(i, j) = a(i, j) - a(k, j) * bm
Next j
Next i
Next k
'------------------------------------------------
For k = 2 To n
For i = 1 To k - 1 '将下三角矩阵变为单位阵
cm = a(i, k)
For j = k To 2 * n
a(i, j) = a(i, j) - a(k, j) * cm
' Print "a(" & i & "," & j & ")=" & a(i, j)
Next j
Next i
Next k
'------------------------------------------------
Print "所求逆矩阵"
For i = 1 To n
For j = n + 1 To 2 * n
If j Mod 2 * n <> 0 Then
Print a(i, j); " ";
Else
Print a(i, j)
End If
Next j, i
End Sub