본문 바로가기
수치해석

행렬 - condition number(조건수)

by swswswswswsw 2022. 4. 15.

언제나와 같이 이해할 수 없는 정의에서 출발하겠다. 여기저기에서 따 온 조건수의 정의들은 다음과 같다.

 

A) 함수의 조건수(condition number)는 argument에서 의 작은 변화의 비율에 대해 함수가 얼마나 변화할 수 있는지에 대한 argument measure이다. 예를 들어, 선형방정식 Ax = b에서의 조건수는 근사해에 의한 x가 얼마나 부정확할지에 대한 범위를 알려준다.

 

B) 어떤 함수 y=f(x)의 조건수(condition number)는 함수의 입력인 x의 작은 변화울에 대해 함수의 출력인 y의 변화율이 얼마인지를 나타내는 수로서, 함수의 민감도를 측정하는 지표이다.

 

C) 연립 방정식 Ax = b에서 입력 열 벡터 b의 작은 변화 Δb에 대해, 연립 방정식을 풀어서 얻는 출력 열 벡터 x의 변화 비율로 조건수를 정의한다. 즉, 조건수는 행렬 연산에 필연적으로 생기는 수치 계산의 오차율을 의미한다.

 

 다양한 말로 풀어 쓰고 있지만, condition number를 가장 단순히 표현하자면 "민감도"라고 하고 싶다.

x가 1 증가할 때 y가 2 증가하는 함수는 같은 x 변화에 대해 y가 20000 증가하는 함수보다 훨씬 민감도가 낮다. condition number 또한 같은 느낌이다. 

편한 이해를 위해 함수를 우선 끌고 왔지만, 행렬에 대해서도 이해를 확장시켜 보자. 결론부터 말하자면, 어느 정방행렬 A의 조건수(condition number)는 다음과 같다.

c(A) 혹은 k(A) (그리스어 kappa) 로 표기하는 이 조건수는, 그 정방행렬과 역행렬의 norm의 곱으로 정의된다. 

  이제 유도과정에 대해 알아볼텐데, 그 전에 norm에 대한 특성을 한 가지 알고 들어가자.

이제 행렬의 condition number에 대해 차근차근 알아볼 차례이다. 이번 개념 또한 간단한 식에서부터 출발한다.

전에 eigenvector를 알고 있던 사람이라면 상당히 익숙한 식이겠다. 이 식에서A : 행렬x : 벡터(식의 해)b : 벡터이다. 이 때 약간의 오차가 발생하여 벡터 b가 b+Δb로 변하면, 이 식의 해인 x 또한 x+Δx로 변한다.

위 두 식을 조합하여 아래의 관계식을 얻을 수 있고,

이를 통해 해의 변화량 Δx를 다음과 같이 나타낼 수 있다.

이제 norm의 특성을 활용할 차례이다. 가장 처음의 식을 통해 b와 x의 크기에 대한 관계식을 지을 수 있고, 바로 위의 식을 통해 오차의 크기를 정리할 수 있다. 이 때 어떤 norm을 쓰는지는 관계 없다.

b와 x의 관계식
오차의 크기

위 뒤 식의 좌. 우변끼리 곱한다면 아래 식을 얻을 수 있고, 오차의 상대적 변화율인 ||Δx||/||x|| 를 구할 수 있다.

이 식을 정리하여
최종 식을 얻을 수 있다

위 식에서, 우리는 행렬 A의 조건수(condition number)를 아래와 같이 정의한다.

 

norm에 대한 간단한 개념만 알면 유도할 수 있는 식이었다. 위 정의에서 알 수 있는 개념 몇 가지도 생각해 보자.

1) 역행렬이 존재하지 않는 행렬의 경우 그 조건수는 무한대이다.

2) 조건수는 어떤 norm을 택하는지에 따라 그 값이 달라지게 된다

3) 조건수가 크면 일정한 크기의 상대오차에 대해 해의 상대오차가 커지며, 조건수가 작으면 해의 상대 오차도 작아진다.

728x90

'수치해석' 카테고리의 다른 글

LU Decomposition  (0) 2022.04.22
행렬 - Transpose(전치), decomposition(분해), LU decomposition  (0) 2022.04.19
행렬 - linear transformation  (0) 2022.04.17
Eigenvalue & Eigenvector  (0) 2022.04.15
행렬 - 역행렬, determinant, norm  (0) 2022.04.13