SA:T1編寫主函數法和T2Matlab自帶的SA工具箱GUI法,兩種方法實現對二元函數優化求解——Jason niu
阿新 • • 發佈:2018-03-02
lin plot itl 最優解 IT 主函數 alt 圖片 gui
%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