改进遗传算法及最小二乘法在计算机数学建模中的应用

时间:2022-08-21 03:19:55

改进遗传算法及最小二乘法在计算机数学建模中的应用

摘 要 遗传算法的基本思想是基于模仿生物界一种的遗传过程,把问题的用基因代表参数,把问题的用染色体代表二进制解从而得到一个群体,主要由三个基本操作构成:选择、交叉、变异。最小二乘法则为已知一组实验数据,求自变量x与因变量y之间的函数关系,只要求在给定点的误差,残差的平方和最小,

即。本文基于2015年全国大学生数学建模获奖作品提出了一种改进遗传算法,结合最小二乘法,利用MATLAB、JAVA软件对太阳影子定位问题进行数学建模分析。

【关键词】遗传算法 最小二乘法 非线性超定方程组

1 问题分析

(1)天安门广场一根3m的直杆,时间确定为10月22日,根据广场位置确定经纬度及太阳的直纬δ,推导出太阳高度角h、太阳方位角A及时角。直杆影子长度随着各个参数的变化规律同时可得到。

(2)直杆太阳影子的端点的纵坐标和横坐标之间的的关系与直杆自身的高度无关。缺少直杆的高度,采用最小二乘法进行曲线拟合最低点即影长最小点对应太阳直射时间,由真太阳时与北京时间的关系得出经度。再建立非线性超定方程组,求解得测量地点纬度。

(3)日期未知,赤纬δ不唯一,变量增多,求解难度增大,故选择利用性能较优的遗传算法求解,从而确定测量地点。

2 模型建立与求解

2.1 直杆影子端点变化模型

对任意直杆,设其杆高为H,太阳光线通过杆的最高点P,投影到了地面上端点P',则其影长为OP',定义太阳光和水平地面夹角h,即太阳高度角,可得如下数学关系:

(1)

得:,测量时差时,平太阳时t平及真太阳时t真关系如下:,m为分钟,n为日期序号,,

,方位角

,而影长为影子端点P'到原点O的距离:

(2)

方位角满足

(3)

利用MATLAB软件做出影子的长度随时间变化曲线如图1。

图1

2.2 最小二乘法拟合影长随时间变化关系

符合二次曲线关系:。原理如下:设定参数S,针对yi和当S取最小值时作为优化判据。模型一中日期确定得直纬δ,从而得纬度和高度角关系达到换元效果。对附件数据用此方法拟合,求解如下最小二乘法模型,当S取最小值时,a,b,c即为二次拟合函数系数:

(4)

2.3 经度E的求解

对公式

时影长L有最小值,太阳直射本地,解

得经度E。21组数据则可得到含有21个超越方程的非线性方程组:

(5)

然后利用matlab软件逼近求解此超越方程组得纬度,推算出日期序列号n=108,确定赤纬角δ=10.51 。根据已求得δ,的值最后确定测量地点:(108.265E,2.846N)海南省乐东黎族自治县(109.156E,18.615N)肯达旺岸西海域。

下面给出遗传算法的具体步骤:

Step 1:选择编码策略,把参数集合(可行解集合)转换染色体结构空间;

Step 2:确定适应函数,用于便于计算适应值,确定遗传策略,包括群体大小的选择,选择、交叉、变异方法以及交叉概率的确定、变异概率等各遗传参数;

Step 3:初始化群体利用计算机随机产生,先对群体中的个体或染色体对解码,然后计算后群体中的个体或染色体的适应值

Step 4:依据遗传策略,使用选择、交叉和变异算子作用于群体,产生下一代群体;

Step 5:对群体性能进行判断,看其对某一指标是否满足、或者对预定的迭代次数是否已完成,如果不满足,则返回第五步、或者对遗传策略进行修改,然后再返回第4步。对于遗传算法,针对问题三根据上述分析,可得目标函数R,

(6)

其中,m为太阳影子个数,Li为预测影子长度,为实际影子长度。利用MATLAB软件对遗传算法所分析模型进行求解。得到的结果如下:

附件2:(83.887E,35.701N)7月9日新疆交界处(84.667E,37.472S) 8 月2日印度洋海域

附件3:(111.921E,41.735N)9月14日呼和浩特(115.423E,41.735N) 9月14日山西

3 小结

本文采用的遗传算法是一种较为先进的现代优化算法,具有很强的并行性和全局搜索能力,其编码技术和遗传操作较为简单,对优化问题的限制性条件要求低。目前各类遗传算法已在机器学习、图像处理、模式识别、优化控制、组合优化和管理决策等领域得到了很好的应用,遗传算法的研究和推广对于经济社会发展具有重大意义。

参考文献

[1]郑鹏飞,林大钧,刘小羊,吴志庭.基于影子轨迹线反求采光效果的技术研究[D].上海:华东理工大学机械与动力工程学院,2010.

作者单位

合肥工业大学 安徽省合肥市 230009

上一篇:一种基于SOA的流程调度技术在高分减灾应用示范... 下一篇:数据中心设备状态评价模型研究