用MATLAB優化工具包解非線性規劃

2021-03-04 09:29:11 字數 1473 閱讀 9514

2.8.2 程式fmincon輸入引數

其中輸入變數的含義為:

x0為初始解(預設時程式自動取x0=0)

a1,b1,a2,b2,v1,v2:含義見模型(nlp)

fun.m給出目標函式,當gradobj='on'時必須給出其梯度,當hessian='on'時還必須給出其jacobi矩陣,一般形式為

function [f,g,h] = fun(x)

fobjective function value

if nargout > 1

ggradient of the function

if nargout > 2

hhessian of the function

endnlcon.m給出非線性約束,gradconstr='on'時還給出梯度,一般形式為

function [c1,c2,gc1,gc2] = nlcon(x)

c1nonlinear inequalities at x

c2nonlinear equalities at x

if nargout > 2

gc1gradients of c1

gc2gradients of c2

endoptions:包含演算法控制引數的結構

設定(或顯示)控制引數的命令為optimset,有以下一些用法:

optimset //顯示控制引數

optimset optfun //顯示程式'optfun'的控制引數

opt=optimset //控制引數設為(即預設值

opt=optimset(optfun)// 設定為程式'optfun'的控制引數預設值

opt=optimset('par1',val1,'par2',val2,...)

opt=optimset(oldopts,'par1',val1,...)

opt=optimset(oldopts,newopts)

可以設定的引數比較多,對fmincon,常用的有以下一些引數:

diagnostics 是否顯示診斷資訊( 'on' 或'off')

display 顯示資訊的級別('off' , 'iter' , 'final','notify')

largescale 是否採用大規模演算法( 'on' 或'off')

maxiter 最大迭代次數

tolcon 約束的誤差限

tolfun 函式計算的誤差限

tolx 決策變數的誤差限

gradobj 目標函式是否採用分析梯度('on' ,'off')

jacobian 目標函式是否採用分析jacob矩陣('on' ,'off')

maxfunevals 目標函式最大呼叫次數

gradconstr 非線性約束函式是否採用分析梯度('on' ,'off')

2.8.3 注意事項

fmincon中輸出變數、輸入引數不一定寫全,可以預設。

當中間某個輸入引數預設時,需用佔據其位置。

流程優化工具方法

企業流程管理方法與工具 企業流程管理 enterprise process management,epm business process management,bpm 目錄1 什麼是企業流程管理 2 流程管理專案宗旨 3 流程管理的三種不同層次 4 流程管理的基本特徵 5 流程管理的目的 6 流程...

MATLAB優化應用

mathematica 1 線性規劃模型 一 線性規劃問題 例項1 生產計畫問題 假設某廠計畫生產甲 乙兩種產品,現庫存主要材料有a類3600公斤,b類2000公斤,c類3000公斤。每件甲產品需用材料a類9公斤,b類4公斤,c類3公斤。每件乙產品,需用材料a類4公斤,b類5公斤,c類10公斤。甲單...

最優化方法的matlab實現

在生活和工作中,人們對於同乙個問題往往會提出多個解決方案,並通過各方面的論證從中提取最佳方案。最優化方法就是專門研究如何從多個方案中科學合理地提取出最佳方案的科學。由於優化問題無所不在,目前最優化方法的應用和研究已經深入到了生產和科研的各個領域,如土木工程 機械工程 化學工程 運輸排程 生產控制 經...