-
这个函数的基本形式为
x = fminco
n(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon
,
options)
其中
fun
为你要求最小值的函数,可以单写一个文件设置函数,如以上给的例子中。
<
/p>
1.
如果
fun
中有
N
个变量,如
x y z,
或者是
X1, X2,X3,
什么的
,自己排个顺序,在
fun
中统一都是用
x(1),x(2
)
....x(n)
表示的。
2. x0,
表示初始的猜测值,大小要与变量数目相同
3. A b
为线性不等约束,
A*x <=
b
,
A
应为
n*n
阶矩阵,学过线性代数应不难写出
A
和
b
4 Aeq
beq
为线性相等约束,
Aeq*x =
beq
。
Aeq
beq
同上可求
5 lb
ub
为变量的上下边界,
正负无穷用
-Inf
和
Inf
表示,
lb ub
应为
N
阶数组
6 nonlcon
为非线性约束,可分为两部分,非线性不等约束
c
,非线性相等约束,
ceq
可按下面的例子设置
function [c,ce] = nonlcon1(x)
c = -x(1)+x(2)^2-4;
ce = [];
% no nonlinear equality constraints
7
,
最后是
options
,
< br>可以用
OPTIMSET
函数设置,见上例
具体可见
OPTIMSET
函数的帮助文件。
对于优化控制
,
MATLAB
提供了
18
个参数,这些参数的具体意义为:
optio
ns(1)-
参数显示控制(默认值为
0
)
。等于
1
时显示一些结果。
optio
ns(2)-
优化点
x
的精度控制
p>
(
默认值为
1e-4)
。
options =
optimset('TolX',1e-8)
options(3)-
优化函数
F
的精度控制
(
默认值为<
/p>
1e-4)
。
options
=
optimset('TolFun',1e-10)
options(4)-
违反约束的结束标准
(
默认值为
1e-6)
。
; options(5)-
算法选择,不常用。
op
tions(6)-
优化程序方法选择,为
0
< br>则为
BFCG
算法,为
1
则采
用
DFP
算法。
o
ptions(7)-
线性插值算法选择,为
0
则为混合插值算法,为
1
则采用立方插算法。
option
s(8)-
函数值显示
(
目标—达到问题中的
Lambda )
< br> options(9)-
若
需要检测用户提供的梯度,则设为
1
。
options(10)-
函数和约束估值的数目。
&
nbsp; options(11)-
函数梯度估值的个数。
op
tions(12)-
约束估值的数目。
< br> options(13)-
等约束条件的个数。
; options(14)-
函数估值的最大次数(默认值是
100
×变量个数)
options(15)-
用于目
标
—
达到问题中的特殊目标。
&nb
sp; options(16)-
优化过程中变
量的最小有限差分梯度值。
options(17)-
优化过程中变量的最大有限差分梯度值。
< br> options(18)-
步长设置
(
默认为
1
或更小
)
。
Foptions
已经被
optimset
和
optimget
代替,详情请查函数
optimset
和
optimget
。
ps:
以上
x = fmincon(fun,x0,A,b,Aeq
,beq,lb,ub,nonlcon
,
options)
括号中的参数,需从左到右依次给出,可只给部分。
-
-
-
-
-
-
-
-
-
上一篇:什么是屌丝?回答你屌丝是什么意思
下一篇:成语故事解释