학습 자료

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 값을 계산
Quiz
0 / 1

scipy.optimize 모듈의 주요 기능은 무엇인가요?

`scipy.optimize` 모듈은 함수의 및 방정식 풀이를 위해 설계되었습니다.
수치 적분 수행
최적값 찾기
난수 생성
그래프 생성

학습 자료

AI 튜터

디자인

업로드

수업 노트

즐겨찾기

도움말