2015年全国大学生数学建模竞赛A题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
太阳影子定位技术问题的数学模型
摘要
本文涉及的是太阳影子定位技术问题。
在已知视频中物体的太阳影子变化的情况下,要确定视频的拍摄地点和拍摄日期。
首先,分析了文中四个问题的关系,发现前三个问题的已知条件逐步减少,问题难度依次递进。
第四问则给出一个实际问题,该问题需要转化成数学模型利用前三问的方法求解;随后,建立了L-G模型、MinZ-模型等,并应用非线性最小二乘法、遗传算法等算法对模型求解。
得到基于模型的合理结果。
最后,将第四问的实际问题转化数学模型并求解,进而解决问题。
对于问题一,要解决的问题是杆长与影子长度的关系,根据天文、几何知识,我们建立了模型来刻画问题给出的参数之间联系,如赤纬角模型、时角模型、太阳高度角模型、影子长度模型(L-G模型)等;分析了各参数对影子长度的影响;最后运用MATLAB绘制出具体给定参数下的3米高直杆的影子变化曲线;从曲线可以看出在9:00到15:00这段时间里,影子长度先变短后变长,最短为3.627米,最长为7.182米。
问题二提供了一个关于时间、影子坐标的附件1,杆长未知,为了确定直杆所处的地点,本问建立了MinZ-模型,首先将经度、纬度、杆长离散化,搜索出大概的可行解,然后运用非线性最小二乘算法,选取matlab中的lsqcurvefit命令,以可行解为初值,再运用非线性最小二乘算法,选取MATLAB中的lsqcurvefit命令,在控制残差在10−8之内范围的情况下得到了三个可能地点皆在海南省昌江县内,最小误差的地点为海南省江黎族自治县,北纬19.3025°,东经108.6988°,此时对应直杆高度为2.0219m。
同时,将结果代入问题一的模型进行检验,验证了模型的稳定性和算法的合理性。
问题三沿用问题一的模型和问题二的算法,由于一个已知量变成一个变量,根据算法特点,在增加一个变量的情况下,算法搜索影长差时只需要增加一重循环。
关于附件2数据,残差最小对应的位置为北纬39.8926°,东经79.7438°,具体地点在新疆维吾尔自治区喀什地区巴楚县。
日期为2015年4月24日或6月19日;关于附件3数据则是残差最小对应的位置为北纬31.3625°,东经110.1602°,具体地点在湖北省神农架林区。
此时对应直杆高度为2.9871m。
对应日期为1月25日或10月5日。
问题四是将实际问题转化成数学模型并求解的过程,用aviread函数将视频读入MATLAB 软件,并用size函数读取视频帧数Vf=61000,利用mat2gray函数可以对图像灰度化处理。
取合理阈值使影子与背景的分界清晰可见,记录直杆顶点及底端坐标,然后依次测录各图片中影子顶点的坐标(单位为像素),最后应用问题二和问题三的方法求解,结合运用MATLAB 遗传算法工具箱,在给出日期条件下,残差最小对应的位置为北纬40.3344°,东经113.2556°,具体地点为内蒙古自治区鄂尔多斯市达拉特旗县;若日期未知,也得到了比较合理的视频拍摄地点和日期。
论文最后做了误差分析并给出了模型改进意见;论文的特色在于思路清晰,方法简洁,将数学模型与计算机算法、图形很好的结合起来,用图形图表体现结果。
每个问题都进行了结果分析和模型验证。
关键词:影子定位L-G模型minZ-模型非线性最小二乘法遗传算法
一、问题的重述
太阳影子定位技术是通过太阳影子变化来确定视频拍摄地点和拍摄时间,现以该项技术为基础建立数学模型,完成下列任务:
1、分析影子长度关于各个参数的变化规律,并画出2015年10月22日北京时间
9:00-15:00之间天安门广场(北纬39度54分26秒,东经116度23分29秒)3米高的直杆的太阳影子长度的变化曲线。
2、根据附件1所给的影子顶点坐标数据,建立数学模型确定直杆所处地点,给出若干个可能的地点。
3、根据附件2、附件3所给的影子顶点坐标数据,建立数学模型确立若干个可能的地点与日期。
4、附件4为一根直杆在太阳的影子变化下的视频,已知所给直杆高度为2米,请根据视频中影子的变化,确定若干个可能的拍摄地点。
如果拍摄日期未知,请根据视频确定日期和拍摄地点。
二基本符号说明
δ:天体赤纬
τ:地方时角
h:太阳高度角
γ:测试地经度
φ:测试地纬度
bt:测试北京时间
G:测试直杆高度
L:影子长度
三模型的假设
1、设测试直杆时地平面平坦。
2、太阳光生成影子时无光晕影响。
3、太阳光照射在地球上的光线为平行光线。
4、假设地球相对于太阳的自转是均匀的,每天都是24小时。
5、假设积日N的循环为365天。
6、假定所测试年份皆为2015年。
7、假设摄像机角度对影子长度无影响。
四问题分析
本文涉及的是太阳影子定位技术问题。
问题出现在已知太阳影子坐标的背景下,要解决的是确定视频的拍摄地点和拍摄日期。
其中,如何根据视频提取影子信息、如何建立太阳影子与实物的联系模型是要解决的核心问题。
4.1基本思路
题目有四个问题,前三个问题的已知条件逐步减少,问题难度依次递进。
第四问是给出一个实际问题,需要转化成数学模型利用前三问的方法求解,因此,前三问模型的稳定性和算法的合理性尤其重要,第四问中如何将实际问题转化成数学模型的方式是解决问题的关键。
4.2具体分析
问题一,要求解在确定日期、确定地点、3米高直杆在时间段9:00-15:00之间影子长度的变化曲线,根据题目可知,所给数据中除测试时间以外,其他量全部为可直接应用于模型的确定值,所以问题一可以理解为求解影子长度随时间段9:00-15:00的变化曲线。
为了解决该问题,我们首先建立平面直角坐标系,根据题中给出测试日期、时间、经纬度及直杆高度五个数据,对应得出天体赤纬、地方时角及太阳高度角的模型,随后建立影子长度目标模型。
根据模型,影子长度是关于测试时间的一元函数,按照时间的变化,即可以用MATLAB程序画出影子长度变化曲线。
问题二,要求根据所给水平地面直杆顶点影子坐标数据确定直杆所处地点,利用附件1所给资料,可以确定不同时间的影子长度值以及测试日期。
所以此问可以理解为建立已知测试日期、时间、影子长度三个量求测试位置经纬度的模型。
由于经纬度及杆高未知,可利用离散法将地球离散化为有限个离散点组成的球体。
利用第一问中已经得出影子长度公式,求解该离散点相应时间的影子长度,并与给定的影子长度值比较,相差值越小,越接近所求结果。
在求最小相差值的时候,考虑利用最小二乘法进行模型优化,得到最终结果。
问题三,与问题二比较可知,问题三将问题二中日期这个已知量变为了未知量,也就是说我们在第三问中只知道测试时间、影子长度两个确定值。
由于变量过少,我们优先考虑是否能够在附件2、3根据直杆影子顶点坐标值确定太阳方位角,从另一个方面去解决本问。
但由于附件并未给出x、y轴所指方向,若人为给定则会出现较大误差。
所以,依旧按照问题二的解法思路,对测试地点及日期进行求解。
问题四,如果能顺利解决影子长度读取问题,则本问的两个问题分别与问题二、问题三
极为相似。
因此,在此问题中,我们主要考虑如何利用视频准确读取图像中影子长度与直杆高度,进而确定影子长度,最终解决问题。
五 问题模型的建立与求解
5.1 问题一模型的建立与求解
问题一要求建立关于影子长度的数学模型,根据所给测试日期数据可以建立对应的天体赤纬角模型,根据测试时间及测试位置经度可以建立地方时角模型,根据赤纬、地方时角、测试位置纬度可以建立太阳高度角的模型,最终利用太阳高度角与直杆高度建立目标模型。
5.1.0空间坐标系的建立
根据影子生成的实际情况,建立直杆形成影子的空间直角坐标系o −xyz ,如图1所示。
图1空间直角坐标系 其中,坐标系以直杆底端为原点,水平地面为xoy 平面。
直杆垂直于地面,oz 方向平行于直杆。
该坐标系与题目附件给出的坐标系一致。
在此坐标空间建立模型,进行影子长度的求解。
5.1.1 赤纬角模型的建立
太阳赤纬角,是地球赤道平面与太阳和地球中心的连线之间的夹角[1]。
如图2所示。
X Y Z
直杆影子 o
图2 赤纬角示意图
根据天文学知识[4],建立赤纬角模型如下:
δ=0.3723+23.2567sinθ+0.1149sin2θ−0.1712sin3θ
−0.758cosθ+0.3656cos2θ+0.0201cos3θ(1)式(1)中θ表达公式为:
θ=2πt
356.422
(2)其中t表示为:
t=N−79.6764+0.2422×(year−1985)−int[year−1985
4
](3)N为积日,即日期在本年内的序号[1](1月1日的积日为1,2月1日的积日为32)。
5.1.2 地方时角模型的建立
时角是指从测者午圈起算,沿天赤道度量到天体时圈的角度[1]。
如图3所示。
图3 时角示意图
建立时角模型如下:
τ=15(bt+γ−120
15°−12)(4)
时角
上式中,bt表示北京时间,γ表示直杆位置经度。
5.1.3 太阳高度角模型的建立
太阳高度角,是太阳光的入射方向和地平面之间的夹角[1],由(1)及(4)已得出赤纬及地方时角的模型,根据其关系可得太阳高度角模型为:
sin(h)=sin(φ)sin(δ)+sin (φ)cos(δ)cos(τ)[2](5)式(5)中,φ表示直杆位置纬度。
5.1.4 影子长度模型建立(L-G模型)
设影子长度为L、太阳高度角为h、直杆高度为G,那么,三者关系如下图所示:
图4 L、h、G关系示意图
由上图可看出影子长度公式为:
L=G×cot (h)(6)联列公式(1)至(6)即可建立出影子长度对于各个变量的模型如下所示:
{
L=G×cot (h)
sin(h)=sin(φ)sin(δ)+sin (φ)cos(δ)cos(τ)
τ=15(bt+120−γ
15°
−12)
δ=0.3723+23.2567sinθ+0.1149sin2θ−0.1712sin3θ
−0.758cosθ+0.3656cos2θ+0.0201cos3θ
θ=2πt
356.422
t=N−79.6764+0.2422×(year−1985)−int[year−1985
4
]
(7)
为了后面的应用方便,将此模型命名为:L-G模型
5.1.5 模型的求解及分析
影子长度与各个参数的关系
综合(7)式可以得到一个影子长度关于测试日期、测试时间、测试位置经纬度及直杆高度五个变量的模型也即L-G模型,首先,我们分析各个参数对影子长度的影响,由于参数只有5个,我们给定其中四个量的值,通过改变参数逐个分析,观察变量与影子长度的关系。
具体如下:
(1)、给定bt=12,year=2015,G=3,φ=(39°54′26′′)π
180°,γ=(116°23
′29′′)π
180°
,根据模
G
L
型进行MATLAB 计算求解,可得影子与日期的关系图如下所示:
图5 影子长度与某具体日期关系图
由图可知影子在一年中的长度变化趋势为先变短再变长。
由于给定位置在北半球,在夏季太阳直射点距离较近,所以夏季的正午影子长度在一年内最短,反之冬季影子最长。
求解结果与常识相吻合。
(2)、给定N =295,year =2015,bt =12,φ=(39°54′26′′)π180°,γ=(116°23′29′′)π180°
,根据模型进行MATLAB 计算求解,可得影子与直杆高度的关系图如下所示:
图6 影子长度与直杆高度关系图
由图可知影子长度随着直杆高度的增加成比例变长。
显然,结果印证了常识。
(3)、给定N =295,year =2015,G =3,bt =12,γ=(116°23′29′′)π180°,根据模型进行
MATLAB 计算求解,则可得影子与测试位置纬度的关系图如下所示:
图7 影子长度与纬度关系图
由于给定的时间为秋天9月底,所以太阳直射点处于南半球,北半球影子长度随纬度的增加而增加,若给定时间处于春天,则影子长度在北半球应随纬度的增加先变小再增加。
(4)、给定N=295,year=2015,G=3,φ=(39°54′26′′)π
180°
,bt=12,根据模型进行MATLAB计算求解,可得影子与测试位置经度的关系图如下所示:
图8 影子长度与经度关系图
由图可知,在给定其他四个变量后,影子长度随经度的增加先减小后增加。
在给定四个量的情况下,经度为120度左右影子长度最短。
根据以上四个图形的讨论,我们发现,影子长度的变化与年份、日期、经纬度、被测量直杆的高度有关系,并呈现出一定的规律性,要求出某具体条件下直杆的影子长度,这些限制条件必不可少,需要根据具体情况具体分析。
当然,影子长度也可能与其他条件有关,例如测量仪器精度、风向、气温、以及人为误差等等,为简化模型,在此就不一一进行讨论。
具体求解给定条件下影子长度:
利用该L-G模型求解2015年10月22日北京时间9:00-15:00之间天安门广场(北纬39度54分26秒,东经116度23分29秒)3米高的直杆的太阳影子长度的变化曲线。
易知
N=295,year=2015,G=3,φ=(39°54′26′′)π
180°,γ=(116°23
′29′′)π
180°
,将其代入方程(7),
可列出影子长度关于北京时间bt的一元函数L=f(bt)。
截取所给北京时间范围9:00-15:00,所得影子长度随时间变化曲线图即为所求曲线。
利用MATLAB求解可画出长度变化曲线如图9所示:
图9 影子长度随时间变化曲线图
从图像曲线可以看出,在9:00到15:00这段时间里,影子长度先变短后变长,最短为3.627,此时为北京时间11:48左右;影子最长为7.182左右,此时为北京时间15:00。
这个结果符合常识,由此验证了模型的合理性。
5.2问题二模型的建立与求解
5.2.0 模型准备
附件一给出了北京时间和影子的坐标,为了将时间精确到分,我们将附件1所给的北京时间格式转化为小数格式,由于测试地点未知,测试地点的真实时间与北京时间是有差距的,该差别在问题一所建模型中已经通过地方时角的计算公式体现出来了,所以在此无需再次修正。
即在程序中所用的时间就是当地时间。
在仅仅知道测试时间的条件下,要利用附件1
给出的影子坐标信息,从理论上来讲有两种处理方法。
一,可以考虑从附件所给坐标中提取太阳方位角的信息来确定;二,直接利用坐标求影子长度,也即是问题二的处理方式。
事实上,附件1并未给出x、y轴所指方向,如果人为确定x、y轴,不同的确定方式势必导致不同的计算结果,而如何判断哪一个结果较为合理的依据不足;经过思考和权衡,决定在建模过程中采用第二种处理方法,也即是直接计算影子长度。
坐标系的建立同问题一,在此不再累述。
根据直杆在水平地面上的太阳影子顶点坐标数
据,利用距离公式D =√(x −x 0)2+(y −y 0)2求出影子长度,若以直杆底部为坐标原点,影子长度可用公式L =2+y 2
表1 各时间所给影子长度值
5.2.1模型的建立(Min Z -模型,也即影子长度差值最小模型)
根据问题一可知,若已知直杆高度、测试日期、测试时间、测试位置经纬度五个量,即可求解影子长度,也即是问题一中建立的L-G 模型。
第二问中测试时间、测试日期已知,附件1中给出了相应直杆影子的坐标,经过计算,可得直杆影子的长度如表1所示。
下面,未知条件为直杆实际高度,问题二要求的量为测试地点的经纬度。
根据题目要求,我们将测试位置经纬度离散,相当于把地球离散成一个个的坐标点,在每个坐标点上取不同值的直杆高度,即(γ,φ,G ),该方法是本文的一个特色,将在后面问题中多次用到。
通过建立Min Z -模型以及MATLAB 程序计算,可得该假定经纬度、假定直杆高度所对应的不同时刻影子长度L 1,将所得的L 1与表1所得影子实际长度L 2进行比较,相差最小的即为目标解。
所以我们可以将求解(γ,φ,G )值转换为影长差值最小化求解,只要求解出影长差的最小值,则可对应推算出该解下的(γ,φ,G )值。
故针对问题二,可建立如下求取可能测试地点的数学模型也即Min Z -模型。
目标函数:使各时刻的影子长度差值尽量少
Min Z =∑(L 1i −L 2i )2n i=0 (8)
约束条件:
(1)测试位置经度不超过地球经度限度(以东经为正)。
−180°≤γ≤180° (9)
从表1可以看出,影子长度随时间的推移而变长,根据常识[4]
可知只有在过了正午时刻之后影子长度才会逐渐变长,联系测试当地时间与北京时间差值,可以得到经度最小取值 [120°−(14.7−12)×15°]为79.5°,太阳在当地时间18:00西沉,所以北京时间15:42时测试位置最大取值[120°−(15.7−18)×15°]为153°,最终经度优化范围为:
79.5°≤γ≤153° (10)
(2)测试位置纬度不超过地球纬度限度(以北纬为正)。
−90°≤φ≤90° (11)
(3)直杆高度不小于0。
G ≥0 (12)
(4)影子长度与各变量关系。
{
L =G ×cot (h)
sin (h )=sin (φ)sin (δ)+sin (φ)cos(δ)cos(τ)
τ=15(bt +
120−γ15°
−12)
δ=0.3723+23.2567sinθ+0.1149sin2θ−0.1712sin3θ−0.758cosθ+0.3656cos2θ+0.0201cos3θ
θ=2πt 356.422
t =N −79.6764+0.2422×(year −1985)−int[year−1985
4
] (13)
从模型表达式来看,(13)式与(7)式相同,但是(13)式受到多个条件约束,并且第二问的目标函数是Min Z 。
5.2.2基于影长的非线性最小二乘算法设计 算法介绍
对于最小值的求解,选取MATLAB 中的lsqcurvefit 命令,因为最小二乘算法中lsqcurvefit 命令对初值的选取有一定的要求,若直接用该命令求解全球离散点则系统会自动设置一个范围,无法得出准确的位置经纬度。
故先在约束范围内给定步长将连续经纬度离散化;利用问题一所建立的模型算出对应影子长度,与实际长度对比求出各个时间点影差长的累加值
Z ,即Z =∑(L 1i −L 2i )2
n i=0;通过比较Z 值大小,对Z 值大小进行排序,按Z 值从小到大的顺
序取对应的离散点(γ,φ,G );以所得离散点(γ,φ,G )为初值,用最小二乘法对其进行最优化求解,通过控制残差值得出最优解。
算法实现步骤:
STEP1: 将变量φ、γ、G 离散化赋值。
STEP2: 利用影子长度公式算出所给时间点的影长。
STEP3: 计算出的影长与所给影长差平方的累加值Z 。
STEP4: 限定Z 值上限,保留小于该精度范围的离散点。
STEP5: 以保留的离散点为初值,对测试位置经纬度进行最小二乘优化求解。
STEP6: 求解列出几个相对最小的影长差的对应φ、γ、G 值。
STEP7: 验证分析。
算法流程图:
图10 非线性最小二乘算法流程图
5.2.3 模型求解及分析
问题二结论:
开始
离散φ、γ、G 为n 个点(i =0)
代入φ、γ、G 值求解假定影长
计算Z i
Z i <1e −07?
保存φ、γ、G 值
YES i ≤n ?
i =i +1
以φ、γ、G 为初值对函数进行最小二乘求解
得出最终优化值
结束
应用非线性最小二乘算法,通过MATLAB软件编程求解可得出最小残差前三位所对应的φ、γ、G值如下表所示:(MATLAB程序详见附件“tls2_1.m”)
表2 最优点φ、γ、G及残差取值表
残差最小对应的位置为北纬19.3025°,东经108.6988°,具体地址为海南省江黎族自治县,此时对应直杆高度为2.0219m。
残差按从小到大排名前三位的如表2所示,通过网络查找经纬度可以知道三个位置皆在海南省内,具体地点如下图所示:
图11 可能地理位置网络截图
问题二结果分析:
(1),从经纬度来看,当限定残差在e−8的基础上,排名前三的经纬度相差并不大,即地理位置都在海南省昌江县,从而论证了模型的稳定性和算法的合理性。
(2),从残差控制来讲,我们将其控制在e−8之内,在精确度相当高的情况下还可以搜索出3个比较合理的值,由此也可以论证算法的精确性。
(3)从计算影长L1和实际影长L2的拟合效果来看,计算影长L1的曲线与实际影长L2的曲线能够较好的吻合,所得结果的准确。
图12 影长L1和L2对比图(附件1)
为了检验模型和算法,我们将第二问的计算结果代入第一问的计算影子长度的公式中,利用MATLAB计算得到,影子的长度与附件一中给出的影子长度非常吻合,由此,也验证了我们建模的稳定性和算法的合理性。
5.3 问题三模型的建立与求解
5.3.0 模型准备
依照5.2.0的原理,可以对附件2、附件3所给数据进行转换得到如下表格:
表3 附件2数据转换表
表4 附件3数据转换表
5.3.1 模型的建立
分析问题三所给数据资料,已知条件是测试时间、各时间点直杆在水平地面上的太阳影子顶点坐标,根据已知条件需要建立模型求解出测试日期及测试地点。
由于直杆高度依旧没有给出,在仅仅知道测试时间的条件下,要利用附件2给出的影子坐标信息,沿用问题二的处理方式,也即通过影子坐标通过公式直接计算影子长度。
另外,根据天体赤纬角度公式可知,年份对结果影响很小,为了简化模型,减少计算量,我们假定测试年份就为2015年。
利用问题二的minZ-模型及改进算法即可求出最终目标。
目标函数:使各时刻的影子长度差值尽量少
Min Z =∑(L 1i −L 2i )2
n i=0 (14)
约束条件:
(1)影子长度与各变量关系。
{
L =G ×cot (h)
sin (h )=sin (φ)sin (δ)+sin (φ)cos(δ)cos(τ)
τ=15(bt +
120−γ15°
−12)
δ=0.3723+23.2567sinθ+0.1149sin2θ−0.1712sin3θ−0.758cosθ+0.3656cos2θ+0.0201cos3θ
θ=2πt 356.422t =N −79.6764+0.2422×(year −1985)−int[year−1985
4
] (15)
(2)直杆高度不小于0。
G ≥0 (16)
(3)测试位置纬度不超过地球纬度限度(以北纬为正)。
−90°≤φ≤90° (17)
(4)日期在一年之中。
0≤N ≤365 (18)
(5)测试位置经度的约束条件:
分析附件2、附件3数据可以看出附件2中影子长度随时间的增加而减小,所以当地时间应该在上午,附件3中影子长度随时间的增加而增大,即该北京时间时当地时间为下午,所以两地经度范围不同。
①附件2经度约束条件:
[120°−(12.68−6)×15°]≤γ≤[120°−(13.68−12)×15°]
19.8°≤γ≤94.8° (19)
②附件3经度约束条件:
[120°−(13.15−12)×15°]≤γ≤[120°−(14.15−18)×15°]
102.75°≤γ≤177.75° (20)5.3.2 测试地点及日期算法设计
根据分析,问题三只是将问题二中的一个已知量改为一个变量,根据算法特点,在增加一个变量的情况下,搜索影长差时必须增加一重循环。
所以利用问题二的算法完全可以将问题三解决,在此就不在赘述。
5.3.3 模型求解及分析
附件2提供数据的模型求解及分析
利用非线性最小二乘算法在MATLAB软件环境下对附件2所给数据进行求解,得到最小残差按从小到大顺序排列,前四位对应φ、γ、G、N值分别如下所示:(具体程序见附件“tsl_3_1.m”)
表5 前四位对应φ、γ、G、N值分布表(附件2数据)
将对应积日转换为具体日期为:
表6 对应积日转为具体日期表(附件2数据)
图13 附件2数据最可能地点网络截图
残差最小对应的位置为北纬39.8926°,东经79.7438°,具体地点在新疆维吾尔自治区喀什地区巴楚县。
此时对应直杆高度为2.0008m。
对应日期为4月24日或6月19日。
结果分析:
(1)从经纬度来讲,附件2所得最可能地区是在新疆维吾尔自治区喀什地区附近,由于前四个最优解的经纬度差别、直杆高度值相差很小,所得位置较为准确。
(2)从测试日期来讲,由问题一影子长度与日期的关系可知,影子的长度在一年中关于积日170大致对称,附件2所得两积日分别为144和201,与170分别相差26和31,从这个角度验证了模型算出日期的准确性。
(3)从残差角度考虑:所得位置残差在10−8数量级上,精确度较高。
为了更好地验证模型和算法,我们再次提出新的验证方法,是比较计算出的影长L1与实际影长L2,对比情况如下图所示:
图14 影长L1和L2对比图(附件2)
由上图可以看出,计算影长与实际影长的吻合度较好,可以验证所得解较精确。
同时再
次验证了模型的稳定性和算法的可靠性。
附件3提供数据的求解及分析
在MATLAB软件环境下对附件3所给数据进行求解,得到最小残差前四位对应
φ、γ、G、N值分别如下所示:(具体程序见附件“tsl_3_4.m”)
表7 前四位对应φ、γ、G、N值分布表(附件3数据)
将对应积日转换为具体日期为:
表8 对应积日转为具体日期表(附件3数据)
结果分析:
(1)从经纬度来讲:附件3得到了两个不同的地点,这两个地点经度大致相同,纬度稍有偏差。
由具体日期可以知道,1月25日已过冬至点,太阳直射点北移,北半球上同一地点同一时刻的影子就会不断变短,所以要使2月6日影子与1月25日相似时,只有将纬度往北移。
这就可以解释为什么会得出两个精确点。
具体位置如下所示:
图15 附件3可能地理位置网络截图
(2)从测试日期考虑:同一个地点影子的长度在一年中关于积日170大致对称。
而我们假设的年份为2015年,同时相邻的年份对影子的影响不大,所以10月5日和10月14日可能为2014年的日期。
(3)从残差角度考虑:所得位置残差在10−8数量级上,精确度较高。
(4)从计算影长和实际影长的拟合效果来看:
图16 影长L1和L2对比图(附件3)
由图(15)可知,计算影长L1的曲线与实际影长L2的曲线能够较好的吻合,所得结果的准确性即可验证。
5.4 问题四模型的建立与求解
5.4.0 模型准备
如果能顺利解决影子长度读取问题,则本问的两个问题分别与问题二、问题三极为相似,即可利用问题二、三中的模型及算法进行求解。
因此,在此问题中,我们主要考虑如何利用视频准确读取图像中影子长度与直杆高度,进而确定影子长度,最终解决问题。
附件4所提供的为一根直杆在太阳下的影子变化的视频,为了提取影子长度值,我们先对视频进行预处理:。