Ask an expert. Trust the answer.

Your academic and career questions answered by verified experts

Open source alternative to MATLAB's fmincon function? [closed]

Date: 2022-06-29 11:12:47

Is there an open-source alternative to MATLAB's fmincon function for constrained linear optimization? I'm rewriting a MATLAB program to use Python / NumPy / SciPy and this is the only function I haven't found an equivalent to. A NumPy-based solution would be ideal, but any language will do. 

 Answers:

An open-source alternative to MATLAB's fmincon function is scipy.optimize.minimize in the scipy library of Python. It provides a range of optimization algorithms, including the sequential least squares programming (SLSQP) algorithm, which can handle non-linear constraints and objectives.

Here's an example usage of minimize for minimizing a multi-variable objective function subject to constraints: 

 

import numpy as np
from scipy.optimize import minimize

def objective(x):
    return x[0]*x[3]*(x[0]+x[1]+x[2])+x[2]

def constraint1(x):
    return x[0]*x[1]*x[2]*x[3]-25.0

def constraint2(x):
    sum_sq = 40
    for i in range(4):
        sum_sq = sum_sq - x[i]**2
    return sum_sq

x0 = [1,5,5,1]

b = (1.0,5.0)
bnds = (b, b, b, b)

con1 = {'type':'ineq','fun':constraint1}
con2 = {'type':'eq','fun':constraint2}

cons = [con1,con2]

sol = minimize(objective,x0,method='SLSQP',bounds=bnds,constraints=cons)

print(sol.x)

Note that minimize may not be as efficient as fmincon for large-scale optimization problems, but it provides a good starting point for small to medium-sized problems. Additionally, scipy offers a wide range of other optimization and numerical methods that may be useful in various scenarios.


Why Matlabhelpers ?

Our Matlab assignment helpers for online MATLAB assignment help service take utmost care of your assignments by keeping the codes simple yet of high-quality. We offer the most reliable MATLAB solutions to students pursuing their Computer Science course from the Monash University, the University of Sydney, the University of New South Wales, the University of Melbourne; to name a few. Approach us today for best Matlab solutions online!

whatsApp order on matlabhelpers.com

telegram order on matlabsolutions.com