isbanded

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

Описание

пример

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

Примеры

свернуть все

Создайте квадратную матрицу 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 ложь) потому что 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 ложь) потому что ненулевые блоки, сосредоточенные на основной диагонали, больше, чем 2 на 2.

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

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

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

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

свернуть все

Входной массив в виде числового массива. isbanded возвращает логический 0 ложь) если A имеет больше чем две размерности.

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

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

Верхняя полоса пропускания в виде неотрицательного целочисленного скаляра. Верхняя полоса пропускания является количеством ненулевых диагоналей выше основной диагонали. isbanded возвращает логический 0 ложь) если существуют ненулевые элементы выше граничной диагонали, 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