6. 问题三的建模与求解
6.1问题分析
问题三与问题二的主要区别在于是否已知日期,第三问需要根据所给的xy坐标,求出地点和日期。日期可以通过太阳直射点的纬度求得,但在第二问中每次拟合时,都要不断改变太阳直射点纬度,非常繁琐。所以考虑修改模型,不采用拟合,而是直接构造与坐标点有关的、分辨度更高的目标函数。
6.2模型的建立
在模型二基础上进行修改,根据问题二的模型可知:
?cos?sin??x?h?cos?cos?cos??sin?sin??x??cos?,y??sin??y1?sin?cos?cos??cos?sin??y?h?cos?cos?cos??sin?sin?,?
由于直杆所在地与太阳直射点的经度差用?表示,会与极角混淆,所以这里用?1表示,有:
?cos?sin?1??x?cos?cos?cos??sin?sin?h?1(6.1)?sin?cos?cos??cos?sin?1?y?h?cos?cos?cos??sin?sin??1可以知道,在搜索过程中,每一个确定时刻已知经纬度的地点都可以通过上述式子求出其极坐标值。
将这些极坐标数据进行标准化处理,与附件中给出的确定时刻的影子端点真实坐标值进行比较,构造分辨度更高的目标函数。
(1)极坐标数据标准化
对一个经纬度确定的搜索点相应时刻的21组极坐标值?k进行线性标准化处理:
?k??min??'??k?max??min?,k?1,2,...,21(6.2) ???'??k??mink??max??min?其中?min和?min是附件2或3中所有数据极坐标中的最小值;?max和?max是附件2或3中所有数据极坐标的最大值。
(2)构建目标函数
根据上面分析,问题三的目标函数为:
全国大学生数学建模竞赛一等奖论文
21其中?0k,?0k为附件2或3中真实数据的极坐标值。
mindk??k?121(?'k??0k)2?(?'k??0k)2(6.3)
建立出的时空匹配优化模型如下所示:
21?22(?'??)?(?'??)?k0kk0k??mindk?k?121???k??min?'??k?max??min????'??k??min (6.4) ?k???maxmin??x??cos?,y??sin??y1??cos?sin?1?x?h?cos?cos?cos?1?sin?sin???y?sin?cos?cos?1?cos?sin?h?cos?cos?cos?1?sin?sin??
6.3模型的求解
由于第三问中新增加了一个决策变量日期,若再使用搜索算法,会加大搜索难度,加深算法复杂度,搜索时间会非常长,所以选择采用遗传算法求解第三问。
遗传算法实现的流程图如下:
图6.1 遗传算法流程图
全国大学生数学建模竞赛一等奖论文
6.3.1确定个体的适应度函数
参考第二问求解过程中各坐标值的确定过程,根据式(6.3)中目标函数与待求解变量的定量关系,求得目标函数,作为遗传算法中的个体适应度函数,即
F?dk??k?121(?'k??0k)2?(?'k??0k)221 (6.6)
6.3.2使用遗传算法对问题进行求解
利用遗传算法对附件2和附件3中数据进行求解,通过MATLAB编程得到一些可能的时空坐标,如下表所示:
表6.1 附件2可能地点的经纬度和日期 1 2 3 4 5 纬度 33.8N -5.8S 10.0N 11.5N 19.7N 经度 94.5E 94.5E 32.3E 36.0E 94.5N 日期 6.19 2.5 6.29 9.1 8.15 目标函数值 国家 0.25 中国 0.24 大海 0.20 埃塞俄比亚 0.19 埃塞俄比亚 0.20 孟加拉 表6.2 附件3可能地点的经纬度和日期 1 2 纬度 20N -5S 经度 114E 119E 日期 5.21,7.24 11.3,1.5 国家 中国 印度尼西亚 6.4两种算法的对比分析
基于第二问的搜索方法,对其中参数之间的耦合关系进行修正,依然能用搜索算法对问题进行求解,将两种方法的求解过程进行对比,结果如下: (1)搜索时间对比
得到5-10组可能数据所需时间对比如下表所示:
表6.2 两种算法效率对比 5 6 7 8 遗传算法 20s 24s 30s 32s 搜索算法 30s 50s 60s 75s 结论:遗传算法求解效率更高
(2)搜索精度对比
两种算法五组目标函数的值结果对比如下所示:
表6.3 两种算法精度对比 9 35s 80s 10 42s 90s 组数 1 2 3 4 5 全国大学生数学建模竞赛一等奖论文
遗传算法 搜索算法 20s 30s 24s 50s 30s 60s 32s 75s 35s 80s 结论:遗传算法拟合精度更高
7. 问题四的建模与求解
7.1问题分析
问题四中,直接以视频的方式给出了固定杆长的距离变化规律。此时需要将图片形式的影长变化规律以坐标的形式进行转换,同时转换为现实的坐标形式。这样就可以利用问题二的模型,求出拍摄地点。
7.2数据的预处理
影长变化规律需要以实际坐标形式进行展示,所以需要对视频资料进行预处理操作。
7.2.1将视频格式的数据转换为图片格式的数据
视频展示的是一个动态过程,而确定视频中影子端点的坐标需要在静态画面中进行。根据我国视频采用的PAL制[1],每分钟的画面帧数为25帧,影子在一分钟内的变化情况是十分微小的,所以,选取1分钟作为时间间隔来截取视频的静态图片。
以1分钟为时间间隔截取视频画面,得到的静态图片有41张,每张图片的分辨率为1920*1080。利用matlab软件,读取这些图片的灰度值,以灰度值的变化来刻画杆子的影长的变化规律。
7.2.2确定影子端点在图片中的坐标
(1)将得到的静态图片灰度值矩阵预处理
为了消除静态图片中其他灰度值对刻画影长变化规律的影响,首先将静态图片的灰度值进行归一化,将图片的灰度值均与同一变量进行比较,在这里归一化的方法是阀值[3]归一化方法:
?0,hi?h1?HHi???255,hi?h1?H(7.1)
H?10其中Hi是归一化的灰度值,hi是第i张静态图片的灰度值,h1是第一张图片的灰度
值,H为事先所选的合适阀值,在这里选取灰度值为10为阀值。这种归一化方法消除了静态点的灰度值微小变化产生的影响。同时放大了属于影子长度变化灰度值的变化规律。
(2)确定端点在图片中的坐标位置
为了方便的刻画端点处的变化规律,将计算机处理灰度值的范围限制在端点处,在这里通过二维网络搜索方式[3],搜索到应该将图片的灰度值坐标限制在(800~1000,800~1000)处。
全国大学生数学建模竞赛一等奖论文
图7.1影子端点活动区间示意图 a. 参考坐标原点的选取 参考原点选在固定杆接触地的点的灰度值坐标,选取直杆灰度值变化的曲线和影子变化曲线的交点作为刻画坐标原点,其在灰度值中坐标为:(876,877)。 b. 参考坐标轴的选取 确定坐标原点之后的,以坐标原点灰度值的横坐标878作为x轴,同理,以灰度值坐标877作为y’轴。 c.影子端点选取 在上图确定的区域中做如下搜索:先将灰度值为255的点进行标记;在所有做标记的灰度值坐标中,先选择横坐标值最大的点,在这些点中选取纵坐标最大的点作为影子的端点。选出40个点的影子端点坐标。 图中杆子的端点也是利用相同方式进行确定,其灰度值坐标是(320,886)。 d.确定端点在参考坐标系中的坐标 由题目中所给出的条件,固定杆长端点灰度值坐标为:(320,886),其实际长度与灰度值坐标下的转换比例为: L;(7.2) k?22(x?x0)?(y?y0)其中L为杆的长度2米,(x,y)是固定杆端点的灰度值坐标,(x0,y0)是参考原点。 所以端点在参考坐标系中坐标是: ?Xi?k(xi?x0)??Yi?k(yi?y0),i?1,2,...,41(7.3)?Z?1?i其中(Xi,Yi,Zi)分别为第i张静态图片的灰度值坐标。 7.3模型的建立
在7.2中求出了端点在图片中的坐标,为了找出视频可能的拍摄地点,需要知道端点在实际情况下的坐标。然后利用问题二的模型建立基于图形处理的确定视频拍摄地点模型。
全国大学生数学建模竞赛一等奖论文