1. 引言
在工程和众多领域中,常涉及高维积分的计算.数值积分的计算方法很多,比较经典的有梯形法、Simpson法、Gauss法等,但这些传统方法都有着“维数灾难”问题.(拟)蒙特卡罗法[1]虽能较好解决维数的灾难,但计算精度却难以有效保证.
Sloan研究了一类的函数在n维单位立方体Un=[0,1]n上的高维积分
的数值积分公式,其中:
是位于Un中的某个点列,设S为满足以下三个条件的Sloan点列[2]:
(1);
(2)S含n个线性无关的点;
(3)存在一个去心球邻域B°(0,r)与S交集为空.
文献[3]中给出一Sloan点阵(修正了原文献中q没有取素数的错误):
在积分维度较大时效果并不理想.
本文基于上述Sloan点阵在区间[0,1]上,给出的每一维变量间隔为的p个节点,通过建立合理的适应度,利用粒子群算法去优化这些节点,最终得到比较精确的高维积分值.
2. 基于粒子群的Sloan最佳点阵高维数值积分
2.1 Sloan点阵主要结果
引理 1[3] 设p为素数为一循环群,其中:{·}表示取小数部分.
定理 2[3] 设,则对于点阵:
积分有误差估计
2.2 基于粒子群[4]的Sloan最佳点阵高维数值积分算法步骤
(1)初始粒子群体与各粒子速度:
第j个粒子所在初始位置与速度为其中:
它与右端点
组成[0,1]的间距为的
节点集;vj是随机化的速度.然后,计算初始数值积分
(2)适应度:计算第维分量的边缘积分函数:
其中,的升序排列,则第个粒子的适应度定义为
适应度越趋于0,表明个体越优.
(3)对第j个粒子启用精细搜索,更新粒子的速度和位置:
取0.5.该搜索直到满足停止条件(适应值误差小于设定阈值或者搜索次数超过最大允许次数),令j=j+1,返回步骤(2).
(4)当j=n,计算更新后的数值积分是否小于预先设定的误差限或者允许的最大迭代次数,否则转步骤(2)继续搜索.
3. 数值仿真
实例1
上述函数积分的理论值为1,下面用本文提出的基于粒子群的Sloan最佳点阵高维数值积分算法进行计算,模拟50次,取平均值,实验结果如下表所示:
参考文献
[1]Halton J H. On the efficiency of certain quasi-random sequences of points in evalating multi-dimensional integrals[J].Number.Math.1960,2:84~90.
[2]Sloan I H,KachoYan P J.Lattice methods for multiple integration:theory,error anlysis and examples[J].SIAM Number Anal,1987,24:116.
[3]杜绍洪.高维数值积分的Sloan点阵法的最佳点阵[J].四川大学学报(自然科学版).2007,1(44):25~31.
[4]李丽.粒子群优化算法[M].冶金工业版社,2010.
作者简介:雷黄蕊(1995.06-),女,汉族,四川成都人,硕士研究生学历,四川大学锦江学院,助教,研究方向:基础数学。