2023国赛B题:多波束测线问题 评阅要点完整分析

news2024/10/7 18:22:57

本文所有分析仅代表个人观点,不代表官方,仅供参考
制作人:川川徒弟 demoo
CSDN:川川菜鸟
公众号:川川带你学AI

官方评卷要点
  全文采用非编程做法
  需要工具: geogebra、matlab工具箱
  注: 本文全文不考虑测线不平行的复杂情况

问题一

问题一

  该题在解析中要求重新给出覆盖宽度、覆盖率的定义,但实际上我们可以直接沿用原定义,只不过覆盖率在计算时的参照对象改为自己,修正后的定义如下:
η i + 1 = 1 − d w i \eta_{i+1}=1-\frac{d}{w_i} ηi+1=1wid
  接着操作就十分简单了,坡面方程已知,射线所过定点已知,射线斜率已知,那射线与坡面的交点坐标自然也已知,其他的相关量也可一并得出,接着直接用geogebra进行绘图测量即可:
geogebra操作示意图

  如上图所示,可以通过这种稍繁琐的方法求出所有的相关量,完善表格。

问题二

问题二

  要点所给的方法已经是相当简单的了,当测线不再平行于坡面时,坡面相对于测线的角度也会发生变化,具体的转换公式如下:
tan ⁡ γ = x tan ⁡ 1. 5 ∘ x 1 + tan ⁡ 2 β = tan ⁡ 1. 5 ∘ 1 + tan ⁡ 2 β \tan \gamma=\frac{x \tan 1.5^{\circ}}{x \sqrt{1+\tan ^2 \beta}}=\frac{\tan 1.5^{\circ}}{\sqrt{1+\tan ^2 \beta}} tanγ=x1+tan2β xtan1.5=1+tan2β tan1.5
  推导过程较为繁琐这里就不多赘述了,笔者采用的是建系,从解析几何的角度进行考量,虽然结果上问题不大但是过程较为繁琐并且和要点偏离较远,这里就不多阐述了,紧接着重复第一问步骤即可。

问题三

问题三

  要点只阐述了结果,这里分两步进行细致阐述:

Part 1.理论证明

  先证明为什么在测线平行时,沿着等深线方向布线是最优的布线方案:

条带示意图

Step1.布线原则(行为逻辑)
  由第二问可知当β为0时,条带形状为一矩形或者一梯形,浅水区带宽较小为上底,深水区带宽较长为下底,布线行为遵循一个原则,从最浅处,最距离直线的最远处开始布线,第一条线所形成条带刚好能覆盖边界线或顶点,所有的线均遵从在满足覆盖率满足要求的前提下尽可能的小,这样可以保证条带的面积得到充分的利用,所需的条数尽可能的少。

Step2.沿着等深线布线所需要的条数是最少的:
  证明这一点时上面的图能发挥作用了,依题意所有区域都要被条带覆盖,为了方便分析,不妨取一条东西走向的边界线进行分析,再观察上图,右侧的黑色线代表条带的宽度,可以发现在同一点,不同角度所形成的条带所成的图形为一椭圆,可以发现当β为90°时其为长轴,带宽长度最长,所需的条数最小。

Step3.等深线布线的总测线长度是最小的:
  上面我们证明了沿等深线布线所需条数是最小的,但仅凭条数并不足以说明这样排布的总条数最小,我们暂且不考虑重复率超过限制导致的方案作废,当β角不为0时,若不考虑截断,总长度是增加的,考虑截断,可以发现左下角被截断部分分布较疏,而右上角新增部分分布较密,权衡之后,总长度还是增加了,所以再β为0时,沿着等深线布线是最优方案。

Part 2.实际操作

  接下来的工作就十分简单的,可以在第二问的基础上从最浅处开始布线,始终保持10%的最低覆盖率往下布线。

问题四

问题四

  依照要点,应当分块拟合,再按照第三问做法开始布线即可,

  那本问唯一的难点就是分块拟合了,利用matlab的CFtool工具箱即可轻松解决。

  1. 手动将曲面分割为任意块
  2. 分批次导入x,y和z
  3. 采用多项式进行一次(平面)拟合

拟合示意图

  上图为四分之一曲面的拟合结果,可以发现拟合效果仍有欠缺,仅为0.74,采用二次可以将拟合R^2提高至0.96但是计算难度会大很多,就先按答案来吧。
  上图平面已拟合完毕,直接按照第三问去做即可。

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

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

相关文章

02 java ---- Android 基础app开发

目录 相对布局 显示一个美女 显示两个美女 安卓APP启动过程 安卓布局控件 常用布局之相对布局 常用布局之相对布局 padding和margin 按键美化 常用布局之线性布局 安卓按键响应的几种方式 直接设置按键的onClick绑定的函数 自定义类实现按键监听事件的接口 匿名内…

字节一面:说说var、let、const之间的区别

前言 最近博主在字节面试中遇到这样一个面试题,这个问题也是前端面试的高频问题,作为一名前端开发工程师,熟练掌握js是我们的必备技能,var、let、const之间的区别我们也得熟练掌握,博主在这给大家细细道来。 &#x1f…

Linux驱动中断与时间篇——高精度定时器hrtimer

文章目录 前言相关接口使用示例单次定时循环定时 前言 低分辨率定时器是用jiffies来定时的,所以会受到HZ影响,如果HZ为200,代表每秒种产生200次中断,那一个jiffies就需要5毫秒,所以精度为5毫秒。 如果精度需要达到纳秒…

如何实现一个简单的Promise/A+规范的Promise库?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ Promise/A规范的Promise⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚…

uni-app:通过ECharts实现数据可视化-如何引入项目

效果 引入文件位置 代码 <template><view id"myChart"></view> </template> <script> import echarts from /static/js/echarts.js // 引入文件 export default {mounted() {// 初始化EChartsconst myChart echarts.init(document…

【JVM 内存结构丨堆】

堆 定义内存分配特点:分代结构对象分配过程Full GC /Major GC 触发条件引用方式堆参数堆内存实例 主页传送门&#xff1a;&#x1f4c0; 传送 定义 JVM&#xff08;Java Virtual Machine&#xff09;堆是Java应用程序运行时内存管理的重要组成部分之一。堆内存用于存储Java对象…

如何区分和选择EML、DML两种激光器

EML&#xff08;External Cavity Laser&#xff09;和DML&#xff08;Distributed Feedback Laser&#xff09;两种激光器在光模块中都扮演着重要的角色&#xff0c;用于光通信和其他光电子应用。本文跟随易天光通信来了解一下它们在光模块中的应用吧&#xff01; 一、什么是E…

excel中的引用与查找函数篇3

1、INDEX(array,row_num,[col_num])&#xff1a;获取指定范围中指定行号和列号对应的数据 index(查询范围,行号,列号) 行号和列号是相对选中查询范围来写的&#xff1a;分别把第二行第三列的数据和第四行第二列的数据查找出来。 数据是单行或单列&#xff0c;后面只需要给一个参…

C【文件操作】

1. 什么是文件 磁盘上的文件是文件。 但是在程序设计中&#xff0c;我们一般谈的文件有两种&#xff1a;程序文件、数据文件&#xff08;从文件功能的角度来分类的&#xff09;。 1.1 程序文件 包括源程序文件&#xff08;后缀为.c&#xff09;,目标文件&#xff08;windows环…

Golang Array 数组使用注意事项和细节

在go数组当中&#xff0c;长度是数据类型的一部分 [3]int *[3]int 数组使用注意事项和细节 1) 数组是多个相同类型数据的组合&#xff0c;一个数组一旦声明/定义了&#xff0c;其长度是固定的&#xff0c;不能动态变化 var a [3]int a[0] 1.1 这样是不行的&#xff0c;必…

“对象创建”模式

通过“对象创建”模式绕开new&#xff0c;来避免对象创建 (new) 过程中所导致的紧耦合(依赖具体类)从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 典型模式 Factory MethodAbstract FactoryPrototypeBuilder Factory Method 动机 (Motivation) 在软件系统中&am…

【数据结构】二叉树的层序遍历(四)

目录 一&#xff0c;层序遍历概念 二&#xff0c;层序遍历的实现 1&#xff0c;层序遍历的实现思路 2&#xff0c;创建队列 Queue.h Queue.c 3&#xff0c;创建二叉树 BTree.h BTree.c 4&#xff0c;层序遍历的实现 一&#xff0c;层序遍历概念 层序遍历&#xff1a;除了先序…

Day981.OAuth 2.0的工作流程与安全问题 -OAuth 2.0

OAuth 2.0的工作流程与安全问题 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于OAuth 2.0的工作流程与安全问题的内容。 一、OAuth 2.0 工作流程串讲 OAuth 2.0 是一种授权协议&#xff0c;这种协议可以让第三方软件代表用户去执行被允许的操作。 那么&#xff0c;…

HI_NAS linux 记录

dev/root 100% 占用解决记录 通过下面的命令查看各文件夹 大小 sudo du --max-depth1 -h # 统计当前文件夹下各个文件夹的大小显示为M 最终发现Var/log 占用很大空间 发现下面两个 log 占用空间很大&#xff0c;直接 rm-rf 即可 HI NAS python3 记录 # 安装pip3 sudo apt u…

4.后端·新建子模块与开发(传统模式)

文章目录 学习资料新建子模块与各层查询entity的列表entitymapper层service层controller层 测试 学习资料 https://www.bilibili.com/video/BV13g411Y7GS?p8&spm_id_frompageDriver&vd_sourceed09a620bf87401694f763818a31c91e b站的学习视频 新建子模块与各层 在r…

Angular变更检测机制

前段时间遇到这样一个 bug&#xff0c;通过一个 click 事件跳转到一个新页面&#xff0c;新页面迟迟不加载&#xff1b; 经过多次测试发现&#xff0c;将鼠标移入某个 tab &#xff0c;页面就加载出来了。 举个例子&#xff0c;页面内容无法加载&#xff0c;但是将鼠标移入下图…

NO.396 旋转数组

题目 给定一个长度为 n 的整数数组 nums 。 假设 arrk 是数组 nums 顺时针旋转 k 个位置后的数组&#xff0c;我们定义 nums 的 旋转函数 F 为&#xff1a; F(k) 0 * arrk[0] 1 * arrk[1] ... (n - 1) * arrk[n - 1] 返回 F(0), F(1), ..., F(n-1)中的最大值 。 生成…

深度学习-卷积神经网络-纹理表示卷积神经网络-卷积神经网络-[北邮鲁鹏]

这里写目录标题 参考文章全连接神经网络全连接神经网络的瓶颈全连接神经网络应用场景 卷积神经网络卷积层(CONV)卷积核卷积操作卷积层设计卷积步长(stride)边界填充特征响应图组尺寸计算 激活层池化层(POOL)池化操作定义池化操作作用池化层超参数常见池化操作 全连接层(FC)样本…

linux相关知识以及有关指令3

在linux的世界中我们首先要有万物皆文件的概念&#xff0c;那么在系统中有那么多的文件&#xff0c;我们该怎么区分呢&#xff1f;文章目录 1. 文件分类2. 文件的权限1). 拥有者和所属组以及other2). 文件的权限3). 粘滞位4). 对于权限修改的拓展知识点a.修改权限b.修改拥有者所…

智慧工地平台源码 劳务实名制、视频监控、扬尘监测、起重机械安全监测

伴随着技术的不断发展&#xff0c;信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升&#xff0c;智慧工地概念应运而生&#xff0c;智慧工地平台围绕施工现场管理&#xff0c;构建全方位的智能监控防范体系弥补传统方法和技术在监管中的缺陷&#xff0c;形成…