Matlab optimtool优化(Optimization)工具箱
生活随笔
收集整理的這篇文章主要介紹了
Matlab optimtool优化(Optimization)工具箱
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 工具箱概述
1.1 功能
? ? ? ?(1)求解無約束條件非線性極小值;
? ? ? ?(2)求解約束條件下非線性極小值,包括目標(biāo)逼近問題、極大-極小值問題和半無限極小值問題;
? ? ? ?(3)求解二次規(guī)劃和線性規(guī)劃問題;
? ? ? ?(4)非線性最小二乘逼近和曲線擬合;
? ? ? ?(5)非線性系統(tǒng)的方程求解;
? ? ? ?(6)約束條件下的線性最小二乘優(yōu)化;
? ? ? ?(7)求解復(fù)雜結(jié)構(gòu)的大規(guī)模優(yōu)化問題。
1.2 工具箱的新特色
? ? ? ?MATLAB R2008b使用的是4.1版本的優(yōu)化工具箱,較3.x的變化在于:
(1) ? ?fmincon、fminimax和fgoalattain中引入了并行機制,加快梯度計算速度;
(2) ? ?函數(shù)gatool和pserchtool整合到優(yōu)化工具箱GUI中;
(3) ? ?函數(shù)fmincon的求解器中新增內(nèi)點算法;
(4) ? ?提供了KNITRO優(yōu)化庫的接口;
(5) ? ?函數(shù)lsqcurvefit、lsqnonlin和fsolve的優(yōu)化選項參數(shù)PrecondBandWinth默認值由0變?yōu)閕nf;
(6) ? ?優(yōu)化選項參數(shù)TolConSQP的默認值改為1e-6;
(7) ? ?輸出結(jié)構(gòu)中引入了參數(shù)constrviolation。
2 工具箱函數(shù)
常用函數(shù):
一元函數(shù)極小值 X=fminbnd(‘F’,x1,x2)
無約束極小值 X=fminunc(‘F’,X0)X=fminsearch(‘F’,X0)
線性規(guī)劃 X=linprog(c,A,b)
0-1整數(shù)規(guī)劃 X=bintprog(F)
二次規(guī)劃 X=quadprog(H,c,A,b)
約束極小值(非線性規(guī)劃) X=fmincon(‘FG’,X0)
非線性最小二乘 X=lsqnonlin(F,X0)
目標(biāo)達到問題 X=fgoalattain(‘F’,x,goal,w)
極小極大問題 X=fminimax(‘FG’,x0)
輸入?yún)?shù)中可以用options,用于所有函數(shù),其中包括有一下參數(shù)。
(1) ? ? ? ? ? ? ?Display:結(jié)果顯示方式,off不顯示,iter顯示每次迭代的信息,final為最終結(jié)果,notify只有當(dāng)求解不收斂的時候才顯示結(jié)果。
(2) ? ? ? ? ? ? ?MaxFunEvals:允許函數(shù)計算的最大次數(shù),取值為正整數(shù)。
(3) ? ? ? ? ? ? ?MaxIter:允許迭代的最大次數(shù),正整數(shù)。
(4) ? ? ? ? ? ? ?TolFun:函數(shù)值(計算結(jié)果)精度,正整數(shù)。
(5) ? ? ? ? ? ? ?TolX:自變量的精度,正整數(shù)。
而且可以用函數(shù)optimset創(chuàng)建和修改。
? ? ? ?模型輸入時需要注意問題:
(1) ? ?目標(biāo)函數(shù)最小化;
(2) ? ?約束非正;
(3) ? ?避免使用全局變量。
3 GUI優(yōu)化工具
3.1 啟動
命令行輸入optimtool;
? ? ? ?Start->Toolboxes->Optimization->Optimization tool(optimtool)。
3.2 界面
圖一:GUI優(yōu)化工具的界面
? ? ? ?分為三塊:
最左邊是優(yōu)化問題的描述及計算結(jié)果顯示,中間為優(yōu)化選項的設(shè)置,右邊是幫助(可隱藏,右上角的<<)。具體各選項的功能和作用不做記錄。
3.3 使用步驟
選擇求解器solver和優(yōu)化算法algorithm;
選定目標(biāo)函數(shù)(objective function);
設(shè)定目標(biāo)函數(shù)的相關(guān)參數(shù);
設(shè)置優(yōu)化選項;
單擊“start”按鈕,運行求解;
查看求解器的狀態(tài)和求解結(jié)果;
將目標(biāo)函數(shù)、選項和結(jié)果導(dǎo)入\導(dǎo)出。
具體的如圖二所示:
圖二:步驟示意圖
Algorithm有兩個選擇:Large scale和Medium scale,設(shè)置完參數(shù)點擊start即可得到如圖中的結(jié)果。
3.4.2 無約束優(yōu)化(fminsearch求解器)
求f(x)=|x^2-3*x+2|的極小值,初始點取x=-7,比較fminunc和fminsearch的差別。
解:啟動優(yōu)化工具;
用fminunc時設(shè)置參數(shù)如圖:
點擊start得到結(jié)果。
用fminsearch時如下圖:
用fminunc時結(jié)果是1.5,而用fminsearch時結(jié)果是2。計算原等式有極小值為2,由此有對于非光滑優(yōu)化問題fminunc可能求不到正確的結(jié)果,而fminsearch卻能很好地解決這類問題的求解。
3.4.3 約束優(yōu)化(fmincon求解器)
可用算法有Trust region reflective(信賴域反射算法)、Active set(有效集算法)、Interior point(內(nèi)點算法)。
求f(x)=-x1*x2*x3的極小值,約束條件是-x1-2*x2-2*x3<=0且x1+2*x2+2*x3<=72,初始點(10,10,10)。
解:首先見M文件,約定FunUnc(x)=-x(1)*x(2)*x(3):
function y=FunUnc(x)
y=-x(1)*x(2)*x(3);
啟動優(yōu)化工具,設(shè)置參數(shù)如圖:
3.4.4 非線性最小二乘優(yōu)化(lsqnonlin求解器)
求minS=(x^2+x-1)^2+(2*x^2-3)^2 ,初始點為x=5 。
解:啟動優(yōu)化工具,設(shè)置參數(shù),點start得結(jié)果如下圖所示;
3.4.5 線性規(guī)劃(linprog求解器)
? ? ? ?略,f處輸入函數(shù)多項式的系數(shù)?;痉椒ㄈ缜懊鎺最?。
3.4.6 智能優(yōu)化算法(ga求解器)
? ? ? ?略,要輸入變量的個數(shù)?;痉椒ㄈ缜懊鎺最悺?
1.1 功能
? ? ? ?(1)求解無約束條件非線性極小值;
? ? ? ?(2)求解約束條件下非線性極小值,包括目標(biāo)逼近問題、極大-極小值問題和半無限極小值問題;
? ? ? ?(3)求解二次規(guī)劃和線性規(guī)劃問題;
? ? ? ?(4)非線性最小二乘逼近和曲線擬合;
? ? ? ?(5)非線性系統(tǒng)的方程求解;
? ? ? ?(6)約束條件下的線性最小二乘優(yōu)化;
? ? ? ?(7)求解復(fù)雜結(jié)構(gòu)的大規(guī)模優(yōu)化問題。
1.2 工具箱的新特色
? ? ? ?MATLAB R2008b使用的是4.1版本的優(yōu)化工具箱,較3.x的變化在于:
(1) ? ?fmincon、fminimax和fgoalattain中引入了并行機制,加快梯度計算速度;
(2) ? ?函數(shù)gatool和pserchtool整合到優(yōu)化工具箱GUI中;
(3) ? ?函數(shù)fmincon的求解器中新增內(nèi)點算法;
(4) ? ?提供了KNITRO優(yōu)化庫的接口;
(5) ? ?函數(shù)lsqcurvefit、lsqnonlin和fsolve的優(yōu)化選項參數(shù)PrecondBandWinth默認值由0變?yōu)閕nf;
(6) ? ?優(yōu)化選項參數(shù)TolConSQP的默認值改為1e-6;
(7) ? ?輸出結(jié)構(gòu)中引入了參數(shù)constrviolation。
2 工具箱函數(shù)
常用函數(shù):
一元函數(shù)極小值 X=fminbnd(‘F’,x1,x2)
無約束極小值 X=fminunc(‘F’,X0)X=fminsearch(‘F’,X0)
線性規(guī)劃 X=linprog(c,A,b)
0-1整數(shù)規(guī)劃 X=bintprog(F)
二次規(guī)劃 X=quadprog(H,c,A,b)
約束極小值(非線性規(guī)劃) X=fmincon(‘FG’,X0)
非線性最小二乘 X=lsqnonlin(F,X0)
目標(biāo)達到問題 X=fgoalattain(‘F’,x,goal,w)
極小極大問題 X=fminimax(‘FG’,x0)
輸入?yún)?shù)中可以用options,用于所有函數(shù),其中包括有一下參數(shù)。
(1) ? ? ? ? ? ? ?Display:結(jié)果顯示方式,off不顯示,iter顯示每次迭代的信息,final為最終結(jié)果,notify只有當(dāng)求解不收斂的時候才顯示結(jié)果。
(2) ? ? ? ? ? ? ?MaxFunEvals:允許函數(shù)計算的最大次數(shù),取值為正整數(shù)。
(3) ? ? ? ? ? ? ?MaxIter:允許迭代的最大次數(shù),正整數(shù)。
(4) ? ? ? ? ? ? ?TolFun:函數(shù)值(計算結(jié)果)精度,正整數(shù)。
(5) ? ? ? ? ? ? ?TolX:自變量的精度,正整數(shù)。
而且可以用函數(shù)optimset創(chuàng)建和修改。
? ? ? ?模型輸入時需要注意問題:
(1) ? ?目標(biāo)函數(shù)最小化;
(2) ? ?約束非正;
(3) ? ?避免使用全局變量。
3 GUI優(yōu)化工具
3.1 啟動
命令行輸入optimtool;
? ? ? ?Start->Toolboxes->Optimization->Optimization tool(optimtool)。
3.2 界面
圖一:GUI優(yōu)化工具的界面
? ? ? ?分為三塊:
最左邊是優(yōu)化問題的描述及計算結(jié)果顯示,中間為優(yōu)化選項的設(shè)置,右邊是幫助(可隱藏,右上角的<<)。具體各選項的功能和作用不做記錄。
3.3 使用步驟
選擇求解器solver和優(yōu)化算法algorithm;
選定目標(biāo)函數(shù)(objective function);
設(shè)定目標(biāo)函數(shù)的相關(guān)參數(shù);
設(shè)置優(yōu)化選項;
單擊“start”按鈕,運行求解;
查看求解器的狀態(tài)和求解結(jié)果;
將目標(biāo)函數(shù)、選項和結(jié)果導(dǎo)入\導(dǎo)出。
具體的如圖二所示:
圖二:步驟示意圖
Algorithm有兩個選擇:Large scale和Medium scale,設(shè)置完參數(shù)點擊start即可得到如圖中的結(jié)果。
3.4.2 無約束優(yōu)化(fminsearch求解器)
求f(x)=|x^2-3*x+2|的極小值,初始點取x=-7,比較fminunc和fminsearch的差別。
解:啟動優(yōu)化工具;
用fminunc時設(shè)置參數(shù)如圖:
點擊start得到結(jié)果。
用fminsearch時如下圖:
用fminunc時結(jié)果是1.5,而用fminsearch時結(jié)果是2。計算原等式有極小值為2,由此有對于非光滑優(yōu)化問題fminunc可能求不到正確的結(jié)果,而fminsearch卻能很好地解決這類問題的求解。
3.4.3 約束優(yōu)化(fmincon求解器)
可用算法有Trust region reflective(信賴域反射算法)、Active set(有效集算法)、Interior point(內(nèi)點算法)。
求f(x)=-x1*x2*x3的極小值,約束條件是-x1-2*x2-2*x3<=0且x1+2*x2+2*x3<=72,初始點(10,10,10)。
解:首先見M文件,約定FunUnc(x)=-x(1)*x(2)*x(3):
function y=FunUnc(x)
y=-x(1)*x(2)*x(3);
啟動優(yōu)化工具,設(shè)置參數(shù)如圖:
3.4.4 非線性最小二乘優(yōu)化(lsqnonlin求解器)
求minS=(x^2+x-1)^2+(2*x^2-3)^2 ,初始點為x=5 。
解:啟動優(yōu)化工具,設(shè)置參數(shù),點start得結(jié)果如下圖所示;
3.4.5 線性規(guī)劃(linprog求解器)
? ? ? ?略,f處輸入函數(shù)多項式的系數(shù)?;痉椒ㄈ缜懊鎺最?。
3.4.6 智能優(yōu)化算法(ga求解器)
? ? ? ?略,要輸入變量的個數(shù)?;痉椒ㄈ缜懊鎺最悺?
總結(jié)
以上是生活随笔為你收集整理的Matlab optimtool优化(Optimization)工具箱的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab中统计工具箱函数名大全
- 下一篇: VS高版本编写C程序的C4996错误