matlab工具箱:模拟退火算法使用(优化问题举例)

模拟退火全局优化举例,环境,windows 、matlab2016a

一、函数选择

求如下二元函数最小值,

y = 5*cos(x1*x2) + x1* x2+ x2*x2*x2;

其中x1∈[-5  5],x2∈[-5  5].

用matlab绘制3维图如下,

>> x1=-5:1:5;
>> x2=-5:1:5;
>> [x1 x2]=meshgrid(x1,x2);
>> y = 5*cos(x1.*x2) + x1 .* x2 + x2.*x2.*x2;
>> mesh(x1,x2,y)
xlabel('x1');
ylabel('x2');
zlabel('y');
axis vis3d    % 冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
hold on       % 不关闭图形,继续在上面画图

二、创建函数

在matlab中使用模拟退火算法,必须先创建 函数,然后在matlab工具箱中调用。函数如下

function fitnessVal = SA(x)

%注意 x1,x2,需要表示成x(1),x(2),格式需要

%x0[-5 5] x1[-5 5]  x1=4 x2=5 min=-152
fitnessVal = 5*cos(x(1)*x(2)) + x(1) * x(2) + x(1)*x(1)*x(1);

end

然后保存为.m文件,文件名为SA.m

三、模拟退火工具箱调用

①、工具箱调用

命令行窗口输入:>> optimtool

此时会弹出工具箱窗口。

②、参数填写见下图

由图可知,找到的最优点为4,-5,最小值为-152.091,重复性也很好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式宇宙联盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值