2024年深圳杯东三省数学建模联赛A题论文首发+问题一代码分享

本文主要是介绍2024年深圳杯东三省数学建模联赛A题论文首发+问题一代码分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

深圳杯A题论文+代码分享资料链接:链接:https://pan.baidu.com/s/1L2NVgoefSW-yuqZjEB3wcw 
提取码:sxjm 

基于优化模型的多个火箭残骸的准确定位

摘要

在现代航天技术中,火箭是实现空间探索的关键工具。由于火箭发射过程中的高成本和复杂性,对火箭残骸的回收与重用变得越来越重要。本文将基于题目给出数据构建优化模型对火箭残骸进行准确定位。

问题一,单个残骸音爆定位分析。首先需要将设备的地理坐标(经度、纬度)转换为一个更适合计算的坐标系统,残骸发生音爆的位置(x,y,z) 和时间t,使用多边测量技术建立方程组。为了提高计算精度构建一个优化模型进行求解,以预测时间和实际时间差的平方和为目标函数。应用 BFGS 方法进行最小化,找到最小化 objective_function 的变量值,这些值代表了音爆源的最佳估计位置和时间。

问题二、三,多残骸音爆的监测和定位,确定每个监测设备接收到的不同音爆数据属于哪个具体的残骸。涉及到了最优值的求解,属于优化模型。建立一个数学模型来解决多源定位问题。设置一个优化问题,以确定该残骸的位置和音爆时间。目标是最小化预测的音爆抵达时间和实际记录时间之间的误差。以时间差约束、速度约束、高度约束、声速随高度变化、考虑风速和风向的影响作为约束条件,使用非线性最优化方法差分进化进行求解。通过三维可视化验证了模型的有效性,并展示了监测设备和残骸的空间分布。

问题四,误差修正和精准定位,考虑到设备记录时间可能存在高达0.5秒的随机误差。首先,为每个设备记录的时间添加一个随机误差,模拟实际条件中可能的测量不准确性。这个误差可以通过添加一个均值为0,标准差为0.5秒的高斯(正态)噪声来模拟。优化目标函数为计算了预测的音爆抵达时间和观测时间之间的加权平方差之和。模型生成的结果通过三维可视化和时间分析进行了展示和验证,表明模型能够在存在随机测量误差时有效地估计残骸位置。

整体而言,通过建立数学模型并利用差分进化算法的全局优化能力,解决了复杂的火箭残骸定位问题,即便在存在测量误差的挑战下也能给出准确的位置估计。这为类似问题提供了一个强大的求解框架和验证方法。

关键词优化模型,火箭残骸准确定位,坐标转化,模型修正

23页论文 1万字+ 十页无水印照片

一、模型的建立与求解

5.1 问题一模型的建立与求解

5.1.1 数据分析

为了更加直观地展示原始位置,利用python以及题目给出的数据,绘制了可视化如下所示

表1问题一给出数据

设备经度(°)纬度(°)高程(m)音爆抵达时间(s)
A110.24127.204824100.767
B110.78027.456727112.220
C110.71227.785742188.020
D110.25127.825850258.985
E110.52427.617786118.443
F110.46727.921678266.871
G110.04727.121575163.024

图1可视化结果

在这个坐标系中,设备A位于图中较高的位置,而设备G位于相对较低的位置。这种布局说明设备被布置在具有不同高度的地形上。通过这种三维分布,设备能够探测和追踪从不同高度和方向传来的音爆信号。

这张图也展示了设备之间的相对距离,这对于后续的分析很重要,比如利用声波到达的时间差来定位音爆发生的位置。再利用音爆抵达时间增加了声波传播球体的三维可视化,它展示了以七个监测设备为圆心,音爆抵达时间转换为半径(考虑声速)的球体。如下所示

图2可视化结果

每个球体用不同的颜色表示,以区分它们是从哪个设备中心展开的,与设备的颜色标记相对应。这些彩色的透明球体在三维空间中相互重叠。

l 监测设备位置图中显示了每个监测设备的位置,用大小相等且颜色不同的点表示,每个点的具体位置都标记在了对应的坐标上。

l 声波传播球体每个设备的声波传播球体通过一个半透明的网状结构表示,球体的大小(半径)与音爆抵达各设备的时间成比例。球体的交点是关键区域,因为这些区域表示了可能的音爆源位置。

l 球体交叉在图中,可以看到这些球体在某些区域相交。这些交点(或交叉区域)有助于确定音爆的原始位置。理论上,所有球体的交点将形成一个或多个共同的交集区域,即是音爆的发生位置。

l 三维空间理解在三维空间中,Z轴的伸展有助于了解球体高程方面的差异。球体的覆盖层和重叠区域的大小和形状提供了音爆源位置可能的高度信息。

5.1.2 单个残骸定位的建立

首先需要将设备的地理坐标(经度、纬度)转换为一个更适合计算的坐标系统,如笛卡尔坐标系。可以使用下列近似方法

将纬度转换为Y坐标=纬度×111263Y=纬度×111263米(纬度每度的距离)

将经度转换为X坐标=经度×97304X=经度×97304米(经度每度的距离,取决于纬度)

高程(Z坐标)直接使用给定的米值

最终具体的转化结果为表1转化结果

设备X (米)Y (米)Z (米)时间 (秒)
A10,726,890.263,026,798.65824100.767
B10,779,337.123,054,836.93727112.22
C10,772,720.453,091,442.46742188.02
D10,727,863.303,095,892.98850258.985

残骸发生音爆的位置(x,y,z) 和时间t。给定7台设备的三维坐标和音爆抵达时间,可以使用多边测量技术建立以下方程组,对于每个设备i:

这里,(xi,yi,zi)和ti分别是第i台设备的坐标和音爆抵达时间。需要解这个方程组来找出(x,y,z,t)。

对于四个变量的方程组求解,最少需要四个方程,即至少需要布置四台监测设备,即可完成后续验证。这里题目给出了七台监测设备,因此,构建一个优化模型进行求解,以预测时间和实际时间差的平方和为目标函数,定义了一个 objective_function,该函数接受四个变量(x, y, z 位置坐标和音爆发生的时间 t),计算了预测的音爆抵达各个设备的时间,并将其与实际抵达时间进行比较。应用 BFGS 方法进行最小化,找到最小化 objective_function 的变量值,这些值代表了音爆源的最佳估计位置和时间。

具体模型如下所示

目标函数

其中,

l v 是包含x,y,z,t 的向量。

l t 是音爆发生时间。

l (x,y,z) 是音爆发生的位置。

l c 是声速。

l (xi,yi,zi,ti) 是第 i 个设备的坐标和音爆抵达时间。

l n 是设备数量。

目标是最小化f(v),即预测时间和实际时间的平方差的和。

5.1.3 单个残骸定位的求解

最小化过程

5.2 问题二三模型的建立与求解

5.2.1 数据分析

声波从音爆源到监测设备的传播是一个球面波,其半径随时间增加而扩大。对于每个残骸,它在空中发生音爆时会产生一个扩散的声波球。与问题一给出数据相同,为了更加直观的展示给出数据,首先以A为例绘制了二维平面、三维平面的声波球。

这篇关于2024年深圳杯东三省数学建模联赛A题论文首发+问题一代码分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/929988

相关文章

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解