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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

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

Найти определитель с помощью метода Гаусса (матрица задаётся со страницы EXCEL), используя подпрограмму:

Код:
Sub TrSolve()   ' Решение СЛАУ с верхней треугольной матрицей  (метод Гаусса)
Dim TR As Range
Dim n As Integer
For Each TR In Selection.Areas
  i1 = TR.Row: j1 = TR.Column
  n = TR.Rows.Count
  If n + 1 <> TR.Columns.Count Then
    MsgBox "Выделена не подходящий диапазон", , "TrSolve": Exit Sub
  End If
  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 Екатерина5119 Помощь студентам 0 22.05.2012 15:36
Найти определитель матрицы ... Fanat56 C# (си шарп) 3 30.12.2011 16:50
Найти определитель матрицы... Fanat56 Общие вопросы C/C++ 1 27.12.2011 22:01
Excel: как найти символ в ячейке через VBA? ARud Microsoft Office Excel 2 03.12.2009 15:17