기록하는삶
[파이썬/Python] sympy 모듈, 미분, 편미분 본문
728x90
반응형
아직은 파이썬을 활용해서 함수를 미분을 해야하는 일을 겪지는 못했지만,, 해당 목적을 달성할 수 있는 모듈이 sympy다. (외에도 정말 많은 기능을 제공하는 것 같다.) 예시는 아래와 같다.
import sympy as sym
from sympy.abc import x,y,e
# sym.diff(함수, 변수(원하는 미분 횟수만큼))
sym.diff(sym.poly(x**2), x)
sym.diff(sym.cos(x**2), x)
sym.diff(sym.cos(e**x), x)
sym.diff(sym.cos(y**2 + x**3 + x*y), x)
sym.diff(sym.cos(y**2 + x**3 + x*y), y)
# sym.idiff(수식, y, x) -> 수식=0의 방정식에 대한 dy/dx
sym.idiff((x**2)*y + x*y - y**2, y , x)
# 여러 번 미분하기
sym.diff(sym.poly(x**10 + 6*x**5 + x**3), x,x,x)
x,y, 오일러상수 e등을 본래 알파벳이 아닌 함수의 변수 혹은 상수로 활용하기 위해 sympy.abc에서 import할 수 있으며, sympy.diff(함수, 변수)를 통해 다항함수, 삼각함수, 지수함수 등의 미분이 가능하다.
sym.poly()의 경우 연산을 던지면 간략화해서 보여주며, 사용된 변수들과 domain을 함께 포함하는데 default가 Z이고 따로 설정할 수 있는 것 같다. (Z: 정수, Q: 유리수, R: 실수, C: 복소수)
log(e)라고 뱉는 것은 밑이 e인 로그를 말하는 것 같다. (왜 써준겨 1인데)
위와 같이 편미분도 가능하며, 주어진 방정식에 대해 dy/dx를 구해주는 idiff(수식, y, x) -> dy/dx 함수도 있었다.
여러 번 미분도 가능하다! 원하는 만큼 인자를 던지면 된다. 아래는 세 번 미분의 예시.
당연히 반대로 적분하는 함수도 있었다. 적분이 가능하면 그 결과를, 불가능하면 integral dx의 수식 형태를 출력하는 것 같다. 다항함수의 경우 poly()가 하위 attribute인 integral()을 가진다.
import sympy as sym
from sympy.abc import x,y,e
sym.integrate(sym.cos(y**2 + x**3 + x*y), x)
sym.poly(x**2 + x - 2).integrate()
sym.integrate(x*e**(x**2), x)
세 번째거는 otherwise가 필요 없는데 이상하네,,
728x90
반응형
'AI > 파이썬(Python)' 카테고리의 다른 글
[파이썬/Python] Built in Exception, 예외 처리, try-except 구문 활용 (0) | 2022.01.12 |
---|---|
[파이썬/Python] argparse 모듈 사용법, .py 실행 시 인자 전달 (0) | 2021.12.11 |
[파이썬/Python] 메모장 활용하기, datetime 활용 (0) | 2021.12.09 |
[파이썬/Python] 모든 하위 디렉토리 탐색, 특정 확장자 찾기 (0) | 2021.12.02 |
[파이썬/Python] 코랩에 구글 드라이브 연동(마운트) (0) | 2021.12.02 |