3
我正在尝试使用已知的y来求解x值。我能够得到多项式以适合我的数据,现在我想知道选择的y会落在曲线上的x值。在scipy/numpy中求解已知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
您的方法似乎修改了'poly_coeffs',所以对方法的第二次调用实际上会给出错误的答案,也就是说,它会在不同于原始多项式的多项式中为'x'求解'y = 1'。 –
使用[复制](http://docs.python.org/2/library/copy.html) –
@Amit:是的,我的不好。我认为函数参数是按值传递的,而且它只对不可变类型才是真的。由于'np.array'是可变的,它通过引用传递。我会编辑帖子,谢谢。 –