1.quadprog 二次规划的函数
Matlab 中二次规划的数学模型可表述如下
其中
H是把目标函数二次项部分进行实对称矩阵,???这个什么意思?
f是线性函数的列向量。
例求解二次规划
得到
h=[4,-4;-4,8]; 注意Matlab 中二次规划的数学模型中H 之前有个1/2 所以 对称二次型矩阵要乘以2 即2.*[2,-2;-2,4]=[4,-4;-4,8]
f=[-6;-3]; 目标函数线性部分的列向量。
a=[1,1;4,1]; 不等式约束的A矩阵
b=[3;9];
lower[0,0]
依次输入Optimization Tool
2.单一目标ga求解 遗传算法 (可以替代1中的解法,比较万能 不过求出来的是近似最优解)
第一步首先是编写适应度函数 fitness.m
function f =fitness(x)
f1=4*x(1).^3+4*x(1)*x(2)+2*x(2).^2-42*x(1)-14;
f2=4*x(2).^3+4*x(1)*x(2)+2*x(2).^2-26*x(1)-22;
f=f1.^2+f2.^2;
在这个方法中,注意 Fitness function 一栏目录中后面 @ 的内容一定是主函数 (也就是函数名和.m文件名应保持一致)
Fitness function 填写适应度函数的句柄
有两个变量 所以填2
然后勾选右边option进行具体参数调整,最后勾选绘图
得到结果
(为什么我每次跑出来的结果都不一样呢?)
最终值 x1=-0.275 x2=1.448 fval=0.0165