非线性规划
与线性规划不同之处在于存在的非线性约束:c(x)<=0,(非线性不等式约束),ceq(x)=0(非线性等式约束)
ceq(x)=0时,非线性约束常数项也要放在左边(注意,线性约束是放在右边的)
[x,fval]=fmincon(@fun,x0,A,b,aeq,beq,lb,ub,@nonlfun,option)
非线性规划里必须要给定初始值x0,因为非线性规划求出的是“局部最优解”
若要求全局最优解,1给定多种初始值,枚举出最优解 2蒙特卡洛法求解
option存在四种算法,内定法,sqp法,active-set法,信赖域反射算法,实际建模中可以四种方法都是用一遍看看那种方法精度高,并给出说明自己使用了四种方法来表明自己结果的稳健性
option = optimoptions('fmincon','Algorithm','interior-point')
option = optimoptions('fmincon','Algorithm','sqp')
option = optimoptions('fmincon','Algorithm','active-set')
option = optimoptions('fmincon','Algorithm','trust-region-reflective')
建立函数function f = fun(x)
f=......
end
fun可自定义名称
@nonlfun表非线性约束
function[ c,ceq]=nonlfun(x)
c=[非线性不等式约束],ceq=[非线性等式约束]
建议先进行蒙特卡洛模拟再进行其余四种方法演算,在论文中加分项