输出结果
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yMiZWYwM2N4kDZ4cTZ5MDOiBTN0ADZ4YWZ5cDM0EGZi9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
%SA:T2法利用Matlab自带的SA工具箱optimtool通过GUI调用@Jason_niu函数实现对二元函数优化求解—Jason niu
function fitnessVal = Jason_niu( x )
https://imgconvert.csdnimg.cn/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTMxMzQ3NS8yMDE4MDMvMTMxMzQ3NS0yMDE4MDMwMTIxMTQwNjU3MS05NjI4MTkwNTUuZ2lm实现代码
%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