주요 콘텐츠

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입니다.

세부 정보

모두 축소

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

알고리즘

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

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

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

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

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨

모두 확장