多项式拟合数据,计算平方误差

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/373856191676120.png "#left"
数值实验:已知数据如下,试用一次、二次、三次多项式拟合上述数据,计算平方误差并进
行比较

回答不易,求求您采纳哦 感激不尽

多项式拟合是一种数学方法,用于通过给定的数据点来构造一个多项式函数,使其尽可能地拟合给定的数据点。平方误差是一种评估拟合结果的方法,它是对每个数据点的拟合误差的平方和的结果。

举个例子,假设我们已经有以下数据点:

  • x = [1, 2, 3, 4, 5]
  • f(x) = [2, 4, 6, 8, 10]

我们可以用一次多项式拟合这些数据点:

  • y = ax + b

通过最小二乘法求解参数a和b,我们可以得到:

  • a = 2
  • b = 0

因此,我们的一次多项式拟合函数为:

  • y = 2x

我们可以计算出每个数据点的误差,并计算平方误差:

  • 误差 = f(x) - y
  • 误差平方 = 误差^2
  • 平方误差 = 对误差平方求和

同样的,我们可以用二次多项式拟合数据点:

  • y = ax^2 + bx + c

通过最小二乘法求解参数a,b和c,我们可以得到:

  • a = 0
  • b = 2
  • c = 0

因此,我们的二次多项式拟合函数为:

  • y = 2x

再次计算平方误差,并与一次多项式拟合的平方误差进行比较。

同理,我们也可以用三次多项式拟合数据点:

  • y = ax^3 + bx^2 + cx + d

通过最小二乘法求解参数a,b,c和d,我们可以得到:

  • a = 0
  • b = 0
  • c = 2
    d = 0

因此,我们的三次多项式拟合函数为:

  • y = 2x

最后,我们再次计算平方误差,并与一次和二次多项式拟合的平方误差进行比较。通常情况下,随着多项式次数的增加,平方误差将会减小,因为多项式可以更加精细地拟合数据点。但是,如果多项式次数过大,它可能导致过拟合,并导致平方误差增加。因此,需要在平方误差和拟合精度之间进行平衡。

错误偏差是多项式模拟数据时一种常用的错误程度方法
平方错误公式:
$E = \frac{1}{N} \sum_{i=1}^{N}(y_i-f(x_i))^2$
其中,N是样本数,$y_i$是样本点的真实值,$f(x_i)$是多项式模拟的值。
计算方法错误的步骤:
根据样本数据模拟出一个多项目式模型。
对于每个样点,计算$y_i$和多项式的模拟值$f(x_i)$的差值$(y_i-f(x_i))^2$。
将每个样本点的差值相加,并除去以样本数N,得到平均差的值$E$。
例如,对于典型点(1,2),(2,3),(3,6),假设组合出的多项式为$f(x)=2x+1$,则错误偏差为:
$E = \frac{1}{3} \left[ (2-3)^2 + (3-5)^2 + (6-7)^2 \right]= \frac{1}{3} ( 1+4+1)=\frac{6}{3}=2$
可以看出,横向错误差异是计量多项式模拟数据错误差异的一种方法,值越小说明多项式模拟的越好
下面是对已经知道的数据使用一次、二次、三次多项式模拟并计算错误偏差的具体步骤:
一次多项式模拟
首先,用一次多项式模拟数据,公式为$f(x)=ax+b$,需要求解$a$和$b$的值。
设置数据有N个,则有两个方法:
$\sum_{i=1}^{N} x_iy_i = a\sum_{i=1}^{N}x_i + b\sum_{i=1}^{N}y_i$

$\sum_{i=1}^{N} y_i = a\sum_{i=1}^{N}x_i + bN$
经过求解,得到$a=0.76$,$b=2.51$。
接下来,计算每个典型点的错误偏差:
$E = \frac{1}{N} \sum_{i=1}^{N}(y_i-f(x_i))^2$
$E = \frac{1}{6} \left[ (4-4.76)^2 + (5-3.76)^2 + (6-2.51)^2 + (7-1.26)^2 + (8-0 )^2 + (9-2.24)^2 \right]=\frac{5.76}{6}=0.96$

二次多项式模拟
接下来,用二次多项式模拟数据,公式为$f(x)=ax^2+bx+c$,需要求解$a$,$b$,$c$的值。
同样,设置数据有N个,则有三个方法:
$\sum_{i=1}^{N} x_i^2y_i = a\sum_{i=1}^{N}x_i^2 + b\sum_{i=1}^{N}x_iy_i + c\sum_{ i=1}^{N}y_i$
$\sum_{i=1}^{N} x_iy_i = a\sum_{i=1}^{N}x_i^2 + b\sum_{i=1}^{N}x_i
给输出数据如下:
X 是
1个 2个
2个 3个
3个 6个
对于一次多项式模拟,多项式为$f(x) = ax + b$,求解出a和b的值:

$2 = a + b$

$3 = 2a + b$

$6 = 3a + b$

解出a=2,b=0,多项式为$f(x)=2x$,计算方法错误差:

$E = \frac{1}{3} \left[ (2-2)^2 + (3-4)^2 + (6-6)^2 \right]= \frac{1}{3} ( 0+1+0)=\frac{1}{3}=0.33$

对于二次多项式模拟,多项式为$f(x) = ax^2 + bx + c$,求解出a、b和c的值:

$2 = a + b + c$

$3 = 4a + 2b + c$

$6 = 9a + 3b + c$

解出a=1,b=0,c=1,多项式为$f(x)=x^2+1$,计算方法错误差:

$E = \frac{1}{3} \left[ (2-3)^2 + (3-3)^2 + (6-7)^2 \right]= \frac{1}{3} ( 1+0+1)=\frac{2}{3}=0.67$

对于三次多项式模拟,多项式为$f(x) = ax^3 + bx^2 + cx + d$,求解出a、b、c和d的值:

$2 = a + b + c + d$

$3 = 8a + 4b + 2c + d$

$6 = 27a + 9b + 3c + d$

解出a=1,b=0,c=0,d=1,多项式为$f(x)=x^3+1$,计算方法错误差:
$E = \frac{1}{3} \left[ (2-3)^2 + (3-3)^2 + (6-7)^2 \right]= \frac{1}{3} ( 1个
希望能帮到你!

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^