Optimization with scipy.optimize
The scipy.optimize module provides tools for finding optimal values of functions and solving equations.
It’s widely used in scientific computing, engineering, and data analysis to:
- Minimize or maximize mathematical functions
- Fit models or curves to data
- Solve equations or systems of equations numerically
Setting Up
First, import the necessary libraries:
Import NumPy and SciPy Optimize
import numpy as np from scipy import optimize
Example 1: Minimizing a Function
Use optimize.minimize() to find the minimum value of a mathematical function.
Minimize a Function
# Define a function: f(x) = x^2 + 5*sin(x) def func(x): return x**2 + 5*np.sin(x) # Find the minimum starting from an initial guess result = optimize.minimize(func, x0=2) print("Optimal x value:", result.x[0]) print("Function value at optimum:", result.fun)
Explanation:
func(x)— the objective function to minimizex0— the initial guess forx- The result object (
result) contains both the optimal value ofxand the minimum function value
Example 2: Solving an Equation
Use optimize.root() to find the roots of equations, i.e., the points where a function equals zero.
Find the Root of an Equation
# Equation: cos(x) - x = 0 def equation(x): return np.cos(x) - x root_result = optimize.root(equation, x0=0.5) print("Root found at:", root_result.x[0])
Explanation:
- Here, we’re solving the equation
cos(x) = x. - The
root()function searches for the value ofxwhere the function output equals zero — the mathematical root.
Quiz
0 / 1
What is the primary function of the scipy.optimize module?
The `scipy.optimize` module is designed for of functions and solving equations.
performing numerical integration
finding optimal values
generating random numbers
creating plots
Lecture
AI Tutor
Design
Upload
Notes
Favorites
Help