2015年第四届数学建模国际赛小美赛B题南极洲的平均温度解题全过程文档及程序

news2025/3/17 6:33:04

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 data
 a_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 data
 if 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 data
 str_2 = num2str(ii);
 str = strcat(str_1,str_2);
 [num_2,txt,raw] = xlsread('P_deal.xlsx',str);
 %Remove the sheet ii effective data
 a_2 = num_2(1:2:end,:);
 flag_1 = 1;
 end
 %Read P_MSL_deal data
 if 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 data
 a_3 = num_3(1:2:end,:);
 flag_2 = 1;
 end
 %Data read speed deal
 if ii ~= 5 && ii ~= 8
 %Read sheet data
 str_2 = num2str(ii);
 str = strcat(str_1,str_2);
 [num_4,txt,raw] = xlsread('speed_deal.xlsx',str);
 %Remove the sheet ii effective data
 a_4 = num_4(1:2:end,:);
 flag_3 = 1;
 end
 %Reads the data direction deal
 if ii ~= 27
 %Read sheet data
 str_2 = num2str(ii);
 str = strcat(str_1,str_2);
 [num_5,txt,raw] = xlsread('direction_deal.xlsx',str);
 %Remove the sheet ii effective data
 a_5 = num_5(1:2:end,:);
 flag_4 = 1;
 end
 b = [];
 %The first column of data making the year, the number for the year 
* month
 for j = 1:m
 %Copy the Year 12 times
 for k = 1:12
 %From left to right, respectively, for the year, month, 
latitude, 
 %longitude, altitude, observatories pressure, MSL pressure, 
 %wind speed, wind direction, temperature
 b((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 == 1
 if ii ~= 6 && ii ~= 13 && ii ~= 14 && ii ~= 17
 && ii ~= 21 && ii ~= 25 && ii ~= 26 && ii ~= 28 ...
 && ii ~= 36 && ii ~= 39 && ii~= 42
 b((j-1)*12+k,6) = a_2(j,k+1);
 else
 if j > dif_1(ii)
 b((j-1)*12+k,6) = a_2(j-dif_1(ii),k+1);
 end
 end
 end
 if flag_2 == 1
 if ii ~= 4 && ii ~= 10 && ii ~= 18 && ii ~= 39 && ii ~= 44
 b((j-1)*12+k,7) = a_3(j,k+1);
 else
 if j > dif_2(ii)
 b((j-1)*12+k,7) = a_3(j-dif_2(ii),k+1);
 end
 end
 end
 if flag_3 == 1
 if 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 ~= 41
 b((j-1)*12+k,8) = a_4(j,k+1);
 else
 if j > dif_3(ii)
 b((j-1)*12+k,8) = a_4(j-dif_3(ii),k+1);
 end
 end
 end
 if flag_4 == 1
 if 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 ~= 44
 b((j-1)*12+k,9) = a_5(j,k+1);
 else
 if j > dif_4(ii)
 b((j-1)*12+k,9) = a_5(j-dif_4(ii),k+1);
 end
 end
 end
b((j-1)*12+k,10) = a_1(j,k+1);
 end
 end
 data = [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:10
 A(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:9
 A2_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名片即可

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

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

相关文章

掌握ElasticSearch(一):Elasticsearch安装与配置、Kibana安装

文章目录 〇、简介1.Elasticsearch简介2.典型业务场景3.数据采集工具4.名词解释 一、安装1.使用docker(1)创建虚拟网络(2)Elasticsearch安装步骤 2.使用压缩包 二、配置1.目录介绍2.配置文件介绍3.elasticsearch.yml节点配置4.jvm.options堆配置 二、可视化工具Kibana1.介绍2.安…

C++图论之强连通图

1. 连通性 什么是连通性? 连通,字面而言,类似于自来水管道中的水流,如果水能从某一个地点畅通流到另一个地点,说明两点之间是连通的。也说明水管具有连通性,图中即如此。 无向图和有向图的连通概念稍有差…

RFID技术在汽车制造:提高生产效率、优化物流管理和增强安全性

RFID技术在汽车制造:提高生产效率、优化物流管理和增强安全性 随着科技的进步,物联网技术已经深入到各个领域,尤其在制造业中,RFID技术以其独特的优势,如高精度追踪、实时数据收集和自动化操作,正在改变传统的生产方式…

数字人直播一比一克隆:实现虚拟与现实的完美融合

数字人直播一比一克隆技术作为当今科技领域的一项重要突破,将虚拟与现实完美融合,引发了广泛的关注和讨论。这项技术不仅能够创造一个以数字人为基础的虚拟世界,同时也能够将真实人物复制到数字化的平台上进行直播,让观众在屏幕前…

轻量级开源服务器Tomcat本地部署并将网页发布到公网远程访问

目录 1.前言 2.本地Tomcat网页搭建 2.1 Tomcat安装 2.2 配置环境变量 2.3 环境配置 2.4 Tomcat运行测试 2.5 Cpolar安装和注册 3.本地网页发布 3.1.Cpolar云端设置 3.2 Cpolar本地设置 4.公网访问测试 5.结语 前些天发现了一个巨牛的人工智能学习网站,通…

UILabel布局解决文本右边对不齐的问题

来看示例: 文本右边会出现明显的间距,文字无法对齐。 解决方法: 给段落设置样式,为字符串对象设置NSTextAlignmentJustified值 NSTextAlignmentJustified:保持文字左右对齐,最后一行保持做对齐 NSString *str “xxxxxxxxxxxx…

树莓派,mediapipe,Picamera2利用舵机云台追踪人手(PID控制)

一、项目目标 追踪人手大拇指指尖: 当人手移动时,摄像头通过控制两个伺服电机(分别是偏航和俯仰)把大拇指指尖放到视界的中心位置,本文采用了PID控制伺服电机 Mediapipe Hand简介 MediaPipe 手部标志任务可检测图像…

状态管理概述

ArkTS UI的状态管理到这里就叙述完了,现在做一个概述,也可以认为是一个总结。 在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回…

向华为学习:IPD运作-PDP产品开发流程-开发阶段的关键活动

前面几天,华研荟为您分享了IPD体系中产品开发流程(严格来说是PDP流程,也是狭义的IPD流程)前两个阶段:概念阶段和计划阶段的主要内容和关键活动。 今天我们继续来介绍PDP流程的第三个阶段:开发阶段的主要内容…

鸿蒙原生应用/元服务开发-Stage模型能力接口(十)上

ohos.app.form.FormExtensionAbility (FormExtensionAbility) FormExtensionAbility为卡片扩展模块,提供卡片创建、销毁、刷新等生命周期回调。 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。本模块接…

ArkUI动画概述

目录 1、按照页面分类 2、按照功能分类 3、显示动画 4、属性动画 动画的原理是在一个时间段内,多次改变UI外观,由于人眼会产生视觉暂留,所以最终看到的就是一个“连续”的动画。UI的一次改变称为一个动画帧,对应一次屏幕刷新&a…

C#实现串口通讯

1、官网下载Launch Virtual Serial Port Driver Virtual Serial Port Driver - create and emulate virtual COM port,开个虚拟串口: Pair模式(一对,成双成对的意思,就是COM1向COM2传或者COM2向COM1,好比两台机器的CO…

Unity | 渡鸦避难所-4 | 镜头跟随角色移动

1 Cinemachine 简介 在第一人称视角的游戏中,摄像机需要时刻跟随角色移动。除了手动计算摄像机的位置、旋转外,也可以使用 Unity 提供的 Cinemachine 插件来轻松实现摄像机的控制 Cinemachine 是一套用于操作 Unity 相机的模块,解决了跟踪目…

【AI】阿里云免费GPU服务资源领取方法

首先,直接点击链接:阿里云免费试用 也可以复制链接到浏览器进行跳转:https://free.aliyun.com?userCodernbj0c1o 页面如下所示:这里的免费试用期限是3个月,给的资源点够我们试用V100 16G显存服务器300个小时&#xff…

【Java】智慧工地云平台管理系统源码

智慧工地平台-系统架构 •统一数据标准、规范数据接口 •决策支持:数据挖掘、全文搜索引擎、OLAP分析、统计报表 •智慧工地平台:项目人员管理、视频监控管理、安全隐患管理、现场物料管理、危大工程监测、绿色文明施工。 •物联网采集:人脸识…

Linux入门——环境 基本指令 基本工具 权限的初步认识

目录 1.Linux的历史 2.利用云服务器设置Linux 3.使用Xshell连接阿里云服务器 4.Linux常见的指令 5.什么是操作系统? 6.命令解释器 7. linux的权限的初步认识 8.相关习题的练习 1.Linux的历史 1991 年 10 月 5 日,赫尔辛基大学的一名研究生 Linus B…

解决企业TB或者PB级大文件传输速度和安全问题

随着企业数据不断增加,TB或PB级大文件的传输成为企业信息共享和数据备份的重要手段之一。然而,这些大文件的传输速度和安全问题成为制约企业发展的瓶颈,也是企业需要解决的重要问题。本文将探讨如何解决这些问题,并从以下几个方面…

基于Java SSM框架实现水果销售网站系统项目【项目源码+论文说明】

基于java的SSM框架实现水果销售网站系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识&a…

Maven仓库依赖导入‘.lastUpadate‘问题解决

1. 依赖导入不进去先检查 当你开一个新的项目导入maven仓库的时候,发现本地有这个依赖,但是pom.xml文件里的依赖老是爆红,然后无论怎么样去reload->clean->install还是不行, 这时可以先去检查下maven的setting.xml文件和m…

CentOS8+宝塔面板+cpolar内网穿透搭建可公网访问的Typecho个人站点

文章目录 前言1. 安装环境2. 下载Typecho3. 创建站点4. 访问Typecho5. 安装cpolar6. 远程访问Typecho7. 固定远程访问地址8. 配置typecho 前言 Typecho是由type和echo两个词合成的,来自于开发团队的头脑风暴。Typecho基于PHP5开发,支持多种数据库&#…