【已更新建模代码】2023数学建模国赛B题matlab代码--多波束测线问题

一、 问题重述
1.1问题背景
海洋测深是测定水体深度与海底地形的重要任务,有两种主要技术:单波束测
深与多波束测深。单波束适用于简单任务,但多波束可提供更精确的地形数据。多
波束系统的关键在于覆盖宽度与重叠率的设计,以确保数据完整性。重叠率需在10%
到20%之间。然而,海底地形变化复杂,需要根据具体情况设计测线间隔。在浅水
区,较小的间隔可避免漏测,而在深水区,较大的间隔可减少数据冗余。海洋测深
是一项重要的海洋测量任务,用于确定海洋、海湾、湖泊等水域的水深和海底地形。
这些数据对于海洋导航、地质勘探、海洋资源管理和环境研究都有重要意义。

交流:790539996
完整代码:https://mbd.pub/o/bread/mbd-ZJ2clZtt

1.2信息提取
⚫ 多波束测量技术中条带覆盖宽度
随开角 和水深
变化,相邻条带之间
的重叠率定义为
,其中 为相邻两条测线间距,
为条带宽度
⚫ 为兼顾测量的速度和质量,要求重叠率
⚫ 由于真实地形起伏大,若水深较浅会出现漏测现象,若条带稀疏则在水浅
处漏测影响测量质量;条带密集则在水深处重叠率较高影响测量效率。
1.3问题重述
现需要我们利用题目描述并结合相关知识解决一下问题:
问题一:要求建立多波束测深技术中的覆盖宽度
和相邻条带之间的重叠率
的数学模型。这个模型需要考虑多波束换能器的水平开角 、坡度 和海水深度
等因素,然后利用模型计算给定位置的覆盖宽度和重叠率。具体来说,问题给
定了多波束换能器的开角、坡度和海水深度,并要求计算并记录不同位置的覆盖
宽度和重叠率。最终,需要将计算结果以表格形式呈现,并保存到result1.xlsx
文件中。
问题二:在问题一的基础上,问题二要求建立一个考虑不同测线方向的多波
束测深的数学模型,针对一个矩形海域,其中测线方向与海底坡面法向在水平面
上的投影夹角为𝛽。这个模型需要考虑多波束换能器的开角、坡度、以及海域中心
点的海水深度等因素,并根据模型计算不同位置的多波束测深覆盖宽度。具体来
说,问题提供了多波束换能器的参数和海域特征,要求计算并记录不同位置的覆
盖宽度,然后将结果以表格形式呈现,并保存到result2.xlsx文件中。
问题三:问题三要求在一个南北长2海里、东西宽4海里的矩形海域内,其中
海水深度从西到东逐渐变浅,坡度 为1.5度,多波束换能器的开角为120度的情
况下,设计一组测量线,以满足以下要求:这组测量线的总长度最短,同时要确
保完全覆盖整个矩形海域,并且相邻测量线之间的重叠率在10%到20%之间,以获
得高效准确的海洋深度数据,同时最小化测量成本和工作量。这是一个典型的海
洋测深测量布置优化问题。
问题四:问题四涉及利用已有的海水深度数据来优化设计多波束测量船的测
量线路。待测海域为南北长5海里、东西宽4海里,拥有单波束测深数据。设计要
求包括:(1) 保证测线覆盖整个海域;(2) 控制相邻测量线的重叠率在20%以下;
(3) 最小化测线总长度。解决这个问题需要设计具体的测线布局,并计算相关指
标,如总长度、漏测区域占比和超过20%重叠率的长度。这个问题的目标是提高测
量效率,减少漏测,同时最小化测量成本和工作量。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

包含完整求解结果
代码部分如下图:

在这里插入图片描述

其中main函数为:

x=70;
d=[-4	-3	-2	-1	0	1	2	3	4];
d=70 - 200 * tand(1.5) * d;w = zeros(1,9);
eta = zeros(1,9);x0 = [100 100 100 100 100];
options = optimoptions(@fsolve, 'MaxFunctionEvaluations', 10000, 'MaxIterations', 10000);temp = fsolve(@root5d_1, x0, options);
w(1) = temp(5);
eta(1) = 1-200/w(1);temp = fsolve(@root5d_2, x0, options);
w(2) = temp(5);
eta(2) = 1-200/w(2);temp = fsolve(@root5d_3, x0, options);
w(3) = temp(5);
eta(3) = 1-200/w(3);temp = fsolve(@root5d_4, x0, options);
w(4) = temp(5);
eta(4) = 1-200/w(4);temp = fsolve(@root5d_5, x0, options);
w(5) = temp(5);
eta(5) = 1-200/w(5);temp = fsolve(@root5d_6, x0, options);
w(6) = temp(5);
eta(6) = 1-200/w(6);temp = fsolve(@root5d_7, x0, options);
w(7) = temp(5);
eta(7) = 1-200/w(7);temp = fsolve(@root5d_8, x0, options);
w(8) = temp(5);
eta(8) = 1-200/w(8);temp = fsolve(@root5d_9, x0, options);
w(9) = temp(5);
eta(9) = 1-200/w(9);

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

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

相关文章

【JavaSE】面试01

文章目录 1. JDK、JRE、JVM之间的关系2. 补充3. 面试题:重载和重写的区别?4. super和this5. (重点!!)若父类和子类均有静态代码块、实例代码块以及无参构造方法,则继承关系上的执行顺序&#xf…

RK3588平台产测之ArmSoM-W3 DDR压力测试

1. 简介 RK3588从入门到精通 ArmSoM团队在产品量产之前都会对产品做几次专业化的功能测试以及性能压力测试,以此来保证产品的质量以及稳定性 优秀的产品都要进行多次全方位的功能测试以及性能压力测试才能够经得起市场的检验 2. 环境介绍 硬件环境: …

Hadoop生态之hive

一 概述与特点 之所以把Hive放在Hadoop生态里面去写,是因为它本身依赖Hadoop。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类 SQL 查询功能。 其本质是将 SQL 转换为 MapReduce/Spark 的任务进行运算,底层由 HDFS 来提供…

JavaExcel:自动生成数据表并插入数据

故事背景 出于好奇,当下扫描excel读取数据进数据库 or 导出数据库数据组成excel的功能层出不穷,代码也是前篇一律,poi或者easy excel两种SDK的二次利用带来了各种封装方法。 那么为何不能直接扫描excel后根据列的属性名与行数据的属性建立S…

UDP攻击是什么?

UDP是一个简单的面向数据报的运输层协议,也是最常见的作为流量攻击最多的一种协议,需要用到UDP的主要都是视频通讯,枪战类实时通讯的游戏类。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但并不保证它们…

备战计算机二级公共基础知识(五)----数据库设计基础

数据库设计基础 目录 数据库设计基础 数据库的基本概念:数据库,数据库管理系统,数据库系统 数据模型,实体联系模型及 E-R 图,从 E-R 图导出关系…

基于JAVA SSM框架和JSP的超市小卖部管理系统设计

摘要 随着时代的发展,传统的超市购物方式已经不能满足人们的需求,对于顾客来说,排队购物和支付购物费用的问题亟待解决。对于实体超市来说,他们面临着网上购物的竞争压力,作为超市经理,他们要降低成本&…

如何自启动MySQL服务与解决MySQL字符集问题

1、自启动mysql服务 (1)查看mysql是否自启动(默认自启动) systemctl list-unit-files|grep mysqld.service (2)如不是enabled可以运行如下命令设置自启动 systemctl enable mysqld.sercice2、字符集…

SpringBoot 博客网站

SpringBoot 博客网站 系统功能 登录注册 博客列表展示 搜索 分类 个人中心 文章分类管理 我的文章管理 发布文章 开发环境和技术 开发语言:Java 使用框架: SpringBoot jpa H2 Spring Boot是一个用于构建Java应用程序的开源框架,它是Spring框架的一…

Android WebView 使用指南强化版

Android WebView介绍、优势和使用教程 WebView是Android平台中一个非常重要的控件,它可以用来在Android应用中显示网页。WebView使用WebKit引擎来渲染网页,因此可以很好地兼容Web标准。 WebView的介绍 WebView是一个Android控件,它可以用来…

微信小程序视频播放

微信小程序视频播放 官方地址: https://developers.weixin.qq.com/miniprogram/dev/component/video.html binderror 视频错误信息 show-play-btn 是否显示视频底部控制栏的播放按钮 show-fullscreen-btn 是否显示全屏按钮 controls 是否显示默认播放控件 enable-p…

Mysql和Oracle的语法区别?

Mysql和Oracle是两种不同的关系型数据库。 MySQL通常在中小型应用程序、Web应用程序和小型企业中广泛使用,因为它易于学习和部署,而且成本较低。 Oracle数据库通常用于大型企业和复杂的企业级应用程序,因为它提供了高度可扩展性、高可用性…

Unity——脚本与导航系统

Unity内置了一个比较完善的导航系统,一般称为Nav Mesh(导航网格),用它可以满足大多数游戏中角色自动导航的需求。 一、导航系统相关组件 Unity的导航系统由以下几个部分组成: Nav Mesh。Nav Mesh与具体的场景关联&…

终端登录github两种方式

第一种方式 添加token,Setting->Developer Setting 第二种方式SSH 用下面命令查看远程仓库格式 git remote -v 用下面命令更改远程仓库格式 git remote set-url origin gitgithub.com:用户名/仓库名.git 然后用下面命令生成新的SSH秘钥 ssh-keygen -t ed2…

Java基础学习笔记-1

前言 Java 是一门强大而广泛应用的编程语言,它的灵活性和跨平台特性使其成为许多开发者的首选。无论您是刚刚入门编程,还是已经有一些编程经验,掌握 Java 的基础知识都是构建更复杂程序的关键。 本学习笔记旨在帮助您深入了解 Java 编程语言…

代码随想录算法训练营Day56 || ● 583. 两个字符串的删除操作 ● 72. 编辑距离

今天接触到了真正的距离,但可以通过增删改操作来逼近。 问题1:583. 两个字符串的删除操作 - 力扣(LeetCode) 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字…

Mysql学习之——增删改查语句

Mysql的增删改查 一、数据库操作 1.查询所有数据库 show databases;2.使用某个数据库 如果我已经通过show databases知道有a、b、c三个数据库,那我想用数据库a怎么办呢? use 数据库名; eg:use a;3.查询当前使用的数据库 如果我不知道当…

请大家一定不要像我们公司这样打印log日志

前言 最近接手了公司另一个项目,熟悉业务和代码苦不堪言。 我接手一个新项目,有个习惯,就是看结构,看数据库,搜代码。 其中搜代码是我个人这些年不知不觉形成的癖好,我下面给大家展示下这个小癖好。 正文 我…

vue3:3、项目目录和关键文件

关于vsvode的更改 <!-- 加上setup允许在script中直接编写组合式api --> <script setup> // 组件引入后直接用 import HelloWorld from ./components/HelloWorld.vue import TheWelcome from ./components/TheWelcome.vue</script><!-- 1、js放在最上面&am…

linux安装postgresql13

linux安装postgresql13 1. 安装2. 数据库初始化3.配置远程访问3.1 修改配置文件3.2 重启服务3.3 测试连接 1. 安装 linux下载链接&#xff1a;https://www.postgresql.org/download/linux/ubuntu/安装命令sudo sh -c echo "deb https://apt.postgresql.org/pub/repos/apt…