brunch

매거진 Math for AI

You can make anything
by writing

C.S.Lewis

by 코딩하는 수학쌤 Nov 09. 2022

[MML] 2.3 연립방정식 - 일반해와 특수해

Mathematics for machine Learning(머신러닝수학)

https://youtu.be/E1WxLsUZHXA

이번 글에 대한 유튜브 강의입니다. 유튜브에서 '코딩하는 수학쌤' 검색해주시고, 구독, 좋아요 부탁드려요~




- 이 글은 Mathematics for Machine Learning(Cambridge Univ. Marc Peter Deisenroth 외 2)- 머신러닝을 위한 수학-의 내용을 번역 및 재해석해서 작성한 글입니다. 위 책의 내용에 이해를 돕는 글을 추가로 첨부하였으며 완전한 번역본이 아님을 알려드립니다. - 



이번 글의 도입 (지난 시간 복습 및 흐름 정리)

 지난 시간에 행렬을 도입했는데, 흐름을 한 번 정리해봅시다. 현실 세계에서 발생하는 문제를 아래의 연립일차방정식으로 표현을 하는 것에서 연립일차방정식-행렬까지 왔습니다. 다시 보면

의 연립일차방정식이 있을 때 

로 행렬을 나타내면, 위의 연립방정식은  

로 간단하게 표현할 수 있습니다. 만약 2x=3 이라는 일차방정식이 있다면 간단히 양변에 2의 역수인 1/2를 곱해서 x=3/2를 구하죠? 그것처럼 행렬 A의 역행렬을 쉽게 구할 수 있다면 좋겠죠?


  선형대수학의 큰 관심 중의 하나는 벡터로 주어진 공간의 수학적 구조를 살펴보고 formalize한 후 관계를 살펴보는 것입니다. 그리고 '주어진 행렬의 역행렬을 어떻게 구할 수 있는가? 역행렬이 없다면 가장 역행렬 비슷한 역할을 하는 행렬들을 어떻게 찾을 수 있는가?' 도 살펴봅니다.(그 역행렬의 의미를 구조 속에서 살펴보죠) 그 내용을 위해 다양한 이론들이 전개되고, 또한 수학적인 체계, 개념들이 나타납니다.

 이번 글에서는 위의 연립일차방정식의 해를 찾는 방법을 살펴보는데, 이번 글은 특히 '미지수만큼 식이 충분하지 않은 상황, 즉 해가 무수히 많을 때 어떻게 해를 표현하는지'를 살펴볼 예정입니다. 먼저 수많은 해 중에 하나인 특수해, 그리고 나머지 수많은 해를 모두 표현하는 식인 일반해의 개념을 예시를 통해 도입합니다. 뒤 이어 어떻게 이러한 특수해와 일반해를 쉽게 찾을 수 있는지를 살펴볼 예정입니다.

 (글이 좀 길고 새로운 정의, 이름도 좀 등장하지만, 내용은 연립방정식의 가감법 풀이 정도 수준입니다.) ^^;




[Ch 2.3.1] 특수해와 일반해 (particular and General Solution)


1) 도입

먼저 이번 시간에는 특수해와 일반해라는 개념을 도입하고, 연립일차방정식에서 특수해, 일반해를 찾는 내용을 다룰 것입니다. 그 전에 고등학교 교육과정을 바탕으로 이 두 개념을 이해해보도록 하겠습니다.

 식은 하나인데 문자는 2개입니다. 그러면 이 방정식을 만족시키는 해는 어떤게 있을까요? 수없이 많이 있는데, 그 중의 하나를 콕 찍어봅시다. 예를 들어 x=1, y=0을 주면 이 식을 만족하죠. 이러한 해를 특수해라고 합니다.

 그런데 해가 특수해만 있을까요? 그렇지 않습니다. 나머지 모든 해를 어떻게 다 나타낼 수 있을까요? 이를 위해서 x+y=0 이라는 식을 하나 도입합니다. (왜 그런지는 밑에 한 번 더 설명하겠습니다.) 그러면 y=-x라는 식이 나타나고, x+y=0을 만족하는 모든 (x, y)는 (x, -x)=x(1, -1)로 표현할 수 있어요. 따라서 x+y=1의 모든 해는 a(1,-1)+(1,0)=(a+1, -a) (a는 실수)로 나타낼 수 있는데, 이러한 해를 일반해라고 합니다.


2) 특수해

어떻게 하면 연립일차방정식의 해를 찾는지 본격적으로 논의하기 전에 다음과 같은 예를 한 번 살펴보죠.

위의 방정식은 모르는 문자는 4개인데 식은 2개밖에 없죠. 따라서 딱 위의 식을 만족시키는 유일한 해는 존재하지 않습니다. 무수히 많은 해가 존재하게 됩니다. 


 그런데 위의 식을 다음과 같이 다시 표현해볼께요. 먼저 좌변의 행렬의 곱은 아래처럼 각 행렬의 열 성분과 미지수들의 곱으로 나타낼 수 있습니다.

위 식의 우변에 나온 열 성분 중 가장 간단한 열 2개를 뽑아보죠. 

맨 위 (2.38)식의 우변의 성분을 그 2개의 열 성분으로 다음과 같이 나타냅니다.


 자.. 그러면 아래의 식으로 다시 볼까요?


그러면 아래처럼

은 위 식 (2.38)의 해(solution)가 될 수 있습니다. 이러한 해를 특수해(particular solution)이라고 합니다. 





3) 일반해

 위 특수해가 유일한 해는 아닐꺼에요. 그럼 다른 해들은 어떻게 찾을까요? 이를 위해서 좀 특수한 방법 (자명하지 않은, nontrivial way)으로 0을 성분으로 하는 벡터를 만들어냅니다.

 먼저 (아래의 식처럼) 해를 표현하는데 사용하지 않았던 2개의 열을 해를 구하는데 사용한 2개의 열을 활용해서 표현해봅시다. 먼저 세 번째 열을 한 번 해보죠.


그러면 아래처럼 표현할 수 있어요. 


자, 그러면 위에서 구한 Ax=O의 특수해에 실수배를 해도 Ax=O을 만족시키는 해가 됩니다. 비슷한 방법으로 마지막 열이었던 (-4, 12)에 대해서도 한 번 해보면

의 과정을 통해 Ax=0의 해를 하나 또 구해낼 수 있습니다. 그러면 이 해들의 조합을 보면

이 됩니다. 따라서 우리가 1)에서 구한 특수해에 Ax=0의 해를 더하게 되면 연립일차방정식 (2.39)인 Ax=B의 모든 해를 구할 수 있습니다.

이렇게 구한 해를 일반해(general solution)라고 합니다.

 따라서 아래의 단계를 거쳐서 연립일차방정식의 해를 찾을 수 있습니다.

[step-1] Ax=b의 특수해를 하나 찾아냅니다. 

[step-2] Ax=O의 모든 해를 찾아냅니다.

[step-3] 위의 두 단계의 해를 결합하여 일반해를 찾아냅니다.

 단, 위의 특수해나 일반해 모두 유일하게 하나만 존재하는 것은 아닙니다.





Q. 왜 일반해를 구할 때 Ax=O 의 해를 찾을까요?


 고2 때 배우는 도함수와 부정적분으로 한 번 설명을 해보겠습니다. 만약 f'(x)=g'(x)가 성립한다면 f(x)와 g(x) 사이에 어떤 관계가 있는지 기억하시나요? 네, 맞습니다. f(x)=g(x)+C (C는 적분상수)로 표현하죠. 그래서 f(x)의 한 부정적분을 F(x)라고 할 때 ∫f(x)dx=F(x)+C라고 표현을 합니다. 우리가 f(x)의 부정적분을 구할 때 한 부정적분을 찾은 후 상수를 더해줌으로써 f(x)의 부정적분 전체를 표현하듯, 연립 1차 방정식에서 특수해 하나를 찾고 Ax=O의 해를 더해줌으로써 모든 해를 표현할 수 있습니다. 우리가 배운 특수해는 한 부정적분에 해당하는 F(x)에 해당하는 답이라고 보면 되고, Ax=O에 해당하는 해는 C와 같은 역할을 하는 것이라고 이해하면 됩니다. (미분도 linear Mapping입니다. 우리가 배우는 내용에 해당해요.)


 좀 더 구체적으로 표현을 하자면..  Ax=b의 방정식에서 2개의 해 x1, x2를 찾았다고 해봅시다. 그러면 다음 내용을 볼 수 있습니다.


즉 Ax=b의 해들 사이에는 Ax=O만큼의 차이가 존재합니다. 따라서 우리가 찾았던 일반해는 Ax=b의 모든 해를 나타낸다고 말할 수 있게 됩니다.


 그러면 위 예제에선 왜 이런 작업을 두 번 할까요? 이 내용은 나중에 dimension, rank, null space라는 개념으로 다시 살펴볼 예정입니다.


 Ax=O의 해는 뒤에 Linear mapping을 배울 때 kernel(핵)이라는 개념으로 한 번 더 다루게 됩니다. 전체적인 구조를 알게 되면 그 때마다 특별한 방법이 아닌 잘 알려져있는 방법들로 방정식을 해결할 수 있게 되거든요. 그래서 선형대수학을 포함한 '대수학'이라는 분야가 중요합니다. 이러한 구조(structure)를 이해하면 그 사이에 일어나는 현상을 틀로 쉽게 이해하고 설명할 수 있습니다. 




 사실 위에서 보였던 예시 문제(2.38)에서는 '계수가 간단했기 때문'에 해를 쉽게 찾을 수 있었습니다. 그러나 대부분의 방정식은 식 (2.38)에서처럼 계수가 간단하게 정리가 되어있지 않습니다. 따라서 복잡한 계수들을 간단하게 만드는 방법이 필요한데요, 가우스 소거법(Gaussian Elimination)을 통해 이 작업을 처리할 수 있습니다. 그러면 위의 step-1]~ step-3]까지의 단계를 거쳐서 일반해를 찾을 수 있겠죠!

 아직은 미지수의 개수가 식의 개수보다 많을 때를 다루고 있습니다. 이 과정에서 특수해, 일반해를 좀 더 쉽게 구하고, 그 구조를 살펴보는 내용을 다음 시간에 다룰 예정입니다. 그리고 이러한 방정식을 mapping의 과정으로 보면 더욱 분명하게 일반해의 모습이 이해가 됩니다. 그 후에 미지수와 식의 개수가 같을 때 역행렬을 이용하는 방법 등을 다루게 될 것입니다.

다음 글 : '[MML] 2.3 Solving systems of Linear Equations-2 가 이어집니다.




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari