2023 年 亚太赛 APMCM ABC题 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

本文主要是介绍2023 年 亚太赛 APMCM ABC题 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。
在这里插入图片描述
以五一杯 A题为例子,以下是咱们做的一些想法呀!

问题1:

(1)建立数学模型:

无人机投放模型在这个问题中的作用是建立数学模型来描述无人机投放爆炸物的过程,并且可以通过该模型来优化无人机投放的策略,从而提高命中率和效率。具体来说,该模型可以通过考虑无人机的飞行高度、飞行速度、俯冲角度、发射速度等因素来确定最佳的发射距离和发射时机,以确保物体能够准确地命中目标。此外,该模型还可以考虑外部因素,如风速和风向等,来调整无人机的飞行轨迹和姿态,以提高投放精度和稳定性。

对于本题的模型,有:

其中 ρ 为空气密度,S 为物资横截面积, 为物资的阻力系数, g 为重力加速度,F 为无人机与物资之间的牵引力。

当无人机投放物资时,物资与无人机之间断开连接,牵引力 F取0,上式可以化简为:

其中为重力加速度。

(2)在无人机的飞行高度为 300m,飞行速度为 300km/h,风速为 5m/s,风向与水平面平行的情况下,使用代码解决:

import

 math# 定义常量
v0 = 300      # 飞行速度,单位km/h
vw = 5        # 风速,单位m/s
h = 300       # 飞行高度,单位m
r = 0.2       # 球形物资半径,单位m
m = 50        # 球形物资质量,单位kg
g = 9.8       # 重力加速度,单位m/s^2# 计算投放距离
d0 = v0**2/g * math.sin(0*2*math.pi/360) + vw*v0/g * math.cos(0*2*math.pi/360)
d180 = v0**2/g * math.sin(180*2*math.pi/360) + vw*v0/g * math.cos(180*2*math.pi/360)
d90 = v0**2/g * math.sin(90*2*math.pi/360) + vw*v0/g * math.cos(90*2*math.pi/360)# 输出结果
print(f"无人机飞行方向与风向相同时,投放距离为:{d0:.1f}m")
print(f"无人机飞行方向与风向相反时,投放距离为:{d180:.1f}m")

问题2:
假设无人机在水平飞行过程中到达距离目标点的水平距离为 x ,飞行高度为 ℎ ,飞行速度为v ,俯冲角度为 α ,发射速度为 u 。则无人机发射炸弹的轨迹可以分解为水平方向和竖直方向两个分量。

在水平方向上,无人机在 秒到达目标点,发射炸弹的时间为 秒。发射炸弹时无人机的水平速度为vcos⁡α ,炸弹的水平初速度为 ucos⁡α。

在竖直方向上,炸弹自由落体运动,竖直初速度为 usin⁡α ,竖直加速度为g 。设炸弹飞行的时间为 秒,则有:

将 t3 的值代入到水平方向上的运动中,则可以求得无人机与目标点之间的距离 x1 :

假设无人机发射炸弹的距离为 d ,则需要满足 1000≤d≤3000 。为了使无人机在发射炸弹时仍能保持安全的飞行高度,假设无人机的飞行高度为 800m ,则有 ℎ≥300m 。

为了使发射策略可行,需要选择合适的俯冲角度 α 和发射速度u。假设 α 为定值,可以根据上述模型求出发射速度u与发射距离d的关系,并绘制出其图像,如下图所示。

由图像可知,当俯冲角度为 30∘ 时,发射速度最小,约为 426.8m/s ,此时发射距离为d≈1716.2m

问题3:
无人机的飞行稳定性可以用无人机的俯仰角和偏航角的变化率来描述,即:

其中, θ表示俯仰角, 表示偏航角。这个数值越小,说明无人机的飞行越稳定。

无人机的命中精度可以用命中目标的距离来描述,与无人机的飞行稳定性呈反比关系,即:

在实际应用中,可以通过无人机的传感器数据来计算无人机的俯仰角和偏航角的变化率,并根据上述公式来评估无人机的飞行稳定性和命中精度。

import numpy as np
import matplotlib.pyplot as pltdef dynamic_equation(x, u):# 状态方程A = np.array([[1, 0, 0, dt, 0, 0],[0, 1, 0, 0, dt, 0],[0, 0, 1, 0, 0, dt],[0, 0, 0, 1-0.5*rho*Cd*S/m*dt, 0, 0],[0, 0, 0, 0, 1-0.5*rho*Cd*S/m*dt, 0],[0, 0, 0, 0, 0, 1-0.5*rho*Cd*S/m*dt]])# 输入方程B = np.array([[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, -0.5*rho*S*vx0**2/m*dt],[0, 0, 0, -0.5*rho*S*vx0**2/m*dt],[0, 0, 0, -0.5*rho*S*vx0**2/m*dt]])# 状态更新x_new = np.dot(A, x) + np.dot(B, u)return x_new# 定义无人机飞行过程的仿真函数
def simulate_flight(x0, u, t):# 初始化状态和控制输入x = x0u = u.reshape(-1, 1)# 初始化状态列表和控制输入列表x_list = [x]u_list = [u]# 循环仿真for i in range(len(t)):# 计算下一个状态x = dynamic_equation(x, u)# 记录状态和控制输入x_list.append(x)、、模糊处理 完整版看文章下面~u_list.append(u)# 将列表转换为数组x_array = np.array(x_list)u_array = np.array(u_list)return x_array, u_array# 无人机和环境参数设置
h = 800  # 飞行高度,单位:m
v0 = 300  # 无人机飞行速度,单位:km/h
v = np.linspace(300, 400, 101) / 3.6  # 无人机相对地面速度,单位:m/s
vw = np.array([6, 0])  # 风速,单位:m/s
gamma = np.deg2rad(45)  # 俯冲角,单位:rad
g = 9.8  # 重力加速度,单位:m/s^2# 计算无人机稳定性
S = 2 * np.pi * (0.5 ** 2)  # 球形爆炸物的参考面积
Cd = 0.5  # 球形爆炸物的阻力系数
m = 50  # 球形爆炸物的质量,单位:kg
rho = 1.2  # 空气密度,单位:kg/m^3
K = 0.5 * rho * S * Cd / m  # 阻力系数
u = np.sqrt(v ** 2 + (v0 * np.sin(gamma)) ** 2)  # 爆炸物相对空气速度
D = K * u ** 2  # 阻力大小
H = h - np.sqrt((h ** 2) / (np.tan(gamma) ** 2 + 1))  # 爆炸物发射高度
t = (H - 300) / (v0 * np.cos(gamma))  # 爆炸物发射时间
x0 = v0 * t  # 无人机前进距离
x = x0 + (v + vw[0]) * t  # 爆炸物水平位移距离
y = H - (v0 * np.sin(gamma) + (g + vw[1]) * t) * t / 2  # 爆炸物垂直位移距离
delta_x = 20 / 2  # 爆炸物命中误差,单位:cm
sigma = delta_x / 3  # 标准差
P = 1 / (sigma * np.sqrt(2 * np.pi)) * np.exp(-(x - delta_x) ** 2 / (2 * sigma ** 2))  # 命中概率密度函数
hit_rate = np.trapz(P, x)  # 命中率# 可视化结果
plt.plot(v, P)
plt.xlabel('Horizontal displacement (m)')
plt.ylabel('Probability density')
plt.title('Hit probability density')
plt.show()print('The hit rate is %.2f%%.' % (hit_rate * 100))

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

这篇关于2023 年 亚太赛 APMCM ABC题 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

uva 10025 The ? 1 ? 2 ? ... ? n = k problem(数学)

题意是    ?  1  ?  2  ?  ...  ?  n = k 式子中给k,? 处可以填 + 也可以填 - ,问最小满足条件的n。 e.g k = 12  - 1 + 2 + 3 + 4 + 5 + 6 - 7 = 12 with n = 7。 先给证明,令 S(n) = 1 + 2 + 3 + 4 + 5 + .... + n 暴搜n,搜出当 S(n) >=

uva 11044 Searching for Nessy(小学数学)

题意是给出一个n*m的格子,求出里面有多少个不重合的九宫格。 (rows / 3) * (columns / 3) K.o 代码: #include <stdio.h>int main(){int ncase;scanf("%d", &ncase);while (ncase--){int rows, columns;scanf("%d%d", &rows, &col

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言