scipy.optimize
로 최적화하기
scipy.optimize
모듈은 함수의 최적값을 찾거나 방정식을 푸는 데 사용됩니다.
주로 활용되는 작업은 다음과 같습니다.
- 함수 최소화 또는 최대화
- 데이터에 곡선 맞춤(피팅)
- 방정식 및 연립방정식 풀이
scipy.optimize
를 사용하기 위해서는 아래와 같이 optimize
모듈을 불러와야 합니다.
NumPy와 SciPy optimize 임포트
import numpy as np
from scipy import optimize
예제 1: 함수 최소화
minimize()
함수를 사용해 함수의 최소값을 찾습니다.
함수 최소화
# 함수 정의: f(x) = x^2 + 5*sin(x)
def func(x):
return x**2 + 5*np.sin(x)
# 초기 추정값에서 시작해 최소값 찾기
result = optimize.minimize(func, x0=2)
print("최적 x 값:", result.x[0])
print("최적점에서의 함수값:", result.fun)
func(x)
: 목적 함수x0
: 초기 추정값result
: 최적의x
와 해당 지점에서의 함수값 포함