Нахождение определителя методом Гаусса - VBA
Формулировка задачи:
Нужно написать макрос который сможет найти определитель матрицы (n*n) используя метод Гаусса (вводится матрица с листа экселя).
Вот процедура решения СЛАУ методом Гаусса, но как с её помощью найти определитель - не могу понять, буду благодарен за помощь.
Решение задачи: «Нахождение определителя методом Гаусса»
textual
Листинг программы
Function det(matrix)
Dim n As Byte, j As Byte
Dim i_ As Byte, j_ As Byte
Dim minor()
n = UBound(matrix)
If n = 1 Then det = matrix(1, 1): Exit Function
ReDim minor(1 To n - 1, 1 To n - 1)
For j = 1 To n 'по первой строке
For i_ = 1 To n - 1
For j_ = 1 To n - 1
If j_ < j Then minor(i_, j_) = matrix(i_ + 1, j_)
If j_ >= j Then minor(i_, j_) = matrix(i_ + 1, j_ + 1)
Next j_
Next i_
det = det + (-1) ^ (1 + j) * matrix(1, j) * det(minor)
Next j
End Function
Private Sub Command1_Click()
Dim i As Integer, j As Integer
n = CInt(InputBox("Число строк")) 'матрица ТОЛЬКО квадратная
ReDim A(1 To n, 1 To n) As Single
For i = 1 To n
For j = 1 To n
A(i, j) = InputBox("a(" & i & " , " & j & " ) ")
Text1.Text = Text1.Text & A(i, j) & ""
Next j
Text1.Text = Text1.Text + vbCrLf
Next i
MsgBox det(A) 'Call det(matrix) - бред {Function det, а не Sub det}
End Sub