MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

MATLAB\MATLAB

В.Г.Потемкин "Справочник по MATLAB"
Работа с разреженными матрицами

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

Вспомогательные операции

SYMBFACT
Характеристики разложения Холецкого

Синтаксис:

            count = symbfact(A)
            count = symbfact(A, f)
            [count, h, parent, post, R] = symbfact(A, f)

Описание:

Функция count = symbfact(A) вычисляет количество элементов в строках верхнего треугольного множителя разложения Холецкого исходной симметрической матрицы A. Эта функция выполняется значительно быстрее, чем chol(A).

Функция count = symbfact(A, `col`) анализирует матрицу A’*A, не формируя ее в явном виде.

Функция count = symbfact(A, `sym`) аналогична процедуре count = symbfact(A).

Функция [count, h, p, q, R] = symbfact(A, f) возвращает несколько дополнительных выходных параметров:

  • h - высоту графа;
  • p - параметры графа;
  • q - вектор перестановки столбцов;
  • R - матрицу связности для процедуры chol(A).

Пример:

Рассмотрим матрицу A следующего вида:

          A =  image927.gif (451 bytes) .

Эта симметрическая положительно определенная матрица, и применение функции chol(A) дает следующий результат:

          L = chol(A)
          L =

2.0000 0 0 0.5000
0 1.0000 0 0
0 0 1.0000 0
0 0 0 0.8660

Применение функции symbfact(A) вычисляет количество элементов в строках матрицы L:

          с = symbfact(A)
          c =   2   1    1   1

Если к матрице A применить алгоритм симметрической упорядоченности, то ненулевые элементы в разложении Холецкого будут концентрироваться вблизи диагонали. Рассмотрим последовательность процедур

          r = symmmd(A);
          L = chol(A(r, r))
          L =

1.0000 0 0 0
0 1.0000 0 0
0 0 2.0000 0.5000
0 0 0 0.8660

          c = symbfact(A(r, r))
          c =   1   1    2   1

Обращение вида [count, h, p, q, R] = symbfact(A) вычисляет параметры для построения графа матрицы. Следующая последовательность операторов позволяет построить граф с пронумерованными вершинами.

         [c, h, p, q] = symbfact(A)
         [x, y] = treelayout(p, q);
         gplot(A, [x' y'], 'bo'), hold on
         gplot(A, [x' y'], 'r')
         for j=1:size(A, 1)
            text(x(j) + 0.02,y(j) + 0.02,int2str(j))
         end
         c =   2   1    1   1
         h = 2
         p =   4   0    0   0
         q =   2   3    1   4

image928.gif (1040 bytes)

Сопутствующие функции: CHOL, ETREE.

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

 


Поиск по сайту:

Система Orphus

Яндекс.Метрика