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

754dc481cdd6b3edb433f9dea6916bfa.png

1.quadprog 二次规划的函数

01eb5be1fde0ffc1f429017f03e659a1.png

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

4b02a50f5900772ef49da80fcde38fcd.png

其中

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

f是线性函数的列向量。

例求解二次规划

b192f6890df886d87353fe66ae21fe26.png

得到

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

f031912d4d55a320faf41f9ba58af9bb.png

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

989f8ff7622c46208629f419d7a145f3.png

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

c91c06cfb65be2740c02bdb8ac4c7333.png

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

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

有两个变量 所以填2

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

c56c5a70966c5f60c206e4be14058425.png

得到结果

3011f1ffd32eff4d2b46917b24b6431a.png

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

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

69854398020b31535ffe93ec713a4fa9.png

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值