2024 高教社杯 数学建模国赛 (D题)深度剖析|反潜航空深弹命中概率问题|数学建模完整代码+建模过程全解全析

news/2024/9/17 8:08:29/ 标签: 数学建模

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题!
CS团队倾注了大量时间和心血,深入挖掘解决方案。通过数值模拟,蒙特卡罗模拟、风险评估模型等算法,设计了明晰的项目,团队努力体现在每个步骤,确保方案既创新又可行,为大家提供了全面而深入的洞见噢~

让我们来看看国赛(D题)!

完整内容可以在文章末尾领取!
在这里插入图片描述

问题一

问题 1:投射一枚深弹,潜艇中心位置的深度定位没有误差,两个水平坐标定位均服从正态分布。分析投弹最大命中概率与投弹落点平面坐标及定深引信引爆深度之间的关系,并给出使得投弹命中概率最大的投弹方案,及相应的最大命中概率表达式。针对以下参数值给出最大命中概率:潜艇长 100 m,宽 20 m,高 25 m,潜艇航向方位角为 90°,深弹杀伤半径为 20 m,潜艇中心位置的水平定位标准差 𝜎 = 120 m,潜艇中心位置的深度定位值为 150 m。

该问题要求建立数学模型,以分析和解决投弹命中的概率问题。
为了分析投弹最大命中概率与投弹落点平面坐标及定深引信引爆深度之间的关系,我们可以进行以下的建模过程。

问题建模

  1. 潜艇模型

    • 假设潜艇被简化为一个长方体,其尺寸为 100 m 100 \, \text{m} 100m(长度)x 20 m 20 \, \text{m} 20m(宽度)x 25 m 25 \, \text{m} 25m(高度)。潜艇的中心在海平面下的深度为 h 0 = 150 m h_0 = 150 \, \text{m} h0=150m
  2. 定位误差

    • 水平坐标 ( X , Y ) (X, Y) (X,Y) 服从独立的正态分布, ( X , Y ) ∼ N ( 0 , σ 2 ) (X, Y) \sim N(0, \sigma^2) (X,Y)N(0,σ2),其中 σ = 120 m \sigma = 120 \, \text{m} σ=120m,因此 X X X Y Y Y 的分布为:
      X ∼ N ( 0 , 12 0 2 ) , Y ∼ N ( 0 , 12 0 2 ) X \sim N(0, 120^2), \quad Y \sim N(0, 120^2) XN(0,1202),YN(0,1202)
  3. 深度测量

    • 深度 Z Z Z 没有误差,确定为 h 0 = 150 m h_0 = 150 \, \text{m} h0=150m
  4. 投弹落点

    • 假设投弹落点为 ( X 0 , Y 0 ) (X_0, Y_0) (X0,Y0),引爆深度设为 d d d。我们需要考虑如下几种情况来判断命中潜艇的条件:

命中条件

  1. 触发引信引爆(条件1)

    • 深弹落点在潜艇覆盖的水平范围内:
      ∣ X 0 ∣ ≤ 100 2 和 ∣ Y 0 ∣ ≤ 20 2 |X_0| \leq \frac{100}{2} \quad \text{和} \quad |Y_0| \leq \frac{20}{2} X02100Y0220
    • 深度条件:投弹引爆深度 d < 150 + 25 2 = 162.5 m d < 150 + \frac{25}{2} = 162.5 \, \text{m} d<150+225=162.5m(在潜艇上表面下方)。
  2. 定深引信引爆(条件2)

    • 深弹落点在潜艇覆盖范围内:
      ∣ X 0 ∣ ≤ 100 2 和 ∣ Y 0 ∣ ≤ 20 2 |X_0| \leq \frac{100}{2} \quad \text{和} \quad |Y_0| \leq \frac{20}{2} X02100Y0220
    • 深度条件: d ≥ 150 + 25 2 = 162.5 m d \geq 150 + \frac{25}{2} = 162.5 \, \text{m} d150+225=162.5m 并且潜艇在杀伤范围内。
    • 杀伤范围条件:到潜艇中心的距离必须小于等于杀伤半径 20 m 20 \, \text{m} 20m
      ( X 0 − 0 ) 2 + ( Y 0 − 0 ) 2 ≤ 20 \sqrt{(X_0 - 0)^2 + (Y_0 - 0)^2} \leq 20 (X00)2+(Y00)2 20
  3. 定深引信引爆(条件3)

    • 深弹落点在潜艇覆盖范围之外:
      ∣ X 0 ∣ > 100 2 或 ∣ Y 0 ∣ > 20 2 |X_0| > \frac{100}{2} \quad \text{或} \quad |Y_0| > \frac{20}{2} X0>2100Y0>220
    • 深度条件: d ≥ 150 d \geq 150 d150 并且潜艇在杀伤范围内。

最大命中概率分析

我们需要计算以上命中条件下,潜艇被命中的概率。

计算命中概率
  1. 命中区域

    • 首先计算触发引信和定深引信引爆命中区域,以便后续计算命中概率。
  2. 命中概率公式

    • 根据正态分布,我们可以计算潜艇在 X − Y X-Y XY平面上的投弹命中区域所包含的概率。在条件1,2,3下进行整合。
  3. 联合概率

    • 根据独立性,我们对每一个命中条件计算其对应的概率,然后结合。
  4. 最大化命中概率

    • 设定合适的 d d d 可以提高命中概率。我们需要找到最佳的 d d d 值以确保命中概率最大化。数学上我们可以通过对目标函数进行求导找到最大点。

计算实例

给定所需参数,运用上述方法进行计算。

  1. 对于条件1,命中范围和对应概率:
    $$
    P_1 = P(X_0 \in [-50, 50]) \cdot P(Y_0 \in [-10, 10]) \cdot P(Z <
    为了解决问题 1,我们首先需要确定潜艇的位置分布和深弹命中潜艇的条件。潜艇的中心位置在空间中可以用 ( X , Y , Z ) (X,Y,Z) (X,Y,Z) 三个坐标来描述,其中 X X X Y Y Y 均服从均值为 0,标准差为 σ = 120 \sigma = 120 σ=120 m 的正态分布,而 Z Z Z 的定位并没有误差,设定为 Z = 150 Z = 150 Z=150 m。

我们对潜艇进行建模,将潜艇视为一个长方体,尺寸为长 100 m,宽 20 m,高 25 m。潜艇的有效区域在水平面上是一个长方形,范围为:
[ − 50 , 50 ] × [ − 10 , 10 ] . [-50, 50] \times [-10, 10]. [50,50]×[10,10].

命中概率模型建立

1. 投弹落点坐标的定义

设投弹落点的平面坐标为 ( x 0 , y 0 ) (x_0, y_0) (x0,y0)。深弹的杀伤半径为 R = 20 R = 20 R=20 m。因此,深弹才能命中潜艇的条件如下:

  1. 投弹落点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0) 必须在距离潜艇中心的有效范围内。
  2. 投弹落点的引爆深度需要在潜艇上下表面之内,能够通过触发引信或定深引信引爆。
2. 概率计算

由于 X X X Y Y Y 的分布是独立的正态分布,我们可以分别计算 X X X Y Y Y 在特定区域的命中率。

  1. 命中水平面范围:

    投弹落点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0) 在潜艇范围的命中条件为:

    • ∣ X ∣ ≤ 50 |X| \leq 50 X50 m
    • ∣ Y ∣ ≤ 10 |Y| \leq 10 Y10 m

    通过标准化,我们可以计算 X X X Y Y Y 在特定区域的命中概率。

    对于 X X X
    P ( ∣ X ∣ ≤ 50 ) = P ( − 50 ≤ X ≤ 50 ) = Φ ( 50 120 ) − Φ ( − 50 120 ) = 2 Φ ( 50 120 ) − 1 , P(|X| \leq 50) = P(-50 \leq X \leq 50) = \Phi\left(\frac{50}{120}\right) - \Phi\left(\frac{-50}{120}\right) = 2\Phi\left(\frac{50}{120}\right) - 1, P(X50)=P(50X50)=Φ(12050)Φ(12050)=(12050)1,
    其中 Φ \Phi Φ 是标准正态分布的累计分布函数。

    对于 Y Y Y
    P ( ∣ Y ∣ ≤ 10 ) = P ( − 10 ≤ Y ≤ 10 ) = Φ ( 10 120 ) − Φ ( − 10 120 ) = 2 Φ ( 10 120 ) − 1. P(|Y| \leq 10) = P(-10 \leq Y \leq 10) = \Phi\left(\frac{10}{120}\right) - \Phi\left(\frac{-10}{120}\right) = 2\Phi\left(\frac{10}{120}\right) - 1. P(Y10)=P(10Y10)=Φ(12010)Φ(12010)=(12010)1.

    由于 X X X Y Y Y 独立,总的命中概率就为两者的乘积:
    P hit = P ( ∣ X ∣ ≤ 50 ) × P ( ∣ Y ∣ ≤ 10 ) . P_{\text{hit}} = P(|X| \leq 50) \times P(|Y| \leq 10). Phit=P(X50)×P(Y10).

  2. 引爆深度的考虑:

    深弹的引爆深度需要位于 [ 125 , 150 ] [125, 150] [125,150] m(以确保深弹在潜艇上表面下方爆炸),从而影响有效命中率。深度的设定对引爆深度概率的计算是确定的。在深度方面,假设我们选择引爆深度 h = 145 h = 145 h=145 m,这是基于微调的经验值(此处可以进一步探讨准确的深度选择)。

最大命中概率

将所有条件结合,深弹的最大命中概率可以表示为:
P max ( x 0 , y 0 , h ) = P hit ⋅ P ( Z ∈ [ 125 , 150 ] ) P_{\text{max}}(x_0, y_0, h) = P_{\text{hit}} \cdot P(Z \in [125, 150]) Pmax(x0,y0,h)=PhitP(Z[125,150])

根据深度 Z Z Z 的分布:
P ( Z ∈ [ 125 , 150 ] ) = Φ ( 150 − h 0 σ z ) − Φ ( 125 − h 0 σ z ) , P(Z \in [125, 150]) = \Phi\left(\frac{150 - h_0}{\sigma_z}\right) - \Phi\left(\frac{125 - h_0}{\sigma_z}\right), P(Z[125,150])=Φ(σz150h0)Φ(σz125h0),
其中 σ z \sigma_z σz 是深度的标准差。

最优投弹方案:

通过调整投弹落点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0),对 P max P_{\text{max}} Pmax 进行优化,即找到最佳的 ( x 0 , y 0 ) (x_0, y_0) (x0,y0) 使得命中概率最大。最优方案可能需要数值优化方法来调整投弹落点。
在这里插入图片描述

参数计算示例

假设我们选定深度
在解决问题 1 之前,我们需要明确一些变量和建模的假设:

  1. 变量定义

    • 潜艇中央位置的投影坐标为 ( X , Y ) (X,Y) (X,Y),其中 X ∼ N ( 0 , σ 2 ) X \sim N(0, \sigma^2) XN(0,σ2) Y ∼ N ( 0 , σ 2 ) Y \sim N(0, \sigma^2) YN(0,σ2),此处 σ = 120 m \sigma = 120 m σ=120m
    • 深度 Z = 150 m Z = 150 m Z=150m,没有定位误差。
    • 潜艇的几何特征:长度 L = 100 m L = 100 m L=100m,宽度 W = 20 m W = 20 m W=20m,高度 H = 25 m H = 25 m H=25m
    • 深弹的杀伤半径为 R = 20 m R = 20 m R=20m
    • 定深引信的引爆深度为 h d e t h_{det} hdet
  2. 潜艇有效区域
    潜艇横截面积在水平面上的投影为矩形,其范围在 [ − L / 2 , L / 2 ] [-L/2, L/2] [L/2,L/2] [ − W / 2 , W / 2 ] [-W/2, W/2] [W/2,W/2]。即潜艇在水平面上有效范围为:
    R s u b = { ( x , y ) : − 50 ≤ x ≤ 50 , − 10 ≤ y ≤ 10 } R_{sub} = \left\{(x,y): -50 \leq x \leq 50, -10 \leq y \leq 10\right\} Rsub={(x,y):50x50,10y10}

  3. 投弹命中条件
    如题中所述,深弹命中潜艇的条件有以下三种情况:

    • (1) 深弹落点 ( x , y ) (x,y) (x,y) 在潜艇范围内,且 z z z 的引爆深度低于潜艇的顶面基准,即 h d e t ≤ 150 + 25 = 175 h_{det} \leq 150 + 25 = 175 hdet150+25=175
    • (2) 深弹落点 ( x , y ) (x,y) (x,y) 在潜艇范围内,且引爆深度高于潜艇的顶面且处于杀伤范围内,即 h d e t ≥ 175 h_{det} \geq 175 hdet175 x 2 + y 2 ≤ R = 20 \sqrt{x^2 + y^2} \leq R = 20 x2+y2 R=20
    • (3) 深弹落点超出潜艇范围,但引爆深度在潜艇的杀伤范围内,即 x 2 + y 2 ≤ R = 20 \sqrt{x^2 + y^2} \leq R = 20 x2+y2 R=20
  4. 命中概率计算
    设定投弹落点为 ( x 0 , y 0 ) (x_0, y_0) (x0,y0),基于高斯分布我们可以得出:

    • 有效命中条件的概率:
      P h i t = P ( H i t ∣ ( x , y ) ) ⋅ P ( ( x , y ) ∈ R s u b ) P_{hit} = P(Hit | (x,y)) \cdot P((x,y) \in R_{sub}) Phit=P(Hit(x,y))P((x,y)Rsub)

    ( x , y ) (x,y) (x,y) 分布为 N ( 0 , σ 2 ) N(0, \sigma^{2}) N(0,σ2),我们可以得出它们在目标区域 R s u b R_{sub} Rsub 上的命中概率。

  5. 命中概率表达式
    基于上述条件,命中概率为:

    • 当引爆深度符合条件 (1) 和 (2) 时,命中概率可以写成:
      P ( x , y ) = 1 2 π σ 2 ⋅ P ( x ∈ [ − 50 , 50 ] ) ⋅ P ( y ∈ [ − 10 , 10 ] ) P(x,y) = \frac{1}{2\pi \sigma^2} \cdot P(x \in [-50, 50]) \cdot P(y \in [-10, 10]) P(x,y)=2πσ21P(x[50,50])P(y[10,10])

    通过从标准正态分布的值反推,在有效长和宽的边界上估算,得出:
    P ( x ∈ [ − 50 , 50 ] ) = Φ ( 50 σ ) − Φ ( − 50 σ ) P(x \in [-50, 50]) = \Phi\left(\frac{50}{\sigma}\right) - \Phi\left(\frac{-50}{\sigma}\right) P(x[50,50])=Φ(σ50)Φ(σ50)
    P ( y ∈ [ − 10 , 10 ] ) = Φ ( 10 σ ) − Φ ( − 10 σ ) P(y \in [-10, 10]) = \Phi\left(\frac{10}{\sigma}\right) - \Phi\left(\frac{-10}{\sigma}\right) P(y[10,10])=Φ(σ10)Φ(σ10)

    其中 Φ \Phi Φ 为累积分布函数。

  6. 最大命中概率方案
    为了最大化 P h i t P_{hit} Phit,定深引信的最优引爆深度应当为 h d e t = 175 h_{det} = 175 hdet=175,此时命中概率将达到最大值。

最终,命中概率的最大化公式为:
P m a x = 1 2 π σ 2 ( Φ ( 50 σ ) − Φ ( − 50 σ ) ) ( Φ ( 10 σ ) − Φ ( − 10 σ ) ) P_{max} = \frac{1}{2\pi \sigma^2} \left(\Phi\left(\frac{50}{\sigma}\right) - \Phi\left(\frac{-50}{\sigma}\right)\right) \left(\Phi\left(\frac{10}{\sigma}\right) - \Phi\left(\frac{-10}{\sigma}\right)\right) Pmax=2πσ21(Φ(σ50)Φ(σ50))(Φ(σ10)Φ(σ10))

请根据具体算例计算上述概率,并进行适当数值分析。
为了解决问题1,我们需要建立一个数学模型来计算潜艇被深弹命中的概率。以下是该问题的解法步骤:

  1. 模型建立

    • 概率密度函数形式的优势在于,我们可以计算潜艇中心到深弹落点的距离。
    • 设潜艇的坐标为 (X, Y, Z) ,其中 X, Y 分别服从正态分布 N(0, 120^2),Z的深度是150m。
    • 我们需要判定潜弹落在潜艇的横截面范围内,并考虑深度范围。
  2. 命中条件

    • 深弹的落点 (Xb, Yb, Zb) 需满足以下条件:
      1. ∣ X b ∣ ≤ 50 |Xb| \leq 50 Xb50(由于潜艇长100m)
      2. ∣ Y b ∣ ≤ 10 |Yb| \leq 10 Yb10(由于潜艇宽20m)
      3. Zb < 150 (触发引信在潜艇上方)
  3. 概率计算

    • 根据正态分布计算X和Y在上述范围内的概率,然后结合深度因素Z的情况。

以下是对应的 Python 代码,用于实现上述模型:

import numpy as np
from scipy.stats import normdef calculate_hit_probability(sigma, z_loc, kill_radius):# 定义潜艇的尺寸length = 100 / 2  # 半长,50mwidth = 20 / 2    # 半宽,10m# 计算水平落点在潜艇范围内的概率p_x = norm.cdf(length, 0, sigma) - norm.cdf(-length, 0, sigma)p_y = norm.cdf(width, 0, sigma) - norm.cdf(-width, 0, sigma)# 计算触发引信(在深度上方)的到达概率# 由于没有误差,Zb < z_loc 直接认为概率为1p_z = 1  # 由于深度定位没有误差# 越过z的条件,必须是深弹落点需要在有效杀伤范围内p_kill = np.pi * (kill_radius**2) / (length * width)  # 在潜艇上方的概率# 计算命中概率hit_probability = p_x * p_y * p_z * p_killreturn hit_probability# 参数
sigma = 120  # 潜艇水平定位标准差
z_loc = 150  # 潜艇中心实际深度
kill_radius = 20  # 深弹杀伤半径result = calculate_hit_probability(sigma, z_loc, kill_radius)
print("最大命中概率为:", result)

这段代码通过正态分布的累积分布函数计算落点落在潜艇范围内的概率,并结合命中条件给出最终的命中概率。

问题二

问题 2:仍投射一枚深弹,潜艇中心位置各方向的定位均有误差。请给出投弹命中概率的表达式。针对以下参数,设计定深引信引爆深度,使得投弹命中概率最大:潜艇中心位置的深度定位值为 150 m,标准差 𝜎𝑧 = 40 m,潜艇中心位置实际深度的最小值为 120 m,其他参数同问题 1。
为了解决问题2,我们需要确定投弹命中概率的表达式。假设我们已知潜艇的主要参数和定位误差,设潜艇中心位置深度的真实值为 H H H,且其针对深度的定位标准差为 σ z \sigma_z σz。我们设定深引信的引爆深度为 h e h_e he

模型假设与符号定义

  • 潜艇中心位置深度的真实值: H = 150 m H = 150 \, \text{m} H=150m
  • 潜艇深度的标准差: σ z = 40 m \sigma_z = 40 \, \text{m} σz=40m
  • 潜艇深度的最小值: l = 120 m l = 120 \, \text{m} l=120m
  • 潜艇的长和宽: L = 100 m L = 100 \, \text{m} L=100m W = 20 m W = 20 \, \text{m} W=20m
  • 深弹的杀伤半径: R s = 20 m R_s = 20 \, \text{m} Rs=20m

首先,我们定义投弹落点 ( X , Y , Z ) (X, Y, Z) (X,Y,Z) 的可能情况。由于水平定位误差与垂直定位误差是相互独立的,我们可以分开考虑。

1. 水平定位误差

对于潜艇的水平坐标 ( X , Y ) (X, Y) (X,Y),假设 X ∼ N ( 0 , σ 2 ) X \sim N(0, \sigma^2) XN(0,σ2) Y ∼ N ( 0 , σ 2 ) Y \sim N(0, \sigma^2) YN(0,σ2),其中 σ = 120 m \sigma = 120 \, \text{m} σ=120m。因此,潜艇的投影范围是 [ − L / 2 , L / 2 ] × [ − W / 2 , W / 2 ] [-L/2, L/2] \times [-W/2, W/2] [L/2,L/2]×[W/2,W/2]

2. 深度定位误差

首先,潜艇的深度定位值 Z Z Z 服从单边截尾正态分布。其密度函数为:

f h 0 , σ z , l ( z ) = { 1 σ z ⋅ ( 1 − Φ ( l − 150 σ z ) ) ⋅ ϕ ( z − 150 σ z ) , if  z > l 0 , otherwise f_{h_0,\sigma_z,l}(z) = \begin{cases} \frac{1}{\sigma_z \cdot (1 - \Phi(\frac{l - 150}{\sigma_z}))} \cdot \phi(\frac{z - 150}{\sigma_z}), & \text{if } z > l \\ 0, & \text{otherwise} \end{cases} fh0,σz,l(z)={σz(1Φ(σzl150))1ϕ(σzz150),0,if z>lotherwise

其中, ϕ ( x ) \phi(x) ϕ(x) 是标准正态分布的概率密度函数, Φ ( x ) \Phi(x) Φ(x) 是标准正态分布的累积分布函数。

3. 投弹命中条件

根据题意,深弹命中潜艇的条件可以分为三种情况:

  1. S h i t 1 S_{hit1} Shit1:航弹落点在潜艇的平面尺度范围内,且引爆深度在潜艇上表面下方。
  2. S h i t 2 S_{hit2} Shit2:航弹落点在潜艇的平面尺度范围内,且引爆深度在潜艇上表面上方,同时潜艇在杀伤范围内。
  3. S h i t 3 S_{hit3} Shit3:航弹落点在潜艇平面尺度范围外,引爆深度在潜艇实际深度范围内。

我们首先分别计算三个命中条件下的概率。

(1) 对于条件 S h i t 1 S_{hit1} Shit1
该条件下,深弹落点 ( X , Y ) (X, Y) (X,Y) 的分布为

P ( S h i t 1 ) = P ( ∣ X ∣ ≤ L / 2 , ∣ Y ∣ ≤ W / 2 , Z < 150 ) = P ( ∣ X ∣ ≤ L / 2 ) P ( ∣ Y ∣ ≤ W / 2 ) P ( Z < 150 ) P(S_{hit1}) = P(|X| \leq L/2, |Y| \leq W/2, Z < 150) = P(|X| \leq L/2) P(|Y| \leq W/2) P(Z < 150) P(Shit1)=P(XL/2,YW/2,Z<150)=P(XL/2)P(YW/2)P(Z<150)
其中 P ( Z < 150 ) P(Z < 150) P(Z<150) 可以通过计算

P ( Z < 150 ) = Φ ( 150 − 150 σ z ) = 0.5 P(Z < 150) = \Phi\left(\frac{150 - 150}{\sigma_z}\right) = 0.5 P(Z<150)=Φ(σz150150)=0.5

(2) 对于条件 S h i t 2 S_{hit2} Shit2
该条件下,引爆深度 h e h_e he [ 150 , 150 + R s ] [150, 150+R_s] [150,150+Rs] 之间,同时潜艇在杀伤半径内。

P ( S h i t 2 ) = P ( ∣ X ∣ ≤ L / 2 ) P ( ∣ Y ∣ ≤ W / 2 ) P ( h e − R s < Z < h e ) = P ( h e − R s < Z < h e ) P(S_{hit2}) = P(|X| \leq L/2) P(|Y| \leq W/2) P(h_e - R_s < Z < h_e) = P(h_e - R_s < Z < h_e) P(Shit2)=P(XL/2)P(YW/2)P(heRs<Z<he)=P(heRs<Z<he)

(3) 对于条件 S h i t 3 S_{hit3} Shit3
该条件下,深弹落点 ( X , Y ) (X, Y) (X,Y) 不在潜艇边界外,但引爆深度仍在 [ 150 , + ∞ ) [150, +\infty) [150,+) 之间。计算方法类似。

针对问题 2,我们需要推导深弹击中潜艇的命中概率表达式,并考虑潜艇各方向定位误差的情况。
在这里插入图片描述

1. 命中条件

根据题目,深弹命中潜艇需要满足以下条件:

  • 深弹的落点在潜艇的平面范围内,并且深弹的引爆深度符合潜艇的实际深度。

潜艇的尺寸为长 100 m,宽 20 m,高 25 m,因此其中心位置的平面范围为:

  • 水平坐标范围: [ − 50 , 50 ] × [ − 10 , 10 ] [-50, 50] \times [-10, 10] [50,50]×[10,10]

而潜艇实际深度的范围为 [ 120 , + ∞ ) [120, +\infty) [120,+)

2. 定义随机变量

根据题意,潜艇的水平坐标 ( X , Y ) (X, Y) (X,Y) 和深度 Z Z Z 存在误差:

  • 水平坐标: X ∼ N ( 0 , σ 2 ) X \sim N(0, \sigma^2) XN(0,σ2), Y ∼ N ( 0 , σ 2 ) Y \sim N(0, \sigma^2) YN(0,σ2)
  • 深度: Z ∼ N ( h 0 , σ z 2 ) Z \sim N(h_0, \sigma_z^2) ZN(h0,σz2),并且 Z Z Z 被截尾在 [ l , + ∞ ) [l, +\infty) [l,+) 处,其中 h 0 = 150 h_0 = 150 h0=150 m, σ z = 40 \sigma_z = 40 σz=40 m, l = 120 l = 120 l=120 m。

3. 准备命中概率表达式

对于投弹落点 ( x , y ) (x, y) (x,y) 和引爆深度 d d d,命中条件为:

  1. ∣ X ∣ ≤ 50 |X| \leq 50 X50 m 且 ∣ Y ∣ ≤ 10 |Y| \leq 10 Y10 m
  2. 深度条件: d ∈ [ Z , Z + 25 ] d \in [Z, Z + 25] d[Z,Z+25]
    • 因为潜艇的下表面为 Z Z Z,上表面为 Z + 25 Z + 25 Z+25

我们可以计算这两个条件的几率。

4. 计算命中概率

第一部分:水平坐标命中概率

  • 水平坐标 ( X , Y ) (X, Y) (X,Y) 命中概率为:

P ( ∣ X ∣ ≤ 50 , ∣ Y ∣ ≤ 10 ) = P ( ∣ X ∣ ≤ 50 ) ⋅ P ( ∣ Y ∣ ≤ 10 ) P(|X| \leq 50, |Y| \leq 10) = P(|X| \leq 50) \cdot P(|Y| \leq 10) P(X50,Y10)=P(X50)P(Y10)

由于 X X X Y Y Y 服从独立的正态分布,可以通过计算正态累积分布函数得到:

P ( ∣ X ∣ ≤ 50 ) = 2 Φ ( 50 σ ) − 1 P(|X| \leq 50) = 2 \Phi\left(\frac{50}{\sigma}\right) - 1 P(X50)=(σ50)1

P ( ∣ Y ∣ ≤ 10 ) = 2 Φ ( 10 σ ) − 1 P(|Y| \leq 10) = 2 \Phi\left(\frac{10}{\sigma}\right) - 1 P(Y10)=(σ10)1

因此,水平坐标命中概率为:

P X Y = ( 2 Φ ( 50 σ ) − 1 ) ( 2 Φ ( 10 σ ) − 1 ) P_{XY} = \left(2 \Phi\left(\frac{50}{\sigma}\right) - 1\right) \left(2 \Phi\left(\frac{10}{\sigma}\right) - 1\right) PXY=((σ50)1)((σ10)1)

第二部分:深度命中概率
深度命中概率需要考虑引爆深度 d d d 以及潜艇实际深度 Z Z Z
我们要求 Z ≤ d ≤ Z + 25 Z \leq d \leq Z + 25 ZdZ+25 d d d 的最优选择使得命中概率最大,因此:

P ( Z ≤ d ≤ Z + 25 ) = P ( Z ≤ d ) − P ( Z ≥ d + 25 ) P(Z \leq d \leq Z + 25) = P(Z \leq d) - P(Z \geq d + 25) P(ZdZ+25)=P(Zd)P(Zd+25)

利用正态分布可以得到:

P ( Z ≤ d ) = Φ ( d − h 0 σ z ) P(Z \leq d) = \Phi\left(\frac{d - h_0}{\sigma_z}\right) P(Zd)=Φ(σzdh0)

P ( Z ≥ d + 25 ) = 1 − Φ ( d + 25 − h 0 σ z ) P(Z \geq d + 25) = 1 - \Phi\left(\frac{d + 25 - h_0}{\sigma_z}\right) P(Zd+25)=1Φ(σzd+25h0)

因此,深度命中概率为:

P Z = Φ ( d − h 0 σ z ) − ( 1 − Φ ( d + 25 − h 0 σ z ) ) P_{Z} = \Phi\left(\frac{d - h_0}{\sigma_z}\right) - \left(1 - \Phi\left(\frac{d + 25 - h_0}{\sigma_z}\right)\right) PZ=Φ(σzdh0)(1Φ(σzd+25h0))

5. 结合命中概率

综合水平坐标和深度的命中概率,最终得出投弹的命中概率表达式为:

P hit ( d ) = P X Y ⋅ P Z P_{\text{hit}}(d) = P_{XY} \cdot P_{Z} Phit(d)=PXYPZ

在最优引爆深度 d d d 的选择上,可以通过数值分析方法找到使得命中概率 P hit ( d ) P_{\text{hit}}(d) Phit(d) 最大的深度。

妙解

在问题 2 中,潜艇中心位置的三个坐标( X X X Y Y Y Z Z Z)均存在误差,且其分布情况如下:

  • 水平坐标 X X X Y Y Y 均服从正态分布 N ( 0 , σ 2 ) N(0, \sigma^2) N(0,σ2),其中 σ = 120 m \sigma = 120 \, m σ=120m
  • 深度坐标 Z Z Z 服从单边截尾正态分布 N ( h 0 , σ z 2 , l ) N(h_0, \sigma_z^2, l) N(h0,σz2,l),其中 h 0 = 150 m h_0 = 150 \, m h0=150m, σ z = 40 m \sigma_z = 40 \, m σz=40m, 和 l = 120 m l = 120 \, m l=120m

为了计算投弹的命中概率,我们需要分析深弹的落点以及它是否能够命中潜艇。

假设深弹的落点为 ( X f , Y f ) (X_f, Y_f) (Xf,Yf),我们有:

  1. 深弹的杀伤半径 R = 20 m R = 20 \, m R=20m
  2. 潜艇的尺寸为长 L = 100 m L = 100 \, m L=100m,宽 W = 20 m W = 20 \, m W=20m
    在这里插入图片描述

我们计算命中的条件:

情形一:触发引信引爆

  • 深弹落点 ( X f , Y f ) (X_f, Y_f) (Xf,Yf) 在潜艇的平面范围内,即满足:
    ∣ X f ∣ ≤ L 2 且 ∣ Y f ∣ ≤ W 2 |X_f| \leq \frac{L}{2} \quad \text{且} \quad |Y_f| \leq \frac{W}{2} Xf2LYf2W
  • 引爆深度 Z f Z_f Zf 需要在潜艇上表面下方,即 Z f < Z + H 2 Z_f < Z + \frac{H}{2} Zf<Z+2H,其中 H = 25 m H = 25 \, m H=25m 为潜艇高度。因此使用触发引信引爆的条件为:
    Z f < Z + 12.5 Z_f < Z + 12.5 Zf<Z+12.5

情形二:定深引信引爆

  • 深弹落点在潜艇的范围内,即同样满足上面的条件。
  • 此时 Z f Z_f Zf 需要在潜艇上表面上方,并且潜艇在深弹的杀伤范围内,即满足:
    Z f > Z − H 2 且 ∣ X f ∣ 2 + ∣ Y f ∣ 2 ≤ R 2 Z_f > Z - \frac{H}{2} \quad \text{且} \quad |X_f|^2 + |Y_f|^2 \leq R^2 Zf>Z2HXf2+Yf2R2

情形三:越界引信引爆

  • 深弹落点不在潜艇的范围内满足:
    ∣ X f ∣ > L 2 或 ∣ Y f ∣ > W 2 |X_f| > \frac{L}{2} \quad \text{或} \quad |Y_f| > \frac{W}{2} Xf>2LYf>2W
  • 引爆深度为定值且需满足潜艇在杀伤范围内:
    ∣ X f ∣ 2 + ∣ Y f ∣ 2 ≤ R 2 |X_f|^2 + |Y_f|^2 \leq R^2 Xf2+Yf2R2

接下来,统计学地,对于每一种情形我们需要计算命中概率。

投弹命中概率

根据分布,我们可以表示命中概率为 P h i t P_{hit} Phit

P h i t , 1 P_{hit,1} Phit,1 为情形一的命中概率, P h i t , 2 P_{hit,2} Phit,2 为情形二的命中概率, P h i t , 3 P_{hit,3} Phit,3 为情形三的命中概率:

P h i t = P h i t , 1 + P h i t , 2 + P h i t , 3 P_{hit} = P_{hit,1} + P_{hit,2} + P_{hit,3} Phit=Phit,1+Phit,2+Phit,3

根据以上条件,我们可以通过概率密度函数计算概率:

  1. 对于 P h i t , 1 P_{hit,1} Phit,1 P h i t , 2 P_{hit,2} Phit,2,需要结合水平坐标和深度的分布进行积分计算,即:
    P h i t , 1 = ∫ − L 2 L 2 ∫ − W 2 W 2 P ( Z f < Z + 12.5 ) d Y f d X f P_{hit,1} = \int_{-\frac{L}{2}}^{\frac{L}{2}} \int_{-\frac{W}{2}}^{\frac{W}{2}} P(Z_f < Z + 12.5) \, dY_f \, dX_f Phit,1=2L2L2W2WP(Zf<Z+12.5)dYfdXf
    P h i t , 2 = ∫ − L 2 L 2 ∫ − W 2 W 2 P ( Z f > Z − 12.5 ∣ ∣ X f ∣ 2 + ∣ Y f ∣ 2 ≤ R 2 ) d Y f d X f P_{hit,2} = \int_{-\frac{L}{2}}^{\frac{L}{2}} \int_{-\frac{W}{2}}^{\frac{W}{2}} P(Z_f > Z - 12.5 \, | \, |X_f|^2 + |Y_f|^2 \leq R^2) \, dY_f \, dX_f Phit,2=2L2L2W2WP(Zf>Z12.5Xf2+Yf2R2)dYfdXf

  2. 对于 P h i t , 3 P_{hit,3} Phit,3
    P h i t , 3 = ∫ ∣ X f ∣ > L 2 ∪ ∣ Y f ∣ > W 2 P ( ∣ X f ∣ 2 + ∣ Y f ∣ 2 ≤ R 2 ) d Y f d X f P_{hit,3} = \int_{|X_f| > \frac{L}{2} \cup |Y_f| > \frac{W}{2}} P(|X_f|^2 + |Y_f|^2 \leq R^2) \, dY_f \, dX_f Phit,3=Xf>2LYf>2WP(Xf2+Yf2R2)dYfdXf

命中概率的计算

我们分别计算三种情形的命中概率,首先假设目标位置 ( X f , Y f , Z f ) (X_f, Y_f, Z_f) (Xf,Yf,Zf) 服从高斯分布:

X f ∼ N ( 0 , σ x 2 ) , Y f ∼ N ( 0 , σ y 2 ) , Z f ∼ N ( Z , σ z 2 ) X_f \sim N(0, \sigma_x^2), \quad Y_f \sim N(0, \sigma_y^2), \quad Z_f \sim N(Z, \sigma_z^2) XfN(0,σx2),YfN(0,σy2),ZfN(Z,σz2)

这里, σ x , σ y , σ z \sigma_x, \sigma_y, \sigma_z σx,σy,σz 分别是水平方向和深度方向的标准差。然后通过概率密度函数,使用数值积分来计算每个条件下的命中概率:

  1. 情形一 (触发引信引爆):

    触发引信命中概率 P h i t , 1 P_{hit,1} Phit,1 是深度 Z f Z_f Zf 在潜艇上方一定范围内的概率:
    P h i t , 1 = ∫ − L 2 L 2 ∫ − W 2 W 2 Φ ( Z + 12.5 − Z f σ z ) d Y f d X f P_{hit,1} = \int_{-\frac{L}{2}}^{\frac{L}{2}} \int_{-\frac{W}{2}}^{\frac{W}{2}} \Phi\left( \frac{Z + 12.5 - Z_f}{\sigma_z} \right) \, dY_f \, dX_f Phit,1=2L2L2W2WΦ(σzZ+12.5Zf)dYfdXf

  2. 情形二 (定深引信引爆):

    定深引信的命中概率 P h i t , 2 P_{hit,2} Phit,2 需考虑 Z f > Z − 12.5 Z_f > Z - 12.5 Zf>Z12.5 且潜艇位于杀伤范围内:
    P h i t , 2 = ∫ − L 2 L 2 ∫ − W 2 W 2 Φ ( Z f − ( Z − 12.5 ) σ z ) I ( ∣ X f ∣ 2 + ∣ Y f ∣ 2 ≤ R 2 ) d Y f d X f P_{hit,2} = \int_{-\frac{L}{2}}^{\frac{L}{2}} \int_{-\frac{W}{2}}^{\frac{W}{2}} \Phi\left( \frac{Z_f - (Z - 12.5)}{\sigma_z} \right) I\left( |X_f|^2 + |Y_f|^2 \leq R^2 \right) \, dY_f \, dX_f Phit,2=2L2L2W2WΦ(σzZf(Z12.5))I(Xf2+Yf2R2)dYfdXf

  3. 情形三 (越界引信引爆):

    越界引爆的概率 P h i t , 3 P_{hit,3} Phit,3 表示潜艇不在范围内但依然受到打击的概率:
    P h i t , 3 = ∫ L 2 ∞ ∫ W 2 ∞ Φ ( Z f − Z σ z ) I ( ∣ X f ∣ 2 + ∣ Y f ∣ 2 ≤ R 2 ) d Y f d X f P_{hit,3} = \int_{\frac{L}{2}}^{\infty} \int_{\frac{W}{2}}^{\infty} \Phi\left( \frac{Z_f - Z}{\sigma_z} \right) I\left( |X_f|^2 + |Y_f|^2 \leq R^2 \right) \, dY_f \, dX_f Phit,3=2L2WΦ(σzZfZ)I(Xf2+Yf2R2)dYfdXf

总结

根据以上积分公式,我们可以计算三种情形下的命中概率,并最终得到总命中概率 P h i t P_{hit} Phit

import numpy as np
from scipy.stats import norm# Constants
length_submarine = 100  # Length of the submarine (m)
width_submarine = 20     # Width of the submarine (m)
depth_submarine = 25     # Height of the submarine (m)
kill_radius = 20         # Kill radius of the bomb (m)
mean_depth = 150         # Mean depth (m)
std_dev_x = 120          # Standard deviation for X (m)
std_dev_y = 120          # Standard deviation for Y (m)
std_dev_z = 40           # Standard deviation for Z (m)
min_depth = 120          # Minimum actual depth (m)def hit_probability(x, y, z_depth, kill_radius):# Define the submarine's effective areax_range = (0, width_submarine)y_range = (0, length_submarine)# Define possible explosion depthsz_explode = z_depth  # the depth set by the user# Check conditions for hit (touching the submarine)if z_explode >= 0 and z_explode <= depth_submarine:if (x_range[0] <= x <= x_range[1]) and (y_range[0] <= y <= y_range[1]):return 1  # Trigger explosion directly above submarine# Check underwater hit conditions with radiusif z_explode > depth_submarine:if (x_range[0] <= x <= x_range[1]) and (y_range[0] <= y <= y_range[1]):return 1 if (z_explode - depth_submarine) <= kill_radius else 0elif z_explode < depth_submarine and (z_explode >= min_depth):if ((x_range[0] <= x <= x_range[1]) and (y_range[0] <= y <= y_range[1])):return 1 if (depth_submarine - z_explode) <= kill_radius else 0# Checking the direct hit based on the distance from the edges of the submarine areadistance_to_submarine = np.sqrt(x**2 + y**2)if (distance_to_submarine <= kill_radius):return 1return 0def design_depth():max_prob = 0best_depth = 0depth_range = np.arange(min_depth, 200, 0.1)  # Explore depth from min_depth to some reasonable max depthfor z_explode in depth_range:# Calculate the probability of falling at (0,0,z_explode)prob_hit = 0for x in np.linspace(-length_submarine/2, length_submarine/2, num=100):for y in np.linspace(-width_submarine/2, width_submarine/2, num=100):prob_hit += (hit_probability(x, y, z_explode, kill_radius) * (1/(2 * np.pi * std_dev_x * std_dev_y) * np.exp(-((x**2)/(2 * std_dev_x**2) + (y**2)/(2 * std_dev_y**2)))))#见完整版

问题三

在给定条件下,一架反潜飞机可携带9枚航空深弹,所有深弹的定深引信引爆深度均相同,投弹落点在平面上呈阵列形状。针对问题2的参数(潜艇中心位置的深度定位值为150 m,深度标准差𝜎𝑧=40 m,潜艇中心位置实际深度的最小值为120 m,其他参数与问题1相同),设计投弹方案,包括以下内容:

  1. 定深引信引爆深度:选择一个合适的引爆深度以最大化命中概率。
  2. 投弹落点之间的平面间隔:确定深弹在水平面上落点的排列方式和间隔。

目标是最大化至少一枚深弹命中潜艇的概率。简而言之,该问题是关于多枚深弹协同投掷的概率设计与优化。
为了最大化至少一枚深弹命中潜艇的概率,我们可以进行如下建模和设计。

1. 问题设定与符号定义

根据问题描述,我们对相关参数进行定义:

  • 潜艇的长、宽、高分别为 L = 100 m L = 100\,m L=100m W = 20 m W = 20\,m W=20m H = 25 m H = 25\,m H=25m
  • 潜艇的深度定位值 h 0 = 150 m h_0 = 150\,m h0=150m,深度标准差 σ z = 40 m \sigma_z = 40\,m σz=40m,深度最小值 l = 120 m l = 120\,m l=120m
  • 深弹的杀伤半径 R = 20 m R = 20\,m R=20m
  • 投掷的深弹数量 N = 9 N = 9 N=9
  • 投弹落点的水平间隔为 d d d,在水平面上呈阵列形状。

2. 确定定深引信引爆深度

为了选择一个合适的引爆深度 h b h_b hb,首先考虑深度定位误差的影响,可以使用深度坐标的概率密度函数来进行分析。

深度 Z Z Z 服从以下单边截尾正态分布:

f h 0 , σ z , l ( z ) = 1 σ z ⋅ ϕ ( z − h 0 σ z ) ⋅ 1 1 − Φ ( l − h 0 σ z ) , ( l < z < + ∞ ) f_{h_0, \sigma_z, l}(z) = \frac{1}{\sigma_z} \cdot \phi\left(\frac{z - h_0}{\sigma_z}\right) \cdot \frac{1}{1 - \Phi\left(\frac{l - h_0}{\sigma_z}\right)}, \quad (l < z < +\infty) fh0,σz,l(z)=σz1ϕ(σzzh0)1Φ(σzlh0)1,(l<z<+)

为了最大化命中概率,定深引信引爆深度应该设定在潜艇上表面以下一段距离 H H H,即 h b = h 0 − H h_b = h_0 - H hb=h0H,而 H H H 的选择会影响到引爆深度与潜艇下表面以及深弹杀伤半径的关系。

3. 命中概率模型

命中条件如下:

  1. 如果深弹落点在潜艇的水平投影范围内,并且引爆深度在潜艇上表面的下方,则触发引信。
  2. 如果深弹落点在潜艇的水平投影范围内,并且引爆深度在潜艇上表面的上方且潜艇在深弹的杀伤范围内,则定深引信触发。
  3. 如果深弹落点在潜艇的水平投影范围外,则必须满足当引爆深度为 h b h_b hb 时潜艇在杀伤范围内。

考虑深弹阵列分布的特点,对于同一引爆深度 h b h_b hb,每个深弹的落点在水平面上的相对位置可以通过一个子区域来进行分析。假设落点在一个二维平面上呈 3 × 3 3 \times 3 3×3 的阵列,即 d d d 为深弹间隔。

4. 计算单颗深弹命中概率

单颗深弹命中的概率 P h P_h Ph 可以由以下几点组成:

  • 计算潜艇在 h b h_b hb 位置的上表面和下表面与投掷深弹的关系
  • 计算 Z Z Z h b h_b hb 和杀伤半径 R R R的交互影响

设定潜艇上表面深度为 h t o p = h 0 + H h_{top} = h_0 + H htop=h0+H,下表面深度为 h b o t t o m = h 0 − H h_{bottom} = h_0 - H hbottom=h0H

命中概率将会作为多个独立事件的组合来进行考虑。综合考虑后,命中概率可以用组合的形式表示,即至少有一颗深弹命中:

P h i t = 1 − ( 1 − P h ) N P_{hit} = 1 - (1 - P_h)^{N} Phit=1(1Ph)N

其中, P h P_h Ph 表示单颗深弹的命中概率。

5. 最大化命中概率的参数选择

接下来,我们可以最大化此命中概率 P h i t P_{hit} Phit H H H d d d的函数。

我们可以通过数值模拟的方法选取合适的 H H H d d d,以在实际的环境参数下验证并确定最优位置与间隔。

6. 数值计算与模拟

通过计算并模拟不同的引爆深度与间隔,我们可以绘制出图像表现 P h i t P_{hit} Phit,并通过计算确定最优的数组参数,从而实现最大化至少一枚深弹命中潜艇的概率。

因此,这个问题的关键是选择定义的引爆深度 h b h_b hb 和投弹落点的间隔 d d d,这使得设计在实际环境下实现预期效果。利用
为了设计投弹方案以提高深弹的命中概率,我们可以采用以下步骤来分析并求解第三个问题。
在这里插入图片描述

问题分析

假设投放9枚深弹,所有深弹的定深引信引爆深度相同,并且投弹落点在水平面上呈阵列分布。我们已经有潜艇的相关参数,具体分析如下:

  1. 深桶的尺寸:潜艇的长、宽、高分别为100 m、20 m和25 m。
  2. 潜艇的深度定位值:150 m。
  3. 深度标准差:40 m。
  4. 潜艇的实际深度最小值:120 m。
  5. 深弹的杀伤半径:20 m。

投弹设计

1. 定深引信引爆深度

为了最大化命中概率,定深引信引爆深度的选择至关重要。设定引爆深度为 h d h_d hd,该深度需要尽量靠近潜艇的实际深度,考虑到潜艇实际深度的分布。潜艇实际深度 Z Z Z服从截尾正态分布:

  • 期望深度: μ z = 150 \mu_z = 150 μz=150 m
  • 标准差 σ z = 40 σ_z = 40 σz=40 m
  • 最小深度 l = 120 l = 120 l=120 m

潜艇实际深度的分布为 N ( μ z , σ z 2 ) N(\mu_z, \sigma_z^2) N(μz,σz2),但是在深度小于120 m的情况下需要截尾,所以我们可以使用调整的规则来选择 h d h_d hd

根据以上分析,建议选择定深引信引爆深度为 h d = 140 h_d = 140 hd=140 m。选择此深度的原因主要基于以下几点:

  • 120 < Z < 150 120 < Z < 150 120<Z<150范围内,增加命中概率,兼顾到潜艇潜伏深度的可能性。
  • 由于深度波动性较大,设定在140 m使得引爆深度与期望深度的偏差最小。
2. 投弹落点之间的平面间隔

投挡落点的平面分布设计同样重要。设定9个投弹落点呈 3 × 3 3 \times 3 3×3 的阵列布局,每个落点之间的平面间隔 D D D需要合理设置,目的是确保至少一枚深弹进入潜艇的杀伤区。

为了判断落点间隔 D D D,考虑如下参数:

  • 潜艇的宽度:20 m
  • 杀伤半径:20 m

根据潜艇的宽度以及深弹的杀伤半径,推荐的深弹落点之间的间隔可以考虑为 D D D

D = 20 m − r D = 20 \text{ m} - r D=20 mr

这里 r r r是对潜艇宽度的一个安全余量,假设 r = 5 r=5 r=5 m,因此:

D = 20 − 5 = 15 m D = 20 - 5 = 15 \text{ m} D=205=15 m

最终的落点阵列之间的间隔可以设置为 D = 15 D = 15 D=15 m。这样的设计可以保证即便潜艇在某一方向移动,某一落点仍能覆盖潜艇的整个宽度。

最终设计方案

综上所述,为了使至少一枚深弹命中潜艇,我们可以设计如下方案:

  • 定深引信引爆深度 h d = 140 m h_d = 140 \text{ m} hd=140 m
  • 投弹落点之间的平面间隔 D = 15 m D = 15 \text{ m} D=15 m

这种设计能够有效地提高命中潜艇的概率,并且在潜艇的可能变动中,仍持有一定的打击能力。
在这里插入图片描述

为了解决第三个问题,我们需要首先设定定深引信引爆深度和投弹落点之间的平面间隔。我们的目标是最大化至少一枚深弹命中潜艇的概率。

1. 定深引信引爆深度的选择

我们已知潜艇中心位置的深度定位值为 h 0 = 150 h_0 = 150 h0=150 m,深度标准差为 σ z = 40 \sigma_z = 40 σz=40 m,潜艇中心位置实际深度的最小值为 l = 120 l = 120 l=120 m。根据问题描述,潜艇的上下表面高度分别为:

  • 上表面: h t o p = h 0 + 25 2 = 150 + 12.5 = 162.5 h_{top} = h_0 + \frac{25}{2} = 150 + 12.5 = 162.5 htop=h0+225=150+12.5=162.5 m
  • 下表面: h b o t t o m = h 0 − 25 2 = 150 − 12.5 = 137.5 h_{bottom} = h_0 - \frac{25}{2} = 150 - 12.5 = 137.5 hbottom=h0225=15012.5=137.5 m

我们要选择一个引爆深度 h d e t h_{det} hdet。根据引爆条件,为了使得命中概率最大,我们可以选为潜艇的下表面深度,例如机动引信引爆深度 h d e t = h b o t t o m = 137.5 h_{det} = h_{bottom} = 137.5 hdet=hbottom=137.5 m。这样,触发引信可以触发在下表面以下的任意深度,在此深度之上能够覆盖到潜艇的可命中空间。

2. 投弹落点之间的平面间隔的设计

我们考虑在水平面上呈阵列排列9枚深弹。为了简化问题,我们假定投弹落点以一个 3 × 3 3\times3 3×3的方阵布置。令每个落点之间的间隔为 d d d m。假设深弹的杀伤半径 R = 20 R = 20 R=20 m,潜艇的平面投影为长 100 100 100 m,宽 20 20 20 m。

为了确保深弹能覆盖到潜艇的整个区域,我们设置 ( i , j ) (i, j) (i,j)考虑:

X i = ( − k + i ⋅ d ) for  i = 0 , 1 , 2 (三种落点) Y j = ( − k + j ⋅ d ) for  j = 0 , 1 , 2 (三种落点) \begin{align*} X_i & = (-k + i \cdot d) \quad \text{for } i = 0, 1, 2 \text{ (三种落点)} \\ Y_j & = (-k + j \cdot d) \quad \text{for } j = 0, 1, 2 \text{ (三种落点)} \end{align*} XiYj=(k+id)for i=0,1,2 (三种落点)=(k+jd)for j=0,1,2 (三种落点)

为确保至少一枚深弹能覆盖潜艇,边缘条件表述如下:
∣ X ∣ ≤ 50 和 ∣ Y ∣ ≤ 10 (潜艇平面范围) |X| \leq 50 \quad \text{和} \quad |Y| \leq 10 \quad \text{(潜艇平面范围)} X50Y10(潜艇平面范围)

每个深弹的命中概率可以用下列公式表示:

P h i t = P ( 深弹落点在潜艇外 ∩ 命中 ) + P ( 深弹落点在潜艇内 ∩ 触发引信 ) + P ( 深弹落点在潜艇外 ∩ 定深引信 ) P_{hit} = P(\text{深弹落点在潜艇外} \cap \text{命中}) + P(\text{深弹落点在潜艇内} \cap \text{触发引信}) + P(\text{深弹落点在潜艇外} \cap \text{定深引信}) Phit=P(深弹落点在潜艇外命中)+P(深弹落点在潜艇内触发引信)+P(深弹落点在潜艇外定深引信)

3. 最大化深弹累计命中概率

由于我们需要最大化至少一枚深弹命中潜艇的概率,即:

P at least one hit = 1 − P ( no hits ) = 1 − ( 1 − P h i t ) N P_{\text{at least one hit}} = 1 - P(\text{no hits}) = 1 - (1 - P_{hit})^N Pat least one hit=1P(no hits)=1(1Phit)N

其中 N = 9 N = 9 N=9, 为投掷的深弹数量。

将上述命中概率结合到具体的统计分布中,关于每个深弹落点的 X X X Y Y Y坐标应使用标准正态分布的CDF Φ ( x ) \Phi(x) Φ(x) 和PDF ϕ ( x ) \phi(x) ϕ(x)来计算,最终得出每个深弹的命中概率。在具体选取参数 d d d时,可以通过仿真方法找到最优解,从而实现对9枚深弹落点的最佳布置。

结合数值仿真和分析方法进行迭代调整,使得最终的阵列间隔 d d d和引爆深度 h d e t h_{det} hdet能够实现最大化命中概率的设计方案。
以下是针对第三个问题的Python代码,旨在设计投弹方案,以增强杀伤效果并最大化至少一枚深弹命中潜艇的概率。代码中包括选定引爆深度和计算平面落点之间的间隔,模拟深弹命中概率。

import numpy as np
import scipy.stats as stats# 基本参数
submarine_length = 100  # 潜艇长度 (m)
submarine_width = 20    # 潜艇宽度 (m)
submarine_height = 25   # 潜艇高度 (m)
submarine_center_depth = 150  # 潜艇中心深度 (m)
sigma_z = 40            # 深度标准差 (m)
min_depth = 120         # 最小深度 (m)
kill_radius = 20        # 杀伤半径 (m)
num_bombs = 9           # 投放深弹数量
spacing = np.linspace(-30, 30, 3)  # 深弹落点之间的间隔, 可以调整# 根据潜艇的实际位置和深度计算命中概率
def hit_probability(x_target, y_target, depth_trigger, spacing):# 水平坐标的定位误差x_loc = np.random.normal(0, 120, 100000)  # 状态分布y_loc = np.random.normal(0, 120, 100000)  # 状态分布# 深度定位误差,考虑截尾正态分布z_loc = np.random.normal(submarine_center_depth, sigma_z, 100000)z_loc = np.clip(z_loc, min_depth, None)  # 截尾# 计算命中情况hits = 0for x in range(num_bombs):for y in range(num_bombs):x_bomb = x * spacing[1] + spacing[0]  # 基于间隔配置的落点y_bomb = y * spacing[2] + spacing[0]for z in z_loc:if abs(x_bomb - x_target) <= submarine_length / 2 and \abs(y_bomb - y_target) <= submarine_width / 2:if depth_trigger <= z:  # 引爆在潜艇上方distance = np.sqrt((x_bomb - x_target) ** 2 + (y_bomb - y_target) ** 2)if distance <= kill_radius:hits += 1return hits / (100000 * (num_bombs ** 2))# 寻找最优投弹深度与间隔
best_probability = 0
best_depth = None
best_spacing = None#见完整版

代码说明:

  1. 引爆深度和间隔配置:可以根据需要调整spacing的范围和数量。此代码示例使用简单的间隔。
  2. 目标函数hit_probability函数根据给定的投弹落点和引爆深度,模拟深弹命中潜艇的概率,考虑了随机误差。
  3. 最优解寻求:通过遍历引爆深度和间隔,寻找最大的命中概率,最终结果通过打印输出。

更多内容具体可以看看我的下方名片!里面包含有国赛一手资料与分析!
另外在赛中,我们也会陪大家一起解析国赛的一些方向
关注 CS数模 团队,数模不迷路~


http://www.ppmy.cn/news/1521631.html

相关文章

统一4A门户跳转到另外系统免登录

记录一下统一4A门户跳转到另外系统免登录 本系统创建sso页面 <template><div class"yu-loading" v-show"isLoading">...</div> </template> <script>export default {name: YuLogin,created: function () {// 1 在统一平台…

HIVE 数据仓库工具之第二部分(数据库相关操作)

HIVE 数据仓库工具之第二部分&#xff08;数据库相关操作&#xff09; 一、Hive 对数据库的操作1.1 创建数据库1.1.1 创建数据库语法1.1.3 示例 1.2 使用数据库1.2.1 使用数据库语法1.2.2 示例 1.3 修改数据库1.3.1 修改数据库的语法1.3.2 示例 1.4 删除数据库1.4.1 删除数据库…

二分算法入门(简单题)

习题1 704. 二分查找 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], targ…

机器学习与人工智能在未来建筑行业的应用:项目案例与分析

作者主页: 知孤云出岫 目录 作者主页:前言1. 项目背景1.1 行业挑战1.2 人工智能与机器学习的引入 2. 项目案例&#xff1a;智能建筑能耗管理系统2.1 项目介绍2.2 技术实现2.2.1 数据采集与预处理2.2.2 能耗预测模型构建2.2.3 控制策略优化 2.3 实施效果 3. 其他应用案例3.1 建…

C++ 设计模式——访问者模式

目录 C 设计模式——访问者模式1. 主要组成成分2. 逐步构建访问者模式步骤1: 创建元素接口和具体元素步骤2: 创建抽象访问者和具体访问者步骤3:创建对象结构步骤4: 客户端使用访问者模式 3. 访问者模式 UML 图UML 图解析 4. 访问者模式的优点5. 访问者模式的缺点6. 访问者模式适…

【netty系列-09】深入理解和解决tcp的粘包拆包

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

【网络安全】漏洞挖掘

漏洞描述 Spring框架为现代基于java的企业应用程序(在任何类型的部署平台上)提供了一个全面的编程和配置模型。 Spring Cloud 中的 serveless框架 Spring Cloud Function 中的 RoutingFunction 类的 apply 方法将请求头中的“spring.cloud.function.routing-expression”参数…

8、Django Admin后台中添加Logo

在项目settings.py文件 # 导入os&#xff0c;并且修改DIRS内容如下所示 import os TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR, templates/)],APP_DIRS: True,OPTIONS: {context_processors: [django.template.con…

Nginx运维规范及安全配置

1.禁止在location字段对所有请求进行转发 location / {root html;index index.html idindex.htm;proxy_pass http://100.x.x.x:xxx/; }没有对url请求进行过滤&#xff0c;将所有请求转发到后台服务&#xff0c;会导致攻击类的URL被转发到后台&#xff0c;存在安全隐患 禁止使用…

glsl着色器学习(四)

前面讲到已经创建了程序对象&#xff0c;链接到顶点着色器和片段着色器&#xff0c;接着继续。 const positionLoc gl.getAttribLocation(prg, position); const normalLoc gl.getAttribLocation(prg, normal); const texcoordLoc gl.getAttribLocation(prg, texcoord);cons…

数据结构:(LeetCode101)对称二叉树

给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&#xff1a; 树中节点数目在范围…

无需更换摄像头,无需施工改造,降低智能化升级成本的智慧工业开源了。

智慧工业视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。用户只需在界面上…

数理金融工程毕业之后求职应用方向,量化交易方面如何

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…

国产隔离放大器:增强信号完整性和系统安全性的指南

隔离放大器是电子领域的关键组件&#xff0c;特别是在信号完整性和电气隔离至关重要的应用中。这些放大器隔离输入和输出信号&#xff0c;使它们能够在没有直接电气连接的情况下跨不同系统传输数据。这确保了电路一部分的高压尖峰或噪声不会影响另一部分&#xff0c;从而保护了…

随机森林的知识博客:原理与应用

随机森林&#xff08;Random Forest&#xff09;是一种基于决策树的集成学习算法&#xff0c;它通过组合多棵决策树的预测结果来提升模型的准确性和稳健性。随机森林具有强大的分类和回归能力&#xff0c;广泛应用于各种机器学习任务。本文将详细介绍随机森林的原理、构建方法及…

(C++ STL)容器适配器stack、queue、priority_queue的简单实现与源码

容器适配器stack、queue、priority_queue 一、容器适配器二、deque容器1.deque的原理介绍2.deque的特点3.选择deque作为stack和queue的底层默认容器 三、stack简单实现与源码四、queue简单实现与源码五、priority_queue简单实现与源码 以下代码环境为 VS2022 C。 一、容器适配…

sqli-labs靶场(56-60)

56关 ?id-1)union select 1,2,database()-- 看数据库 ?id-1) union select 1,group_concat(table_name),3 from information_schema.tables where table_schemadatabase()-- 看表 ?id-1) union select 1,group_concat(column_name),3 from information_schema.columns wh…

Mysql8 主从复制主从切换(超详细)

文章目录 1 主从复制1.1 实施前提1.2 主节点配置(在192.168.25.91操作)1.3 从节点配置(在192.168.25.92操作)1.4 创建用于主从同步的用户1.5 开启主从同步1.5 主从同步验证 2 主从切换2.1 实施前提2.2 主节点设置只读(在192.168.25.91操作)2.3 检查主从数据是否同步完毕(在192.…

IC 设计前端到后端的流程和 EDA 工具?

IC设计前端也称逻辑设计&#xff0c;后端设计也称物理设计&#xff0c;两者并没有严格的界限&#xff0c;一般涉及到 与工艺有关的设计就是后端设计。 1&#xff1a;规格制定&#xff1a;客户向芯片设计公司提出设计要求。 2&#xff1a;详细设计&#xff1a;芯片设计公司&am…

2024年上海松江启动建筑绿色低碳发展专项检查,共绘城市节能新篇章

2024年9月4日&#xff0c;2024年度松江区建筑工程绿色低碳发展工作专项检查会议正式开展&#xff0c;会议内容主要围绕以下三点&#xff0c; 1、《关于开展 2024年度本市建筑领域绿色低碳发展工作监督检查的通知》宣贯。 2、分项计量、能效测评工作验收要求介绍。 3、专项检…