本题涉及使用Matplotlib库绘制函数图像,在使用前要先给python安装该库。
使用numpy.linspace在[0,2]区间上均匀取样x值:
再通过numpy相关计算得到f(x)值,从而使用matplotlib.pyplot.plot来绘制函数图像:
而后经过一系列设置即满足题意,代码如下:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,2,200,endpoint=True)
func = np.square(np.sin(x-2)) * np.exp(-x * x)
plt.plot(x,func)
plt.xlim(x.min()*1.1, x.max()*1.1)
plt.ylim(func.min()*1.1, func.max()*1.1)
plt.xlabel('x')
plt.ylabel('y')
plt.title("Exercise 11.1: Plotting a function")
plt.show()
本题涉及最小二乘法的拟合问题,原理见:
(https://baike.baidu.com/item/最小二乘法/2522346?fr=aladdin)
本体使用np.linalg.lstsq求得最小二乘解:
使用matplotlib.pyplot.scatter绘制散点图:
代码如下:
import numpy as np
import matplotlib.pyplot as plt
import random
X = np.random.randn(20, 10) * random.randint(1, 10)
b = np.random.randn(10, 1) * random.randint(1, 10)
print(b)
z = np.random.randn(20, 1)
Y = np.dot(X, b) + z
b1= np.linalg.lstsq(X, Y, rcond=None)[0]
print(b1)
plt.scatter(range(10), list(b.T), s=100)
plt.scatter(range(10), list(b1.T), s=100, marker='x')
plt.legend(['b','^b'])
plt.title("Exercise 11.2: Data")
plt.show()
本题涉及直方图及其核密度估计,使用到了Seaborn库,它是基于Matplotlib的。
帖出一篇详细的博客,介绍了distplot与kdeplot相关,与其中有我所使用函数的详细介绍:
(https://zhuanlan.zhihu.com/p/24464836)
代码如下:
import numpy as np
import matplotlib.pyplot as plt
import random
import seaborn as sns
data = np.random.randn(10000)
sns.distplot(data, bins=25, kde=True)
plt.show()
2018.05.29