matalb學習3-各類求解

一、解線性規劃

linprog解約束類線性規劃
圖片描述函數

c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6];
    A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08];
    b=[850;700;100;900];
    Aeq=[]; beq=[];
    vlb=[0;0;0;0;0;0]; vub=[];
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)

圖片描述

c=[6 3 4];
    A=[0 1 0];
    b=[50];
    Aeq=[1 1 1];
    beq=[120];
    vlb=[30,0,20];
    vub=[];             
    [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)

圖片描述
圖片描述

f = [13 9 10 11 12 8];
A =  [0.4 1.1 1 0 0 0
      0 0 0 0.5 1.2 1.3];
b = [800; 900];
Aeq=[1 0 0 1 0 0
     0 1 0 0 1 0
     0 0 1 0 0 1];
beq=[400 600 500];
vlb = zeros(6,1);
vub=[];
[x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)

二、解無約束類線性規劃

用fminbnd(‘函數’,範圍)或fminsearch求函數最大值最小值

clipboard.png

f='2*exp(-x).*sin(x)';
        fplot(f,[0,8]);         %做圖語句
        [xmin,ymin]=fminbnd (f, 0,8)
        f1='-2*exp(-x).*sin(x)';
        [xmax,ymax]=fminbnd (f1, 0,8)

clipboard.png

解多元函數無約束優化,fminunc(函數,範圍)求最小值

clipboard.png

用mesh畫3d圖,而後用contour畫等高線圖
clipboard.png
求解:fminsearch優化

f='100*(x(2)-x(1)^2)^2+(1-x(1))^2';
[x,fval,exitflag,output]=fminsearch(f, [-1.2 2])

clipboard.png
求解:
創建函數文件spa

function f = fun(x)
      y1=((100-x(1)- 0.1*x(2))-(30*exp(-0.015*x(1))+20))*x(1);
      y2=((280-0.2*x(1)- 2*x(2))-(100*exp(-0.02*x(2))+30))*x(2);
      f=-y1-y2;

求解3d

x0=[50,70];
x=fminunc('fun',x0),
z=fun(x)

三、解法常識

clipboard.png

clipboard.png

clipboard.png

相關文章
相關標籤/搜索