코딩하는 해맑은 거북이

[Python] Sympy 라이브러리, 심볼 생성 및 방정식 정의, 방정식 풀기 본문

Python/기본

[Python] Sympy 라이브러리, 심볼 생성 및 방정식 정의, 방정식 풀기

#CJE 2023. 6. 6.
해당 글은 아래의 4가지를 다룬다.
📌 Sympy 란?
📌 Symbol 생성
📌 방정식(표현식) 정의
📌 방정식(표현식) 풀기

 

📌 Sympy 란?

Sympy는 파이썬에서 기호 수학(Symbolic Math)을 위한 라이브러리로 대수식, 미적분, 대수 방정식 등 다양한 수학적 작업을 처리할 수 있다. 또한, 속도와 시각화 등에 필요한 확장 기능도 포함되어 있다.

 

SymPy 1.12 documentation

Next Installation

docs.sympy.org

 

📌 Symbol 생성

Symbol은 기호 변수(Symbolic Variable)를 의미하고, 기호 변수는 심볼릭 연산을 수행할 수 있는 변수로 취급된다.

심볼을 생성하는 방법은 2가지가 있다.

1) 여러 개의 심볼을 생성하는 방법

from sympy import symbols

# 여러 개의 심볼 생성
x, y = symbols('x y')

 

2) 하나의 심볼을 생성하는 방법

from sympy import Symbol

# 하나의 심볼 생성
z = Symbol('z')

 

📌 방정식(표현식) 정의

방정식을 생성하는 방법은 Eq(좌변, 우변) 클래스로 생성하거나, 우변이 0 이라면 바로 방정식을 선언해줄 수 있다.

from sympy import Eq

equation1 = Eq(2*x+4, 0)     # 2x+4 = 0
equation2 = Eq(3*x+y, 2)     # 3x+y = 2
equation3 = Eq(x-2*y, 3)     # x-2y = 3
equation4 = z+1              # z+1 = 0

 

📌 방정식(표현식) 풀기

방정식을 푸는 방법은 solve 함수를 통해 풀 수 있다.

solve(방정식, 구하고자 하는 변수)로 선언할 수 있고, 구하고자 하는 변수를 생략할 수도 있다.

from sympy import solve

solution = solve(equation1, x)
solution

     [-2]

 

solution = solve(equation1)
solution

     [-2]

 

solution = solve(equation2, x)
solution

     [2/3 - y/3]

 

solution = solve(equation2, y)
solution

     [2 - 3*x]

 

solution = solve(equation2)
solution

     [{x: 2/3 - y/3}]

 

- 연립방정식은 소괄호를 통해 넣어줄 수 있다.

solution = solve((equation2, equation3))
solution

      {x: 1, y: -1}

 

solution = solve((equation2, equation3), (x, y))
solution

      {x: 1, y: -1}

 

solution = solve((equation2, equation3), (x, y), dict=True)
solution

       [{x: 1, y: -1}]

 

solution = solve(equation4, z)
solution

     [-1]

 

solution = solve(equation4)
solution

     [-1]

Comments