2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序

news2025/5/13 9:13:37

2024年国赛高教杯数学建模

D题 反潜航空深弹命中概率问题

原题再现

  应用深水炸弹(简称深弹)反潜,曾是二战时期反潜的重要手段,而随着现代军事技术的发展,鱼雷已成为现代反潜作战的主要武器。但是,在海峡或浅海等海底地形较为复杂的海域,由于价格低、抗干扰能力强,仍有一些国家在研究和发展深水炸弹反潜技术。 反潜飞机攻击水下目标前,先由侦察飞机通过电子侦察设备发现水下潜艇目标的大致位置,然后召唤反潜飞机前来进行攻击。当潜艇发现被侦察飞机电子设备跟踪时,通常会立即关闭电子设备及发动机,采取静默方式就地隐蔽。
  本问题采用目标坐标系:潜艇中心位置的定位值在海平面上的投影为原点 𝑂,正东方向为 𝑋 轴正向,正南方向为 𝑌 轴正向,垂直于海平面向下方向为 𝑍 轴正向。正北方向顺时针旋转到潜艇航向的方位角记为 𝛽,假定在一定条件下反潜攻击方可获知该航向(见图1)。
在这里插入图片描述
  由于存在定位误差,潜艇中心实际位置的3个坐标是相互独立的随机变量,其中 𝑋,𝑌均服从正态分布 𝑁(0,𝜎2),𝑍 服从单边截尾正态分布 𝑁(ℎ0,𝜎𝑧2,𝑙),其密度函数为
在这里插入图片描述
  这里 ℎ0 是潜艇中心位置深度的定位值,𝑙 是潜艇中心位置实际深度的最小值,𝜙 和 𝛷 分别是标准正态分布的密度函数与分布函数。 将潜艇主体部分简化为长方体,深弹在水中垂直下降。假定深弹采用双引信(触发引信+定深引信)引爆,定深引信事先设定引爆深度,深弹在海水中的最大杀伤距离称为杀伤半径。深弹满足以下情形之一,视为命中潜艇:
  (1) 航空深弹落点在目标平面尺度范围内,且引爆深度位于潜艇上表面的下方,由触发引信引爆;
  (2) 航空深弹落点在目标平面尺度范围内,且引爆深度位于潜艇上表面的上方,同时潜艇在深弹的杀伤范围内,由定深引信引爆;
  (3) 航空深弹落点在目标平面尺度范围外,则到达引爆深度时,由定深引信引爆,且此时潜艇在深弹的杀伤范围内。
  请建立数学模型,解决以下问题:
  问题1 投射一枚深弹,潜艇中心位置的深度定位没有误差,两个水平坐标定位均服从正态分布。分析投弹最大命中概率与投弹落点平面坐标及定深引信引爆深度之间的关系,并给出使得投弹命中概率最大的投弹方案,及相应的最大命中概率表达式。 针对以下参数值给出最大命中概率:潜艇长100 m,宽20 m,高25 m,潜艇航向方位角为 90∘,深弹杀伤半径为20 m,潜艇中心位置的水平定位标准差 𝜎=120 m,潜艇中心位置的深度定位值为150 m.
  问题2 仍投射一枚深弹,潜艇中心位置各方向的定位均有误差。请给出投弹命中概率的表达式。 针对以下参数,设计定深引信引爆深度,使得投弹命中概率最大:潜艇中心位置的深度定位值为150 m,标准差 𝜎𝑧=40 m,潜艇中心位置实际深度的最小值为 120 m,其他参数同问题1。
  问题3 由于单枚深弹命中率较低,为了增强杀伤效果,通常需要投掷多枚深弹。若一架反潜飞机可携带9枚航空深弹,所有深弹的定深引信引爆深度均相同,投弹落点在平面上呈阵列形状(见图2)。在问题2的参数下,请设计投弹方案(包括定深引信引爆深度,以及投弹落点之间的平面间隔),使得投弹命中(指至少一枚深弹命中潜艇)的概率最大。
在这里插入图片描述

整体求解过程概述(摘要)

  随着潜艇技术的不断发展,反潜作战面临着日益严峻的挑战。深弹作为重要的反潜武器,其投放策略的优化对于提高反潜作战效率至关重要。本文旨在通过数学建模和数值分析,找出在不同条件下深弹投放的最大命中概率策略。
  潜艇深度已知的单深弹投放模型,在潜艇深度位置信息确定的情况下,本文首先在二维平面上建立了深弹的毁伤概率模型。该模型考虑了深弹爆炸的威力范围、潜艇的尺寸以及投放角度等因素,将问题转化为炸弹最大毁伤区域的构建与最优概率积分问题。根据深弹爆炸深度与潜艇深度的位置关系,本文详细分析了五种可能的投放情况,包括深弹在潜艇上方、下方、侧面以及直接命中等。通过动态讨论,确定了当深弹的落点位于潜艇的上表面和下表面之间时,投弹可达最大投弹概率。
  潜艇深度未知的单深弹投放模型,考虑到实际作战中潜艇深度往往未知,本文在原有模型基础上增加了深度参数,并假设其服从单边截尾正态分布。这使得模型更加贴近实际,也增加了问题的复杂性。为了处理深度不确定性,本文建立了三维立体的命中概率模型。通过数值分析和简化处理,将三维模型分解为二维命中概率模型与一维深度概率模型的最大化积分问题。在二维命中概率模型的基础上,本文利用数值积分方法求解了潜艇深度定位在最大可能区间的命中概率,为实际作战中的深弹投放提供了决策支持。
  潜艇深度未知的多深弹投放模型,首先通过数学分析确定了深弹的最佳爆炸深度,以确保在给定深度范围内达到最大的毁伤效果。接着,本文将最大命中概率的决定因素分解为深弹二维毁伤区域与潜艇的平面分布概率两部分。通过综合考虑深弹的投放位置、爆炸范围以及潜艇的可能位置,构建了多深弹投放的命中概率优化模型。利用数学解析和数值解析与网格算法相结合的方法,本文求解了多深弹投放模型下的最大命中概率。当深弹间距d=150时,命中概率达到最大值0.333。这一结果对于指导实际作战中的多深弹投放具有重要意义。

模型假设:

  1.潜艇以及深弹默认为单一质点;
  2.假设深弹之间不会互相影响;
  3.假设潜艇时刻处在动态移动中。

问题分析:

  首先,我们分析了深弹引爆深度与命中概率之间的内在联系。在概率密度函数已知且非负的前提下,求解最大投射命中概率被转化为求解最大积分区域的问题。通过数学推导,我们证明了只有当引爆深度位于潜艇上下表面之间时,积分区域才能达到最大,进而确定了固定投弹点处的命中概率。接着,我们考虑了引爆深度变化时积分区域虽然大小相同但命中概率差异显著的情况。通过将该问题转化为二维正态分布函数的最值求解问题,我们得到了最大命中概率的表达式。在已知潜艇长宽高等参数(深度定位参数无误差)且深弹杀伤半径为20m的条件下,我们计算出了最大的命中概率。
  在潜艇深度未知的情况下,我们引入了深度定位误差,并假设其服从单边截尾正态分布。为了简化问题,我们将问题转化为在潜艇最有可能出现的深度范围内选择最佳投弹深度的问题。基于问题一的研究成果,我们已知潜艇深度一定时的最佳投弹深度和投弹点。因此,在已知潜艇中心位置深度的定位误差服从的分布参数后,我们以潜艇的高度为度量区间,找出了该区间内最有可能出现的深度范围,并取其中点作为深弹的定深引信引爆深度。这样的选择使得投弹命中概率达到最大。
  在问题二的基础上,我们进一步考虑了多深弹的投放布局问题。给定深弹的定深引信引爆深度,我们根据潜艇深度参数服从的单边截尾正态分布,计算了潜艇中心落在不同区域内的概率。通过参数调整,我们计算了每个区域内9枚航空深弹至少一次命中潜艇的概率。然后,将这两组概率对应相乘并求和,得出了命中概率的数学期望。最后,通过数值优化方法,我们找出了使命中概率数学期望最大的投弹方案,即最佳投弹布局。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码(完整论文以及代码请联系博主):

sigma = 120; % 标准差,单位:米
L = 100; % 潜艇长度,单位:米
R = 20; % 杀伤半径,单位:米
W = 20; % 潜艇宽度,单位:米

% 定义被积函数
f = @(x, y) exp(-(x.^2 + y.^2) / (2 * sigma^2));

% 计算第一个积分项(左侧部分)
I1 = integral2(f, -R-L/2, -L/2, @(x)-W/2-sqrt(R^2 - (x + L/2).^2), @(x)W/2+sqrt(R^2 - (x + L/2).^2));

% 计算第二个积分项(中间部分)
I2 = integral2(f, -L/2, L/2, -W/2-R, W/2+R);

% 计算第三个积分项(右侧部分)
I3 = integral2(f, L/2, R+L/2, @(x)-W/2-sqrt(R^2 - (x - L/2).^2), @(x)W/2+sqrt(R^2 - (x - L/2).^2));

% 计算总积分
p00 = (1 / (2 * pi * sigma^2)) * (I1 + I2 + I3);

% 显示结果
disp(['The probability p(0,0) is: ', num2str(p00)]);
function [d,I]=x2
sigma = 120; % 标准差
L = 100; % 潜艇长度
R = 20; % 杀伤半径
W = 20; % 潜艇宽度
H = 25; % 高度
sigma_z = 40; % Z 的标准差
l1 = 120;
h0 = 150;

f = @(x, y) (1 / (2 * pi * sigma^2)) * exp(-(x.^2 + y.^2) / (2 * sigma^2));
Phi = @(x) normcdf(x, 0, 1);
dm=1/(1 - Phi((l1 - h0) / sigma_z));
% 定义函数 g(z)
g_z = @(z) (1/sigma_z)*dm * (1 / sqrt(2 * pi)) * exp(-((z - h0).^2) / (2 * sigma_z^2));
%test=integral(@(z) g_z(z),120,200);
fun = @(x,y,z) f(x,y).*g_z(z);

d = 152.5:1:180;

I1 = arrayfun(@(d) integral3(@(x, y, z) f(x, y) .* g_z(z), -L/2, L/2, -W/2, W/2, l1, d-R-H/2), d);
I2=[];
I3=[];
I4=[];
I5=arrayfun(@(d) integral(@(z) g_z(z), d-H/2,d+H/2), d);
I5=0.083734*I5;
I6=[];
I7=[];
I8=[];

for i=1:length(d)
    dx=0.5;
    dy=0.5;
    dz=0.5;
    %%%以下计算 I2
    % 初始化黎曼和
    sum=0;
    % 计算黎曼和
    zmin = d(i) - R - 0.5 * H;
    zmax = d(i) - 0.5 * H;
    xmin = @(z) -L/2-sqrt(R^2 - (d(i) - z - H/2).^2);
    xmax = @(z) -L/2;
    ymin = @(x,z) -W/2-sqrt(R^2 - (d(i) - z - H/2).^2-(x+L/2).^2);
    ymax = @(x,z) W/2+sqrt(R^2 - (d(i) - z - H/2).^2-(x+L/2).^2);
    for z = zmin:dz:zmax
        x1=xmin(z);
        xu=xmax(z);
        for x =x1:dx:xu
            y1=ymin(x,z);
            yu=ymax(x,z);
            for y = y1:dy:yu
                sum = sum + fun(x,y,z) * dx * dy * dz;
            end
        end
    end
    I2=[I2 sum];
end

%%%以下计算 I3
% 初始化黎曼和
sum=0;
% 计算黎曼和
zmin = d(i) - R - 0.5 * H;
zmax = d(i) - 0.5 * H;
xmin = -0.5*L;
xmax = 0.5*L;
ymin = @(z) -W/2-sqrt(R^2 - (d(i) - z - H/2).^2);
ymax = @(z) W/2+sqrt(R^2 - (d(i) - z - H/2).^2);
sum = 0;
for z = zmin:dz:zmax
    xl=xmin;
    xu=xmax(z);
for x =x1:dx:xu
    yl=ymin(z);
    yu=ymax(z);
    for y = y1:dy:yu
        sum = sum + fun(x,y,z) * dx * dy * dz;
    end
end
end
I3=[I3 sum];

%%%以下计算 I4
% 初始化黎曼和
sum=0;
% 计算黎曼和
zmin = d(i) - R - 0.5 * H;
zmax = d(i) - 0.5 * H;
xmin = @(z) L/2;
xmax = @(z) L/2+sqrt(R^2 - (d(i) - z - H/2).^2);
ymin = @(x,z) -W/2-sqrt(R^2 - (d(i) - z - H/2).^2-(x-L/2).^2);
ymax = @(x,z) W/2+sqrt(R^2 - (d(i) - z - H/2).^2-(x-L/2).^2);
sum = 0;
for z = zmin:dz:zmax
    xl=xmin(z);
    xu=xmax(z);
    for x =x1:dx:xu
        yl=ymin(x,z);
        yu=ymax(x,z);
        for y = y1:dy:yu
            sum = sum + fun(x,y,z) * dx * dy * dz;
        end
    end
end
I4=[I4 sum];

%%%以下计算 I6
% 初始化黎曼和
sum=0;
% 计算黎曼和
zmin = d(i) + 0.5 * H;
zmax = d(i) +R+ 0.5 * H;
xmin = @(z) -L/2-sqrt(R^2 - (d(i) - z + H/2).^2);
xmax = @(z) -L/2;
ymin = @(x,z) -W/2-sqrt(R^2 - (d(i) - z + H/2).^2-(x+L/2).^2);
ymax = @(x,z) W/2+sqrt(R^2 - (d(i) - z + H/2).^2-(x+L/2).^2);
for z = zmin:dz:zmax
    xl=xmin(z);
    xu=xmax(z);
    for x =x1:dx:xu
        yl=ymin(x,z);
        yu=ymax(x,z);
        for y = y1:dy:yu
            sum = sum + fun(x,y,z) * dx * dy * dz;
        end
    end
end
1. import numpy as np
 2. from scipy.stats import truncnorm
 3. from scipy.integrate import quad
 4. import pandas as pd
 5. import matplotlib.pyplot as plt
 6. import matplotlib
13. h0 =200
14. sigma_z =50 
15. l= 150
18. def truncated_normal_density(z):
 19. a, b= (l-h0) /sigma_z, float('inf') 
 20. scale = sigma_z
 21. loc =h0
 22. return truncnorm.pdf(z, a,b, loc=loc, scale=scale)
25. def calculate_integral(z0):
 26. lower_bound =z0-10
 27. upper_bound =z0+10
 28. result, _= quad(truncated_normal_density, lower_bound, upper_bound)
 29. return result
32. def main():
 33. z0_values = np.arange(100,200, 0.0001)
 34. integral_values =[calculate_integral(z0) for z0 in z0_values]
 37. df =pd.DataFrame({
 38. 'z0 (meters)': z0_values,
 39. 'Integral Value':integral_values
 40. })
 41. df.to_excel('result.xlsx',index=False)
44. plt.figure(figsize=(30, 20))
 45. plt.plot(z0_values, integral_values, marker='o', linestyle='*',color='y')
 46. plt.xlabel()
 47. plt.ylabel()
 49. plt.grid(True)
 50. plt.savefig('2.jpg')
 51. plt.show()
 53. if __name__ == "__main__":
 54. main()
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

obj离线加载(vue+threejs)+apk方式浏览

demo需求:移动端,实现obj本地离线浏览 结合需求,利用(vue2threejs173)进行obj的加载,然后采用apk方式(hbuilderX打包发布)移动端浏览; https://github.com/bianbian886/…

关于mysql 表中字段存储JSON对象对JSON对象中的bolean字段进行查询的方式

业务场景如题 JSON对象为 表为客诉表中的 发现利用原有的xml中的 and a1.order_list ->‘$[*].isZg’ request.isZg 后续发现需要更改为有效 本文作为自己日常工作记录用,有遇到相同问题的可以作为参考。

Kylin麒麟操作系统 | 系统监控

以下所使用的环境为: 虚拟化软件:VMware Workstation 17 Pro 麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、系统状态查询工具 1. 静态显示系统进程信息ps ps命令会生成一个静态列表,列表中显示的进程其…

vLLM服务设置开机自启动(Linux)

要在开机时进入指定的 conda 环境并启动此 vllm 服务,您可以通过以下步骤设置一个 systemd 服务来自动执行脚本。 一、第一步:创建一个启动脚本 1.打开终端并创建启动脚本,例如 /home/username/start_vllm.sh(请替换 username 为…

几个api

几个api 原型链 可以阅读此文 Function instanceof Object // true Object instanceof Function // true Object.prototype.isPrototypeOf(Function) // true Function.prototype.isPrototypeOf(Object) // true Object.__proto__ Function.prototype // true Function.pro…

数字IC后端设计实现OCC(On-chip Clock Controller)电路介绍及时钟树综合案例

数字IC后端时钟树综合专题(OCC电路案例分享) 复杂时钟设计时钟树综合(clock tree synthesis)常见20个典型案例 1、什么是OCC? 片上时钟控制器(On-chip Clock Controllers ,OCC),也称为扫描时钟控制器(Scan Clock Con…

Trae根据原型设计稿生成微信小程序密码输入框的踩坑记录

一、需求描述 最近经常使用Trae生成一些小组件和功能代码(对Trae赶兴趣的可以看之前的文章《TraeAi上手体验》),刚好在用uniapp开发微信小程序时需要开发一个输入密码的弹框组件,于是想用Trae来实现。原型设计稿如下:…

华为AP 4050DN-HD的FIT AP模式改为FAT AP,家用FAT基本配置

在某鱼买了两台华为AP 4050DN-HD , AP是二手的 , 在AC上上过线 , 所以就不能开机自选为FIP模式了 我没有AC无线控制器 , 就是买一个自己玩 , AP又是FIT瘦AP模式 ,所以我就想把AP的瘦AP模式改为FAT胖AP模式 1. 准备工作 1.1下载好对应软件,进入到 企业业务网站去下…

vue3+ts+uniapp+unibest 微信小程序(第二篇)—— 图文详解自定义背景图页面布局、普通页面布局、分页表单页面布局

文章目录 简介一、自定义背景图布局1.1 效果预览1.2 实现思路1.3 custom-page 组件全量代码1.4 页面使用 二、普通页面布局2.1 效果预览2.2 实现思路2.3 公共样式部分2.4 页面使用 三、分页表单页面布局3.1 效果预览3.2 实现思路3.3 页面代码 简介 开发工具:VsCode…

虚拟机缩放比例问题处理

上班打开虚拟机的样子。 最开始判断可能是vmtools 异常重启安装后发现没有效果 通过 xrandr 功能查询显示器信息获取显示器名 设置显示器 同时设置分辨率 也可以同时设置刷新率 注意下图中设置的关键字

【Python 入门基础】—— 人工智能“超级引擎”,AI界的“瑞士军刀”,

欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创&#x1…

DeepSeek-R1-Zero:基于基础模型的强化学习

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列四DeepSeek大模型技术系列四》DeepSeek-…

(dp 买入股票的最佳时机)leetcode 121

题目 题解的dp数组 0列是负数&#xff0c;这里我改成正数不再相加而是相减获取利润 class Solution { public:int maxProfit(vector<int>& prices) {int nprices.size();vector<vector<int>>dp(n,vector<int>(2));dp[0][0]prices[0];dp[0][1]0;//0…

由 Mybatis 源码畅谈软件设计(三):简单查询 SQL 执行流程

大家好&#xff0c;我是 方圆。SQL 查询是 Mybatis 中的核心流程&#xff0c;本节我们来介绍简单 SQL 的执行流程&#xff0c;过程会比较长&#xff0c;期间会认识很多重要的组件&#xff0c;比如 SqlSession、四大处理器&#xff08;Executor、StatementHandler、ParameterHan…

项目实践 之 pdf简历的解析和填充(若依+vue3)

文章目录 环境背景最终效果前端讲解左侧模块解析右侧上传模块解析前端步骤 后端讲解代码前端 环境背景 若依前后端分离框架 vue最后边附有代码哦 最终效果 前端讲解 左侧模块解析 1、左侧表单使用el-form 注意&#xff1a; 1、prop出现的字段&#xff0c;需要保证是该类所…

lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并、行高设置等。

入口类&#xff1a;exportPdf package xcsy.qms.webapi.service;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.ibm.icu.text.RuleBasedNumberFormat; import com.lowagie…

第002文-kali虚拟机安全与网络配置

1、kali系统介绍 kali是一个基于Linux kernel的操作系统&#xff0c;由BackTrack(简称BT)发展而来。BackTrack是2006年推出的一个用于渗透测试及黑客攻防的专用平台&#xff0c;基于Knoppix(linux的一个发行版)开发。BackTrack版本周期&#xff1a;2006年的起始版本BackTrack …

软件工程复试专业课-软件生命周期

文章目录 软件过程模型瀑布模型模型图特点优缺点改进后的瀑布模型 快速原型模型模型图优缺点 增量模型&#xff08;迭代-递增模型&#xff09;原型图与瀑布和快速原型的区别优缺点风险更大的增量模型 螺旋模型简介模型图优缺点 喷泉模型模型图优缺点 编码修补模型敏捷过程优缺点…

DILLEMA:扩散模型+大语言模型,多模态数据增强框架

引言&#xff1a;深度学习模型的鲁棒性测试需要全面且多样化的测试数据。现有的方法通常基于简单的数据增强技术或生成对抗网络&#xff0c;但这些方法在生成真实且多样化的测试数据集方面存在局限性。为了克服这些限制&#xff0c;DILLEMA框架应运而生&#xff0c;旨在通过结合…

C++程序员内功修炼——Linux C/C++编程技术汇总

在软件开发的宏大版图中&#xff0c;C 语言宛如一座巍峨的高山&#xff0c;吸引着无数开发者攀登探索。而 Linux 操作系统&#xff0c;以其开源、稳定、高效的特性&#xff0c;成为了众多开发者钟爱的开发平台。将 C 与 Linux 相结合&#xff0c;就如同为开发者配备了一把无坚不…