ВУЗы и колледжи
Определитель матрицы в VBA
Помогите написать код в VBA для нахождения определителя матрицы, заданной предварительно в Экселе размером 5 на 5, и умножить его на эту матрицу
числа матрицы располагать с А1 по Е5
код:
Function fff(x1, x2, x3, x4, x5)
zz = 0
zz = zz + IIf(x1 > x2, 1, 0)
zz = zz + IIf(x1 > x3, 1, 0)
zz = zz + IIf(x1 > x4, 1, 0)
zz = zz + IIf(x1 > x5, 1, 0)
zz = zz + IIf(x2 > x3, 1, 0)
zz = zz + IIf(x2 > x4, 1, 0)
zz = zz + IIf(x2 > x5, 1, 0)
zz = zz + IIf(x3 > x4, 1, 0)
zz = zz + IIf(x3 > x5, 1, 0)
zz = zz + IIf(x4 > x5, 1, 0)
fff = IIf(zz Mod 2 = 0, 1, -1)
End Function
Sub ppp()
ll = 0
opred = 0
For ii1 = 1 To 5
For ii2 = 1 To 5
If ii2 <> ii1 Then
For ii3 = 1 To 5
If ii3 <> ii2 And ii3 <> ii1 Then
For ii4 = 1 To 5
If ii4 <> ii3 And ii4 <> ii2 And ii4 <> ii1 Then
For ii5 = 1 To 5
If ii5 <> ii4 And ii5 <> ii3 And ii5 <> ii2 And ii5 <> ii1 Then
znak = fff(ii1, ii2, ii3, ii4, ii5)
mmm = Cells(1, ii1) * Cells(2, ii2) * Cells(3, ii3) * Cells(4, ii4) * Cells(5, ii5)
opred = opred + mmm * znak
ll = ll + 1
Cells(ll, 7) = ii1 * 10000 + ii2 * 1000 + ii3 * 100 + ii4 * 10 + ii5
Cells(ll, 8) = znak
End If
Next ii5
End If
Next ii4
End If
Next ii3
End If
Next ii2
Next ii1
Cells(10, 1) = opred
Cells(10, 2) = ll
End Sub
вот результат:
в клетке А10 помещается определитель
в столбце G индексы всех произведений
в столбце H знак каждого произведения
код:
Function fff(x1, x2, x3, x4, x5)
zz = 0
zz = zz + IIf(x1 > x2, 1, 0)
zz = zz + IIf(x1 > x3, 1, 0)
zz = zz + IIf(x1 > x4, 1, 0)
zz = zz + IIf(x1 > x5, 1, 0)
zz = zz + IIf(x2 > x3, 1, 0)
zz = zz + IIf(x2 > x4, 1, 0)
zz = zz + IIf(x2 > x5, 1, 0)
zz = zz + IIf(x3 > x4, 1, 0)
zz = zz + IIf(x3 > x5, 1, 0)
zz = zz + IIf(x4 > x5, 1, 0)
fff = IIf(zz Mod 2 = 0, 1, -1)
End Function
Sub ppp()
ll = 0
opred = 0
For ii1 = 1 To 5
For ii2 = 1 To 5
If ii2 <> ii1 Then
For ii3 = 1 To 5
If ii3 <> ii2 And ii3 <> ii1 Then
For ii4 = 1 To 5
If ii4 <> ii3 And ii4 <> ii2 And ii4 <> ii1 Then
For ii5 = 1 To 5
If ii5 <> ii4 And ii5 <> ii3 And ii5 <> ii2 And ii5 <> ii1 Then
znak = fff(ii1, ii2, ii3, ii4, ii5)
mmm = Cells(1, ii1) * Cells(2, ii2) * Cells(3, ii3) * Cells(4, ii4) * Cells(5, ii5)
opred = opred + mmm * znak
ll = ll + 1
Cells(ll, 7) = ii1 * 10000 + ii2 * 1000 + ii3 * 100 + ii4 * 10 + ii5
Cells(ll, 8) = znak
End If
Next ii5
End If
Next ii4
End If
Next ii3
End If
Next ii2
Next ii1
Cells(10, 1) = opred
Cells(10, 2) = ll
End Sub
вот результат:

в клетке А10 помещается определитель
в столбце G индексы всех произведений
в столбце H знак каждого произведения
Похожие вопросы
- Теоретический вопрос: Матрицы, их виды . Операции над матрицами. Определители матрицы, их свойства и вычисление.
- Кто может найти определитель матрицы 5го порядка?
- Как вычислить определитель матрицы 5 порядка?
- Началась высшая математика, чувствую, что уже даже на матрицах и определителях "плаваю". Посоветуйте план действий!
- Сортировка методом пузырька в VBA
- вычислить определитель 4 порядка
- Определения матриц. Виды матриц, Арифметические действия над матрицами. Ранг матриц. плизззззззз
- Помогите найти обратную матрицу матрицы "B"!!!!
- Найти Ранг Матрицы!!! помогитееее!!!!
- Помогите решить!Первая матрица: 0 1, 1 0 её умножить на Х, и вторая матрица 5 2 ,0 6 равная матрице 0 0 ,0 1