matlab学习optimization tools (solve中各方法的理解应用)

 

matlab学习optimization tools (solve中各方法的理解应用)_第1张图片

1.quadprog 二次规划的函数

matlab学习optimization tools (solve中各方法的理解应用)_第2张图片

Matlab 中二次规划的数学模型可表述如下

matlab学习optimization tools (solve中各方法的理解应用)_第3张图片

其中

H是把目标函数二次项部分进行实对称矩阵,???这个什么意思?

f是线性函数的列向量。

例求解二次规划

matlab学习optimization tools (solve中各方法的理解应用)_第4张图片

 

得到

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

matlab学习optimization tools (solve中各方法的理解应用)_第5张图片

 

2.单一目标ga求解 遗传算法  (可以替代1中的解法,比较万能 不过求出来的是近似最优解)

matlab学习optimization tools (solve中各方法的理解应用)_第6张图片

第一步首先是编写适应度函数 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;

matlab学习optimization tools (solve中各方法的理解应用)_第7张图片

在这个方法中,注意 Fitness function 一栏目录中后面 @ 的内容一定是主函数 (也就是函数名和.m文件名应保持一致)

Fitness function 填写适应度函数的句柄

有两个变量 所以填2

然后勾选右边option进行具体参数调整,最后勾选绘图

matlab学习optimization tools (solve中各方法的理解应用)_第8张图片

得到结果

matlab学习optimization tools (solve中各方法的理解应用)_第9张图片

(为什么我每次跑出来的结果都不一样呢?)

最终值 x1=-0.275 x2=1.448 fval=0.0165

matlab学习optimization tools (solve中各方法的理解应用)_第10张图片

 

 

你可能感兴趣的:(matlab学习optimization tools (solve中各方法的理解应用))