📄 module1.bas
字号:
Attribute VB_Name = "矩阵运算"
Option Explicit
Public Function multiplication(s As Integer, n As Integer, m As Integer, a() As Double, b() As Double, x() As Double)
'矩阵乘法
's为a()的行,n为a()的列,m为b()的列,a() * b()
Dim i, j, k As Integer
For i = 1 To s
For j = 1 To m
For k = 1 To n
x(i, j) = x(i, j) + a(i, k) * b(k, j)
Next k
Next j
Next i
End Function
Public Function addition(n As Integer, m As Integer, a() As Double, b() As Double)
'矩阵加法
'n为行,m列,a() +b()
Dim i, j As Integer
For i = 1 To n
For j = 1 To n
x(i, j) = a(i, j) + b(i, j)
Next j
Next i
End Function
Public Function subtraction(n As Integer, m As Integer, a() As Double, b() As Double, x() As Double)
'矩阵减法
'n为行,m列,a() - b()
Dim i, j As Integer
For i = 1 To n
For j = 1 To n
x(i, j) = a(i, j) - b(i, j)
Next j
Next i
End Function
Public Function transpose(n As Integer, m As Integer, a() As Double, x() As Double)
'矩阵转置
'n为行,m列,a()的转置
Dim i, j As Integer
For i = 1 To m
For j = 1 To n
x(i, j) = a(j, i)
Next j
Next i
End Function
Public Function inverse(n As Integer, aa() As Double, e() As Double)
'矩阵求逆
'n为行,m列,a()的逆
Dim a() As Double
ReDim a(1 To n, 1 To n) As Double
Dim i, j, k As Integer
Dim tempnum As Integer
For i = 1 To n
For j = 1 To n
a(i, j) = aa(i, j)
If i = j Then
e(i, j) = 1
Else
End If
Next j
Next i
'--------------对系数矩阵进行处理
For i = 1 To n
If a(i, i) = 0 Then
For j = i To n
If a(j, i) <> 0 Then
tempnum = j
Exit For
End If
Next j
For j = 1 To n
e(i, j) = e(i, j) + e(tempnum, j)
a(i, j) = a(i, j) + a(tempnum, j)
Next j
End If
'------------------------消去,变成上三角
For j = i To n
If j = i Then
For k = n To 1 Step -1
e(j, k) = e(j, k) / a(i, i)
Next k
For k = n To 1 Step -1
a(j, k) = a(j, k) / a(i, i)
Next k
Else
For k = n To 1 Step -1
e(j, k) = e(j, k) - e(i, k) * a(j, i) / a(i, i)
Next k
For k = n To 1 Step -1
a(j, k) = a(j, k) - a(i, k) * a(j, i) / a(i, i)
Next k
End If
Next j
Next i
'-------------------------消去,变成单位矩阵
For i = n To 1 Step -1
For j = 1 To i - 1
For k = 1 To n
e(j, k) = e(j, k) - e(i, k) * a(j, i)
Next k
Next j
Next i
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -