2024年4月3日发(作者:鹿春芳)
工程最优化即最大(小)问题
关于工程最优化的求解,之前已有基因遗传算法、蚁群算法、凸优化。今天来介绍一
种方法,是基于matlab自带函数
fminunc、fmaxunc来计算的,它的计算方式更加简洁高效,只需解一个目标函数。
➢ 一、无约束(无条件)的最优化
使用fminunc函数 (un-condition)
1) 可用于任意函数求最小值问题( 即只能求最小值 )。
如求最大值:
ˆ
1
d
w
ˆ
u
argmax
d
H
w
Rw
w
(1)
取反,则等效为求最小值:
ˆ
1
d
w
ˆ
u
argmin
d
H
w
Rw
w
(2)
这个过程不影响自变量w.
2) 代码格式
x = fminunc(@func, x0);
[x,fval] = fminunc(@func, x0);
[x,fval,exitflag] = fminunc(@func, x0);
必须预先把函数存入到一个程序中 ,(所编的程序一定是只有个参数,则 当为多元函
数时,则x(1),x(2), x(3) … 分别代表每个自变)。
其中:fval为函数的最小值;x0为自变量初始向量,一般不影响结果;exitflag为退
出标志,当它大于0时表示函数收敛于x,当它
0,函数收敛于x,一般等于1
exitflag
0,函数不收敛
0,函数不收敛
(所以解完题后还必须判断exitflag的值是否 > 0,
以决定结果的正误/有效性)
最好返回三个结果
(3)
函数存在最值的条件:在闭区间连续,存在导数等(说明有很多函数不存在最值:有
大、有小、有大小、都无)
可以是任意函数、任意n元函数求最小值
最后一定要看看exitflag的值(判断结果是否有效 -- 所以结果最好返回三个结果
*^
函数可以用内联函数inline('expression')(程序中的...可要可不要,一般还
是不要吧)
二、fminbnd(‘@func’, x1, xn) 求函数在区间➢
[x1, xn]的最小值
2024年4月3日发(作者:鹿春芳)
工程最优化即最大(小)问题
关于工程最优化的求解,之前已有基因遗传算法、蚁群算法、凸优化。今天来介绍一
种方法,是基于matlab自带函数
fminunc、fmaxunc来计算的,它的计算方式更加简洁高效,只需解一个目标函数。
➢ 一、无约束(无条件)的最优化
使用fminunc函数 (un-condition)
1) 可用于任意函数求最小值问题( 即只能求最小值 )。
如求最大值:
ˆ
1
d
w
ˆ
u
argmax
d
H
w
Rw
w
(1)
取反,则等效为求最小值:
ˆ
1
d
w
ˆ
u
argmin
d
H
w
Rw
w
(2)
这个过程不影响自变量w.
2) 代码格式
x = fminunc(@func, x0);
[x,fval] = fminunc(@func, x0);
[x,fval,exitflag] = fminunc(@func, x0);
必须预先把函数存入到一个程序中 ,(所编的程序一定是只有个参数,则 当为多元函
数时,则x(1),x(2), x(3) … 分别代表每个自变)。
其中:fval为函数的最小值;x0为自变量初始向量,一般不影响结果;exitflag为退
出标志,当它大于0时表示函数收敛于x,当它
0,函数收敛于x,一般等于1
exitflag
0,函数不收敛
0,函数不收敛
(所以解完题后还必须判断exitflag的值是否 > 0,
以决定结果的正误/有效性)
最好返回三个结果
(3)
函数存在最值的条件:在闭区间连续,存在导数等(说明有很多函数不存在最值:有
大、有小、有大小、都无)
可以是任意函数、任意n元函数求最小值
最后一定要看看exitflag的值(判断结果是否有效 -- 所以结果最好返回三个结果
*^
函数可以用内联函数inline('expression')(程序中的...可要可不要,一般还
是不要吧)
二、fminbnd(‘@func’, x1, xn) 求函数在区间➢
[x1, xn]的最小值