isbanded

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

Синтаксис

tf = isbanded(A,lower,upper)

Описание

пример

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

Для просмотра документации необходимо авторизоваться на сайте