免费系统小说大全,乐清手机网站优化推广,丽水网站seo,广州市建设注册中心网站首页#x1f4a5;#x1f4a5;#x1f49e;#x1f49e;欢迎来到本博客❤️❤️#x1f4a5;#x1f4a5; #x1f3c6;博主优势#xff1a;#x1f31e;#x1f31e;#x1f31e;博客内容尽量做到思维缜密#xff0c;逻辑清晰#xff0c;为了方便读者。 ⛳️座右铭欢迎来到本博客❤️❤️ 博主优势博客内容尽量做到思维缜密逻辑清晰为了方便读者。 ⛳️座右铭行百里者半于九十。 本文目录如下 目录 1 概述 2 运行结果编辑 3 参考文献 4 Matlab代码实现 1 概述
SA-GRPF算法旨在找到固定区域中函数的所有零点和极点。该程序包括一种为常规GRPF算法创建自适应初始网格的方法。所提出的解决方案使用梯度计算来确定需要细化的网格区域包括零点和极点接近的区域。可以分析一类函数并且可以考虑任意形状的搜索区域。如所附示例所示自适应网格允许使用更少的样本更快、更准确地分析函数。该算法不仅限于计算电动力学。它可用于类似的问题例如声学、控制理论和量子力学。
文件简介
SA_GRPF.m - 启动程序analysis_parameters.m - 包含分析的所有参数例如
矩形域大小XBXEYBYE)精度方法两个可用的自适应和常规GRPF - 模式)可选趣味参数可选)缓冲区ItMax NodesMin NodesMax)
fun.m - 计算根和极的函数的定义运行示例在 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
it0;
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 itItMax Mode2
%function evaluationNodesCoord[NodesCoord ; NewNodesCoord];disp([Evaluation of the function in ,num2str(size(NewNodesCoord,1)), new points...])
TimerOfFunEval tic;for NodeNrOfNodes1:NrOfNodessize(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);elseSingleNodeTimeNaN;end
%%% meshing operationNrOfNodessize(NodesCoord,1);disp([Triangulation and analysis of ,num2str(NrOfNodes), nodes...])DT delaunayTriangulation(NodesCoord(:,1),NodesCoord(:,2));Elements DT.ConnectivityList;Edges edges(DT);
%phase analysisPhasesDiffabs(Quadrants(Edges(:,1))-Quadrants(Edges(:,2)));PhasesDiff(PhasesDiff3)1;CandidateEdgesEdges(PhasesDiff2|isnan(PhasesDiff),:);
%Self-adaptive Mesh Generator Modeif(Mode0)[EdgesToSplit,GradeInElements] adaptive(NodesCoord,FunctionValues,DT,Elements,Edges,CandidateEdges,PreviousIt,Tol);PreviousIt.EdgesToSplitEdgesToSplit;PreviousIt.ElementsElements;PreviousIt.GradeInElementsGradeInElements;
if(isempty(EdgesToSplit))Mode 3;elseif(NrOfNodesNodesMin NrOfNodesNodesMax)%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 Mode0Prompt Select analysis mode - Adaptive/Regular/Cancel? [a]/[r]/[c];str input(Prompt,s);if(strr)Mode1;elseif(strc)Mode2;elseif(stra)Mode0;endendelseif(NrOfNodesNodesMax)Mode 1;endif(Mode1)disp(The mode has been switched to the regular GRPF)disp(---------------------)endend
if(Mode1) %Regular Global complex Roots and Poles Finding algorithm[EdgesToSplit, Mode] regular(NodesCoord,Tol,DT,Elements,CandidateEdges);end3 参考文献
[1]王天荆,李秀琴,白光伟等.无线传感器网络中基于自适应网格的多目标定位算法[J].通信学报,2019,40(07):197-207. 文章中一些内容引自网络会注明出处或引用为参考文献难免有未尽之处如有不妥请随时联系删除。 4 Matlab代码实现