SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解——Jason niu

Posted yunyaniu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解——Jason niu相关的知识,希望对你有一定的参考价值。

%SA:T1法利用Matlab编写主函数实现对定义域[-5,5]上的二元函数求最优解—Jason niu
[x,y] = meshgrid(-5:0.1:5,-5:0.1:5);
z = x.^2 + y.^2 - 10*cos(2*pi*x) - 10*cos(2*pi*y) + 20;
figure
mesh(x,y,z)
hold on
xlabel(‘x‘)
ylabel(‘y‘)
zlabel(‘z‘)
title(‘SA:利用SA最优化,定义域[-5,5]上的二元函数z =  x^2 + y^2 - 10*cos(2*pi*x) - 10*cos(2*pi*y) + 20的最大值—Jason niu‘)

maxVal = max(z(:));
[maxIndexX,maxIndexY] = find(z == maxVal);
for i = 1:length(maxIndexX)  
    plot3(x(maxIndexX(i),maxIndexY(i)),y(maxIndexX(i),maxIndexY(i)), maxVal, ‘r*‘,‘linewidth‘,2)
     text(x(maxIndexX(i),maxIndexY(i)),y(maxIndexX(i),maxIndexY(i)), maxVal, {[‘    X: ‘ num2str(x(maxIndexX(i),maxIndexY(i)))];[‘    Y: ‘ num2str(y(maxIndexX(i),maxIndexY(i)))];[‘    Z: ‘ num2str(maxVal)]})
    hold on
end

技术分享图片

 

%SA:T2法利用Matlab自带的SA工具箱optimtool通过GUI调用@Jason_niu函数实现对二元函数优化求解—Jason niu
function fitnessVal = Jason_niu( x )

技术分享图片

 技术分享图片

 


以上是关于SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解——Jason niu的主要内容,如果未能解决你的问题,请参考以下文章

sa(t)信号对应的Matlab程序怎么编写?

信号处理程序代码会阻塞主进程吗?

如何编写 sa"f"e Active Record 查询

MATLAB模拟退火算法(SA)求解TSP问题

sqlserver 2008express版本启用混合登陆和sa

编写一个pritri函数,用来输出由*形构成的等腰三角形,在主函数中输入n值,调用p?