论文部分内容阅读
在高性能计算中,大规模、大尺度、长时程数值计算由于浮点计算的舍入误差累积效应,常导致不可信的数值结果。针对这一难以解决的常见问题,本文运用无误差变换理论,从浮点运算代码层面上,分析舍入误差累积效应,设计了一些高精度高效率的补偿数值算法。本文的研究工作以及创新点主要体现在下面几个方面:1.提出了计算幂指数基多项式函数k阶导数值的补偿Horner导数算法(CompHD算法)。该算法利用无误差变换技术分析HD算法的舍入误差累积结果和每一步计算中产生的舍入误差的关系,得到一个计算舍入误差累积的关系式和迭代公式,应用这一迭代关系计算出舍入误差的累积量,并用其修正原Horner导数算法的数值结果。应用数据流依赖关系图,我们给出了向前误差分析和动态误差分析,证明了该补偿算法在问题不是很病态的情况下给出了近似达到机器工作精度的数值结果。数值试验证明了该算法的高效性和精确性。2.将补偿的Horner算法(CompHorner)和补偿的Horner导数算法(CompHD算法)引入经典Newton迭代法,提出了高精度的补偿Newton迭代算法。误差理论分析指出:在Newton迭代法公式中,函数一阶导数值(分母)的计算精度决定了Newton迭代是否收敛;函数值(分子)的计算精度决定了在迭代收敛情况下得到的数值结果精度。因此,通过提升Newton迭代公式中函数值和导数值的数值精度来设计补偿的Newton迭代算法,能够在问题病态情况下,保持迭代算法收敛,同时保证收敛结果具有足够的有效精度位。数值试验验证了该算法的有效性。3.在计算机辅助几何设计中,多项式一般表示成为Bernstein基形式。本文针对单变量B′ezier曲线、双变量的Bernstein-B′ezier曲面和B′ezier张量积曲面,提出了若干补偿的de Casteljau算法。算法要求这些B′ezier多项式曲线和曲面的系数和评估点为浮点数格式。该类补偿算法主要应用无误差变换改进经典de Casteljau算法。误差分析和数值试验证明了该类算法的高效性和可靠性。4.提出了计算两类Chebyshev基的单变量、系数为浮点数格式的多项式函数在某一浮点数值处函数值的补偿算法。该算法应用无误差变换技术改进传统的Clenshaw算法。新的补偿Clenshaw算法同原算法在双倍工作精度下得到的数值结果精度形同。误差分析和数值试验验证了该算法的高效性和精确性。5.针对单位对称函数的高效精确计算,本文应用无误差变换技术改进经典的Summation算法(Matlab中的函数Poly应用的就是这一算法),提出了补偿的Summation算法。向前误差分析和动态误差分析证明了该算法得到的数值结果精度近似于原算法在双倍工作精度下运行并在最后舍入到工作精度所得到数值结果精度。数值试验表明该算法同应用double-double的Summation算法相比,达到相同的数值结果精度,但是需要更少的运算时间。该补偿算法可以应用到已知特征值来计算特征多项式问题和心理学测量中的Rash模型中。