0

我正在使用 np.polyfit,当我订购 2 时,我观察到以下扭结。如果我订购 1,一切似乎都很好。

这是代码。

import numpy as np
import matplotlib.pyplot as plt

x = [-14.35,  -9.35,   0.65, -14.35  ,-9.35,   0.65] 
y = [ 0.10172312,  0.08831127,  0.07764486,  0.11606595 , 0.10447722,  0.1000171 ]

coeffs = np.polyfit(x, y, 2)
poly = np.poly1d(coeffs)

fig = plt.figure()
xs = np.array([-14.35,  -9.35 ,  0.65])
ys = poly(xs) 
plt.plot(x, y, 'o')
plt.plot(xs, ys)

这就是我看到的订单 2

这就是我看到的订单 1

有点惊讶为什么我看到订单 2 的扭结(polyfit(x, y, 2)

4

1 回答 1

3

您的 没有任何问题polyfit,但您仅使用 3 个点来绘制生成的二阶多项式。难怪它看起来像这样。只需使用linspace. 只需更换

xs = np.array([-14.35,  -9.35 ,  0.65])

xs = np.linspace(min(x), max(x), 200)

结果:

在此处输入图像描述

于 2014-05-17T19:54:03.393 回答