isbanded

Определите, находится ли матрица в пределах определенной полосы пропускания

Описание

пример

tf = isbanded(A,lower,upper) возвращает логический 1 (true) если матрица A находится в пределах заданной нижней полосы пропускания, lower, и верхняя полоса пропускания, upper; в противном случае возвращается логический 0 (false).

Примеры

свернуть все

Создайте квадратную матрицу 5 на 5 с ненулевыми диагоналями выше и ниже основной диагонали.

A = [2 3 0 0 0 ; 1 -2 -3 0 0; 0 -1 2 3 0 ; 0 0 1 -2 -3; 0 0 0 -1 2]
A = 5×5

     2     3     0     0     0
     1    -2    -3     0     0
     0    -1     2     3     0
     0     0     1    -2    -3
     0     0     0    -1     2

Задайте обе полосы пропускания, lower и upper, как 1 для тестирования, если A является тридиагональным.

isbanded(A,1,1)
ans = logical
   1

Результат логичен 1 (true).

Проверяйте, если A имеет ненулевые элементы ниже основной диагонали путем определения lower как 0.

isbanded(A,0,1)
ans = logical
   0

Результат логичен 0 (false) потому что A имеет ненулевые элементы ниже основной диагонали.

Создайте матрицу 3 на 5.

A = [1 0 0 0 0; 2 1 0 0 0; 3 2 1 0 0]
A = 3×5

     1     0     0     0     0
     2     1     0     0     0
     3     2     1     0     0

Проверяйте, если A имеет ненулевые элементы над основной диагональю.

isbanded(A,2,0)
ans = logical
   1

Результат логичен 1 (true) потому что элементы над основной диагональю все равны нулю.

Создайте разреженную матрицу блоков 100 на 100.

B = kron(speye(25),ones(4));

Проверяйте, если B имеет нижнюю и верхнюю пропускную способность 1.

isbanded(B,1,1)
ans = logical
   0

Результат логичен 0 (false), поскольку ненулевые блоки с центром на основной диагонали больше, чем 2 на 2.

Проверяйте, если B имеет нижнюю и верхнюю пропускную способность 3.

isbanded(B,3,3)
ans = logical
   1

Результат логичен 1 (true). Матрица, B, имеет верхнюю и более низкую полосу пропускания 3 поскольку ненулевые блоки диагонали 4 на 4.

Входные параметры

свернуть все

Входной массив, заданный как числовой массив. isbanded возвращает логический 0 (false), если A имеет более двух размерности.

Типы данных: single | double
Поддержка комплексного числа: Да

Более низкая полоса пропускания, заданная как неотрицательный целочисленный скаляр. Более низкая полоса пропускания - это количество ненулевых диагоналей ниже основной диагонали. isbanded возвращает логический 0 (false) если есть ненулевые элементы ниже контура диагонали, diag(A,-lower).

Верхняя полоса пропускания, заданная как неотрицательный целочисленный скаляр. Верхняя полоса - это количество ненулевых диагоналей выше основной диагонали. isbanded возвращает логический 0 (false) если над краевой диагональю находятся ненулевые элементы, diag(A,upper).

Совет

  • Используйте bandwidth функция для нахождения верхней и нижней полосы пропускания заданной матрицы.

  • Использование isbanded для тестирования нескольких различных матричных структур путем определения соответствующих верхней и нижней полос пропускания. В таблице ниже перечислены некоторые общие тесты.

    Нижняя полоса пропускания

    Верхняя полоса пропускания

    Вызов функции

    Тесты для

    00isbanded(A,0,0)

    Диагональная матрица

    11isbanded(A,1,1)

    Тридиагональная матрица

    0size(A,2)isbanded(A,0,size(A,2))

    Верхняя треугольная матрица

    size(A,1)0isbanded(A,size(A,1),0)

    Нижняя треугольная матрица

    1size(A,2)isbanded(A,1,size(A,2))

    Верхняя Матрица Хессенберга

    size(A,1)1isbanded(A,size(A,1),1)

    Нижняя Матрица Хессенберга

Расширенные возможности

.

См. также

| | | |

Введенный в R2014a