조건수(Condition Number)
조건수는 다중항들에 대한 영향을 나타냅니다. 예를 들어 y=f(x)의 함수에서 x의 변화률에 따른 y의 변화률을 나타내는 수로서 함수의 민감도를 측정하는 지표입니다. 행렬A와 벡터b 사이에 식 1과 같은 선형결합이 성립할 경우 b의 변화로 x가 변화함을 알 수 있습니다.
(식 1) |
위 행렬노름을 선형결합에 적용하면 식 2와 같이 나타낼 수 있습니다.
(식 2) |
위 식 2의 위항과 아래항을 식 3과 같이 변화율로 나타낼 수 있습니다.
(식 3) |
A-1은 A의 역행렬입니다.
위 식 3의 빨간색으로 표시한 부분이 행렬 A의 조건수(condition number)이며 cond(A)로 나타냅니다(식 4).
(식 4) |
식 4에 의한 조건수는
a = np.array([[1, 0, -1], [0, 1, 0], [1, 0, 1]]);a
array([[ 1, 0, -1], [ 0, 1, 0], [ 1, 0, 1]])
aInv=la.inv(a);aInv
array([[ 0.5, 0. , 0.5], [ 0. , 1. , 0. ], [-0.5, 0. , 0.5]])
conNum=la.norm(aInv, 'fro')*la.norm(a, 'fro'); conNum
3.1622776601683795
la.cond(a, 'fro')
3.1622776601683795
댓글
댓글 쓰기