首页 > 解决方案 > 是否有一种可编程的方法来计算幂和的指数值

问题描述

假设我有一个等式:

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 范围内)。

标签: pythonmathoptimization

解决方案


您可以使用 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

参考文档


推荐阅读