exponenta event banner

isIllConditioned

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

Синтаксис

Описание

пример

tf = isIllConditioned(dA) возвращает логический 1 (true), если исходная матрица коэффициентов A используется для создания декомпозиции dA плохо кондиционирован; в противном случае возвращается логическое 0 (false).

Используемый тест зависит от типа разложения:

  • 'qr' и 'cod' декомпозиции - матрица коэффициентов плохо кондиционирована, если rank(dA) < min(size(A)).

  • Все остальные декомпозиции - матрица коэффициентов не соответствует условию, если rcond(dA) < eps.

Если isIllConditioned возвращает логический 1 (true), затем решение линейной системы с помощью dA\b или b/dA отображает предупреждение. Используйте CheckCondition свойство объекта разложения dA чтобы отключить эти предупреждения.

Примеры

свернуть все

Создайте объект разложения матрицы для матрицы коэффициентов Гильберта 25 на 25, а затем проверьте, не является ли базовая матрица коэффициентов неусловной.

A = hilb(25);
dA = decomposition(A)
dA = 
  decomposition with properties:

    MatrixSize: [25 25]
          Type: 'ldl'

  Show all properties

tf = isIllConditioned(dA)
tf = logical
   1

Проверьте номер ответного условия матрицы коэффициентов. В этом случае isIllConditioned определяет, что матрица коэффициентов A плохо кондиционирован, потому что rcond(dA) меньше, чем eps.

rcond(dA)
ans = 2.3569e-20

Входные аргументы

свернуть все

Входная декомпозиция, заданная как decomposition объект.

Пример: dA = decomposition(A,'qr')

Совет

  • isIllConditioned использует оценки ранга и числа условий объекта разложения. Эти оценки могут отличаться по сравнению с вызовом rank(A) или rcond(A) непосредственно на матрице коэффициентов.

См. также

| |

Представлен в R2017b