背景介绍:

这学期我们开通了高大上的WSN课,老师是海龟,出题总是搞原创,对于习惯于用百度一下你就知道的90后,这可苦了我和我的小伙伴们(WZ,ZHR,YCX),于是不得不重操那个大一时候我们会一个一个字母读的MATLAB,废话不多说,直接上题目。

一、问题描述

传感器网络随机部署在单位正方形内,假设通信半径=覆盖半径,求出WSN覆盖率

A WSN randomlydeployed in a unit square. Nodecommunication radius=Node coverage radius

Determine COMPOWto ensure network connectivity.Find the WSN coverageratio

二、问题分析

首先,建立一个WSN模型,假设在单位正方形内随机部署100个传感器,逐渐增加通信半径,使WSN网络恰好连通,然后将单位正方形虚拟分割成N*N个方格,当N足够大的时候,微积分思想出现了,以每个交叉点代表小方格,判断交叉点是否被覆盖来解决覆盖率问题,在这里假设N=1000.

关于WSN网络是否连通,我们首先判断两点直接的连接情况,构建邻接矩阵,采用矩阵幂算法,对于邻接矩阵M,有S矩阵S=M+M^2+M^3+...+M^(N-1);其中N是M的行数或列数,若S中有元素为零,则不连通。

网络连通性参考文献:《基于邻接矩阵图的连通性判定准则》(贾进章,刘剑,宋寿森辽宁工程技术大学学报 第22卷第2期 2003年4月)

WSN的连通性判断解决之后,WSN覆盖率就可以用单位正方形交叉点被覆盖总数除以所有交叉点。

三、MATLAB代码展示

N=100;%在单位正方形内部署100个点

M=(1000+1)*(1000+1);

r=0;

flag = zeros(1,M);%用来标记每个方格交叉点是否被覆盖

%%Increasing COMPOW gradually to approximate the minimum COMPOW (below)

x=rand(1,N);%传感器位置横坐标

y=rand(1,N);%传感器位置纵坐标

adjacencyMatrix=zeros(N);%定义传感器互联邻接矩阵

for R=0:0.01:1

for i=1:1:N

for j=(i+1):1:N

if (x(i)-x(j))^2+(y(i)-y(j))^2

adjacencyMatrix(i,j)=1;

adjacencyMatrix(j,i)=1;

end

end

end %此时已经产生了传感器的邻接矩阵

S=zeros(N);

for m=1:1:N-1

S=S+adjacencyMatrix^m; %对于M,有S矩阵

%S=M+M^2+M^3+...+M^(N-1);

%其中N是M的行数或列数

%若S中有元素为零,则不连通;

%S中无零,则连通,

%《基于邻接矩阵图的连通性判定准则》查到的

if all(all(S))==1 %判断S向量是不是全为非零元素

r=R;

break;

end

end

if(r~=0)

break;

end

end

r %Increasing COMPOW gradually to approximate the minimum COMPOW (above)

angle=0:pi/50:2*pi;

for k=1:N

figure(1);

plot(r*cos(angle)+x(k),r*sin(angle)+y(k));

plot(x(k),y(k),'.');

axis([0,1,0,1]);

axis equal;

hold on;

figure(2);

plot(r*cos(angle)+x(k),r*sin(angle)+y(k));

plot(x(k),y(k),'.');

fill(r*cos(angle)+x(k),r*sin(angle)+y(k),'b');

axis([0,1,0,1]);

axis equal;

hold on;

end %画图

for i=0:0.001:1

for j=0:0.001:1 %把单位正方形分成1000*10000个表格

for m=1:N

%鉴于乘法运算速度要慢于加法运算,这里是对算法进行优化

%通过第一个if排除掉一些传感器,减少运算量

if((i-r)

if((x(m)-i)^2+(y(m)-j)^2

flag(int32(i*1000*1001+j*1000)+1) = 1;

break;

end

end

end

end

end

sum(flag==1)/M %求出覆盖率

四、实验结果

matlab计算wsn覆盖率,WSN覆盖率求解相关推荐

  1. 方程组在原点附近解matlab,Matlab计算题:求解下列非线性方程组在原点附近的根: 9x^2 + 36y^2 + 4z^2 =36 X^2 -2y^2- 20z =0 16x –...

    Matlab计算题:求解下列非线性方程组在原点附近的根: 9x^2 + 36y^2 + 4z^2 =36 X^2 -2y^2- 20z =0 16x – 关注:290  答案:2  mip版 解决时间 ...

  2. 马克维茨模型matlab求解,马克维茨投资组合模型的matlab计算

    钱骏洲,等:马克维茨投资组合模型的 matlab计算 金融营销 马克 维茨 投 资组 合模 型 的 matlab计算 钱骏洲 ,倪菁菁 (1.重庆邮电大学 光电工程学院,重庆 400065: 2.贵州 ...

  3. 反三角函数求解matlab,关於反三角函数atan2的使用 使用Matlab计算反三角函数atan2...

    三角函数中atan2是如何计算的atan2(y,x)返回的是弧度值,两者如果相同则是0.785--,既45度 我想问的atan2(y,x)是表示X-Y平面上所对应的(x,y)坐标的角度,它的值域范围是 ...

  4. 共轭梯度下降法matlab,用matlab实现最速下降法,牛顿法和共轭梯度法求解实例

    用matlab实现最速下降法,牛顿法和共轭梯度法求解实例 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实验的题目和要求 1.所属 ...

  5. 2021-05-25 传递函数阶跃响应指标的matlab计算

    传递函数阶跃响应指标的matlab计算 对于一个常规的传递函数,我们在进行了阶跃仿真后经常需要给出对应的响应指标, sys = tf(1,[1 2 3]) y = step(sys) figure p ...

  6. matlab 计算指北角,用MATLAB如何计算出矩形区域内的最大值?

    在MATLAB图像处理工具箱(Image Processing Toolbox)的GUI函数中,有一些用来在图像或坐标轴上选择矩形或椭圆区域的函数,使用示例如下: 第一行代码:显示matlab内置的一 ...

  7. matlab定积分怎么输入,Matlab计算定积分的操作内容讲解

    许多伙伴还不晓得Matlab计算定积分的操作,而下面笔者就分享了Matlab计算定积分的操作内容,希望有需要的朋友都来共同学习哦. 打开Matlab,找到Matlab的命令窗口,点击进入,如图,当然也 ...

  8. 光纤模式分布 matlab,matlab计算单模光纤模式分布(公布源代码及参考文献)

    最近在使用matlab计算单模光纤纤芯模及包层模模场分布时,有一些问题一直悬而未决,多次咨询原作者后虽解决了部分问题,但是余下的问题原作者也不理我了,特发此贴以广交学习光纤方面的同学.老师及科研人员, ...

  9. MATLAB进行不定积分和定积分的求解

    声明:本文章中数据来自清风老师数学建模课程 文章目录 MATLAB进行不定积分和定积分的求解 1.不定积分的求解 2.定积分的求解 MATLAB进行不定积分和定积分的求解 1.不定积分的求解 使用in ...

  10. 二维静电场有限元matlab,利用MATLAB计算电磁场有关分布

    <利用MATLAB计算电磁场有关分布>由会员分享,可在线阅读,更多相关<利用MATLAB计算电磁场有关分布(17页珍藏版)>请在人人文库网上搜索. 1.电磁场实验报告实验一 模 ...

最新文章

  1. AI一分钟 | 阿里NLP技术连破两项世界纪录,玉泉一号AI试验卫星明年发射
  2. 孩子数学成绩不好怎么办_孩子数学成绩不好,家长可以这样做
  3. R语言文本挖掘NASA数据网络分析,tf-idf和主题建模
  4. 皮一皮:你更想成为哪个身材...
  5. MemCache内存缓存系统
  6. CRM和ERP的Sales Organization的映射关系
  7. koa --- restful规范及其栗子
  8. 「递归」的正确打开方式,看不懂你打我~
  9. (王道408考研操作系统)第三章内存管理-第一节2:内存管理的基本概念
  10. Object(包装对象)
  11. Flex4之皮肤定制
  12. 《Web Hacking 101》中的链接整理
  13. C程序设计语言现代方法06:循环
  14. Silverlight中需要用到模板选择器(DataTemplateSelector)的替代方案
  15. jQuery:实现折叠菜单二级联动动画
  16. 上海软星解散的前因后果
  17. AT070TN92 群创工业液晶屏7寸宽温工控屏
  18. Android开发 Studio4.0 APP logo 适配
  19. PyTorch学习(十一)encoded,decoded
  20. backgroundLinearGradient线性渐变制作折角效果

热门文章

  1. 大数据新算法在个人信用风险评估模型中使用效果的评估
  2. 结对编程项目——最长英语单词链
  3. python包装好后在pycharm IED中无法导入
  4. WS2812RGB灯的控制学习
  5. 最新哔哩哔哩视频弹幕播放器源码+带后台/亲测无错误
  6. 怎么批量下载哗哩哗哩B站主页视频
  7. modbus串口调试助手 MODBUS调试 智能仪表通讯必备软件 RS485串口通讯
  8. 渗透测试(面试)如何获取一个网站的真实ip
  9. 用Matlab实现猫变虎简单动画
  10. circular 字体_Circular Regular