2015年国赛高教杯数学建模A题太阳影子定位解题全过程文档及程序

2015年国赛高教杯数学建模

A题 太阳影子定位

  技术就是通过分析视频中物体的太阳影子变化,确定视频拍摄的地点和日期的一种方法。
  1.建立影子长度变化的数学模型,分析影子长度关于各个参数的变化规律,并应用你们建立的模型画出2015年10月22日北京时间9:00-15:00之间天安门广场(北纬39度54分26秒,东经116度23分29秒)3米高的直杆的太阳影子长度的变化曲线。
  2.根据某固定直杆在水平地面上的太阳影子顶点坐标数据,建立数学模型确定直杆所处的地点。将你们的模型应用于附件1的影子顶点坐标数据,给出若干个可能的地点。
  3. 根据某固定直杆在水平地面上的太阳影子顶点坐标数据,建立数学模型确定直杆所处的地点和日期。将你们的模型分别应用于附件2和附件3的影子顶点坐标数据,给出若干个可能的地点与日期。
  4.附件4为一根直杆在太阳下的影子变化的视频,并且已通过某种方式估计出直杆的高度为2米。请建立确定视频拍摄地点的数学模型,并应用你们的模型给出若干个可能的拍摄地点。
如果拍摄日期未知,你能否根据视频确定出拍摄地点与日期?

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

  本文首先根据几何关系给出了直杆的太阳影子长度变化模型,进而通过“反问题”思维,借助直杆太阳影子变化建立数学优化模型推算出直杆的位置、日期等信息。最后,利用视频截屏技术和优化模型确定了视频的拍摄地点和拍摄日期。
  问题1,首先找到可以衡量影子长度变化的几个参数然后从三方面分析了太阳影子关于各参数长度变化的规律。我们发现影长不仅会随着太阳高度角增加而减小,而且还会受季节的影响。而后用MATLAB软件画出了附件1中直杆影长变化的曲线图。
  问题2,使用最小二乘近似法以及遗传算法建立了一个完整的优化模型,将杆长与直杆地理纬度作为变量参数,进行100次迭代,得出20组可能的解,通过合理性比较得出最可能地点在海南岛东部。
  问题3,在问题2优化模型的基础上,增加日期一个变量,利用与问题2相似的解法求得附件2可能的地点与日期为印度南部、2-3月份,附件3可能的地点与日期为越南东南部、8-9月份。
  问题4,利用截屏技术将视频每隔一分钟截一幅图,将截取的40张图片用MATLAB进行边缘处理得到坐标数据,利用相似变换将像素坐标转换为物理坐标。在日期已知情况下,建立最小二乘近似法模型,并使用模拟退火算法得到视频中可能的地点为呼和浩特市附近。在日期未知的情况下,增加变量日期,再利用此题的优化模型求解,确定了地点与日期。
  本文的亮点是,考虑到遗传算法自身有局部搜索能力差、存在未成熟收敛和随机游走等缺陷,先使用拟合的方法将直杆可能所在位置的地理经度确定,再运用遗传算法或者模拟退火算法求解模型。

模型假设:

  (1)假设太阳光为平行光,没有折射;
  (2)假设海拔高度常常可以忽略;
  (3)假设时区是东八区;

问题分析:

  问题1的分析
  问题1在太阳光是平行光的假设下,可以将此题看作一个简单的数学求解问题。该问题的关键在于找出各个参数与影长的联系。我们考虑到,物体在某一点的影子的形状(长度和位置)由太阳在天体中对地球上这一点的相对位置决定,而这个相对位置由当地的的地理纬度、季节(日、月)和时间(这里的时间准确来说指时刻)三个因素决定,由于问题1中我们只需考虑影子的长度,所以我们可以用地理纬度(𝜑)、太阳赤纬角(𝛿)、太阳高度角(ℎ)及时角(𝑡)等参数建立影子长度变化的数学模型,并分析影长关于它们几个参数的变化规律。 而后,利用上述建立好的模型及MATLAB软件,以北京时间9:00到15:00内的时刻为变量,编写程序就可以画出题目要求的时间段内杆子的影长变化曲线。
  问题2的分析
  问题2与问题3都是给出某固定直杆在水平地面上的太阳影子顶点坐标数据,要求是建立数学模型,给出若干个可能的地点或地点和日期,这是一种典型的“反问题”,即需要我们由果推因。首先利用已有数据进行二次函数拟合,基本确定直杆的地理经度,然后再采用有关“反问题”比较经典的做法——最小二乘近似法建立模型求解其他变量参数。其中,直杆长度也不确定,由于杆长不同所在的位置也可能不同,所以将杆长𝐻设置为变量参数之一。进而,用遗传算法的思想求解模型,可以得出直杆几个可能的位置。
  问题3的分析
  问题3与问题2比较,除了需要确定直杆所处的地点位置之外,同时需要确定拍摄日期,我们将问题二的最小二乘近似法模型稍加改进,增加参数日期(用积日𝑁来衡量),从而建立起一个三参数的优化模型,利用与问题2相似的算法可以得出直杆一些可能的位置与日期。
  问题4 的分析
  附件4视频较大,直接用MATLAB处理比较困难,所以我们需要对视频进行一些处理,然后再利用MATLAB软件导出直杆影子在像素坐标系下的坐标数据,利用坐标变换方法中的相似变换将像素坐标系转换为物理坐标系。在日期给定时,建立最小二乘近似法的优化模型,并首先考虑遗传算法,再用模拟退火算法改进,可以得出可能的地点。如果日期没有给定,建立的优化模型将是一个四参数问题,利用本题建立的优化模型将确定可能的地点与日期。

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

在这里插入图片描述

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

程序代码:

function ObjV=fun(unit) 
load matlab data  
h=unit(:,1); 
b1=unit(:,2); 
time.year=2015; 
time.month=4; 
time.day=18; 
location.altitude = 0; 
time.UTC =8; 
  
time.hour = 14; 
time.min = 42; 
time.sec = 0; 
for j=1:length(unit) 
    location.longitude = 110.25;  
    location.latitude  = b1(j);  
     
for i=1:21 

if time.min>60 
time.min=0; 
time.hour=time.hour+1; 
end 
a=sun_position(time,location); 
l2(i)=h(j)/tan((a.zenith)/180*pi); 
time.min=time.min+3;  
end 
a1=data(:,1); 
a2=data(:,2); 
l1=sqrt(a1.^2+a2.^2); 
l=0; 
for k=1:21 
l=l+(l1(k)-l2(k))^2; 
end 
ObjV(j)=l; 
end 
ObjV=ObjV'; 
run_genetic.m: 
clc;clear,close all; 
NVAR=2; 
NIND=40;  
MAXGEN=100; 
LIND=10;  
GGAP=0.9;  
trace=zeros(2,MAXGEN); 
FieldD=[  LIND LIND;     
0  
0;        
10  90;   
1  
1;         
0  
0;                               
1 1;         
1 1];          
Chrom=crtbp(NIND,LIND*NVAR);  
unit=bs2rv(Chrom,FieldD);  
ObjV=fun(unit);                           
for gen=1:MAXGEN 
FitnV=ranking(-ObjV); 
SelCh=select('sus',Chrom,FitnV,GGAP);  
SelCh=recombin('xovsp',SelCh,0.7); 
SelCh=mut(SelCh);  
unit=bs2rv(SelCh,FieldD);  
ObjVSel=fun(unit); 
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);  
[Y(gen),I(gen)]=min(ObjV);  
trace(1,gen)=min(ObjV);  
trace(2,gen)=sum(ObjV)/length(ObjV); 
end 
unit=bs2rv(Chrom,FieldD); 
figure 
plot(trace(1,1:gen),'b-o'); 
hold on 
plot(trace(2,1:gen),'r-o'); 
XY=unit(I(gen),:) 
Z=min(Y) 
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ESP32-WROOM-32 [创建AP站点-客户端-TCP透传]

简介 基于ESP32-WROOM-32 开篇(刚买), 本篇讲的是基于固件 ESP32-WROOM-32-AT-V3.4.0.0(内含用户指南, 有AT指令说明)的TCP透传设置与使用 设备连接 TTL转USB线, 接ESP32 板 的 GND,RX2, TX2 指令介绍 注意,下面指…

利士策分享,如何在有限的时间内过上富足的生活?

利士策分享,如何在有限的时间内过上富足的生活? 在快节奏的现代生活中,追求富足不仅仅是物质上的丰盈,更是心灵的满足与生活的平衡。 如何在有限的时间内实现这一目标,是许多人心中的疑问。 以下是一些实用建议&#…

Linux centerOS 服务器搭建NTP服务

1,安装 NTP软件 sudo yum -y install ntp2,编辑配置文件 sudo vim /etc/ntp.conf 3,修改配置 在ntp.conf文件中,可以配置服务器从哪些上游时间源同步时间。如果你想让你的服务器对外同步时间,可以去掉restrict d…

BGP实验

1、实验拓扑 EBGP:位于不同AS的BGP路由器之间的BGP对等体关系。两台路由器之间要建立EBGP对等体关系,必须满足两个条件: 两个路由器所属AS不同(即AS号不同)。 在配置EBGP时,Peer命令所指定的对等体IP地址要…

【Docker】Docker快速入门

Docker学习笔记 一、Docker概述 为什么会出现Docker? 安卓开发流程:apk(java开发的)发布到应用商店,用户安装apk即可使用。 后端开发流程: jar(java开发的)带上环境发布到Docker仓库,用户从Docker仓库拉取镜像并部署。 总结…

智慧安防监控EasyCVR视频汇聚管理平台如何修改视频流分辨率?

智慧安防监控EasyCVR视频管理平台能在复杂的网络环境中,将前端监控设备进行统一集中接入与汇聚管理。EasyCVR平台支持H.264/H.265视频压缩技术,可在4G/5G/WIFI/宽带等网络环境下,传输720P/1080P/2K/4K高清视频。视频流经平台处理后&#xff0…

ByteTrack多目标跟踪流程图

ByteTrack多目标跟踪流程图 点个赞吧,谢谢。

VulnHub-Bilu_b0x靶机笔记

Bilu_b0x 靶机 概述 Vulnhub 的一个靶机,包含了 sql 注入,文件包含,代码审计,内核提权。整体也是比较简单的内容,和大家一起学习 Billu_b0x.zip 靶机地址: https://pan.baidu.com/s/1VWazR7tpm2xJZIGUS…

php thinkphp 小程序发送订阅模板消息通知

小程序需要在我的模板中先选用模板 小程序需要先订阅模板 wx.requestSubscribeMessage({tmplIds: ["XII_0By8D9WabnUjVPB_8S1itsm2d4_xxx"],success:

**CentOS7安装redis**

CentOS7安装redis 首先解压压缩包 redis-7.0.0.tar.gz tar -xvf redis-7.0.0.tar.gz接着进入到redis中 cd redis-7.0.0.tar.gz执行make命令编译 make接着执行安装命令 make install之后编译安装完后 程序都会在/usr/local/bin目录下 这里需要将在redis目录中redis.conf配置…

基于STM32的电压检测WIFI模拟

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STM32单片机,通过滑动变阻器模拟电压传感器检测电压,通过12864显示显示电压和电压阈值,按键可以控制阈值的增加,并通过串口实时显示相关参数和状…

2024年主流前端框架的比较和选择指南

在选择前端框架时,开发者通常会考虑多个因素,包括框架的功能、性能、易用性、社区支持和学习曲线等。以下是一些主流前端框架的比较和选择指南。 1. 主流前端框架简介 React 优点: 组件化开发,易于复用和维护。虚拟DOM提高了性能。强大的生…

二叉树进阶oj题【二叉树相关10道oj题的解析和代码实现】

目录 二叉树进阶oj题1.根据二叉树创建字符串2.二叉树的层序遍历3.二叉树的层序遍历 II4.二叉树的最近公共祖先5.二叉搜索树和双向链表6.从前序与中序遍历序列构造二叉树7.从中序和后序遍历序列来构造二叉树8.二叉树的前序遍历,非递归迭代实现9.二叉树中序遍历 &…

线性插值和最近邻插值(Linear Interpolation and Nearest Neighbor Interpolation)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

828华为云征文 | 解锁数据价值,使用华为云Flexusx与Solr构建智能搜索应用

前言 在数字化转型的浪潮中,数据已成为企业最宝贵的资产之一。如何高效、准确地解锁这些数据价值,成为众多企业面临的挑战。华为云Flexusx服务器以其卓越的性能、灵活的资源调度能力和强大的可扩展性,为企业提供了一个理想的平台。结合Apache…

力扣【118-杨辉三角】【数组-C语言】

题目:力扣-118 杨辉三角:(算法思路) 1. 每行第一个数和最后一个数都是1 2. 把杨辉三角左端对齐,从第三行开始,非首尾的元素值等于上一行同列的元素与该元素之前的元素之和,即 t [ j ] r e t …

人工智能在医疗健康领域的应用与展望

随着技术的发展,人工智能(Artificial Intelligence, AI)正逐渐渗透到各行各业之中,其中医疗健康领域因其对人类福祉的重要性而备受关注。AI技术的应用不仅能够提高医疗服务的质量和效率,还能促进医学研究的进步&#x…

PingCastle:一款针对活动目录AD的安全强化工具

关于PingCastle PingCastle是一款针对活动目录AD的安全强化工具,可以帮助广大研究人员提升活动目录的安全性,该工具甚至可以做到在 20% 的时间内实现 80% 的AD安全性。 Ping Castle 是一种旨在使用基于风险评估和成熟度框架的方法快速评估活动目录AD 安…

Spring Security学习

系列文章目录 第一章 基础知识、数据类型学习 第二章 万年历项目 第三章 代码逻辑训练习题 第四章 方法、数组学习 第五章 图书管理系统项目 第六章 面向对象编程:封装、继承、多态学习 第七章 封装继承多态习题 第八章 常用类、包装类、异常处理机制学习 第九章 集…

SkyWalking 环境搭建部署

架构简介 skywalking agent : 和业务系统绑定在一起,负责收集各种监控数据skywalking oapservice : 是负责处理监控数据的,比如接受skywalking agent的监控数据,并存储在数据库中;接受skywalking webapp的前端请求,从数据库查询数据,并返回数据给前端。Skywalking oapserv…