如何将不同x值代入numpy拟合得到的多项式求对应y值?
问题
使用numpy.polynomial.polynomial.fit()拟合得到多项式方程后,尝试直接设置x=10并令y=poly_fitting的方式无法计算对应y值,相关代码及运行结果如下:
from numpy.polynomial import Polynomial as poly poly_fitting= poly.fit(x_trimmed, y_trimmed, 10) print("poly_fitting=", poly_fitting)
运行输出:
poly_fitting= 0.0008463953270006118 - 5.892933087678905e-05 x**1 + 2.3178986039370123e-05 x**2 + 0.00028320046503272636 x**3 - 7.413659868838611e-05 x**4 - 0.0007190043777406841 x**5 -0.005478338718269069 x**6 + 0.0009052362092180649 x**7 + 0.008047614732994075 x**8 - 0.00040853198223002313 x**9 - 0.003261609071280533 x**10
如何实现代入不同x值计算对应的y值?
解决方法
- 直接调用多项式对象:
poly.fit()返回的是Polynomial类的实例,它可以像函数一样直接调用,传入x值就能得到对应的y值。示例代码:# 单个x值计算 x = 10 y = poly_fitting(x) print(y) # 多个x值批量计算(支持数组输入) x_array = [5, 10, 15] y_array = poly_fitting(x_array) print(y_array) - 原因说明:之前的方法无效是因为
poly_fitting是封装好的多项式对象,不是可直接赋值变量的表达式。调用对象时,内部会自动完成多项式的求值计算,兼容单个数值、列表或numpy数组类型的输入。
内容的提问来源于stack exchange,提问作者MRR
相关产品推荐
相关产品推荐

