Kreyszig 공업수학(상) | Erwin Kreyszig - 교보문고
Kreyszig 공업수학(상) | 『공업수학』 상권. 이 책은 반세기 동안 전 세계적으로 가장 널리, 그리고 가장 많이 채택되어 사용되고 있는 Erwin Kreyszig교수가 저술한 Advanced Engineering Mathematics, 10th Edition
product.kyobobook.co.kr
위의 공업수학 교재에 나오는 내용을 혼자 공부하기 위해 정리한 요약노트입니다. 그리고 영어교과서를 기준으로 보고 있기도 하고, 많은 전공서적들에서 영어표현을 많이 사용하기 때문에, 한글용어를 일부러 찾아서 소개는 해볼 생각이지만 용어소개가 끝나면 주요 용어들은 영어로 나오게 될 예정인 점 양해 부탁드립니다.
이번 글로 '기초적인' 선형대수학 겉핥기는 끝이 납니다. 대각화 문제(diagonalization problem)에 대해 정리해보겠습니다. 뒤에 이차형식(quadratic form)이나 주축정리(principal axes theorem)은 너~무 겉핥기에 결과 외우기 수준이라 제외하고 대각화만 깔끔하고 간단하게 정리하도록 하겠습니다.
목차
들어가기 전에: 개인적인 생각
공업수학 교재에서의 이번 단원 내용은 뭔가 '드라이'하달까... 계산 예시는 충분히 많았지만 도대체 이걸 왜 배워야 하는지, 무슨 짓을 하고 있는 건지에 대해 motivation이라든지 아무 설명이 없었어요. 그저 이렇게 하다가보면 대각행렬(diagonal matrix)을 얻게 된다. 정도로 끝나고 뜬금없이 이차곡선(conic)을 다루기에 도움이 된다며 quadratic form이나 principal axes theorem을 급하게 다루고는 챕터가 마무리 되어 버리는 기이한 현상을 목격했습니다. 결과만 허겁지겁 머리에 밀어넣는 듯한 느낌을 지울 수가 없었어요.
선형대수학이 머리에서 나가버린 지 오래된 지금이지만, 그래서 다시 공부하고 있는 이 시점에서, 그래도 용어들은 어렴풋이 여러 개 들어본 추억이 남아있기 때문에, 저만의 생각을 짧게 적어보려고 합니다. 대체 이 짓을 왜 하는지에 대해서요.
선형대수학, 더 나아가 대수학에서는 어떤 구조를 적절하게 분해해서 그 구조의 성질을 이해하려고 하는 일이 많습니다. 공업수학 독학 시리즈에서는 자세히 다루지 않았지만, 예시로써 이전에 제가 공부했던 선형대수학의 내용을 되짚어보면, 처음에 벡터공간(vector space)을 정의하고 이 벡터공간을 구성하는 제일 핵심적인 재료인 기저(basis)에 대해 다루고 이마저도 차원(dimension)이라는 숫자에 연관성을 부여해서 분해해놓습니다. 여기에 뭔가 변화를 주는 '작용'에 대해 다룹니다. 이게 선형변환(linear transformation)일 수도 있고 작용자(operator)일 수도 있어요. 그랬을 때에 어떤 작용이 일어나고 그 작용에 의해 얻어지는 성질은 무엇이고 하는 것을 탐구해요. 그러다가 보니 동형사상(isomorphism)에 대해서도 얘기가 나오고(어떤 두 구조가 사실상 같은지 아닌지에 대한 내용), 특정 성질을 가지는 몇 개의 부분공간(subspace)으로 나누는 일, 일종의 분해도 하고(kernel과 image의 분해부터 시작이죠) 그러는 거에요.
이 일환으로 행렬의 분해도 사실 많이 나옵니다. 종류는 정말로 많아요. singular value decomposition, QR decomposition, Cholesky decomposition 등 수도 없는 예를 들 수 있습니다. 이런 짓을 대체 왜 할까요? 위에서 얘기한 내용과 같습니다. 실제로 일일이 정의대로 곱해서 계산하고 귀찮게 할 것이 아니라 어떤 묶음에 대한 큰 틀에서의 작용으로 이해하면 더 다루기 쉬워지니까 그렇습니다. 그림으로 표현해보자면 다음과 같아요. 즉, 하나하나의 대응을 봐도 되지만, 비슷한 작용결과를 내놓는 묶음의 변화로 이해해도 좋아요.
제가 생각하기에 대각화 문제의 시작은 이런 분해 문제에서 오는 것 같아요. 그래서 전제조건으로 일반적인 행렬이 아닌, 꽤 무리한(?) 조건이 만족하는 특수한 행렬인 경우를 상정하고 있는 거 같아요. 보다 일반적인 행렬도 분해를 해보고 싶어서 대각화 이외에도 다양한 분해법이 존재하게 된 것이고, 그 과정에서 Spectral theorem이 다뤄지는 것이 아닐까 하는 맥락 상의 이해를 해보았답니다. 흔히 알고 있고 저도 언젠가 그렇게 배웠었지만, 곰곰이 생각해 보면 단순히 \(A^{n}\)을 쉽게 구하기 위해 정도의 문제로 대각화문제가 출발한 것 같지는 않아요.
어렴풋이 이 추측에 대한 답을 영문 위키피디아의 관련글 제목에서 알 수 있어요. 대각화 내용을 담고 있는 페이지의 제목이
Eigendecomposition of matrix
라고 되어 있거든요. 즉, eigenvalue/eigenvector 문제를 이용해서 행렬을 분해하면 대각행렬이 나오게 되어 대각화가 가능하다는 것이 된 거죠. 대각화에 집중을 하는 공부를 했기 때문에 저도 어떻게 대각행렬을 계산해내지? 혹은 어떻게 대각행렬이 나올 수 있지?에 대해서만 고민했지, 이 문제의 뿌리에 대해서는 이번에 처음 고민해보았던 것 같아요.
문제의 접근
Motivation: Eigenbasis(고유기저)에 대한 문제
사실 이전까지 vector space 얘기도 하나도 안 했었고, 그러므로 basis에 대한 얘기는 했을 리가 없습니다. 그렇지만 이번 글에서만큼은 아주아주 대충 짚고만 넘어가고 논의를 이어가보려고 해요. 양해 바랍니다.
지금 다루는 벡터공간이라는 건 \(\mathbb{R}^{n}\), 즉 실수 성분 \(n\)개로 이루어진 벡터들의 모임입니다. 어떤 집합이 basis가 된다는 것은 그 집합의 원소로 linear combination을 써보았을 때, 모든 \(\mathbb{R}^{n}\)의 원소를 표현할 수 있다는 것을 의미해요. 이걸 basis가 \(\mathbb{R}^{n}\)을 생성(generate)한다고 합니다. Eigenbasis라는 것은 어떤 행렬 \(A\)에 대해 얻는 eigenvector들이 basis를 형성할 때에 붙일 수 있는 별명같은 거에요.
그러니, 비록 차원 얘기는 하나도 안 했지만, \(\mathbb{R}^{n}\)이 \(n\)차원인 것은 어렴풋이 느낄 수 있다고 치면(formal하게 표현하면, \(\dim \mathbb{R}^{n} = n\) ), eigenvector의 모임이 eigenbasis를 형성할 수 있으려면 \(n\)개의 linearly independent한 eigenvector들이 존재해야 한다는 것을 알 수 있을 거에요. 그리고 이런 eigenbasis를 $$\{\mathbf{x}_{1},\;\cdots,\;\mathbf{x}_{n}\}$$라고 둬보면, 임의의 \(\mathbb{R}^{n}\) 내의 벡터 \(\mathbf{y}\)는 $$y = \sum_{i}c_{i}\mathbf{x}_{i}$$ 처럼 표현되어야 하는데 그러면 각 \(\mathbf{x}_{i}\)에 대응하는 eigenvalue가 \(\lambda_{i}\)라고 했을 때 $$A\mathbf{y} = \sum_{i}c_{i}A\mathbf{x}_{i} = \sum_{i}c_{i}\lambda_{i}\mathbf{x}_{i}$$가 되므로 \(A\)에 의한 작용을 단순 상수들의 곱을 통해서 변화되어 나타나는 eigenbasis의 일차결합 형태로 단순화할 수 있다는 것을 알게 됩니다. basis의 원소에 대한 상수곱으로 \(A\)의 작용을 설명할 수 있게 된 거죠.
그러면 각 기저의 원소에 대한 \(A\)의 작용을 모아보면 어떨까요? $$A\mathbf{x}_{i} = \lambda_{i} \mathbf{x}_{i}$$를 다 모아보면 $$\begin{align}&A\begin{pmatrix} \mathbf{x}_{1} & \cdots & \mathbf{x}_{n} \end{pmatrix} \\ &= \begin{pmatrix} \lambda_{1}\mathbf{x}_{1} &\cdots &\lambda_{n}\mathbf{x}_{n} \end{pmatrix} \\ &\stackrel{(1)}{=} \pmatrix{\lambda_{1} & 0 & \cdots & 0 \\ 0 & \lambda_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & 0 \\ 0 & 0 & \cdots & \lambda_{n}}\begin{pmatrix} \mathbf{x}_{1} & \cdots & \mathbf{x}_{n} \end{pmatrix} \end{align}$$
이제 확인해야 하는 것은, 어떤 조건을 만족할 때에 eigenbasis를 찾을 수 있게 되어 종국에는 대각화를 할 수 있는지가 되겠습니다.
Eigenbasis가 형성되는 조건
다음을 살펴봅시다.
[정리] \(n\times n\) 행렬 \(A\)에 대해, 서로 다른 \(n\)개의 eigenvalue를 가지게 된다면 그에 연관된 eigenvectors(corresponding eigenvectors)들은 column space의 기저를 이룬다.
증명은 크게 어렵지 않습니다만 이전 글들에서 vector space나 차원(dimension)에 대해 자세히 다루지 않았기 때문에, 조금 건너뛰어야 하는 부분이 많습니다. 증명에 들어가기 전에 다음을 알아두셔야 합니다.
1) 차원이 \(n\)인 finite dimensional vector space(유한차원 벡터공간, 벡터공간의 예: column space, \(\mathbb{R}^{n}\) 등)의 기저의 원소는 \(n\)개이다.
2) 유한차원 벡터공간의 기저는 차원수만큼의 원소를 가진 선형독립(linearly independent)인 집합이다.
이걸 알아둔다면, 서로 다른 \(n\)개의 eigenvalue를 가지는 경우, eigenvector들의 개수는 \(n\)개가 되는 것은 당연하니 그들의 집합이 선형독립임을 보이면 됩니다.
증명
만약 \(r \lt n\)에 대해 eigenvector들의 집합 중 \(r\)개를 선택할 때에만 linearly independent하고, 그 이상의 경우에는 linearly dependent해진다고 생각해봅시다. 그러면 벡터들의 번호를 잘 붙여둔다고 하면,
가 성립하여야 합니다. 각 \(x_{i}\)에 해당하는 eigenvalue들을 \(\lambda_{i}\)라고 표기하고 양변에 \(A\)를 곱해본다면,
$$\begin{eqnarray} Ax_{j} &= \sum_{i=1}^{r}a_{i}Ax_{i} \\ &= \sum_{i=1}^{r} \lambda_{i}x_{i} \end{eqnarray}$$
그런데 \(Ax_{j} = \lambda_{j}x_{j}\)이니 \((2)\)을 감안하면,
$$\begin{eqnarray} \sum_{i=1}^{r}\lambda_{j}a_{i}x_{i} = \sum_{i=1}^{r}\lambda_{i}a_{i}x_{i} \\ \sum_{i=1}^{r}(\lambda_{j} - \lambda_{i})a_{i}x_{i} = 0 \end{eqnarray}$$
\(\{x_{1},\;\cdots,\;x_{r}\}\)은 선형독립인 집합이므로 위의 식은 trivial representation만 가능합니다. 즉,
$$\forall i,\;a_{i}(\lambda_{j}-\lambda_{i}) = 0$$
가 성립해야 합니다. 그런데 모든 \(a_{i}\)가 0이 되면 \(x_{j}\)가 영벡터가 되어 고유벡터가 되지 못하니 모두 0이 될 수는 없게 되고 어떤 \(i\)에 대해 $$\lambda_{j} = \lambda_{i}$$가 성립해버리게 되어 모든 eigenvalue가 다르다는 가정에 모순이 됩니다. 따라서 모든 eigenvector들의 집합이 basis를 이루게 됩니다.
위 정리의 의미
\(n\times n\) 행렬에 대해 서로 다른 \(n\)개의 eigenvalue를 가지고 있다면, 그 eigenvector들이 eigenbasis를 형성하게 되어, column space의 선형독립성을 알 수 있게 되고 그러면 eigenvector들을 모아서 만든 다음 행렬의 역행렬이 존재하게 됩니다.
$$\exists P=\begin{pmatrix} \mathbf{x}_{1} & \cdots & \mathbf{x}_{n} \end{pmatrix}^{-1}$$
따라서
$$\begin{align}A &= P^{-1} \begin{pmatrix} \lambda_{1}\mathbf{x}_{1} &\cdots &\lambda_{n}\mathbf{x}_{n} \end{pmatrix} \\ &=P \pmatrix{\lambda_{1} & 0 & \cdots & 0 \\ 0 & \lambda_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & 0 \\ 0 & 0 & \cdots & \lambda_{n}}P^{-1} \end{align}$$
이제 저 긴 행렬
$$D=\pmatrix{\lambda_{1} & 0 & \cdots & 0 \\ 0 & \lambda_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & 0 \\ 0 & 0 & \cdots & \lambda_{n}}$$
라고 둔다면,
$$D = P^{-1}AP$$
가 성립하는데,
$$\eqalign{D- \lambda I &= P^{-1}AP - \lambda I \\ &= P^{-1}AP - P^{-1} \lambda IP \\ &= P^{-1}(A-\lambda I)P }$$
에서
$$\det(D-\lambda I) = \det(P)^{-1}\det(A-\lambda I)\det(P)$$
가 되어
$$\det(D-\lambda I) = \prod_{i=1}^{n}(\lambda_{i}-\lambda) = \det(A-\lambda I)$$
가 됩니다. 지금까지의 내용을 정리하면, 특성방정식을 구해서 그 근이 서로 다른 \(n\)개로 나타난다면 대각화가능(diagonalizable)하다는 말이 됩니다.
끝나지 않은 부분
이대로 끝나기에는 좀 많이 허술합니다. 물론, 대수학의 기본정리에 의하면, 임의의 \(n\)차 방정식은 복소수의 범위 내에서 \(n\)개의 근을 가짐이 알려져 있기는 합니다만, 보통 다루고 있는 행렬은 실행렬(real matrix)입니다. 그리고 \(n\)이 커지기 시작하면 인수분해하기도 난감하고 복소수 범위라면 더더욱 말도 안 되는 지경에 이를 겁니다. 대각화가능성(diagonalizability)에 대해 공업수학 책에서는 이 정도로 다루고 마무리하고 있지만, 많은 선형대수학 교과서에서는 하나의 챕터로 다뤄질 정도로 내용이 적지 않습니다.
앞으로 본격적인 선형대수학 내용을 다른 글에서 다루게 될 지는 잘 모르겠지만, 어쩔 수 없이 공업수학 교과서를 기반으로 내용정리를 하고 공부를 해봤다는 초기 취지를 유지하여 저도 이 정도로 마무리하겠습니다. 큰 틀이 이렇게 되어 있다는 것을 아는 데에는 도움이 되었기 때문에 나쁘지는 않았다고 생각하면서...

'다른 공부들 > 수학' 카테고리의 다른 글
[Kreyszig 공업수학][선형대수] 8장 (4) 여러가지 종류의 복소행렬들 (0) | 2023.09.24 |
---|---|
[Kreyszig 공업수학][선형대수] 8장 (3) 여러가지 종류의 실행렬들 (0) | 2023.09.24 |
[Kreyszig 공업수학][선형대수] 8장 (2) 특성방정식을 자세히 알아봐요 (1) | 2023.09.21 |
[Kreyszig 공업수학][선형대수] 8장 (1) 고유치문제란? (0) | 2023.09.18 |
[Kreyszig 공업수학][선형대수] 7장 (7) 역행렬 (0) | 2023.09.18 |
댓글