前言

該節主要說明OPTI非線性求解工具箱的安裝與使用

1、簡介

OPTI是一個開源的MATLAB優化工具箱,相比MATLAB自帶非線性優化求解函數fmincon,該優化器更加人性化,同時也有豐富的求解方法可供選擇,後續的MPC求解將使用該工具箱完成求解。

2、下載鏈接鏈接

inverseproblem.co.nz/OP

GitHub源碼下載鏈接

github.com/jonathancurr

3、可供選擇的求解器

線性規劃 CLP,CSDP,DSDP,GLPK,LP_SOLVE,OOQP,SCIP

混合整數線性規劃 CBC,GLPK,LP_SOLVE,SCIP

二次規劃 CLP,OOQP,SCIP

混合整數二次規劃 SCIP

二次約束二次規劃 SCIP

混合整數二次約束二次規劃 SCIP

半定規劃 CSDP,DSDP

非線性方程組 HYBRJ,LM_DER,MKLTRNLS,NL2SOL

非線性最小二乘 LEVMAR,LM_DER,MKLTRNLS,NL2SOL

非線性規劃 FILTERSD,IPOPT,L-BFGS-B,M1QN3,NLOPT,SCIP

全局非線性規劃 NLOPT,NOMAD,PSWARM,SCIP

混合整數非線性規劃 BONMIN,NOMAD,SCIP

4、安裝過程

a.使用2中的鏈接完成opti的源碼下載,並完成解壓,放置在合適的文件夾

b.打開MATLAB,進入到文件夾所在路徑

c.點擊opti_Install.m文件,並運行

d.按照命令窗口的提示,選擇『Y』完成安裝

5、示例

inverseproblem.co.nz/OP

帶約束的非線性方程組求解

MATLAB代碼

% Objective (fun(x))
fun = @(x) x(1)*x(4)*sum(x(1:3)) + x(3);
% Row Nonlinear Constraints
nlcon = @(x) [ prod(x); sum(x.^2) ];
cl = [25;40];
cu = [Inf;40];
% Bounds (lb <= x <= ub)
lb = ones(4,1);
ub = 5*ones(4,1);
% 初始值設置
x0 = [1 5 5 1];
% Build OPTI Object
Opt = opti(fun,fun,nl,nlcon,cl,cu,bounds,lb,ub)
% Solve Problem
[x,fval] = solve(Opt,x0)

6、optiset項的相關設置

各個參數的具體設置可以查看該鏈接 inverseproblem.co.nz/OP


推薦閱讀:
相关文章