2 回答
TA贡献1796条经验 获得超4个赞
大致如下:
import numpy as np
import matplotlib.pyplot as plt
n_denser = 33
n_coarser = 7
x_denser = np.linspace(0,1,n_denser)
y_denser = np.power(x_denser, 2) + np.random.randn(n_denser)/10.
x_coarser = np.linspace(0,1,n_coarser)
y_coarser = np.power(x_coarser, 2) + np.random.randn(n_coarser)/10. + 0.5
y_dense_interp = np.interp(x_coarser, x_denser, y_denser)
plt.plot(x_denser, y_denser, 'b+-')
plt.plot(x_coarser, y_coarser, 'ro:')
plt.plot(x_coarser, y_dense_interp, 'go')
plt.legend(['dense data', 'coarse data', 'interp data'])
plt.show()
返回的内容如下:
TA贡献1799条经验 获得超9个赞
您的困惑似乎源于混淆您提到的方法。最小二乘不是插值方法,而是一种最小化曲线拟合方法。一个关键的区别是,通过插值,绘图总是通过原始数据点。对于最小二乘法,这种情况可能会发生,但通常情况并非如此。
如果您需要传递原始数据点,三次样条插值将为您提供“漂亮”的图。
如果您想使用最小二乘法,您需要知道您想要拟合什么次数的多项式。最常见的是线性(一阶)。
添加回答
举报