2015年第四届数学建模国际赛小美赛B题南极洲的平均温度解题全过程文档及程序
2015年第四届数学建模国际赛小美赛
B题 南极洲的平均温度
原题再现:
地表平均温度是反映气候变化和全球变暖的重要指标。然而,在以前的估计中,在如何界定土地平均数方面存在一些方法上的差异。为简单起见,我们只考虑南极洲。请建立一个数学框架,用以根据气象站温度计数据定义和估计平均表面温度,并描述南极温度随时间的变化。
所需数据可从附件或公布的数据库获取,如英国南极调查局网站:https://legacy.bas.ac.uk/met/reader/.
整体求解过程概述(摘要)
为了探索南极洲的平均温度,我们分别建立了三个不同的模式。第一个模型是南极的温度分析模型。第二个模型是南极洲平均地表温度分析框架。第三个模型描述了南极温度随时间的变化。
在第一个模型中,完成数据采集任务,获得24828组数据,并进行数据预处理,获得5884组数据。同时,为了获得有效的数据,通过对站点信息的分析,定义了评价数据可用性的指标。然后分析了各因子对温度的贡献,建立了时间、纬度、经度、站压、风速、风向等因子对南极温度的多元线性回归模型。变量的系数依次为0.013、-0.509、-0.065、0.286、-0.431和0.050。模型的拟合优度为0.499。通过对第一个模型的分析,明确了各因素的作用,得到了各有效因素的贡献信息。
在第二个模型中,通过插值确定地表平均温度,建立多元非线性回归模型和BP神经网络模型。通过对温度、气压和风场数据进行插值,得到特定时间段的平均地面数据。同时,考虑到第一类模型拟合优度较低,采用多元非线性回归方法。因此,我们构造了时间的正弦周期函数,并用Levenberg-Marquardt方法对数据进行拟合。得到了时间、气压、风速和风向的线性项系数分别为0.019、0.008、-0.053和0.006的十参数函数的拟合结果。模型的拟合优度为0.626。此外,针对BP神经网络在非线性拟合方面的优越性,本文还训练了BP神经网络模型。通过对100组数据的检验,六隐层BP神经网络模型的拟合优度为0.802。
在第三个模型中,我们定义了一个非线性回归模型,利用一个5参数的正弦周期函数来获取南极温度随时间变化的信息。周期项系数为-6.283,线性关系为0.185。模型的拟合优度为0.707。分析了年平均气温随年份的变化规律,得出年平均气温的斜率为0.038。这意味着南极洲的平均气温每十年上升0.38℃。对模型进行了检验,平均绝对误差为1.527℃。
总之,南极洲的平均温度与某些因素有关。气温呈周期性变化,并随年份变化缓慢上升。
模型假设:
我们假定站点的经纬度是恒定的。
网站提供的黑色、蓝色和绿色数据均有效。
网站的红色数据无效。
问题重述:
在这个问题上,我们只需要考虑南极洲。在此基础上,提出了一个由气象站温度计数据定义和估算南极平均温度的数学框架,并描述了南极温度随时间的变化。从这个问题给我们的网站上,我们可以得到很多南极不同站点的数据,这些数据来自SCAR阅读器项目。这些数据包括20世纪中叶至21世纪初不同月份的气温、平均海平面气压(MSL压力)、气压、风速和风向。然而,我们所得到的数据仅仅反映了站点周围的温度,不能反映整个南极洲的平均温度。因此,我们采用插值法来计算平均表面温度。
模型的建立与求解整体论文缩略图


全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码:(代码和文档not free)
clear;
clc;
data = [];
%load data sheet1-44
%Observatory latitude and longitude data
latitude =
[67.8,90,62.5,71.5,78,77.9,62.2,80,52,66.3,68.6,63,66.7,63.4, ...65.4,62.1,40.4,62.2,54.3,75.5,62.2,62.2,69.5,54.5,64.2,66.5,46.8, ...62.4,67.6,77.9,66.5,67.7,70.7,70.8,63.3,60.7,67.5,74.8,68.1,77.9, ...60.7,69,78.5,69.4];
longitude =
[-67.9,0,-59.7,24.1,-38.8,-34.6,-58.9,-120,169,110.5,78, ...-60.7,140,-57,-64.4,-58.4,-9.9,-59,-36.5,-26.4,-58.6,-58.7,159.4, ...158.9,-56.7,93,37.8,-58.9,62.9,166.7,93,45.9,-8.4,-11.8,-57.9,-44.7,
...-68.1,-136.9,-67.1,166.7,-45.6,-39.6,106.9,76.4];
height =
[26,2835,5,931,50,256,16,1515,19,42,13,8,43,13,11,20,54,10,3,30, ...4,11,304,8,198,30,24,10,16,24,30,40,50,119,10,6,16,124,4,16,6,21,3490
,18];
%Station Pressure for the presence of 11 observation stations start year
%and Temperature discrepancies (Station_Pressure night)
dif_1 =
[0,0,0,0,0,10,0,0,0,0,0,0,38,36,0,0,46,0,0,0,8,0,0,0,25,55,0, ...37,0,0,0,0,0,0,0,93,0,0,17,0,0,2,0,0];
%For MSL Pressure stations exist seven years starting with the discrepancies
%Temperature, whichever is later processed 5 (Station_Pressure nights)
dif_2 =
[0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, ...0,0,0,0,0,0,0,5,0,0,0,0,1];
%Wind Speed existence for 14 years and does not match the initial
%observation station Temperature (Wind_Speed night)
dif_3 =
[0,0,21,0,0,0,0,0,0,1,0,0,0,27,2,0,46,0,54,0,0,0,0,0,13,55,0, ...18,0,0,0,0,0,0,24,84,0,0,5,40,9,0,0,0];
%Wind Direction existence for 24 years starting with the observation
%station Temperature discrepancies (Wind_Direction night)
dif_4 =
[0,0,21,0,45,2,0,43,0,1,0,0,0,27,2,0,44,2,54,0,0,12,2,0,17,52, ...0,18,0,0,34,0,0,0,24,84,0,1,8,40,9,0,5,1];
for ii = 1:44%Read T_deal data%Read sheet data[num_1,txt,raw] = xlsread('T_deal.xlsx',ii);%Remove the sheet ii effective dataa_1 = num_1(1:2:end,:);%Get valid data sheet ii dimension m rows and n columns%Obtained sheet ii m in total[m,n] = size(a_1);flag_1 = 0;flag_2 = 0;flag_3 = 0;flag_4 = 0;str_1 = 'Sheet';%Read P_deal dataif ii ~= 3 && ii ~= 5 && ii ~= 8 && ii ~= 9 && ii ~= 12 && ii ~= 15 ...&& ii ~= 16 && ii ~= 19 && ii ~= 20 && ii ~= 22 && ii ~= 33 ...&& ii ~= 35 &&ii ~= 37 && ii ~= 40 && ii ~= 41%Read sheet datastr_2 = num2str(ii);str = strcat(str_1,str_2);[num_2,txt,raw] = xlsread('P_deal.xlsx',str);%Remove the sheet ii effective dataa_2 = num_2(1:2:end,:);flag_1 = 1;end%Read P_MSL_deal dataif ii ~= 2 && ii ~= 8 && ii ~= 43%Read sheet data
str_2 = num2str(ii);str = strcat(str_1,str_2);[num_3,txt,raw] = xlsread('P_MSL_deal_2.xlsx',str);%Remove the sheet ii effective dataa_3 = num_3(1:2:end,:);flag_2 = 1;end%Data read speed dealif ii ~= 5 && ii ~= 8%Read sheet datastr_2 = num2str(ii);str = strcat(str_1,str_2);[num_4,txt,raw] = xlsread('speed_deal.xlsx',str);%Remove the sheet ii effective dataa_4 = num_4(1:2:end,:);flag_3 = 1;end%Reads the data direction dealif ii ~= 27%Read sheet datastr_2 = num2str(ii);str = strcat(str_1,str_2);[num_5,txt,raw] = xlsread('direction_deal.xlsx',str);%Remove the sheet ii effective dataa_5 = num_5(1:2:end,:);flag_4 = 1;endb = [];%The first column of data making the year, the number for the year
* monthfor j = 1:m%Copy the Year 12 timesfor k = 1:12%From left to right, respectively, for the year, month,
latitude, %longitude, altitude, observatories pressure, MSL pressure, %wind speed, wind direction, temperatureb((j-1)*12+k,1) = a_1(j,1);b((j-1)*12+k,2) = k;b((j-1)*12+k,3) = latitude(ii);b((j-1)*12+k,4) = longitude(ii);b((j-1)*12+k,5) = height(ii);if flag_1 == 1if ii ~= 6 && ii ~= 13 && ii ~= 14 && ii ~= 17&& ii ~= 21 && ii ~= 25 && ii ~= 26 && ii ~= 28 ...&& ii ~= 36 && ii ~= 39 && ii~= 42b((j-1)*12+k,6) = a_2(j,k+1);elseif j > dif_1(ii)b((j-1)*12+k,6) = a_2(j-dif_1(ii),k+1);endendendif flag_2 == 1if ii ~= 4 && ii ~= 10 && ii ~= 18 && ii ~= 39 && ii ~= 44b((j-1)*12+k,7) = a_3(j,k+1);elseif j > dif_2(ii)b((j-1)*12+k,7) = a_3(j-dif_2(ii),k+1);endendendif flag_3 == 1if ii ~= 3 && ii ~= 10 && ii ~= 14 && ii ~= 15 ...&& ii ~= 17 && ii ~= 19 && ii ~= 25 && ii ~= 26 ...&& ii ~= 28 && ii ~= 35 && ii ~= 36 && ii ~= 39 ...&& ii ~= 40 && ii ~= 41b((j-1)*12+k,8) = a_4(j,k+1);elseif j > dif_3(ii)b((j-1)*12+k,8) = a_4(j-dif_3(ii),k+1);endendendif flag_4 == 1if ii ~= 3 && ii ~= 5 && ii ~= 6 && ii ~= 8 && ii ~= 10 ...&& ii ~= 14 && ii ~= 15 && ii ~= 17 && ii ~= 18 ...&& ii ~= 19 && ii ~= 22 && ii ~= 23 && ii ~= 25 ...&& ii ~= 26 && ii ~= 28 && ii ~= 31 && ii ~= 35 ...&& ii ~= 36 && ii ~= 38 && ii ~= 39 && ii ~= 40 ...&& ii ~= 41 && ii ~= 43 && ii ~= 44b((j-1)*12+k,9) = a_5(j,k+1);elseif j > dif_4(ii)b((j-1)*12+k,9) = a_5(j-dif_4(ii),k+1);endendend
b((j-1)*12+k,10) = a_1(j,k+1);endenddata = [data;b];disp([num2str(ii),' data have been loaded']);
end
xlswrite('data.xls',data);
data_p = data(:,6:9);
data_p(data_p==0) = NaN;
xlswrite('data_p.xls',data_p);
clear
clc
A = xlsread('dataf.xls');
for ii = 6:10A(isnan(A(:,ii)),:) = [];
end
xlswrite('data_nancut.xls',A);
A1(:,1) = A(:,1) + 0.01 * A(:,2);
A1(:,2:9) = A(:,3:10);
xlswrite('data_nancut_dotmonth.xls',A1)
A2(:,1) = A(:,1) + A(:,2) / 12;
A2(:,2:9) = A(:,3:10);
xlswrite('data_nancut_nomonth.xls',A2);
for ii = 1:9A2_max = max(A2(:,ii));A2_min = min(A2(:,ii));A3(:,ii) = (A2(:,ii) - A2_min) / (A2_max - A2_min);
end
xlswrite('data_nancut_nomonth_norm.xls',A3);
T_max = max(A(:,10));
T_min = min(A(:,10));
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
相关文章:
2015年第四届数学建模国际赛小美赛B题南极洲的平均温度解题全过程文档及程序
2015年第四届数学建模国际赛小美赛 B题 南极洲的平均温度 原题再现: 地表平均温度是反映气候变化和全球变暖的重要指标。然而,在以前的估计中,在如何界定土地平均数方面存在一些方法上的差异。为简单起见,我们只考虑南极洲。请建…...
npm常见错误
三个方面 1. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! phantomjs-prebuilt2.1.15 install: node install.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the phantomjs-prebuilt2.1.15 install script. np…...
JVM入门到入土-Java虚拟机寄存器指令集与栈指令集
JVM入门到入土-Java虚拟机寄存器指令集与栈指令集 HotSpot虚拟机中的任何操作都需要入栈和出栈的步骤。 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小&#x…...
MS2244模拟开关可Pin to Pin兼容NJM2244
MS2244 是一款集成的视频开关,实现三输入视频或音频信号的三选一。可Pin to Pin兼容NJM2244。 芯片集成了 75Ω驱动电路,可以直接驱动电视监控器。芯片工作电压 5V~12V,带宽 10MHz,抗串扰 70dB (4.43MHz)。另外芯片还集…...
PostgreSQL 可观测性最佳实践
简介 软件简述 PostgreSQL 是一种开源的关系型数据库管理系统 (RDBMS),它提供了许多可观测性选项,以确保数据库的稳定性和可靠性。 可观测性 可观测性(Observability)是指对数据库状态和操作进行监控和记录,以便在…...
51单片机相关寄存器
前言 单片机复习的时候对应寄存器的记忆感觉很混乱,这里进行一下整理,后面的单词是我用来辅助记忆的,可能并不是表示原本的含义。 P3口的第二功能 0RXD 串行数据输入口 1TXD串行数据输出口2INT0外部中断0输入3INT1外部中断1输入4T0定时器0外部计数输入…...
二叉树进阶题目(超详解)
文章目录 前言根据二叉树创建字符串题目分析写代码 二叉树的层序遍历题目分析 写代码二叉树的层序遍历II题目分析写代码 二叉树的最近公共祖先题目分析写代码时间复杂度 优化思路优化的代码 二叉搜索树与双向链表题目分析写代码 从前序与中序遍历序列构造二叉树题目分析写代码从…...
W6100-EVB-Pico评估版介绍
文章目录 1 简介2 硬件资源2.1 硬件规格2.2 引脚定义2.3 工作条件 3 参考资料3.1 Datasheet3.2 原理图3.3 尺寸图(尺寸:mm)3.4 参考例程 4 硬件协议栈优势 1 简介 W6100-EVB-Pico是一款基于树莓派RP2040和全硬件TCP/IP协议栈以太网芯片W6100的…...
嵌入式面试准备
题目都摘于网上 嵌入式系统中经常要用到无限循环,如何用C编写死循环 while(1){}或者for(;😉 内存分区 代码区,全局区(全局变量,静态变量,以及常量),栈区,堆区 const关键…...
在Linux Docker中部署RStudio Server,实现高效远程访问
🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 安装RStudio Server二. 本地访问三. Linux 安装cpolar四. 配置RStudio serv…...
EternalBlue【永恒之蓝】漏洞详解(复现、演示、远程、后门、入侵、防御)内容丰富-深入剖析漏洞原理-漏洞成因-以及报错解决方法-值得收藏!
漏洞背景: 1.何为永恒之蓝? 永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子…...
长链接与在线文件
什么是在线文件 常见的聊天工具,比如。。。微信,你可以发送一个文件给对端,即使对端不在线,这个文件也可以暂存在服务器上面,直到接收端上线消费或者超时,这个叫离线文件。与之对应的,在线文件要…...
Python内置数据类型等入门语(句)法
内置数据类型 数字(Number)关键字: int 、float、complex字符串(String)关键字:单引号,双引号 三引号都可以表示,8 种内置类型都可转为字符串类型列表(List) 关键符号 […...
ElasticSearch之RestClient笔记
1. ElasticSearch 1.1 倒排索引 1.2 ElasticSearch和Mysql对比 1.3 RestClient操作 导入依赖 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.15.…...
饥荒Mod 开发(二二):显示物品信息
饥荒Mod 开发(二一):超大便携背包,超大物品栏,永久保鲜 饥荒Mod 开发(二三):显示物品栏详细信息 饥荒中的物品没有详细信息,基本上只有一个名字,所以很多物品的功能都不知道,比如浆果吃了也不知…...
Microsoft Edge使用方法和心得
Microsoft Edge使用方法和心得 大家好,我是豪哥,一名来自杭州的Java程序员,今天我想分享一下我对Microsoft Edge的使用方法和心得。作为一名热爱编程的程序员,我发现一个高效的浏览器对于我们的工作和学习至关重要。而Microsoft …...
Kafka操作指令笔记
查堆积用命令查: ./kafka-consumer-groups.sh --bootstrap-server {kafka集群地址} --describe --group {消费组名称}bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --all-groups #查看所有组别的积压情况可以通过grep、awk或其他文…...
WAVE SUMMIT+ 2023倒计时2天,传文心一言将曝最新进展!
传文心一言将曝最新进展! 亮点一:趋势引领,“扛把子”文心一言将曝新进展亮点二:干货十足,硬核低门槛开发秘籍大放送亮点三:蓄势待发,大模型赋能产业正当时亮点四:群星闪耀ÿ…...
Crow:Middlewares 庖丁解牛5 context
Crow:Middlewares 庖丁解牛4 partial_context-CSDN博客 基于partial_context再来解释context namespace detail {template<typename... Middlewares>struct partial_context : public pop_back<Middlewares...>::template rebind<partial_context>, public…...
CentOS 7 设置网络
CentOS 7 设置网络 正常情况 ①登陆进去之后使用下面的命令修改文件 echo ONBOOTyes >> /etc/sysconfig/network-scripts/ifcfg-ens33②如果是虚拟机重启后使用如下命令进行查看IP地址 ip addr注:到这里如果显示有两部分,则代表网络设置成功&a…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...
数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
目录 🔍 若用递归计算每一项,会发生什么? Horners Rule(霍纳法则) 第一步:我们从最原始的泰勒公式出发 第二步:从形式上重新观察展开式 🌟 第三步:引出霍纳法则&…...
