当前位置: 首页 > news >正文

用于全局复根和极点查找算法的自适应网格生成器(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果​编辑

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

SA-GRPF算法旨在找到固定区域中函数的所有零点和极点。该程序包括一种为常规GRPF算法创建自适应初始网格的方法。所提出的解决方案使用梯度计算来确定需要细化的网格区域,包括零点和极点接近的区域。可以分析一类函数,并且可以考虑任意形状的搜索区域。如所附示例所示,自适应网格允许使用更少的样本更快、更准确地分析函数。该算法不仅限于计算电动力学。它可用于类似的问题,例如声学、控制理论和量子力学。

文件简介:

  1. SA_GRPF.m - 启动程序
  2. analysis_parameters.m - 包含分析的所有参数,例如:
  • 矩形域大小(XB,XE,YB,YE)
  • 精度
  • 方法:两个可用的自适应和常规GRPF - (模式)
  • 可选趣味参数(可选))
  • 缓冲区(ItMax, NodesMin, NodesMax)
  1. fun.m - 计算根和极的函数的定义
  2. 运行示例:在 SA_GRPF.m (addpath) 中添加文件夹取消注释行 23 或 24,以便包含包含 (analysis_parameters.m) 和 (fun.m) 文件的文件夹,或将它们从包含示例的文件夹复制到主文件夹并启动 SA_GRPF 程序。

自适应网格生成器是一种用于优化算法的工具,可以帮助在复杂的问题空间中进行搜索。在全局复根和极点查找算法中,自适应网格生成器可以用来帮助确定算法在复杂函数中查找根和极点的位置。​以下是一个自适应网格生成器的工作流程,适用于全局复根和极点查找算法:

初始网格生成: 确定搜索空间的初始边界和分辨率。这可以是一个较大的矩形区域,或者是函数定义域的一部分。选择初始网格的分辨率,即在每个维度上分割区间的数量。

函数评估: 在初始网格中的每个网格点处评估函数的值。根据函数值的正负性,可以确定是否可能存在根或极点。

网格点分析: 分析网格点处的函数值,尤其是找到可能的根和极点。这可以通过观察函数值的符号变化、斜率变化等来实现。

细分网格: 对于在前一步中找到的可能的根和极点,可以选择在其周围细分网格以进一步精细搜索。这可以是固定的细分因子,或者可以根据函数的性质自适应地确定。

迭代: 重复执行步骤 3 和步骤 4,直到达到预定的迭代次数或满足一定的收敛条件。每次迭代都会根据当前网格的情况进行进一步的网格细化。

结果提取: 在最终的网格中,可以确定函数的根和极点的位置。这可以通过分析细分网格中的函数值和性质来完成。

收敛性判断: 在算法运行过程中,可以监控根和极点的位置是否收敛到某个稳定状态。如果在连续的迭代中,根和极点的位置变化很小,可以认为算法已经收敛。

📚2 运行结果

主函数部分代码:

close all;
clear all;
clc;
format long;
restoredefaultpath
​
%choose the example
%addpath('0_rational_function');
addpath('3_graphene_transmission_line');
​
analysis_parameters %input file
NewNodesCoord = rect_dom(xb,xe,yb,ye); %generates the initial mesh
​
%initialization of the variables
it=0;
NodesCoord=[];
PreviousIt.EdgesToSplit=[];
PreviousIt.Elements=[];
PreviousIt.GradeInElements=[];
NrOfNodes = size(NodesCoord,1);
​
%%%% analysis modes    
%Mode = 0 - Self-adaptive Mesh Generator 
%Mode = 1 - Regular Global complex Roots and Poles Finding algorithm -> https://github.com/PioKow/GRPF
%Mode = 2 - The result of aborted analysis
%Mode = 3 - The final result (accuracy achieved)
%%%%
%% general loop
while it<ItMax && Mode<2
​%function evaluationNodesCoord=[NodesCoord ; NewNodesCoord];disp(['Evaluation of the function in ',num2str(size(NewNodesCoord,1)),' new points...'])
​TimerOfFunEval = tic;for Node=NrOfNodes+1:NrOfNodes+size(NewNodesCoord,1)FunctionValues(Node,1)=fun(NodesCoord(Node,:),Optional);Quadrants(Node,1) = vinq( FunctionValues(Node,1) );endif(size(NewNodesCoord,1)>0)SingleNodeTime = toc(TimerOfFunEval)/size(NewNodesCoord,1);elseSingleNodeTime=NaN;end
​%%% meshing operationNrOfNodes=size(NodesCoord,1);disp(['Triangulation and analysis of ',num2str(NrOfNodes),' nodes...'])DT = delaunayTriangulation(NodesCoord(:,1),NodesCoord(:,2));Elements = DT.ConnectivityList;Edges = edges(DT);
​%phase analysisPhasesDiff=abs(Quadrants(Edges(:,1))-Quadrants(Edges(:,2)));PhasesDiff(PhasesDiff==3)=1;CandidateEdges=Edges(PhasesDiff==2|isnan(PhasesDiff),:);
​%Self-adaptive Mesh Generator Modeif(Mode==0)[EdgesToSplit,GradeInElements] = adaptive(NodesCoord,FunctionValues,DT,Elements,Edges,CandidateEdges,PreviousIt,Tol);PreviousIt.EdgesToSplit=EdgesToSplit;PreviousIt.Elements=Elements;PreviousIt.GradeInElements=GradeInElements;
​if(isempty(EdgesToSplit))Mode = 3;elseif(NrOfNodes>NodesMin && NrOfNodes<NodesMax)%visualizationvis(NodesCoord, Edges, Quadrants,PhasesDiff)disp(['Do you want to continue the SA mode and add new ',num2str(size(EdgesToSplit,1)),' points?'])disp(['Estimated time of the analysis: ',num2str(floor(size(EdgesToSplit,1)*SingleNodeTime)),' s'])Mode=-1;while Mode<0Prompt = 'Select analysis mode -> Adaptive/Regular/Cancel? [a]/[r]/[c]';str = input(Prompt,'s');if(str=="r")Mode=1;elseif(str=="c")Mode=2;elseif(str=="a")Mode=0;endendelseif(NrOfNodes>=NodesMax)Mode = 1;endif(Mode==1)disp("The mode has been switched to the regular GRPF")disp('---------------------')endend
​if(Mode==1) %Regular Global complex Roots and Poles Finding algorithm[EdgesToSplit, Mode] = regular(NodesCoord,Tol,DT,Elements,CandidateEdges);end

🎉3 参考文献

[1]王天荆,李秀琴,白光伟等.无线传感器网络中基于自适应网格的多目标定位算法[J].通信学报,2019,40(07):197-207.

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码实现

相关文章:

用于全局复根和极点查找算法的自适应网格生成器(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

修改Linux中SSH的端口

文章目录 修改Linux中SSH的端口Linux中默认的ssh端口关闭SELinux测试新端口 修改Linux中SSH的端口 Linux中默认的ssh端口 使用root用户操作 修改前先备份ssh_config cp /etc/ssh/sshd_config /etc/ssh/sshd_config_date "%Y%m%d%H%M%S"修改配置文件&#xff0c;找…...

Ansible从入门到精通【六】

大家好&#xff0c;我是早九晚十二&#xff0c;目前是做运维相关的工作。写博客是为了积累&#xff0c;希望大家一起进步&#xff01; 我的主页&#xff1a;早九晚十二 专栏名称&#xff1a;Ansible从入门到精通 立志成为ansible大佬 ansible templates 模板&#xff08;templa…...

国企的大数据岗位方向的分析

现如今大数据已无所不在&#xff0c;并且正被越来越广泛的被应用到历史、政治、科学、经济、商业甚至渗透到我们生活的方方面面中&#xff0c;获取的渠道也越来越便利。 今天我们就来聊一聊“大屏应用”&#xff0c;说到大屏就一定要聊到数据可视化&#xff0c;现如今&#xf…...

【MySQL--->数据类型】

文章目录 [TOC](文章目录) 一、数据类型分类二、整型类型三、bit(位)类型四、float类型五、decimal类型六、char和varchar类型1.char类型2.varchar3.char与varchar的区别 七、日期与时间类型八、enum和set 一、数据类型分类 二、整型类型 数值类型有数据存储上限,而且每个类型都…...

Ceph部署

一、存储基础 1&#xff09;单机存储设备 ●DAS&#xff08;直接附加存储&#xff0c;是直接接到计算机的主板总线上去的存储&#xff09; IDE、SATA、SCSI、SAS、USB 接口的磁盘 所谓接口就是一种存储设备驱动下的磁盘设备&#xff0c;提供块级别的存储 ●NAS&#xff08;…...

打工日记-Vue3+Ts二次封装el-table

el-table是elementUI中的表格组件&#xff0c;在后台把管理系统中&#xff0c;也是一个比较常用的组件&#xff0c;目前有一个比较好的开源项目ProTable&#xff0c;这个项目做的很好&#xff0c;集成了搜索&#xff0c;表格&#xff0c;分页器功能很强大。但在我的实际使用中也…...

funbox3靶场渗透笔记

funbox3靶场渗透笔记 靶机地址 https://download.vulnhub.com/funbox/Funbox3.ova 信息收集 fscan找主机ip192.168.177.199 .\fscan64.exe -h 192.168.177.0/24___ _/ _ \ ___ ___ _ __ __ _ ___| | __/ /_\/____/ __|/ __| __/ _ |/ …...

springcloud3 hystrix实现服务降级,熔断,限流以及案例配置

一 hystrix的作用 1.1 降级&#xff0c;熔断&#xff0c;限流 1.服务降级&#xff1a; A方案出现问题&#xff0c;切换到兜底方案B&#xff1b; 2.服务熔断&#xff1a;触发规则&#xff0c;出现断电限闸&#xff0c;服务降级 3.服务限流&#xff1a;限制请求数量。 二 案例…...

ComponentOne Studio ASP.NET MVC Crack

ComponentOne Studio ASP.NET MVC Crack FlexReport增强功能 添加了对在Microsoft Windows上部署Microsoft Azure的支持。 添加了对显示嵌入字体的支持。 .NET标准版的经典C1PDF(Beta版) GrapeCity的经典C1Pdf库现在提供了基于Microsoft.NET标准的版本。在任何.NET应用程序(包括…...

OPENCV C++(十一)

鼠标响应函数 //鼠标响应函数 void on_mouse(int EVENT, int x, int y, int flags, void* userdata) {Mat hh;hh *(Mat*)userdata;switch (EVENT){case EVENT_LBUTTONDOWN:{vP.x x;vP.y y;drawMarker(hh, vP, Scalar(255, 255, 255));//circle(hh, vP, 4, cvScalar(255, 255…...

ES使用心得

客户端 Transport Client已经快要废弃了&#xff0c;官方推荐使用High Level REST Client。 常用命令 启停 systemctl start elasticsearch systemctl stop elasticsearch节点状态 curl http://myservice1:9200/_cat/nodes?vip heap.percent ram.percent cpu l…...

Stable Diffusion - 幻想 (Fantasy) 风格与糖果世界 (Candy Land) 人物提示词配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132212193 图像由 DreamShaper8 模型生成&#xff0c;融合糖果世界。 幻想 (Fantasy) 风格图像是一种以想象力为主导的艺术形式&#xff0c;创造了…...

部署K8S集群

目录 一、环境搭建 1、准备环境 2、安装master节点 3、安装k8s-master上的node 4、安装配置k8s-node1节点 5、安装k8s-node2节点 6、为所有node节点配置flannel网络 7、配置docker开启加载防火墙规则允许转发数据 二、k8s常用资源管理 1、创建一个pod 2、pod管理 一、…...

在时间和频率域中准确地测量太阳黑子活动及使用信号处理工具箱(TM)生成广泛的波形,如正弦波、方波等研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

一百五十四、Kettle——Linux上安装Kettle9.3(踩坑,亲测有效,附截图)

一、目的 由于kettle8.2在Linux上安装后&#xff0c;共享资源库创建遇到一系列问题&#xff0c;所以就换成kettle9.3 二、kettle版本以及安装包网盘链接 kettle9.3.0安装包网盘链接 链接&#xff1a;https://pan.baidu.com/s/1MS8QBhv9ukpqlVQKEMMHQA?pwddqm0 提取码&…...

PackageNotFoundError: No package metadata was found for bitsandbytes解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

uni-app和springboot完成前端后端对称加密解密流程

概述 使用对称加密的方式实现。前端基于crypto-js。uni-app框架中是在uni.request的基础上&#xff0c;在拦截器中处理的。springboot在Filter中完成解密工作。 uni-app 项目中引入crypto-js。 npm install crypto-js加密方法 const SECRET_KEY CryptoJS.enc.Utf8.parse(…...

【Unity造轮子】制作一个简单的2d抓勾效果(类似蜘蛛侠的技能)

前言 欢迎阅读本文&#xff0c;本文将向您介绍如何使用Unity游戏引擎来实现一个简单而有趣的2D抓勾效果&#xff0c;类似于蜘蛛侠的独特能力。抓勾效果是许多动作游戏和平台游戏中的常见元素&#xff0c;给玩家带来了无限的想象和挑战。 不需要担心&#xff0c;即使您是一…...

Unity 人物连招(三段连击)

一&#xff1a; 连招思路 首先人物角色上有三个攻击实例对象 Damage,每一个damage定义了攻击的伤害值&#xff0c;攻击距离&#xff0c;触发器名称&#xff0c;伤害的发起者&#xff0c;攻击持续时间&#xff0c;攻击重置时间&#xff0c;伤害的碰撞框大小等字段&#xff1a; …...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...