Matlab之智能优化算法函数调用

news2024/9/22 21:18:52

1.句柄函数

        句柄函数即我们要求的目标函数,以下三种算法的调用仅是求解最小值,若要求目标函数的最大值,可在返回结果中加负号。

function value = Get_Fitness(x,y)
    value= x^2 + y^2;
    % 若要求x^2 + y^2最大值可设value= -(x^2 + y^2);
end

句柄函数图像:

                ​​​​​​​       

画图代码:

function Draw()
    % 定义自变量范围  
    x = linspace(-10, 10, 100); % x范围为-10到10,共100个点  
    y = linspace(-10, 10, 100); % y范围为-1到1,共100个点  
      
    % 创建网格  
    [X, Y] = meshgrid(x, y);  
      
    % 计算Z值  
    Z = X.^2+Y.^2;
      
    % 创建三维图形  
    surf(X, Y, Z);  
      
    % 添加标题和标签  
    title('Z = x^2 + y^2');  
    xlabel('X轴');  
    ylabel('Y轴');  
    zlabel('Z轴');
end

 

2.遗传算法

function GA()
% 配置项
options = optimoptions('ga','Display', 'off', 'PopulationSize', 50, 'StallGenLimit', 20,'PlotFcn', @gaplotbestf);

% 设置求适应度的的句柄函数(目标函数)
ObjectiveFunction = @(x) Get_Fitness(x(1), x(2));

% 为自变量设置解空间两个自变量的上下限分别是[-10,10],[-10,10]
LB=[-10,-10];
UB=[10,10];

% 调用遗传算法,因为自变量有两个所以维度为2
[x,fval]=ga(ObjectiveFunction,2,[],[],[],[],LB,UB,[],options);

% 打印最优解
fprintf('x(1)值最优解为: %f\nx(2)值最优解为:%f\n',x(1),x(2));
fprintf('最优适应度为: %f\n', fval);

end

3.粒子群算法

function PSO()
 
% 配置项
options = optimoptions('particleswarm','Display', 'off', 'SwarmSize', 20, 'MaxStallIterations',20);
 
% 设置求适应度的的句柄函数(目标函数)
ObjectiveFunction = @(x) Get_Fitness(x(1), x(2));
 
% 为自变量设置解空间两个自变量的上下限分别是[-10,10],[-10,10]
LB=[-10,-10];
UB=[10,10];
 
% 调用粒子群算法,因为自变量有两个所以维度为2
[x,fval] = particleswarm(ObjectiveFunction,2,LB,UB,options);
 
% 打印最优解
fprintf('x(1)值最优解为: %f\n x(2)值最优解为:%f\n',x(1),x(2));
fprintf('最优适应度为: %f\n', fval); 
 
end

4.模拟退火

function SA()
 
% 配置项
options = optimoptions('simulannealbnd','MaxStallIterations',1000000);
 
% 设置句柄函数(目标函数)
ObjectiveFunction = @(x) Get_Fitness(x(1), x(2));
 
% 为自变量设置初始值
x0=[5,5];
 
% 为自变量设置解空间两个自变量的上下限分别是[-10,-10],[-10,-10]
LB=[-10,-10];
UB=[10,10];
 
% 调用模拟退火算法
[x,fval] = simulannealbnd(ObjectiveFunction,x0,LB,UB,options);
 
% 打印最优解
fprintf('x(1)值最优解为: %f\n x(2)值最优解为:%f\n',x(1),x(2));
fprintf('最优适应度为: %f\n', fval); 
 
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/931576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPF基础入门-Class6-WPF通知更改

WPF基础入门 Class6-WPF通知 1、显示页面&#xff1a; <Grid><StackPanel><TextBox Text"{Binding Name}"></TextBox><TextBox Text"{Binding Title}"></TextBox><Button Command"{Binding ShowCommand}&qu…

VUE笔记(一)初识vue

一、vue的简介 1、什么是vue 官网地址:Vue.js Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。 构建用户界面&#xff1a;之前在学习vue之前通过原生js对DOM操作进行构建用户界面的 使用原生js构建用户界面的不足 - 没有规范&#xff0c…

mysql sql 执行流程

监控查询缓存的命中率 show status like ‘%qcache%’; mysql 缓存机制&#xff0c;以及 8.0 为啥取消 select sql_NO_Cache * from 表 where xxx; # 不使用缓存

如何开发一款唯一艺术平台 区块链 /数字藏品

艺术作品是人类文化的瑰宝&#xff0c;而艺术平台则是连接艺术家与观众的桥梁。如何开发一款独一无二的艺术平台&#xff0c;既要满足专业艺术作品展示的要求&#xff0c;又要提供深度思考的空间&#xff0c;这是我们所面临的挑战。本文将从专业性、思考深度和逻辑性等多个方面…

几个nlp的小任务(抽取式问答)

几个nlp的小任务(抽取式问答) 安装库抽取式问答介绍、SQuAD数据集初始化参数加载、导入数据集查看数据集示例加载tokenizer对长文本处理的演示对答案的位置进行验证整合刚才的步骤对数据集中的数据进行预处理加载微调模型设置args 参数使用数据清洗设置训练函数,开始训练安装…

浅谈信息论和信息编码

目录 背景 信息是什么 信息度量 小白鼠实验 哈夫曼编码 密码学 其它应用 背景 克劳德艾尔伍德香农&#xff08;Claude Elwood Shannon&#xff09;出生于 1916 年 美国密歇根州。1936 年毕业于密歇根大学&#xff0c;获得数学和电子工程学士学位。之后&#xff0c;他在麻…

将数据类型,类名作为参数传递使用的方法

在开发中遇到一个问题&#xff0c;就是给了很多的数据类型&#xff0c;需要找出当前数据属于哪个数据类型。 举个例子&#xff0c;我们现在有一组数据类型<int, double, float, char, bool>&#xff0c;并给定一个数据char c&#xff1b;需要通过一个函数找出变量c是类型…

fegin实现方法级别注解超时配置

fegin实现方法级别注解超时配置 测试的3.18新版本已经支持方法中参数带有Options 也可以自定义配置, Options options findOptions(argv);; 使用该注解方式需配合AOP使用! 原理是包装自己的client客户端, 替换框架的客户端! 应用到生产环境需自己充验证测试 1.0 注解 Target(…

Banana Pi 开源社区在深圳国际电子展(2023)上展示全系列新产品

Banana Pi 开源社区在深圳国际电子展(2023)上展示全系列新产品 Banana Pi开源硬件社区是由广东比派科技主导、台湾鸿海科技&#xff08;富士康&#xff09;全面战略支持的开源硬件项目。Banana Pi开源硬件系列开发板&#xff0c;完成核心系统和架构设计。开发文档、软件、硬件…

远程调试环境

一、远程调试 1.安装vscode 2.打开vscode&#xff0c;下载插件Remote-SSH,用于远程连接 3.安装php debug 4.远程连接&#xff0c;连接到远端服务器 注&#xff1a;连接远程成功后&#xff0c;在远程依然要进行安装xdebug&#xff0c;刚才只是在vscode中进行的安装。 5.配置la…

Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

项目场景&#xff1a; 最近因为公司业务需要在搭一个新架构&#xff0c;用的springboot3和jdk17,在整合mybatis多数据源的时候报错 &#xff08;引用的mybatisplus 和 mybatisplusjion的是最新的包-2023-08-26&#xff09; Error creating bean with name ‘XXXServiceImpl’:…

Python中的format()函数详细讲解

注&#xff1a;所以代码皆成功运行&#xff0c;可直接复制运行 一、基本使用 1、Python中的format()函数是一个格式字符串的函数&#xff0c;通过花括号{}识别替换字段&#xff0c;从而完成字符串的格式化。 #format后面放数字、字符串都可以 print("{}喜欢{}岁的{}&qu…

「Python」机器学习之线性判别分析(代码,不调包)

「Python」机器学习之线性判别分析&#xff08;代码&#xff0c;不调包&#xff09; 前言1 线性判别分析&#xff08;LDA&#xff09;2 实现2.1 LDA实现2.2 数据集示例 3 最后 前言 语言&#xff1a;python库&#xff1a;numpy, matplotlib教材参考&#xff1a;《机器学习》——…

MySql学习4:多表查询

教程来源 黑马程序员 MySQL数据库入门到精通&#xff0c;从mysql安装到mysql高级、mysql优化全囊括 多表关系 各个表结构之间存在各种关联关系&#xff0c;基本上分为三种&#xff1a;一对多&#xff08;多对一&#xff09;、多对多、一对一 一对多&#xff08;多对一&…

论文阅读 The Power of Tiling for Small Object Detection

The Power of Tiling for Small Object Detection Abstract 基于深度神经网络的技术在目标检测和分类方面表现出色。但这些网络在适应移动平台时可能会降低准确性&#xff0c;因为图像分辨率的增加使问题变得更加困难。在低功耗移动设备上实现实时小物体检测一直是监控应用的…

计网第四章(网络层)(四)

目录 一、IP数据报的发送和转发过程 发送&#xff1a; 1.直接交付和间接交付 如果判断源主机和目的主机是否在同一个网络中&#xff1f; 2.默认网关&#xff1a; 转发&#xff1a; 路由表&#xff1a; 一、IP数据报的发送和转发过程 发送&#xff1a; 由主机发送IP数据…

统信OS国产操作系统身份证读卡器社保卡读卡web网页开发使用操作流程

用于DONSEE系列身份证阅读器谷歌Chrome火狐Firefox插件&#xff0c;支持的型号有&#xff1a;EST-100、EST-100GS、EST-100G、EST-100U、EST-200G、EST-J13X等。 本方案无缝支持最新版本谷歌Chrome火狐Firefox等网页浏览器&#xff0c;支持H5、Vue、React、Node.js、Electron、…

Java“牵手”天猫商品销量API接口数据,天猫API接口申请指南

天猫平台商品销量接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取天猫商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品销量接口API是一种用于获取电商平台上商品销量数据的接口&#xff0c;通过…

mysql 命令行 执行sql文件

方法1 source source file.sql; file.sql : 绝对路径或 相对路径。 方法2 mysql -u xxx -p < file.sql 方法3 MySQLImport 工具 mysqlimport [options] database file_name 其中&#xff0c;database为要导入数据的数据库名&#xff0c;file_name为要导入的SQL文件名。还可以…

框架分析(5)-Django

框架分析&#xff08;5&#xff09;-Django 专栏介绍Django核心概念以及组件讲解模型&#xff08;Model&#xff09;视图&#xff08;View&#xff09;模板&#xff08;Template&#xff09;路由&#xff08;URLconf&#xff09;表单&#xff08;Form&#xff09;后台管理&…