isIllConditioned

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

Синтаксис

tf = isIllConditioned(dA)

Описание

пример

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