Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2012, 19:36   #1
meigas
 
Регистрация: 29.05.2012
Сообщений: 5
По умолчанию нахождение определителя методом Гаусса (VBA)

Нужно написать макрос который сможет найти определитель матрицы (n*n) используя метод Гаусса (вводится матрица с листа экселя).
Вот процедура решения СЛАУ методом Гаусса, но как с её помощью найти определитель - не могу понять, буду благодарен за помощь.

Sub TrSolve() ' Решение СЛАУ с верхней треугольной матрицей (метод Гаусса)
Dim TR As Range
Dim N As Integer
For Each TR In Selection.Areas
NM = TR.Count
i1 = TR.Row: j1 = TR.Column
' N = (-1 + Sqr(1 + 4 * NM)) / 2 ' Способ первый
N = 0: mn = 0 ' Способ второй:
Do While mn < NM: N = N + 1: mn = N * (N + 1): Loop
' Cells(i1, j1 + N + 1) = 999
Dim b() As Double
ReDim b(N)
For i = 1 To N: b(i) = TR.Cells(i, N + 1): Next
For k = N To 1 Step -1
Cells(i1 + N, j1 + k - 1) = b(k) / TR.Cells(k, k)
S = 0
For i = 1 To N - 1
b(i) = b(i) - TR.Cells(i, k) * Cells(i1 + N, j1 + k - 1)
Next i
Next k
Exit For
Next
End Sub

Sub E() ' Ctrl+Shift+E - создать единичную матрицу
Dim TR As Range
Dim N As Integer
For Each TR In Selection.Areas
N = Sqr(TR.Count)
i1 = TR.Row: j1 = TR.Column
TR = 0
For i = 1 To N: Cells(i1 + i - 1, j1 + i - 1) = 1: Next
Next
End Sub

Sub Lk() ' Нормирование ведущего столбца (без наддиагонали) по шагам:
' Скопировать в E ведущий столбец (без наддиагонали) и запустить по Ctrl+Shift+L макрос!
Dim TR As Range
Dim N As Integer
For Each TR In Selection.Areas
N = TR.Count
i1 = TR.Row: j1 = TR.Column
For i = i1 + 1 To i1 + N - 1
Cells(i, j1) = -Cells(i, j1) / Cells(i1, j1)
Next i
Cells(i1, j1) = 1
Next
End Sub
meigas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нахождение определителя методом Гаусса (VBA) meigas Помощь студентам 0 29.05.2012 17:19
Определитель матрицы методом Гаусса VBA Екатерина5119 Помощь студентам 0 22.05.2012 15:36
Нахождение определителя dyusha2006 Помощь студентам 0 23.11.2010 21:18
обращение матрицы и вычисление определителя по схеме гаусса dacsa Паскаль, Turbo Pascal, PascalABC.NET 2 21.07.2010 21:50
вычисление определителя по схеме Гаусса Ника__ Помощь студентам 1 15.08.2009 16:49