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
와 해당 지점에서의 함수값 포함
예제 2: 방정식 풀이
root()
함수를 사용해 방정식이 0이 되는 지점을 찾습니다.
방정식의 근 찾기
# 방정식: cos(x) - x = 0
def equation(x):
return np.cos(x) - x
root_result = optimize.root(equation, x0=0.5)
print("찾은 근:", root_result.x[0])
equation(x)
:cos(x) - x
형태의 방정식root()
: 방정식이 0이 되는x
값을 계산
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!