Нахождение определителя методом Гаусса - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д