本题要求根据给定的数据点,利用最小二乘法拟合一个多项式回归模型。设有 N 个数据点,每个数据点包含自变量 x 与因变量 y。同时给定多项式的最高次数 n(满足 0<n<N)。多项式模型形式为
y=anxn+an−1xn−1+⋯+a1x+a0要求求出从最高次幂到常数项的系数,并将每个系数保留四位小数。
某科研团队正在研究一项实验,他们收集了一组数据,想要找到一个合适的模型来描述变量之间的关系。经过初步分析,他们认为简单的线性模型无法很好地拟合数据,可能需要使用多项式回归模型。为了准确地找到最佳拟合的多项式,他们决定使用最小二乘法进行计算。请你帮助科研团队实现一个程序,使用最小二乘法和 NumPy 库计算多项式问归模型的热数,具体要求如下:
1.读取输入数据集,由多个数据点组成,每个数据点包含一个自变量 ((x)) 和一个因变量 ((y)) 。
2.读取多项式的阶数(n),即拟合多项式的最高次数。
3.使用最小二乘法计算多项式回归模型的系数。
4.输出计算得到的多项式系数,从最高次幂到常数项,结果均保留四位小数(使用round(x,4))。
第一行包含一个整数 (N) ,表示数据点的数量。
接下来的 (N) 行,每行包含两个浮点数,表示每个数据点的 (x) 和 (y) 值,用空格分隔。
最后一行包含一个整数 (n) ,表示拟合多项式的最高次数。(0<n<N)
输出一行,包含 (n+1) 个浮点数,表示多项式的系数,从最高次幂到常数项,系数之间用空格分隔,结果均保留四位小数,使用 round(x,4)。
多项式回归模型的形式为:
y=anxn+an−1xn−1+...+a1x+a0
使用最小二乘法求解多顶式回归模型的系数,可以将问题转化为线性代数中的矩阵方程:
Ac=b
其中,A 是设计矩阵,c 是待求系数向量,b 是因变量向量。
可以使用 numpy 中的矩阵和线性数代数函数,例如 numpy.linalg.lstsq 。
输入
5
1.0 2.1
2.0 4.9
3.0 7.2
4.0 9.8
5.0 12.5
2
输出
0.0071 2.5271 -0.36