python - 在 scipy/numpy 中求解具有已知 y 的多项式的 x 值

标签 python math numpy scipy

我正在尝试用已知的 y 求解 x 值。我能够得到多项式来拟合我的数据,现在我想知道所选 y 将落在曲线上的 x 值。

import numpy as np

x = [50, 25, 12.5, 6.25, 0.625, 0.0625, 0.01]
y = [0.00, 0.50, 0.68, 0.77, 0.79, 0.90, 1.00]

poly_coeffs = np.polyfit(x, y, 3)

f = np.poly1d(poly_coeffs)

我想做 0.5 = f 并求解 x 值。

我可以通过键入以下内容在 WolframAlpha 中解决此问题:

0.5 = -9.1e-6*x^3 + 5.9e-4*x^2 - 2.5e-2*x + 9.05e-1

真正的 x 值是~26

最佳答案

In [1]: from numpy.polynomial import Polynomial as P

In [2]: x = [50, 25, 12.5, 6.25, 0.625, 0.0625, 0.01]

In [3]: y = [0.00, 0.50, 0.68, 0.77, 0.79, 0.90, 1.00]

In [4]: p = P.fit(x, y, 3)

In [5]: (p - .5).roots()
Out[5]: 
array([ 19.99806935-37.92449551j,  19.99806935+37.92449551j,
        25.36882693 +0.j        ])

看起来你想要的根是 25.36882693。

关于python - 在 scipy/numpy 中求解具有已知 y 的多项式的 x 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16827053/

相关文章:

python - KalmanFilter 总是在第一时间预测 0,0

python - 如果我们使用索引矩阵,是否需要在 Theano 中使用 flatten 和 reshape?

python - 您如何确定一个点位于线段上的其他两个点之间?

python - Numpy 在多列上排序 ndarray

python - 根据用户输入返回多个矩阵到函数

python - numpy.unique 基于计数的排序

python - Pandas DataFrame 索引属于一个集合

python - 尝试理解精简的Python

C 中的凯撒密码 : can't seem to wrap around the latter letters of the alphabet

c++ - "-nan"是什么意思,是什么原因造成的?