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

相关文章
相关标签/搜索