|
|
很幸运上了这个网站,可是“function Rect_yu(A() As Double, L As Long, C() As Double) As Double "中三个参数,该怎么调用呢,那个”C()"好象是逆矩阵的结果 ,哪个老师举个应用的例子吧,
再看看这程序有没有错误。我急用着呢,等扶!!!!!
Option Explicit
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
Dim i, j As Integer
For i = 0 To 2
For j = 0 To 2
Debug.Print A(i, j)
Next
Next
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
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
|
|