2022年亚太杯APMCM数学建模大赛E题有多少核弹可以摧毁地球求解全过程文档及程序

2022年亚太杯APMCM数学建模大赛

E题 有多少核弹可以摧毁地球

原题再现

  1945年8月6日,第二次世界大战即将结束。为了尽快结束战争,美国在日本广岛投下了下一颗名为“小男孩”的原子弹。这样一颗原子弹在广岛炸死了20万人,广岛的所有建筑物都倒塌了。这是人类历史上第一次将原子弹付诸实践,也让许多人第一次意识到原子弹的可怕威力。在这里插入图片描述
  核武器是指与核反应有关的巨大致命武器,包括氢弹、原子弹、中子弹等。核武器是人类有史以来最强大的武器之一,经常让人想起毁灭天地的场景。原子弹的瞬间爆炸温度可以达到数千万度。原子弹的爆炸当量约为数万至数十万吨TNT当量。原子弹的爆炸及其辐射范围可以摧毁一座城市。
  由于原子弹的可怕威力,许多国家希望用它来威慑其他国家,保护自己的国家免受外国入侵。二战后,世界各国开始疯狂研发制造原子弹,甚至制造出了“大伊万”等破坏性武器。
  “大伊凡”是目前世界上已知威力最大的核弹,也就是苏联时期建造的“沙皇炸弹”。它不仅是世界上威力最大的核弹,也是最大的核弹。“沙皇炸弹”有多大?数据显示,它的长度为8米,直径为2.1米,重量高达27吨,设计TNT当量为50兆吨。苏联原计划设计相当于100兆吨的导弹,但由于破坏力太大,无法找到合适的试验场,因此功率降低了一半。即便如此,沙皇炸弹仍然是世界上最强大的核武器。“小男孩”的爆炸威力约为14000吨TNT当量,使广岛成为一片废墟,而“沙皇炸弹”的威力可与数十甚至数百名“小男孩“相媲美。“沙皇炸弹”在苏联新地岛试爆后,甚至在一些远至美国的州也探测到了5级左右的地震,导致欧亚大陆向南移动了9毫米。
  许多人认为这些核武器可以毁灭地球好几次。事实真的是这样吗?就人类开发的核武器的威力而言,如果它们摧毁了地球,并不意味着它们可以把地球炸成碎片,而是意味着人类和地球上生物的生存环境已经被破坏。
  APMCM组织委员会要求您的团队处理当前的报告和未来的核武器预测。他们提供了数据集2022_APMCM_E_data.csv来帮助您进行研究。请收集相应的数据,建立数学模型,并回答以下问题。

  要求

  1.基础数据分析

  a) 哪些国家曾经拥有核武器?

  b) 在过去20年中,哪个国家的核武器库存减少或增加最多?

  c) 哪五年的核武器试验最多?

  d) 在过去10年中,哪个国家在核武器研究方面最活跃?

  e) 哪个国家从“不考虑核武器”到“拥有核武器”的转变最快?

  2.预测核武器的数量

  a) 根据所附数据或您收集的数据,建立一个数学模型来预测核武器的数量,并预测未来100年内拥有核武器的国家;

  b) 预测未来100年核武器数量的变化趋势,2123年核武器总数,以及每个国家的核武器数量。

  3.保护我们的星球

  a) 建立核武器引爆位置的数学模型,计算出摧毁地球至少需要多少枚核弹?

  b) 根据数学模型,核弹目前拥有的最大破坏力是多少?足以毁灭地球吗?

  c) 为了保护地球和我们赖以生存的环境,世界核弹的总数应该限制在什么范围内,理论上已经拥有核武器的国家应该限制在哪些范围内?

  4.准备一篇非技术性文章(最多1页)。请给联合国写一篇非技术性的文章(最多1页),解释你的团队的调查结果,并为所有国家提出一些建议。

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

  核武器是人类历史上发展起来的最强大的武器,正是因为核武器的力量,各国才希望通过核武器的威慑作用来保护自己。核武器虽然威力巨大,但一旦爆炸,就会释放出巨大的能量,对生态环境造成严重破坏。
  针对第一个问题,本文根据问题中各国核武器的相关数据进行了基础数据分析。首先,设想所有国家拥有的核武器的状况、储存的核武器数量和进行的核试验数量。使用python遍历相关数据,完成描述性统计分析。构建临界权重评分模型,选取7个指标对不同国家对核武器的态度进行评分,判断朝鲜是最积极的核武器国家。
  对于第二个问题,为了预测未来核武器的数量和趋势,本文构建了一个基于ARIMA时间序列分析的预测模型。首先,对数据进行预处理,并进行ADF稳定性测试和白噪声测试。然后,我们对模型进行评估和测试,以找到最合适的超级参数来引入预测模型。接下来,引入了各国核武器拥有状况和储存情况的数据,并进行了预测和数值分析。最后,我们得出的结论是,2123年的核武器总数将达到2152件,每个国家的核武器数量都将达到2150件。
  对于第三个问题,本文给出了破坏地球的两个定义。一种是用核武器把地球炸成碎片。通过对地球引力结合能和核武器爆炸能力的计算,发现目前核武器的数量远远不够。第二个定义是用核武器及其辐射摧毁地球上的大多数生物。我们将世界地图转换为灰度图像,建立DBSCAN聚类模型,并设置核武器的爆炸半径和传播半径,以获得最终摧毁地球的核弹总数。
  针对第四个问题,我们向联合国提交了一篇非技术性文章,用之前的模型分析结果解释了我们团队对核武器的看法和相关发现,并为所有国家提出了几点建议。我们认为,发展核武器的最终目标是消除核武器。

模型假设:

  为了简化建模,我们做了以下假设:

  1) 假设收集的数据忽略了信息披露程度的影响。
  2) 假设地球被破坏的标准不是地球破碎,而是地球表面的生态环境受到严重破坏。
  3) 本文对核武器数量的分析仅限于收集到的数据中的国家,其他国家没有进行分析。

问题分析:

  问题一分析
  问题1的主要目的是对数据进行基本分析,其中包含五个小问题:
  问题a:数据中的状态=3(国家地位核武器.csv)表明该国当年拥有核武器。因此,通过遍历数据,我们可以发现,状态=3的国家就是曾经拥有核武器的国家。
  问题b:为了更准确地分析问题,我们将首先可视化核武器库存数据(nuclear-chirf-stock.csv),然后分析哪个国家的核武器库存减少或增加最多。由于存在不同的措施,因此开发了两种方法来更全面地分析问题。第一个是每个国家最后一年的核武器数量与最早一年的数量之间的差异。第二种方法是观察每个国家核武器数量的差异。然后对两种方法的结果进行了比较。如果它们是一致的,则可以更好地解释结果的准确性。
  问题c:首先,每年的核武器试验次数是通过处理核武器试验的次数得出的。然后,计算每个“5年”内发生的核武器试验次数,经过比较可以得出核武器试验最多的5年。
  问题d:通过建立CRITIC模型,结合核武器试验数据,对每个国家的核武器研究活动进行评分,从而得出核武器研究最活跃的国家。
  问题e:我们将分析选定的曾经拥有核武器的国家,减去状态=3的最早年份和状态=0的最晚年份,得出这些国家从“不考虑核武器”变为“拥有核武器”的时间间隔,然后进行比较,得出结果。

  问题二分析
  问题二的主要目的是预测核武器,包括预测未来的核武器国家和预测未来核武器的数量。根据数据分析,我们选择建立基于ARIMA的核武器数量预测模型,建立流程图如下
在这里插入图片描述

  从图中可以看出,我们需要首先对时间序列数据进行预处理。由于ARIMA模型建立的先决条件要求,我们需要进行平稳性测试和白噪声测试。在通过平稳性测试和白噪声测试后,进行了模型估计和测试,最终可以成功地建立ARIMA模型。
  建立基于ARIMA的核武器数量预测模型,预测未来100年拥有核武器的国家和核武器数量的变化趋势,预测2123年世界核武器总数和每个国家的核武器数。

  问题三分析
  破坏地球有不同的定义。为了更全面地分析这个问题,我们建立了两个破坏地球的定义。第一个定义是撕裂地球,并在第一个定义的基础上进行了适当的分析。第二个定义是对地球表面的生态环境造成严重破坏。基于这一定义,我们将通过以人口密度为标准的DBSCAN聚类算法建立核武器的爆炸位置模型,然后分析和解决问题,判断摧毁地球需要多少核武器,并计算世界上核武器的极限。

  问题四分析
  根据上述解决方案的结果和我们的调查结果,我们将向联合国撰写一篇非技术性文章,为所有国家提出建议。

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

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

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

程序代码:

部分程序如下:
import pandas as pd
def CountriesThatHaveNuclearBombs():data = pd.read_csv('../data/country-position-nuclear-weapons.csv').values.tolist()countries = {}for i in data:if i[3] == 3:countries[i[0]] = i[2]return countries
if __name__ == '__main__':res = CountriesThatHaveNuclearBombs()for item in res:print(item + ' has nuclear until ' + str(res[item]) + ' year')
import pandas as pd
import matplotlib.pyplot as plt
def draw(countries, years, datas):plt.title('Nuclear Growth')plt.xlabel('years')plt.ylabel('num')for data in datas:plt.plot(years, data, marker='o', markersize=3)plt.legend(countries)plt.show()
if __name__ == '__main__':data = pd.read_csv('../data/nuclear-warhead-stockpiles.csv').values.tolist()datas=[]countries = []temp = []years=[]for i in range(2003, 2023):years.append(i)for i in data:countries.append(i[0])if i[2] > 2002:temp.append(i[3])if i[2] == 2022:
datas.append(temp)temp = []countries_data = list(set(countries))countries_data.sort(key=countries.index)draw(countries_data,years,datas)del countries_data[-4]del countries_data[-1]del datas[-4]del datas[-1]draw(countries_data,years,datas)
import pandas as pd
from matplotlib import pyplot as plt
import plotly.express as px
from matplotlib import pyplot as plt
import seaborn as sns
import statsmodels.api as sm
data = pd.read_csv('../data/number-of-nuclear-weapons-tests.csv').values.tolist()
res = []
temp = []
years = []
for i in range(1945, 2020):years.append(i)
# print(years)
for i in years:for item in data:if item[2] == i:temp.append(item[3])num = 0for j in temp:num += jres.append(num)num = 0temp = []
print(res)
res = pd.DataFrame(res, columns=['num'])
# res.index=pd.Index(sm.tsa.datetools.dates_from_range('1945', '2019'))
print(res)
fiveyears = []
fiveyearsnum = []
print(len(res.index))
for index in range(0, len(res.index) - 4):fiveyearsnum.append(res[index:index + 5].values.transpose().tolist()[0][0] + 
res[index:index + 5].values.transpose().tolist()[0][1] + res[index:index + 5].values.transpose().tolist()[0][2] + \res[index:index + 5].values.transpose().tolist()[0][3] + res[index:index + 
5].values.transpose().tolist()[0][4])
# +'to'+str(i+4)
[fiveyears.append(str(i)) for i in range(1945,2016)]
print(fiveyears)
print(fiveyearsnum)
plt.figure(figsize=(15, 10))
plt.plot(fiveyears,fiveyearsnum)
plt.xticks(rotation=90)
# Control chart notes
plt.annotate('The Max value is %d in %s' % 
(max(fiveyearsnum),fiveyears[fiveyearsnum.index(max(fiveyearsnum))]), # Control the 
content of commentsxy=(fiveyearsnum.index(max(fiveyearsnum)), max(fiveyearsnum)), # 
The point to comment, y1.index(max(y1)): The index of the maximum value in y1,# max(y1):The maximum value in y1xytext=(20, 400), # The location of the comment displayfontsize=30,arrowprops=dict(facecolor='black', width=0.5, headwidth=5) # Control 
arrow color, width, arrow width# arrowprops=dict(arrowstyle=''<->'') # Try this)
plt.show()
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

VueRouter 源码解析

重要函数思维导图 路由注册 在开始之前&#xff0c;推荐大家 clone 一份源码对照着看。因为篇幅较长&#xff0c;函数间的跳转也很多。 使用路由之前&#xff0c;需要调用 Vue.use(VueRouter)&#xff0c;这是因为让插件可以使用 Vue export function initUse(Vue: GlobalAP…

EDUSRC--简单打穿某985之旅

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

idea leetcode配置

idea leetcode配置 配置页面如下图所示&#xff0c;根据需要&#xff0c;填入登录用户名、密码、文件存放路径&#xff0c;注意如果要使用自定义的代码结构配置&#xff0c;要勾选图中框出来的选项。 Code FileName&#xff1a; $!velocityTool.camelCaseName(${question.tit…

CentOS7.9离线安装 Nginx

1. 下载Nginx安装包 下载地址&#xff1a;http://nginx.org/download/nginx-1.20.1.tar.gzhttp://nginx.org/download/nginx-1.20.1.tar.gz 2. 找到Nginx安装时需要的依赖包 我这里是下载了CentOS7.9的安装镜像 阿里下载地址&#xff1a;centos-7.9.2009-isos-x86_64安装包…

Opencv之RANSAC算法用于直线拟合及特征点集匹配详解

Opencv之RANSAC算法用于直线拟合及特征点集匹配详解 讲述Ransac拟合与最小二乘在曲线拟合上的优缺点 讲述在进行特征点匹配时&#xff0c;最近邻匹配与Ransac匹配的不同之处 另外&#xff0c;Ransac也被用于椭圆拟合、变换矩阵求解等 1. 直线拟合 1.1 原理 RANSAC(RANdom …

CUDA 学习记录

1.关于volatile&#xff1a; 对于文章中这个函数&#xff0c; __global__ void reduceUnrollWarps8 (int *g_idata, int *g_odata, unsigned int n) {// set thread IDunsigned int tid threadIdx.x;unsigned int idx blockIdx.x * blockDim.x * 8 threadIdx.x;// convert…

操作系统:线程同步和调度

文章目录 线程同步和调度一、实验目的二、实验要求与内容、过程与结果 系列文章 线程同步和调度 一、实验目的 通过创建线程、分配线程优先级和终止线程的程序设计和调试操作&#xff0c;进一步熟悉操作系统的线程概念&#xff0c;理解Windows 2000线程的生命周期。 通过对事…

18-spring 事务

文章目录 1. xml和注解配置方式的对象2.spring事务传播特性3. 注解事务的初始化流程4. 创建事务信息流程图5. 事务回滚流程图1. xml和注解配置方式的对象 2.spring事务传播特性 事务传播行为类型说明PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事…

RHEL 8.6 Kubespray 1.23.0 install kubernetes v1.27.5

文章目录 1. 预备条件2. download01 节点 安装 dockerdownload01 节点 介质下载下载 bastion01节点配置 yum 源bastion01 节点安装 docker5. 安装 docker insecure registrybastion01 部署 nginx 与 镜像入库13.1 配置 config.sh13.2 配置 setup-docker.sh13.3 配置 start-ngin…

Unity中Shader实现UI流光效果

文章目录 前言一、实现思路1&#xff1a;1、采集两张贴图&#xff0c;一张是主纹理&#xff0c;一张是扫光纹理2、在 v2f 定义一个二维变量 “uv2” 来存放 uv 偏移后的值3、在顶点着色器中&#xff0c;仿照之前的 uv 流动效果,与 _Time相乘后存放于 uv2 中4、最后&#xff0c;…

任务分配问题(回溯法)

算法设计 问题描述 有n&#xff08;n≥1&#xff09;个任务需要分配给n个人执行&#xff0c;每个任务只能分配给一个人&#xff0c;每个人只能执行一个任务。 第i个人执行第j个任务的成本是c[i][j]&#xff08;1≤i&#xff0c;j≤n&#xff09;。求出总成本最小的分配方案 …

【JVM】synchronized与锁升级

文章目录 1. synchronized锁优化背景2. synchronized锁性能优化过程2.1 java5以前2.2 monitor锁2.3 java6开始 3. 无锁4. 偏向锁4.1 背景4.2 理论落地4.3 技术实现4.4 偏向锁的撤销4.5 题外话 5. 轻量级锁5.1 轻量级锁的加锁5.2 轻量级锁的释放5.3 锁升级 6. 重量级锁7. 锁升级…

springweb+vue前后端分离开发,集成部署

背景&#xff1a; 在自己做测试的时候&#xff0c;由于需要项目和项目的前端页面使用同样接口访问&#xff0c;所以需要将前端代码部署到后端项目下。前端采用vue&#xff0c;后端采用springboot。 首先时建立一个vue项目&#xff0c;这个可以参照网上的案例&#xff0c;创建方…

Node.js的安装

直接在浏览器中搜索Node.js即可 打开下载好的文件 验证是否安装成功 在cmd中输入 node -v&#xff0c;若结果为版本号那就是成功的 环境配置 配置全局模块所在的路径缓存cache的路径 在安装目录中新建两个文件夹&#xff0c;文件夹名为:node_cache和node_global 输…

C++之this指针

前言 C中对象模型和this指针是面向对象编程中的重要概念。对象模型描述了对象在内存中的布局和行为&#xff0c;包括成员变量、成员函数的存储方式和访问权限。this指针是一个隐含的指针&#xff0c;指向当前对象的地址&#xff0c;用于在成员函数中引用当前对象的成员变量和成…

搭建伪分布式Hadoop

文章目录 一、Hadoop部署模式&#xff08;一&#xff09;独立模式&#xff08;二&#xff09;伪分布式模式&#xff08;三&#xff09;完全分布式模式 二、搭建伪分布式Hadoop&#xff08;一&#xff09;登录虚拟机&#xff08;二&#xff09;上传安装包&#xff08;三&#xf…

VMware Workstation里面安装ubuntu20.04的流程

文章目录 前言一、获取 desktop ubuntu20.04 安装镜像二、VMware Workstation下安装ubuntu20.041. VMware Workstation 创建一个新的虚拟机2. ubuntu20.04的安装过程3. 登录ubuntu20.044. 移除 ubuntu20.04 安装镜像总结参考资料前言 本文主要介绍如何在PC上的虚拟机(VMware W…

WordPress SMTP邮件发送插件 Easy WP SMTP

Easy WP SMTP是一款 WordPress 邮件发送插件&#xff0c;WordPress 中经常用到邮件发送&#xff0c;包括新注册用户的邮件通知、找回密码通知、评论回复通知等。因为云服务器默认不启用 SMTP功能&#xff0c;所以需要安装 SMTP插件来解决这个问题。 SMTP 主机&#xff1a;smtp.…

javascript/python 笔记: folium feature group自动切换

1 python部分 python部分只能是静态的结果 1.1 导入库 import folium import math 1.2 数据 cell_lst表示基站位置&#xff0c;location_lst表示 用户实际位置&#xff08;均为伪数据&#xff09; cell_lst[[1.341505, 103.682498],[1.342751, 103.679604],[1.341505, 10…

YCSB and TPC-C on MySQL(避免重复load)

一、编译安装MySQL 下载mysql5.7.28源码 https://downloads.mysql.com/archives/community/ Select Operating System 选择 Source Code Select OS version 选择 All Operating Systems 选择带有boost的版本 安装系统包 apt -y install make cmake gcc g perl bison libai…