exponenta event banner

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