본문 바로가기
5. 자료구조/2) 행렬 | matrix()

[R코딩] 행렬을 이용한 연립방정식의 해 (solve)

by makhimh 2020. 12. 21.
반응형

아래와 같이 미지수가 3개인 연립방정식이 있다고 합시다. 

 

$$
a_{11}x+a_{12}y_+a_{13}z=b_{1}\\
a_{21}x+a_{22}y_+a_{23}z=b_{2}\\
a_{31}x+a_{32}y_+a_{33}z=b_{3}
$$

 

행렬형태로 바꾸면 아래와 같습니다. 

 

$$
\begin{bmatrix}
a_{11} & a_{12} & a_{13}\\ 
a_{21} & a_{22} & a_{23}\\ 
a_{31} & a_{32} & a_{33}
\end{bmatrix}

\begin{bmatrix}
x\\ 
y\\ 
z
\end{bmatrix}
=
\begin{bmatrix}
b_{1}\\ 
b_{2}\\ 
b_{3}
\end{bmatrix}
$$

 

간단하게 아래와 같이 나타냅시다. 

 

$$[a]X=[b]$$

 

이 연립방정식에서 X 즉 (x,y,z) 를 구하는 방법은 아래와 같습니다. a는 행렬형태로, b는 벡터형태로 입력합니다. 

 

solve(a,b)

 

예를 들어봅시다. 

 

> a=matrix(c(1,-1,1,2,4,3,-1,2,-3),3)
> a
     [,1] [,2] [,3]
[1,]    1    2   -1
[2,]   -1    4    2
[3,]    1    3   -3
> b=c(1,5,3)
> b
[1] 1 5 3

 

위 코드를 행렬로 표현하면 아래와 같습니다. 

 

$$
\begin{bmatrix}
1 & 2 & -1\\ 
-1 & 4 & 2\\ 
1 & 3 & -3
\end{bmatrix}

\begin{bmatrix}
x\\ 
y\\ 
z
\end{bmatrix}
=
\begin{bmatrix}
1\\ 
5\\ 
3
\end{bmatrix}
$$

 

solve 함수를 이용하여 해를 구해봅시다. 

 

> solve(a,b)
[1] -1.6153846  1.0769231 -0.4615385
반응형

댓글