C:\Users\Administrator>pip install numpy

C:\Users\Administrator>pip list
Package            Version
------------------ --------
appdirs            1.4.4
distlib            0.3.1
filelock           3.0.12
importlib-metadata 4.3.1
mpmath             1.2.1
numpy              1.20.3
pip                21.1.2
setuptools         40.8.0
six                1.16.0
sympy              1.8
typing-extensions  3.10.0.0
virtualenv         20.4.7
zipp               3.4.1

 

1.  이전 게시물에 설명한 Symbol을 이용한 방법

>>> import sympy as sp
>>> x, y = sp.symbols('x, y')
>>> eq1 = 3*x - 2*y - 3
>>> eq2 = 2*x + 5*y - 2
>>> result = sp.solve([eq1, eq2])
>>> print(result)
{x: 1, y: 0}
>>> 
>>> x, y = sp.symbols('x, y')
>>> eq1 = sp.Eq(3*x - 2*y, 3)
>>> eq2 = sp.Eq(2*x + 5*y, 2)
>>> result = sp.solve([eq1, eq2])
>>> print(result)
{x: 1, y: 0}

 

2. 행렬을 이용한 방법

>>> import numpy as np
>>> A = np.array([[3, -2], [2, 5]])
>>> A
array([[ 3, -2],
       [ 2,  5]])
>>> B = np.array([3, 2])
>>> B
array([3, 2])
>>> result = np.linalg.solve(A, B)
>>> print(result)
[1. 0.]

 

3. 역행렬을 이용한 방법

행렬A와 역행렬 A-1를 곱하면 단위행렬 E가 된다. 단위행렬은 n * n의 행렬 A에 곱해도 그 결과가 행렬 A가되는, 수에서 1과 같다.

A는 계수행렬, X는 미지수행렬. 계수행렬의 역행렬을 구하면 미지수행렬을 구할 수 있다.

>>> import numpy as np
>>> A = np.array([[3, -2], [2, 5]])
>>> B = np.array([3, 2])
>>> C = np.linalg.inv(A) # A의 역행렬 구하기
>>> result = np.dot(C, B) # 행렬의 곱
>>> print(result)
[1. 0.]