Introduction to Optimization in Python
Jasmin Ludolf
Content Developer
from scipy.optimize import Bounds
bounds = Bounds(50, 100)
from scipy.optimize import minimize, Bounds def objective_function(b): return (2*b[0] - 1.5*b[1])
bounds = Bounds([5, 10], [25, 30])
x0 = [10, 5] result = minimize(objective_function, x0, method='L-BFGS-B', bounds=bounds) print(result.x)
[ 5. 30.]
Objective function OR
Constraint
from scipy.optimize import minimize
def objective_function(b): return (b[0]) ** 2 + (b[1]) ** 0.5
def constraint_function(x): return 2*x[0] + 3*x[1] - 6
constraint = {'type': 'ineq', 'fun': constraint_function}
x0 = [20, 20]
result = minimize(objective_function, x0, constraints=[constraint])
print(result)
fun: 1.4000405652399073
jac: array([0.24057153, 0.36086182])
message: 'Optimization terminated successfully'
nfev: 25
nit: 8
njev: 8
status: 0
success: True
x: array([0.12028576, 1.9198095 ])
'eq'
: equality'ineq'
: inequalityIntroduction to Optimization in Python