# 2. Linear Algebra_2. Systems of Linear Equations

Linear Algebra는 Linear Equations problem을 Vector를 이용해 해결하는 것에 관한 학문으로 이해할 수 있습니다.

따라서, Linear Equation과 이의 조합인 Systems of Linear Equations(선형 연립방정식) 또한 Vector, Matrix로 표현이 가능합니다.


예를 들어, 다음과 같은 선형 연립방정식을 행렬 $A$, 벡터 $x$, $b$ 를 이용해 간단히 표현할 수 있습니다.

$$ x_{1} + x_{2} + x_{3} = 3 $$
$$ x_{1} - x_{2} + 2x_{3} = 2 $$
$$         x_{2} + x_{3} = 2 $$


$$
\begin{align}
A= 
\begin{bmatrix}
1&1&1\\
1&-1&2\\
0&1&1
\end{bmatrix}
,\;\;
x=
\begin{bmatrix}
x1\\
x2\\
x3
\end{bmatrix}
,\;\;
b=
\begin{bmatrix}
3\\
2\\
2
\end{bmatrix}
\end{align}
$$

$$Ax = b$$
$$x = A^{-1}b$$



그리고, 이러한 Systems of Linear equations의 solution ( 벡터 $x$ ) 을 쉽게 찾을 수 있다.
이때, 역행렬을 구하기 위해 Numpy패키지의 np.linalg.inv() method를 활용한다

**참고 : @ 기호는 dotproduct(내적)연산을 수행한다. 기본 행렬곱인 element-wise 연산을 수행하기 위해선, 아래와 같이 @를 통해 행렬과 벡터의 연산을 수행한다.**


```python
A = np.array([[1,1,1],[1,-1,2],[0,1,1]])
b = np.array([[3],[2],[2]])
x = np.linalg.inv(A)@b
x
```




    array([[1.],
           [1.],
           [1.]])



이와 같은 선형연립방정식을 풀 때, 위와 같이 역행렬을 직접 구해 solution을 구해줄 수 있지만, Numpy의 'lstsq()' 명령을 활용해 구할 수도 있다.

`lstsq()` 명령은 향후 자세히 보게 될 solution, RSS, rank, Singular vlaue 를 각각 반환한다. `lstsq()` 명령은 이후 보게될 'Ordinary Least Square Problem'을 풀기위한 연산 명령이다.

위와 같이 미지수의 갯수 $=$ 방정식의 갯수 (A가 Square Matrix)인 경우, OLS와 Inverse Matrix의 solution이 같기 때문에*, `lstsq()` 명령을  사용해도 동일한 답을 얻을 수 있다.

*미지수의 갯수 $=$ 방정식의 갯수인 경우, unique solution을 갖기 때문에


```python
x, resid, rank, s = np.linalg.lstsq(A, b)
x
```




    array([[1.],
           [1.],
           [1.]])



9166a5e282841b2376f36da3fb02e8f2777e9849
ipynb
Jupyter Notebook
1.Study/2. with computer/1.Math_code/5. Mathematics for Machine Learning/2. Linear Algebra_2. Systems of Linear Equations.ipynb
jskim0406/Study
07b559b95f8f658303ee53114107ae35940a6080
MIT
1.Study/2. with computer/1.Math_code/5. Mathematics for Machine Learning/2. Linear Algebra_2. Systems of Linear Equations.ipynb
jskim0406/Study
07b559b95f8f658303ee53114107ae35940a6080
MIT
1.Study/2. with computer/1.Math_code/5. Mathematics for Machine Learning/2. Linear Algebra_2. Systems of Linear Equations.ipynb
jskim0406/Study
07b559b95f8f658303ee53114107ae35940a6080
MIT
Qwen/Qwen-72B
1. YES
2. YES