Main Content

cond

역행렬의 조건수

설명

C = cond(A)A의 가장 큰 특이값과 가장 작은 특이값의 비율과 동일한, 역에 대한 2-노름 조건수를 반환합니다.

예제

C = cond(A,p)p-노름 조건수를 반환합니다. 여기서 p1, 2, Inf 또는 'fro'일 수 있습니다.

예제

예제

모두 축소

행렬의 조건수를 계산하고 역행렬 계산에 대한 감도를 검토합니다.

2×2 행렬을 만듭니다.

A = [4.1 2.8;
     9.7 6.6];

A의 2-노름 조건수를 계산합니다.

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];

A의 1-노름 조건수를 계산합니다. m×n 행렬에 대한 1-노름 조건수의 값은 다음과 같습니다.

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

여기서 1-노름은 다음과 같이 지정된 행렬의 열 절댓값의 최대 합입니다.

||A||1=max1jni=1m|aij|.

C = cond(A,1)
C = 
18.0000

이 행렬은 조건수가 그리 크지 않기 때문에 역행렬 계산에 크게 민감하지 않습니다.

입력 인수

모두 축소

입력 행렬입니다. A는 정사각 행렬이나 직사각 행렬일 수 있습니다.

데이터형: single | double
복소수 지원 여부:

노름 유형으로, 다음 표에 표시된 값 중 하나로 지정됩니다. cond는 2가 아닌 p의 값에 대해서는 norm(A,p) * norm(inv(A),p)를 사용하여 조건수를 계산합니다. 이러한 노름 유형에 대한 추가 정보는 norm 페이지를 참조하십시오.

p의 값

노름 유형

1

1-노름 조건수

2

2-노름 조건수

Inf

무한대 노름 조건수

'fro'

프로베니우스 노름(Frobenius Norm) 조건수

예: cond(A,1)은 1-노름 조건수를 계산합니다.

출력 인수

모두 축소

조건수로, 스칼라로 반환됩니다. C의 값이 1에 가까우면 조건이 좋은 행렬을 나타내고, C의 값이 크면 조건이 나쁜 행렬을 나타냅니다. 특이 행렬의 조건수는 Inf입니다.

일반적으로 빈 행렬의 조건수는 0입니다.

세부 정보

모두 축소

역행렬의 조건수

행렬 및 계산 작업에 대한 조건수는 답이 입력 데이터의 변화와 풀이 과정의 반올림 오차에 얼마나 민감한지 측정합니다.

역행렬의 조건수는 데이터의 오차에 대한 선형 연립방정식 해의 민감도를 측정합니다. 이는 역행렬과 선형 방정식 해의 결과에 대한 정확성을 나타냅니다. 예를 들어, 정사각 행렬의 2-노름 조건수는 다음과 같습니다.

κ(A)=AA1.

이런 맥락에서 큰 조건수는 계수 행렬 A가 조금만 변경되어도 선형 방정식 Ax = bxA = b의 출력값 b가 크게 변경될 수 있음을 뜻합니다. 극단적인 예로, 만일 A의 조건이 매우 나빠 특이 행렬이면(즉, 조건수가 무한대이면) 역행렬이 없고 선형 방정식에 유일한 해가 없습니다.

  • rcond는 행렬의 조건을 예측하는 수단으로, cond에 비해 효율적이지만 안정성이 떨어집니다.

알고리즘

cond에 대한 알고리즘은 세 가지로 나뉩니다.

  • p = 2인 경우 condsvd에서 제공하는 특이값 분해를 사용하여 최대 특이값과 최소 특이값의 비율을 구합니다.

  • p = 1, Inf 또는 'fro'인 경우 cond는 입력 행렬의 적절한 노름을 사용하여 조건수를 계산하고 norm(A,p) * norm(inv(A),p)를 사용하여 역행렬을 계산합니다.

  • 입력 행렬이 희소 행렬인 경우 cond는 지정된 p 값을 무시하고 condest를 호출합니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장