我正在使用水平线编写一个python代码,使用范围为[0,1]的函数sin(2.pi.x)来调查未命中。 我首先通过使用高斯分布添加一些随机噪声来生成N个数据点,其中μ= 0且sigma = 1。
import matplotlib.pyplot as plt
import numpy as np
# generate N random points
N=30
X= np.random.rand(N,1)
y= np.sin(np.pi*2*X)+ np.random.randn(N,1)
我需要使用水平线来拟合模型并显示它。但我不知道接下来该怎么做。 你能帮我解决这个问题吗?我很欣赏它。
答案 0 :(得分:0)
根据我的理解,您会产生嘈杂的正弦波并尝试适合水平线?
import os
import fnmatch
import numpy as np
import matplotlib.pyplot as plt
# generate N random points
N=60
X= np.linspace(0.0,2*np.pi, num=N)
noise = 0.1 * np.random.randn(N)
y= np.sin(4*X) + noise
numer = sum([xi*yi for xi,yi in zip(X, y)]) - N * np.mean(X) * np.mean(y)
denum = sum([xi**2 for xi in X]) - N * np.mean(X)**2
b = numer / denum
A = np.mean(y) - b * np.mean(X)
y_ = b * X+ A
plt.plot(X,y)
plt.plot(X,y_)
plt.show()
答案 1 :(得分:0)