📄 新建 文本文档.txt
字号:
矩阵求逆
Function Rect_yu(A() As Double, L As Long, C() As Double) As Double '矩阵求逆
Dim T0 As Double
Dim T1 As Double
Dim T2 As Double
Dim T3 As Double
Dim B() As Double
Dim Num As Double
Dim Chay As Long
Dim Chax As Long
Chay = 0
Chax = 0
ReDim B(L - 1, L - 1)
Num = 0
Dim add As Double
add = 1 / Rect(A(), L)
For T0 = 0 To L
For T3 = 0 To L
For T1 = 0 To L - 1
If T1 < T0 Then
Chax = 0
Else
Chax = 1
End If
For T2 = 0 To L - 1
If T2 < T3 Then
Chay = 0
Else
Chay = 1
End If
B(T1, T2) = A(T1 + Chax, T2 + Chay)
Next T2
Next T1
'Rect(B(), L - 1) '调用求行列式值
C(T3, T0) = Rect(B(), L - 1) * add * ((-1) ^ (T0 + T3))
Next T3
Next T0
End Function
'当矩阵为:
'2 3 4
'5 6 7
'8 9 0
'那么求逆得一个矩阵为:
'-2.1 1.2 -0.1
'1.87 -1.07 0.20
'-0.1 0.2 -0.1
'A() As Double为A(L,L)的矩阵
'当L=2时可定义为
Dim A(2, 2) As Double
A(0, 0) = 2
A(0, 1) = 3
A(0, 2) = 4
A(1, 0) = 5
A(1, 1) = 6
A(1, 2) = 7
A(2, 0) = 8
A(2, 1) = 9
A(2, 2) = 0
Dim L As Long
L = 2
Dim C(2, 2) As Double
'可调用本函数(注:要加有Rect(B(), L - 1) '调用求行列式值)这个函数
'地址:http://www.celiang.net/celiang/article_view.asp?id=6
Call Rect_yu(A(), L, C())
'C()为结果
'经调试暂没有发现错误。
行列式计算
Function Rect(A() As Double, L As Long) As Double '行列式计算L*L
Dim T0 As Double
Dim T1 As Double
Dim T2 As Double
Dim T3 As Double
Dim Rect6_T As Double
Dim B() As Double
Dim Num As Double
Dim Cha As Long
Cha = 0
ReDim B(L - 1, L - 1)
Num = 0
If L = 1 Then
Rect = A(0, 0) * A(1, 1) - A(0, 1) * A(1, 0)
Exit Function
End If
For T0 = 0 To L
For T1 = 1 To L
For T2 = 0 To L - 1
If T2 = T0 Then Cha = 1
B(T1 - 1, T2) = A(T1, T2 + Cha)
Next T2
Cha = 0
Next T1
Num = Num + A(0, T0) * Rect(B(), L - 1) * (-1) ^ T0
Next T0
Rect = Num
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -