Matlab優化問題05 fmincon

2021-07-03 15:40:43 字數 1596 閱讀 7396

說明:fmincon

一般用來求解多元有約束非線性最優化問題,其中約束可以包含等式約束和非線性約束。其全呼叫格式為:

[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(fun,x0,a,b,aeq,beq,lb,ub,nonlcon) 【

例1】求側面積為常數150m

2的體積最大的長方體體積,並求出各稜長。

解:設稜長分別為x1,x2,x3,

根據題意有如下數學模型:

用matlab

的fmincon

函式求解

fun008.m

function f=fun008(x)

f=-x(1)*x(2)*x(3);

fun008tj.m

function [ceq,c]=fun008tj(x)

ceq=2*(x(1)*x(2)+x(1)*x(3)+x(2)*x(3))-150;

c=0;

主函式:fun008yunxing.m

clear;

tic;

format rat;

x0=[1 2 3];

[x z exitflag output lambda grad hessian]=...

fmincon(@fun008,x0,,,,,zeros(3,1),,@fun008tj);clc; x

z=-z

fprintf('說明:當邊長分別為

%.2f

、%.2f

、%.2f

時,最大體積為

%.2f',x,z)

exitflag

if exitflag>0    disp('求解過程正常收斂

')elseif exitflag==0    disp('超過迭代次數限制

')else    disp('收斂異常

')end

s='迭代次數:

';disp(s)

disp(output.iterations)

td='梯度

:';disp(td)

disp(grad)

hess='hess矩陣

:';disp(hess)

disp(hessian) t

oc 解得:

x =

5     5     5       

z =125       

說明:當邊長分別為5.00

、5.00

、5.00

時,最大體積為

125.00

exitflag = 1       

求解過程正常收斂

迭代次數: 13       

梯度:-25       

-25       

-25       

hess矩陣

:1913/1130     -2135/2267      -931/1289  

-2135/2267      1363/897       -879/1036  

-931/1289      -879/1036       216/115   

時間已過 0.043606 

秒。

05 otter同步問題的優化

首先來回顧一下我們在 02 數倉分層問題優化 優化後的數倉分層結構 其實優化後,就是將數倉分成了3大層,4小層。3大層就是ods,cdm dw dm ads 4小層就是ods,dw,dm,ads 實際上dw和dm都是所有業務可以復用的資料,區別只是dw是復用的明細資料,dm是復用的彙總資料,因此可以...

深度學習入門課程筆記05 最優化問題

通過對之前課程的學習,我們已經能夠對於乙個輸入資料得出它的最終的乙個loss值,那麼下面就該咱們如何去找到乙個最優的引數矩陣,使得最終的loss值達到乙個最小的範圍。這就引入了咱們的最優化問題。下面咱們通過幾種解決方案來詳細討論如何處理這個最優化的問題 首先咱們就算不經過大腦思考也能得出一種方法,我...

MATLAB有約束最優化問題的求解

有約束最優化問題的一般描述為 其中x x1,x2,xn t,該數學表示的含義亦即求取一組x,使得目標函式f x 為最小,且滿足約束條件g x 0。記號s.t.是英文subject to的縮寫,表示x要滿足後面的約束條件。約束條件可以進一步細化為 線性不等式約束 ax b 線性等式約束 aeqx be...