是否有一种可编程的方法来计算幂和的指数值

假设我有一个等式:

a^x + b^x + c^x = n

既然我知道abcn,有没有办法解决 x ?

我一直在为这个问题苦苦挣扎一段时间,我似乎无法在网上找到解决方案。

我目前的方法是迭代 X,直到左侧“足够接近”到 n。该方法非常缓慢,并且在计算上已经很困难。

例子:

3^x + 5^x + 7^x = 83

我该如何解决 x. (在这种情况下为 2)我在 WolframAlpha 中尝试了方程,它似乎知道如何解决它,但任何其他程序都无法这样做。

我可能还应该提到 X 不是整数(在我的情况下主要在 0.01 到 0.05 范围内)。

回答

您可以使用 scipy 库。您可以使用命令安装它pip install scipy

然后,此代码将起作用:

from scipy.optimize import root

def eqn(x):
  return 3**x + 5**x + 7**x - 83


myroot = root(eqn, 2)

print(myroot.x)

这里,root 接受两个参数 root(fun, x0),其中 fun 是方程的函数,x0 是根值的粗略估计。例如,如果您知道您的根将落在 (0,1) 的范围内,那么您可以输入 0 作为粗略估计。

还要确保代码中输入的等式使 RHS 等于 0。

在我们的情况下3^x + 5^x + 7^x = 83变成3^x + 5^x + 7^x - 83 = 0

参考文档

  • Subtracting 83 is right. root() finds a root of a function, i.e., value of x for which the function is equal to zero. Thus, you _have to_ subtract 83, otherwise you would solve 3**x + 5**x + 7**x = 0 instead of 83.

以上是是否有一种可编程的方法来计算幂和的指数值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>