如何用多个解决方案来解决多项式,包括python中的复杂解决方案?

7人

我正在尝试在python中解决以下多项式。某些常量(2.11和.125567481)是动态的,将在程序中更改。我需要一种在python中计算此方程的解的方法。我尝试使用Sympy,但它始终执行,从未提出解决方案。Wolfram Alpha提供了4个解决方案,其中3个复杂,而1个是实际的。我只需要一个真正的。有什么办法可以有效地在python中解决这个方程式吗?在mathematica中确实很容易做到,但是我找不到在python3中有效的方法。

(要与symPy的fsolve函数一起使用,我必须对方程进行操作,使其等于零。它仍然没有找到解决方法。)

方程求解

用户名

这不是多项式,因为d升至分数级。充满浮点常数的方程式不太可能受益于像SymPy这样的符号包。使用SciPy可以很容易地获得数字实值解决方案:

from scipy.optimize import fsolve
from math import pi
fsolve(lambda d: 0.125567481 * (d+0.04) - d**2.25 * (pi*2.11+0.10053 + 2.513274*d), 1)

退货 array([ 0.06086999])

请注意,我清除了分母(将两边都乘以),因为除法使数值解更难。大致而言:表达式看起来像多项式越多越好。然后我按照fsolve语法的要求重新排列了表达式,使其等于0

数字1是解决方案的猜测;它不一定是好人;这只需要花点时间:我们需要一个正数根,所以让我们从一个正数开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章