【2024数模国赛赛题思路公开】国赛D题思路丨附可运行代码丨无偿自提

news2024/12/24 2:30:21

2024年国赛D题解题思路

问题一

【题目】

投射一枚深弹,潜艇中心位置的深度定位没有误差,两个水平坐标定位均服从正态分布。分析投弹最大命中概率与投弹落点平面坐标及定深引信引爆深度之间的关系,并给出使得投弹命中概率最大的投弹方案,及相应的最大命中概率表达式。

针对以下参数值给出最大命中概率:潜艇长 100 m,宽20 m,高 25 m,潜艇航向方位角为 90∘,深弹杀伤半径为20 m,潜艇中心位置的水平定位标准差 𝜎 = 120 m,潜艇中心位置的深度定位值为 150 m.

【题目分析】

 模型构建

  • 潜艇的水平位置误差均服从正态分布 N(0,σ2),无深度误差。
  • 需分析深弹的投射落点坐标和定深引信引爆深度对命中概率的影响。
  • 潜艇的几何尺寸和航向角已知(潜艇长100 m,宽20 m,高25 m,航向方位角为90°)。
  • 利用深弹杀伤半径(20 m)以及潜艇的形状和尺寸,通过积分计算投弹落点坐标的概率密度函数并结合杀伤判定条件(落在潜艇的不同位置及引爆深度)。

·  思路

  • 计算不同投弹落点下的命中概率。
  • 最大化命中概率的投弹方案,可以通过优化投弹坐标(平面上的期望值)和引爆深度来实现。

·  计算

  • 根据给定的潜艇尺寸、航向、和误差分布,设定目标平面及其误差范围,计算积分得到命中概率的表达式。
  • 使用优化方法(如拉格朗日乘数法或数值优化算法)来求解最大命中概率和最优投弹方案。

【解题思路】

1. 问题描述和建模目标

分析单枚深弹在潜艇中心深度定位没有误差的情况下,投弹的最大命中概率与投弹落点平面坐标及定深引信引爆深度之间的关系,并找出使得投弹命中概率最大的投弹方案和相应的最大命中概率表达式。

2. 坐标系和变量定义

潜艇中心在海平面上的投影为原点O

X轴正向为正东方向,Y轴正向为正南方向,Z轴正向为垂直向下。

潜艇的水平位置误差:,无深度误差。

潜艇的尺寸为100*20*25m³,航向角为90°(正东方向),杀伤半径为20m,水平定位标准差为σ=120m,深度定位值为150m。

3. 命中判定条件

深弹满足以下任意一个条件即为命中潜艇:

  1. 深弹落点在潜艇平面范围内,且引爆深度位于潜艇上表面的下方,由触发引信引爆。
  2. 深弹落点在潜艇平面范围内,且引爆深度位于潜艇上表面的上方,同时潜艇在深弹的杀伤范围内,由定深引信引爆。
  3. 弹落点在潜艇平面范围外,但到达引爆深度时,由定深引信引爆,且此时潜艇在深弹的杀伤范围内。

4. 命中概率模型

潜艇的水平位置X和Y坐标均服从正态分布,概率密度函数为:

为了计算命中概率,需要对投弹落点的概率进行积分。

  1. 命中条件 1 和 2(深弹落点在潜艇平面范围内)

潜艇在水平面上的范围为:

命中概率为:

化简为:

引爆深度Zd与潜艇上表面z=137.5m的关系:

若zd<137.5m,由触发引信引爆。

若zd>137.5m且zd-137.5m≤20m,由定深引信引爆。

结合条件:

2. 命中条件 3(深弹落点在潜艇平面范围外)

如果落点在平面范围外,则计算深弹在杀伤范围内命中的概率:

其中,潜艇中心与落点的距离,且需满足d≤20。

概率表达为

总命中概率为:

5. 智能优化算法的引入

可以使用智能优化算法(如遗传算法、粒子群优化或梯度下降)来最大化Ptotal。设定目标函数为:

  • 遗传算法:将投弹坐标(x,y)  和引爆深度Zd  编码为个体,通过选择、交叉和变异操作迭代优化。
  • 粒子群优化:粒子的位置表示投弹坐标和引爆深度,利用速度和位置的更新规则进行优化。
  • 梯度下降:在命中概率表达式足够光滑时,通过计算梯度优化(x,y,Zd)  以最大化命中概率。

【Python参考代码】

import numpy as np
from scipy.optimize import minimize
from scipy.stats import norm

# 定义潜艇和深弹的参数
submarine_length = 100  # 潜艇长度 (m)
submarine_width = 20  # 潜艇宽度 (m)
submarine_height = 25  # 潜艇高度 (m)
submarine_depth = 150  # 潜艇中心位置的深度 (m)
sigma = 120  # 水平定位标准差 (m)
kill_radius = 20  # 深弹杀伤半径 (m)

# 潜艇上表面深度
z_top = submarine_depth - submarine_height / 2


# 水平位置概率密度函数
def horizontal_pdf(x, y, sigma):
    return (1 / (2 * np.pi * sigma ** 2)) * np.exp(- (x ** 2 + y ** 2) / (2 * sigma ** 2))


# 计算命中概率
def hit_probability(throw_point, detonation_depth):
    x, y = throw_point

    # 计算水平命中概率
    def p_in():
        return (norm.cdf(submarine_length / 2, loc=x, scale=sigma) - norm.cdf(-submarine_length / 2, loc=x,
                                                                              scale=sigma)) * \
            (norm.cdf(submarine_width / 2, loc=y, scale=sigma) - norm.cdf(-submarine_width / 2, loc=y, scale=sigma))

    # 垂直命中概率
    p_z1 = norm.cdf(z_top, loc=detonation_depth, scale=0) if detonation_depth < z_top else 0
    p_z2 = norm.cdf(z_top + kill_radius, loc=detonation_depth, scale=0) - norm.cdf(z_top, loc=detonation_depth,
                                                                                   scale=0) if z_top < detonation_depth <= z_top + kill_radius else 0

    p_hit1 = p_in() * (p_z1 + p_z2)

    # 外部命中概率(落点在潜艇平面范围外)
    p_out = 1 - p_in()
    distance = np.sqrt(x ** 2 + y ** 2 + (detonation_depth - 
submarine_depth) ** 2)
    p_hit2 = p_out * (1 if distance <= kill_radius else 0)

    # 总命中概率
    p_total = p_hit1 + p_hit2
    return p_total


# 优化目标函数
def objective(params):
    throw_point = params[:2]
    detonation_depth = params[2]
    # 我们的目标是最大化命中概率,因此这里取负值进行最小化
    return -hit_probability(throw_point, detonation_depth)


# 初始猜测的投弹点 (x, y) 和引爆深度
initial_guess = [0, 0, submarine_depth]

# 进行优化,约束引爆深度为正数
result = minimize(objective, initial_guess,
                  bounds=[(-submarine_length, submarine_length), (-submarine_width, submarine_width), (0, None)])

# 输出结果
optimal_throw_point = result.x[:2]
optimal_detonation_depth = result.x[2]
max_hit_probability = -result.fun

print(f"Optimal Throw Point (x, y): {optimal_throw_point}")
print(f"Optimal Detonation Depth: {optimal_detonation_depth}")
print(f"Maximum Hit Probability: {max_hit_probability}")

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

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

相关文章

One-Shot Hierarchical Imitation Learning of Compound Visuomotor Tasks

发表时间&#xff1a;25 Oct 2018 论文链接&#xff1a;https://readpaper.com/pdf-annotate/note?pdfId4500198746683498497&noteId2453372035670907392 作者单位&#xff1a;Berkeley AI Research Motivation&#xff1a;我们考虑从执行任务的人类的单个视频中学习真…

ITK-重采样

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 什么是重采样 重采样&#xff08;Resampling&#xff09; 是一种用于图像处理的技术&#xff0c;主要应用于对图像进行尺寸调整、…

【专项刷题】— 栈

1、删除字符串中的所有相邻重复项 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 使用栈进行操作&#xff0c;每次入栈的时候和栈顶元素进行比对&#xff0c;如果相同的话就弹出栈顶元素也可以用数组来模拟栈进行操作代码&#xff1a; public String removeDuplica…

基于人工智能的交通标志识别系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 交通标志识别系统是自动驾驶和智能交通的重要组成部分&#xff0c;能够帮助车辆自动识别路边的交通标志并作出相应的决策。通过使用深…

C语言-数据结构 无向图普里姆Prim算法(邻接矩阵存储)

Prim算法使用了贪心的思想&#xff0c;在算法中使用了两个数组&#xff0c;这两个数组会非常巧妙的操作整个算法的灵魂过程 lowcost的功能&#xff1a; 1.帮助算法寻找到当前距离已完成的最小生成树集合的最小的边长&#xff08;找到新边&#xff09; 2.在整个过程中记录新结…

分拣机介绍及解决方案细节

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 完整版文件和更多学习资料&#xff0c;请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件是关于交叉带式分拣机的介绍及解…

openSSL 如何降版本

文章目录 前言openSSL 如何降版本1. 卸载2. 安装新的openssl版本3. 验证 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的话&…

RT-Thread 使用HTTP固件下载方式进行OTA远程升级

参考资料:RT-T官网资料如下链接所示 STM32通用Bootloader (rt-thread.org) 1.app程序env配置过程 参考上述资料中"制作 app 固件"章节&#xff0c;分区大小根据自己设备而定&#xff0c;以下是我以407VET6为例设置的fal分区 notes:上述分区是由片内flash(on-chip)…

机械革命imini Pro820迷你主机评测和拆解,8845H小主机使用政府补贴仅需两千三

机械革命imini Pro820迷你主机评测和拆解&#xff0c;8845H小主机使用政府补贴仅需两千三。 最近上线了家电补贴相关的活动&#xff0c;最高可以补贴20%&#xff0c;然后就看到了这款mini主机感觉很划算就下单了&#xff0c;用来替换我旧的N5095小主机&#xff0c;当服务器用。…

电子技术基础

目录 二极管 二极管的概念二极管的整流 二极管的防反接 二极管的钳位稳压二极管 三极管 NPN型三极管PNP型三极管三极管的三种状态三极管三个极之间电流的关系 放大电路 三极管共射极放大电路分压式偏置电路静态工作点多级放大功率放大电路 运算放大器 同相比例放大器反相…

旅行商问题 | Matlab基于混合粒子群算法GA-PSO的旅行商问题TSP

目录 效果一览基本介绍建模步骤程序设计参考资料 效果一览 基本介绍 混合粒子群算法GA-PSO是一种结合了遗传算法&#xff08;Genetic Algorithm, GA&#xff09;和粒子群优化算法&#xff08;Particle Swarm Optimization, PSO&#xff09;的优化算法。在解决旅行商问题&#…

「Python数据分析」Pandas进阶,使用groupby分组聚合数据(三)

​在实际数据分析和处理过程中&#xff0c;我们可能需要灵活对分组数据进行聚合操作。这个时候&#xff0c;我们就需要用到用户自定义函数&#xff08;User-Defined Functions&#xff0c;UDFs&#xff09;。 使用用户自定义函数进行聚合 使用用户自定义函数聚合时的性能&…

联想泄露显示本月推出更便宜的Copilot Plus电脑

联想似乎准备推出新的更实惠的 Copilot Plus 电脑。可靠的爆料者Evan Blass发布了一份来自联想的新闻稿&#xff0c;详细介绍了将在本周晚些时候的IFA展会上宣布的各种Copilot Plus电脑&#xff0c;其中包括两款采用尚未公布的8核高通骁龙X Plus芯片的电脑。 这些新的高通芯片…

Qt 创建一个json数组对象写入文档并从文档读出q

void createJsonArray() { // 创建一个JSON数组 QJsonArray jsonArray; // 创建一些JSON对象并添加到数组中 for (int i 0; i < 3; i) { QJsonObject jsonObject; jsonObject["key" QString::number(i)] "value" QStri…

原点安全荣获“AutoSec Awards 安全之星”优秀汽车数据安全合规方案奖

9月3日&#xff0c;「AutoSec 2024第八届中国汽车网络安全周暨第五届智能汽车数据安全展」在上海盛大开幕。本届大会由谈思实验室和谈思汽车主办、上海市车联网协会联合主办&#xff0c;以汽车“网络数据安全、软件安全、功能安全”为主题&#xff0c;汇聚了国内外的技术专家、…

Meta关闭Spark AR平台:未来规划与影响分析

Meta宣布将关闭其移动AR创作平台Spark AR&#xff0c;这一消息在业界引起了广泛关注。尽管Snap和TikTok在AR滤镜领域取得了巨大成功&#xff0c;但Meta却选择了另一条发展道路。本文将探讨这一决策背后的可能原因及其对未来的影响。 关闭Spark AR平台的背后 硬件为主&#xff…

PyTorch 创建数据集

图片数据和标签数据准备 1.本文所用图片数据在同级文件夹中 ,文件路径为train/’ 2.标签数据在同级文件&#xff0c;文件路径为train.csv 3。将标签数据提取 train_csvpd.read_csv(train.csv)创建继承类 第一步&#xff0c;首先创建数据类对象 此时可以想象为单个数据单元的…

【PyTorch】基础环境如何打开

前期安装可以基于这个视频&#xff0c;本文是为了给自己存档如何打开pycharm和jupyter notebookPyTorch深度学习快速入门教程&#xff08;绝对通俗易懂&#xff01;&#xff09;【小土堆】_哔哩哔哩_bilibili Pycharm 配置 新建项目的时候选择解释器pytorch-gpu即可。 Jupyte…

【C++ 第二十二章】C++的类型转换

1.C语言中的类型转换 在C语言中&#xff0c;如果赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值类型与接收返回值类型不一致时&#xff0c;就需要发生类型转化&#xff0c;C语言中总共有两种形式的类型转换&#xff1a;隐式类型转换和…

CDA数据分析一级考试备考攻略

一、了解考试内容和结构 CDA一级考试主要涉及的内容包括&#xff1a;数据分析概述与职业操守、数据结构、数据库基础与数据模型、数据可视化分析与报表制作、Power BI应用、业务数据分析与报告编写等。 CDA Level Ⅰ 认证考试大纲:https://www.cdaglobal.com/certification.h…