|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.05.2012, 19:36 | #1 |
Регистрация: 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 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
нахождение определителя методом Гаусса (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 |