爬山算法matlab程序,爬山搜索算法编程
clear;
clc;
u0=4*pi*10^(-7);%真空磁导率/(H/m)
n1=60;%线圈匝数
n2=60;%线圈匝数
r1=30;%线圈半径/(cm)
r2=30;%线圈半径/(cm)
c=0;
R1=20;%电路内电阻
R2=20;%电路内电阻
RL=50;%负载电阻
w=2*pi;
Us=1;%电源电压
t=linspace(0,40,80);
h=linspace(0,40,80);
[T,H]=meshgrid(t,h);
fun=@(a,b,T,H)(cos(a).*cos(b)+sin(a).*sin(b).*cos(c))./((r1*cos(a)-r2*cos(b)).^2+(r1*sin(a).*cos(c)+T-r2*sin(b)).^2+(-r1*sin(a).*sin(c)+H).^2).^0.5;
M=(u0*r1*r2*n1*n2/4*pi)*arrayfun(@(T,H)integral2(@(a,b)fun(a,b,T,H),0,2*pi,0,2*pi),T,H);
P=((w*M*Us).^2)*RL./((R1*(R2+RL)+(w*M).^2)).^2;
n=(w*M).^2*RL*100./(R1*(R2+RL).^2+(R2+RL)*(w*M).^2);
surf(T,H,n);
hold on;
title('传输效率n随轴向距离t、径向距离h变化关系');
x1=xlabel('轴向距离t/(cm)');%x轴标题
x2=ylabel('径向距离h/(cm)');%y轴标题
x3=zlabel('传输效率η/(%)');%z轴标题
format short;
% 定义初始节点(t0,h0)
t0=5;h0=5;
% 定义近邻节点范围
dt=5;dh=5;
% 定义近邻节点划分份数
nT=5;nH=5;
% 定义计算精度
ep=1e-4;
gg=1;
grid on;
title(['爬山算法 ——','第',num2str(gg),'次搜素']);
hold on;
val1=0;
FUN=@(a,b,t0,h0)(cos(a).*cos(b)+sin(a).*sin(b).*cos(c))./((r1*cos(a)-r2*cos(b)).^2+(r1*sin(a).*cos(c)+t0-r2*sin(b)).^2+(-r1*sin(a).*sin(c)+h0).^2).^0.5;
M1=(u0*r1*r2*n1*n2/4*pi)*arrayfun(@(t0,h0)integral2(@(a,b)FUN(a,b,t0,h0),0,2*pi,0,2*pi),t0,h0)
n10=(w*M1).^2*RL*100./(R1*(R2+RL).^2+(R2+RL)*(w*M1).^2)
plot3(t0,h0,n10,'r.');
gg=1;%gg为搜索次数
dlt=1;%dlt为函数差值
hold on;
while(dlt>ep) %ep为计算精度
nt=linspace(t0-dt,t0+dt,nT*gg);
nh=linspace(h0-dh,h0+dh,nH*gg);
[ntt,nhh]=meshgrid(nt,nh);
Fun=@(a,b,nt,nh)(cos(a).*cos(b)+sin(a).*sin(b).*cos(c))./((r1*cos(a)-r2*cos(b)).^2+(r1*sin(a).*cos(c)+nt-r2*sin(b)).^2+(-r1*sin(a).*sin(c)+nh).^2).^0.5;
M2=(u0*r1*r2*n1*n2/4*pi).*arrayfun(@(nt,nh)integral2(@(a,b)Fun(a,b,nt,nh),0,2*pi,0,2*pi),ntt,nhh)
n22=(w*M2).^2*RL*100./(R1*(R2+RL).^2+(R2+RL)*(w*M2).^2)
% 求解近邻节点最大值及其位置
[val2,loc]=max(n22(:));
dlt=abs(n10-val2);
t0=ntt(loc);
h0=nhh(loc);
val1=val2;
plot3(t0,h0,val2,'r.');
title(['爬山算法 ——','第',num2str(gg),'次搜素']);
pause(0.1); % 暂停0.1
gg=gg+1;
end
% 绘制最终极大值点
plot3(t0,h0,val2,'ro');
hold off
爬山算法matlab程序,爬山搜索算法编程相关推荐
- 爬山算法matlab程序,爬山算法和模拟退火算法
爬山算法 大体思路 爬山算法即是模拟爬山的过程,随机选择一个位置爬山,每次朝着更高的方向移动,直到到达山顶 具体操作 把当前的节点和要走的节点的值进行比较. 如果当前节点是最大的,那么不进行操作:反之 ...
- 极值滤波matlab,极值滤波算法MATLAB程序及处理结果对比
<极值滤波算法MATLAB程序及处理结果对比>由会员分享,可在线阅读,更多相关<极值滤波算法MATLAB程序及处理结果对比(5页珍藏版)>请在人人文库网上搜索. 1.极值滤波算 ...
- 亮度均匀性 matlab,求:亮度保持的夜景图像直方图均衡算法 matlab程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 求:亮度保持的夜景图像直方图均衡算法 matlab程序 我是大四学生,最近在做一个论文,头疼死了,不知道这个论文的程序怎么写.这里是matlab论坛 我想 ...
- 标准差分进化算法matlab程序实现(转载)
标准差分进化算法matlab程序实现 自适应差分演化算法方面的Matlab和C++代码及论文 差分进化算法 DE-Differential Evolution matlab练习程序(差异演化DE) [ ...
- 鲍威尔法源程序码matlab,鲍威尔算法matlab程序f.doc
鲍威尔算法matlab程序f.doc functionf=fun(x)f=10*(x(1)+x(2)-5)^2+(x(1)-x(2))^2;functionf=fx(x0,alpha,s)x1=x0+ ...
- 风电功率预测优化算法MATLAB程序基于改进神经网络
风电功率预测优化算法MATLAB程序基于改进神经网络 (1) 该程序为基于改进神经网络的风电功率预测优化算法程序,风电预测程序,期刊论文源程序,配有该论文. (2) 该程序所用的ICA-BP 神经网络 ...
- C++调用MATLAB程序进行混合编程以及常见问题解决
C++调用MATLAB程序进行混合编程以及常见问题解决 C++调用MATLAB程序方法 MATLAB打包生成DLL动态链接库 VS2017环境配置 程序调用 常见问题解决 参考 C++调用MATLAB ...
- svm算法 matlab,SVM算法matlab程序
经典SVM算法matlab程序\svm\binomial.m 经典SVM算法matlab程序\svm\centrefig.m 经典SVM算法matlab程序\svm\cmap.mat 经典SVM算法m ...
- 基2FFT算法matlab程序编写,按时间抽取的基2FFT算法分析及MATLAB实现
按时间抽取的基2FFT 算法分析及MATLAB 实现 1 DIT-FFT 算法的基本原理 有限长序列x (n )的N 点DFT 定义为:∑-==10 )()(N n n k N W n x k X , ...
最新文章
- GHOST系统封装详细图文教程
- No bean named 'dataSource' is defined
- 【数据结构笔记】B树和B+树的实现,哈希查找,STL中的hash_map和unordered_map容器用法
- React开发(124):ant design学习指南之form中的validateFields
- python 文件和目录 当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- leetcode - 120. 三角形最小路径和
- wait_event_interruptible 在驱动中的应用
- echarts时间轴传什么格式_职场必看,使用Excel实现大事件时间轴的做法,不看后悔...
- tp5 linux定时,TP5 用cron实现linux定时任务
- Linux 下源代码阅读工具 —— vim + TagList + CTags
- python实现不同图像数据的叠加处理、实现多张图像数据以子图形式组合为新的图像数据【图像叠加、图像组合】
- linux文件权限中 chmod、u+x、u、r、w、x分别代表什么
- Excel:仅选择可见的单元格
- linux下xz格式,【转载】Linux下tar.xz格式文件的解压方法
- SQL Injection的猥琐技巧
- python进程/线程/协成
- HOJ 1568 Fibonacci(对数,数列通项公式)
- SNF开发平台-SNF.CodeGenerator-升级生成BS页面代码-支持视图-数据库配置-快速开发者的利器...
- 有太多工作要做,传蚂蚁集团IPO可能推迟至2022年
- Pytorch问题及解决:‘lengths‘ argument should be a 1D CPU int64 tensor, but got 1D cuda:0 Long tensor