【啃书】《智能优化算法及其MATLAB实例》例7.2模拟退火算法进行函数寻优_模拟退火算法matlab函数寻优-程序员宅基地

技术标签: 【啃书】《智能优化算法及其MATLAB实例(第2版)》  智能优化算法  

问题描述

在这里插入图片描述

在这里插入图片描述

仿真过程

matlab源码

%该脚本要命名为func2.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%适应度函数%%%%%%%%%%%%%%%%%%%%%%%%%
function value=func2(x,y)
%value=5*cos(x*y)+x*y+y*y*y;
value=3*cos(x*y)+x+y*y;
%20201017lu注:该matlab代码成功在matlabR2019a运行
%%%%%%%%%%%%%%%%%%%%%%模拟退火算法解决函数极值%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%初始化%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;                      %清除所有变量
close all;                      %清图
clc;                            %清屏
XMAX= 4;                        %搜索变量x最大值
XMIN= -4;                       %搜索变量x最小值
YMAX= 4;                        %搜索变量y最大值
YMIN= -4;                       %搜索变量y最小值
%%%%%%%%%%%%%%%%%%%%%%%%%%%冷却表参数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L = 100;                        %马可夫链长度
K = 0.99;                       %衰减参数
S = 0.02;                       %步长因子
T=100;                          %初始温度
YZ = 1e-8;                      %容差
P = 0;                          %Metropolis过程中总接受点
%%%%%%%%%%%%%%%%%%%%%%%%%%随机选点 初值设定%%%%%%%%%%%%%%%%%%%%%%%%%
PreX =  rand * (XMAX-XMIN)+XMIN;
PreY =  rand * (YMAX-YMIN)+YMIN; 
PreBestX = PreX;
PreBestY = PreY;
PreX =  rand * (XMAX-XMIN)+XMIN;
PreY =  rand * (YMAX-YMIN)+YMIN; 
BestX = PreX;
BestY = PreY;
%%%%%%%%%%%每迭代一次退火一次(降温), 直到满足迭代条件为止%%%%%%%%%%%%
deta=abs( func2( BestX,BestY)-func2 (PreBestX, PreBestY));
while (deta > YZ) && (T>0.001)
    T=K*T; 
    %%%%%%%%%%%%%%%%%%%%%在当前温度T下迭代次数%%%%%%%%%%%%%%%%%%%%%%
    for i=1:L  
        %%%%%%%%%%%%%%%%%在此点附近随机选下一点%%%%%%%%%%%%%%%%%%%%%
        p=0;
        while p==0
            NextX = PreX + S* (rand * (XMAX-XMIN)+XMIN);
            NextY = PreY + S*( rand * (YMAX-YMIN)+YMIN);
            if (NextX >= XMIN && NextX <= XMAX && NextY >=...
                    YMIN && NextY <= YMAX)
                p=1;
            end
        end
        %%%%%%%%%%%%%%%%%%%%%%%是否全局最优解%%%%%%%%%%%%%%%%%%%%%%
        if (func2(BestX,BestY) > func2(NextX,NextY))
            %%%%%%%%%%%%%%%%%%保留上一个最优解%%%%%%%%%%%%%%%%%%%%%
            PreBestX = BestX;
            PreBestY = BestY;
            %%%%%%%%%%%%%%%%%%%此为新的最优解%%%%%%%%%%%%%%%%%%%%%
            BestX=NextX;
            BestY=NextY;
        end
        %%%%%%%%%%%%%%%%%%%%%%%% Metropolis过程%%%%%%%%%%%%%%%%%%%
        if( func2(PreX,PreY) - func2(NextX,NextY) > 0 )
            %%%%%%%%%%%%%%%%%%%%%%%接受新解%%%%%%%%%%%%%%%%%%%%%%%%
            PreX=NextX;
            PreY=NextY;
            P=P+1;
        else
            changer = -1*(func2(NextX,NextY)-func2(PreX,PreY))/ T ;
            p1=exp(changer);
            %%%%%%%%%%%%%%%%%%%%%%%%接受较差的解%%%%%%%%%%%%%%%%%%%%
            if p1 > rand        
                PreX=NextX;
                PreY=NextY;
                P=P+1;         
            end
        end
        trace(P+1)=func2(BestX, BestY);
    end
    deta=abs( func2( BestX,BestY)-func2 (PreBestX, PreBestY));
end
disp('最小值在点:');
BestX
BestY
disp( '最小值为:');
func2(BestX, BestY)
plot(trace(2:end))
xlabel('迭代次数')
ylabel('目标函数值')
title('适应度进化曲线')
最小值在点:

BestX =

    -3.999987170818327e+00


BestY =

    -7.521340802922394e-01

最小值为:

ans =

    -6.407760829998221e+00

在这里插入图片描述

中 智能优化算法及其MATLAB实例(第二版)[包子阳,余继周][电子工业出版社][2018年01月][9787121330308]

经过调试,随书所有代码均可以在matlabR2019a上成功运行https://mianbaoduo.com/o/bread/YZyVlp9v

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44331401/article/details/109174759

智能推荐

[附源码]基于flask框架基于B_S架构的社区租户管理系统 (python+mysql+论文)-程序员宅基地

文章浏览阅读955次,点赞25次,收藏18次。本毕业设计题目所开发的B/S架构的社区租户管理系统,可以有效地解决传统管理方式中存在的问题,提高社区租赁市场的管理水平和服务质量。其次,该系统可以实现对租赁业务的自动化管理,提高工作效率,降低人力成本。PyCharm是一个强大的Python IDE,它提供了丰富的开发工具和插件支持,包括对Flask框架的友好支持。在数据库管理工具的选择上,使用了Navicat 11,这是一个用户友好且功能强大的数据库管理软件,它支持多种数据库系统,包括MySQL,并提供了图形化界面,使得数据库的管理和维护工作更加便捷。

毕业设计项目分享-ssm大学生本科毕业资格审核系统67038(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等-程序员宅基地

文章浏览阅读921次,点赞30次,收藏19次。免费领取项目源码,请关注赞收藏并私信博主,谢谢-大学生本科毕业资格审核系统主要功能模块包括登录、个人资料、用户管理、审核条件、成绩审核、学分审核、审核通知、学院审核等信息维护,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。

鸿蒙系统电池耗电,都说iPhone是伪后台,不用关闭程序,一点不耗电,为什么电池里头看使用情况后台耗电这么多?...-程序员宅基地

文章浏览阅读4.4k次。如果说伪后台=单任务,那ios已经死很久了。iOS是支持后台管理的,但是并不是所有的应用程序,也就支持音乐,下载APP,消息推送以及通知会后台运行。例如当你点击home键切换到桌面的时候,你之前运行的程序大多数都会断掉,如果再切换回来,就会出现重新加载的画面,当然,如果你切换回来的时间并不长的话是不会重新加载的。如果是视频或者游戏,当你切换出去的时候它们会自动暂停在那里,不会进行缓冲等后台运行。这..._鸿蒙是伪后台吗

十折交叉验证python_Python实现K折交叉验证法的方法步骤-程序员宅基地

文章浏览阅读1.2k次。##一个简单的2折交叉验证from sklearn.model_selection import KFoldimport numpy as npX=np.array([[1,2],[3,4],[1,3],[3,5]])Y=np.array([1,2,3,4])KF=KFold(n_splits=2) #建立4折交叉验证方法 查一下KFold函数的参数for train_index,test_ind..._python十折交叉验证结果解读

默认ip_基于EtherNet/IP实现欧姆龙NX系列PLC通信-程序员宅基地

文章浏览阅读2.6k次。1、引言工业以太网协议 (Ethernet/IP) 是由ODVA所开发并得到了罗克韦尔自动化的强大支持。它使用已用于ControlNet和DeviceNet的控制和信息协议 (CIP) 为应用层协议。 CIP提供了一系列标准的服务,提供“隐式”和“显示”方式对网络设备中的数据进行访问和控制。CIP数据包必须在通过以太网发送前经过封装,并根据请求服务类型而赋予一个报文头。这个报文头指示了..._欧姆龙plc默认ip

请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母_起诉星期几的第一个字用来判断星期几如果第一层膜一样则继续判断第二个字伊一-程序员宅基地

文章浏览阅读2.8k次。char a = '0'; printf("请输入当前星期数的首字母:\n"); scanf("%c", &a); getchar(); if (a == 'm') { printf("星期一\n"); } else if (a =='w') { printf("星期三\n"); } else if_起诉星期几的第一个字用来判断星期几如果第一层膜一样则继续判断第二个字伊一

随便推点

error: src refspec dev does not match any._src refspec does not match any-程序员宅基地

文章浏览阅读3.9k次。error: src refspec dev does not match any.问题如题原因解决问题如题在git上新建分支,在进行git push origin branchName的时候出现如题报错;原因使用git branch检查当前的分支名,发现与push时分支名不同,也就是新建分支名的时候拼错了,于是就找不到对应的分支可以提交。解决1.切换回主分支,git checkout master2. 删除拼错名字的本地分支,git branch -D branchName3. 查看是否删_src refspec does not match any

android----下载android-4.2源码_5g天天奭5g运动免费入口-程序员宅基地

文章浏览阅读5k次。官网指南:http://source.android.com/source/building-running.html1、安装git和curl 进入Linux ,打开终端,在终端窗口敲下面的命令: sudo apt-get install git-core curl 2、安装repo脚本 首先安装repo。在当前用户:~目录下新建一个bin目录。然后,向PATH_5g天天奭5g运动免费入口

CISCN PWN签到题 task_note_service_easypwn addnote deletenote editnote-程序员宅基地

文章浏览阅读1.6k次。序言 比赛中这道差那么一点点就做出来了程序运行1.menu---------menu---------1. add note2. show note3. edit note4. del note5. exityour choice&gt;&gt;2. add1. add note2. show note3. edit note4. del..._easypwn addnote deletenote editnote

大语言模型?生成式AI?分不清楚的话可以看aws这个例子_生成式ai 大语言模型-程序员宅基地

文章浏览阅读468次。Amazon Bedrock汇聚了众多领先的大语言模型,用户只需通过单一API就能利用来自AI21 Labs、Anthropic、Cohere、Meta Llama2、Stability AI等公司的先进大语言模型来构建自己的应用。除此之外,大语言模型还可应用于舆情分析、自动代码生成、自动问答系统等多个领域,随着技术的不断进步和应用领域的不断拓展,大语言模型具有巨大的潜力和广泛的应用前景。文本生成:大语言模型可以根据给定的上下文或提示,生成连贯、富有创意的文本内容,如文章、故事、诗歌等。_生成式ai 大语言模型

PAT——甲级1046(最短路径)-程序员宅基地

文章浏览阅读421次。英文题,看终于看懂了,要逐字一个个地翻译一开始以为是要用到图的知识后来发现 就先简单的相减求最小值#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;#define maxn 100005int main(){ int m,n,i,j; int sum=0; int a..._甲级1046

Python常见实战问题解析与解决方案_python问题-程序员宅基地

文章浏览阅读1k次,点赞19次,收藏19次。在本文中,深入研究了Python中的常见实战问题及其解决方案,为大家提供了全面的解决方案和实例代码。首先,探讨了内存泄漏问题,并演示了如何通过使用弱引用等手段来有效地解决这类问题,确保程序的内存使用得到良好的管理。其次,重点关注了性能优化,介绍了数据结构的优化、生成器的应用,以及多线程的实际使用,旨在更好地理解和运用这些技术以提高程序效率。异常处理和调试作为开发中不可避免的一环,也在文章中得到充分关注。演示了如何使用try和except处理异常,以及如何利用Python内置的调试工具pdb。_python问题

推荐文章

热门文章

相关标签