摘 要: 提出了一个基于CODIC的计算Bernstein多项式的移位-加算法。该算法可以在存在于许多领域的基本计算系统中实现。证明了算法的收敛性,给出了误差分析,做了数值实验,验证了算法的有效性和效率。
关键词: Bernstein多项式;CORDIC;移位-加算法;基本计算系统
在高级计算系统中,可以很容易地找到Bernstein多项式的算法[3]。例如,在Mathematica中,可以用BernsteinBasis[n,i,t]计算。用高级语言编程计算Bernstein多项式也非常容易。本文讨论如何在基本计算系统(仅具备移位、加和逻辑运算功能的计算系统)中计算Bernstein多项式。基本计算系统存在于许多系统中,例如工业控制系统、军事应用系统、医疗应用系统等。典型的有单片机系统和FPGA(Field Programmable Gate Arrays)等。
CORDIC算法是可计算多种基本初等函数的移位-加算法[4-6]。参考文献[7-8]扩展了CORDIC算法,其收敛性和误差估计在参考文献[7]中做了分析。随着硬件技术的发展,这些快速统一移位-加算法可以用硬件实现,而且不需使用乘法器[9],成本较低,也可以用汇编语言编程实现。本文提出一个基于CORDIC算法的Bernstein多项式移位-加算法。
参考文献
[1] NATARAJ P S V, AROUNASSALAME M. A new subdivision algorithm for the bernstein polynomial approach to global optimization[J]. International Journal of Automation and Computing, 2007,4(4):342-352.
[2] FARIN G. Curves and surfaces for computer-aided geometric design: a practical guide, 4th Ed. Academic Press, San Diego, 1997.
[3] FENG Jieqing, PENG Qunsheng. Fast algorithm for composition of the bernstein polynomials[J]. Journal of Computer-Aided Design & Computer Graophics, 2001,13(2).
[4] VOLDER J E. The CORDIC computing technique[J]. IRE Transactions on Electronic Computers, 1959,8(9):330-334.
[5] MULLER J M. Elementary functions, algorithms and implementation. Birkhauser Boston, 1st edition,1997. 2nd edition, 2006:133-156.
[6] EKLUND N. CORDIC: elementary function computation using recursive sequences[C]. International Conference on Technology, 1998.
[7] GU Feng. Convergence and error estimation of coordinate rotating algorithm and its expansion[J]. Chinese Journal of Numerical Mathematics and Applications, 2006,28(2):1-9.
[8] HU Xiaobo, HARBER R, BASS S. Expanding the range of convergence of the CORDIC algorithm[J]. IEEE Transactions on Computers, 1991,40(1):13-21.
[9] ANDRAKA R. A survey of CORDIC algorithms for FPGA based computers[C]. In Proceedings of the 1998 ACM/SIGDA Sixth International Symposium on Field Programmable Gate Arrays(FPGA) 1998:191-200.