cond

Номер условия для инверсии

Синтаксис

C = cond(A)
C = cond(A,p)

Описание

пример

C = cond(A) возвращает номер условия 2-нормы для инверсии, равной отношению самого большого сингулярного значения A к самому маленькому.

пример

C = cond(A,p) возвращает p - номер условия нормы, где p может быть 1, 2, Inf или 'fro'.

Примеры

свернуть все

Вычислите количество условия матрицы и исследуйте чувствительность к обратному вычислению.

Создайте матрицу 2 на 2.

A = [4.1 2.8;
     9.7 6.6];

Вычислите количество условия 2-нормы A.

C = cond(A)
C = 1.6230e+03

Поскольку количество условия A намного больше, чем 1, матрица чувствительна к обратному вычислению. Вычислите инверсию A, и затем сделайте небольшое изменение во второй строке A и вычислите инверсию снова.

invA = inv(A)
invA = 2×2

  -66.0000   28.0000
   97.0000  -41.0000

A2 = [4.1    2.8; 
      9.671  6.608]
A2 = 2×2

    4.1000    2.8000
    9.6710    6.6080

invA2 = inv(A2)
invA2 = 2×2

  472.0000 -200.0000
 -690.7857  292.8571

Результаты показывают, что создание небольшого изменения в A может полностью изменить результат обратного вычисления.

Вычислите количество условия с 1 нормой матрицы.

Создайте 3х3 матрицу.

A = [1 0 -2;
     3 4  6;
    -1 5  7];

Вычислите количество условия с 1 нормой A. Значение номера условия с 1 нормой для матрицы m на n

κ1(A)=||A||1||A-1||1,

где 1 норма является максимальной абсолютной суммой столбца матрицы, данной

||A||1=max 1jni=1m|aij|.

C = cond(A,1)
C = 18.0000

Для этой матрицы номер условия не является слишком большим, таким образом, матрица не особенно чувствительна к обратному вычислению.

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

свернуть все

Введите матрицу. A может быть или квадратным или прямоугольным в размере.

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

Тип нормы, заданный как одно из значений, показанных в этой таблице. cond вычисляет номер условия с помощью norm(A,p) * norm(inv(A),p) для значений p кроме 2. Смотрите страницу norm для получения дополнительной информации об этих типах нормы.

Значение p

Тип нормы

1

Номер условия с 1 нормой

2

Номер условия 2-нормы

Inf

Номер условия нормы бесконечности

'fro'

Номер условия нормы Фробениуса

Пример: cond(A,1) вычисляет номер условия с 1 нормой.

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

свернуть все

Номер условия, возвращенный как скаляр. Значения C около 1 указывают на хорошо подготовленную матрицу, и большие значения C указывают на плохо обусловленную матрицу. Сингулярные матрицы имеют количество условия Inf.

Больше о

свернуть все

Номер условия для инверсии

Номер условия для матричной и вычислительной задачи измеряется, насколько чувствительный ответ к изменениям во входных данных и ошибкам округления в процессе решения.

Номер условия для инверсии матрицы измеряет чувствительность решения системы линейных уравнений к ошибкам в данных. Это дает индикацию относительно точности результатов матричной инверсии и решения для линейного уравнения. Например, количество условия 2-нормы матрицы

κ(A)=AA1.

В этом контексте большой номер условия указывает, что небольшое изменение в матрице коэффициентов A может привести к большим изменениям в выводе b в линейных уравнениях A x = b и x A = b. Крайний случай - когда A так плохо обусловливается, что это сингулярно (бесконечный номер условия), в этом случае это не имеет никакой инверсии, и линейное уравнение не имеет никакого уникального решения.

Советы

  • rcond является более эффективным, но менее надежным, методом оценки условия матрицы по сравнению с cond.

Алгоритмы

Алгоритм для cond имеет три части:

  • Если p = 2, то cond использует сингулярное разложение, обеспеченное svd, чтобы найти отношение самых больших и самых маленьких сингулярных значений.

  • Если p = 1, Inf или 'fro', то cond вычисляет номер условия с помощью соответствующей нормы входной матрицы и ее инверсии с norm(A,p) * norm(inv(A),p).

  • Если входная матрица разреженна, то cond игнорирует, любой задал значение p и вызывает condest.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Представлено до R2006a