3.2.1 간단한 미분 실습
이제 파이썬으로 간단한 함수를 미분해보자. 우선 다음과 같은 f 함수가 있다.
f(x) = 3x2 + 1
이 함수는 앞에서 살펴본 방법에 의해 x2항의 차수 2가 x2의 계수 3과 곱해지고, 차수 2에서 1을 뺀 것이 새로운 차수가 된다. 숫자는 미분하면 0이 되므로 미분의 결과는 6x가 된다. 파이썬의 심파이(SymPy)를 활용하면 쉽게 미분을 계산할 수 있다. 심파이는 파이썬에서 미적분과 같은 수학 계산을 지원하는 라이브러리이다. 설치하려면 1장에서 설명한 것처럼 아나콘다 프롬프트에서 pip install sympy를 입력하자.
>>> import sympy as sp >>> x = sp.Symbol('x') >>> print(sp.diff(3 * x**2 + 1, x)) # **는 파이썬에서 차수를 의미한다 6*x
앞의 코드는 3x2 + 1을 x로 미분하는 코드이다. 결과는 우리가 예상한 대로 6x가 나왔다.
다음과 같이 사이파이를 활용하는 방법도 있다. 사이파이는 파이썬에서 과학 계산을 위해 널리 사용되는 라이브러리로, 아나콘다에서는 별도로 설치할 필요 없이 바로 사용할 수 있다. 사이파이의 여러 하위 모듈 중에서도 misc에 있는 derivative 함수를 사용해보자. 이 기능을 사용하면 x의 특정 값, 예를 들어 x = 2에서 어떤 미분 값이 나오는지도 알 수 있다.
>>> from scipy.misc import derivative >>> def f(x): # 원래 함수 정의 >>> return 3*x**2+1 >>> def d(x): >>> return derivative(f, x) # 미분한 함수 >>> print(d(2.0)) 12.0
위 코드는 함수를 미분한 다음 x가 2일 때의 미분 값까지 계산하였다.