优化工具箱
优化工具箱函数,按类别分为:
1 最小化函数:解决最小化问题
2 方程求解函数:方程求解
3 最小二乘(曲线拟合)函数:解决最小二乘问题
4 图形用户界面:选择求解,优化选项,运行问题
5 效用:获取和设置优化选项
1 最小化函数
(1) Bintprog:解决二进制整数规划问题
标准形式:
min
T
x
eq eq
x
xb
xb
⋅
⋅≤
⋅=
,
,,
eq
bb 是向量, ,
eq
A 是矩阵,结果
要求是二进制向
量,其取值是 0 或 1
函数格式:
x = bintprog(f)
x = bintprog(f,A,b)
x = bintprog(f,A,b,Aeq,beq)
x = bintprog(f,A,b,Aeq,beq,x0)
x = bintprog(f,A,b,Aeq,Beq,x0,options)
[x, fval] = bintprog(...)
例 1:
1234
min ( ) 9 5 6 4
xxxxx=− − − − ,
1
,
2
,
3
和
4
是二进制整数
约束为:
1
2
3
4
6352 9
0011 1
1010 0
0101 0
x
x
x
x
⎡⎤
⎡⎤⎡⎤
⎢⎥
⎢⎥⎢⎥
⎢⎥
⎢⎥⎢⎥
≤
⎢⎥
⎢⎥⎢⎥
−
⎢⎥
⎢⎥⎢⎥
−
⎣⎦⎣⎦
⎣⎦
首先,输入已知参数:
f = [-9; -5; -6; -4];
A = [6 3 5 2; 0 0 1 1; -1 0 1 0; 0 -1 0 1];
b = [9; 1; 0; 0];
x = bintprog(f,A,b)
运行结果:
x =
1
1
0
0
(2) fgoalattain:解决多目标实现问题。
(3) fminbnd:在给定的区域内,找到单变量函数的最小
值。
标准形式:
min ( )
x
x ,
12
xx
≤
函数格式:
x = fminbnd(fun,x1,x2)
x = fminbnd(fun,x1,x2,options)
[x,fval] = fminbnd(...)
例 2:
2
() ( 3) 1fx x
−−在
[
0,5 内的最小值
首先,编 M 文件:
function f = myfun(x)
f = (x-3)^2 - 1;
然后,调用函数
x = fminbnd(@myfun,0,5)
运行结果:
x =
3
(4) fmincon:找到约束非线性多变量函数的最小值
标准形式:
min ( )
x
x
() 0; () 0
;
eq
eq eq
cx c x
xbAxb
lb x ub
=
⋅≤ ⋅=
≤≤
函数格式:
x= fmincon(fun,x0,A,b)
x= fmincon(fun,x0,A,b,Aeq,beq)
x= fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
x= fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
x= fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
(5) fminimax:解决极小极大约束问题
标准形式:
}
min ( )
i
i
x
F
xmax
() 0; () 0
;
eq
eq eq
cx c x
xbAxb
lb x ub
=
⋅≤ ⋅=
≤≤
函数格式:
x= fminimax (fun, x0)
x= fminimax (fun, x0, A, b)
x= fminimax (fun, x0, A, b, Aeq, beq)
评论3