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