c++中有个pow(double,double)实现乘方运算,我自己想写一个能达到pow()功能的函数,我利用数学分析中把函数展开成幂级数的方法,已写出求x^y,其中0<x<2(理论上该幂级数的收敛范围),y为实数的函数,此函数在1<x<2内,与系统的pow结果一致,但当x比较小时,例如<.5,偏差就较大。
请问高手究竟如何实现系统的pow函数。
如果能发到我邮箱:pjyshare@gmail.com就更好了。
參考答案:数学分析??数学系的哦~~
我是这样想的,
对于 y 大于1时,对y取int(即(int)y),然后转化成x^(int)y次方,整数方应该是可以比较精确的求出来。
然后,double z = y - (int)y; 再用幂级数的方法求x^z,因为z比较小了,所以结果误差会小一点。
最后再将两步求出的方相乘,不知如何?