我正在尝试计算a^n,其中a和n是有理数。
我不想使用任何预定义的函数,如
3^0.2 = 3^(1/5),所以如果x = 3^0.2,x^5 = 3。 可能最好的方法(没有计算器但仍然使用基本算术运算)是使用“牛顿法”。 解方程f(x)=0的牛顿法是建立一系列由xn定义的数字,其中将x0作为某些初始“猜测”,然后xn+1= xn- f(xn/f '(xn) ,其中f'(x)是f的导数。
发布于physicsforums 那种方法的问题在于,如果我想计算
有人能给我解决这个问题的建议吗?或者,有人能提供另一种计算 a^n 的算法吗?
sqrt()
或pow()
因此,我尝试使用牛顿法通过以下方法获得近似解:3^0.2 = 3^(1/5),所以如果x = 3^0.2,x^5 = 3。 可能最好的方法(没有计算器但仍然使用基本算术运算)是使用“牛顿法”。 解方程f(x)=0的牛顿法是建立一系列由xn定义的数字,其中将x0作为某些初始“猜测”,然后xn+1= xn- f(xn/f '(xn) ,其中f'(x)是f的导数。
发布于physicsforums 那种方法的问题在于,如果我想计算
5.2^0.33333
,我需要找到这个方程的根 x^10000 - 5.2^33333 = 0
。我得到了巨大的数字,并且大多数时候会出现inf
和nan
错误。有人能给我解决这个问题的建议吗?或者,有人能提供另一种计算 a^n 的算法吗?