numpy.polyval()的反函数

7

我想知道是否有一个方便的np.polyval()的反函数,可以输入y值并求解x?

我知道一种方法可以做到这一点:

import numpy as np

# Set up the question
p = np.array([1, 1, -10])
y = 100

# Solve
p_temp = p
p_temp[-1] -= y
x = np.roots(p_temp)

然而,我猜大多数人都会认为这段代码可读性较低。有什么建议吗?
1个回答

14

这样的东西怎么样?

In [19]: p = np.poly1d([1, 1, -10])  # Use a poly1d to represent the polynomial.

In [20]: y = 100

In [21]: (p - y).roots
Out[21]: array([-11.,  10.])

poly1d 对象实现算术运算以返回一个新的 poly1d 对象,因此 p - y 是一个新的 poly1d 对象:

In [22]: p - y
Out[22]: poly1d([   1,    1, -110])
< p > poly1d roots 属性返回您所期望的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接