最小二乘法二次多项式拟合matlab程序并计算误差平方和
时间: 2023-08-04 12:36:43 浏览: 116
pro22.rar_least square_matlab 最小二乘法_数据拟合_温度 拟合_计算拟合误差
5星 · 资源好评率100%
好的,以下是一个最小二乘法二次多项式拟合的 MATLAB 程序,并计算误差平方和:
```matlab
% 定义数据
x = [1, 2, 3, 4, 5, 6];
y = [0.5, 2.5, 2, 4, 3.5, 6];
% 构建矩阵
A = [ones(length(x), 1), x', x'.^2];
% 计算系数
coeff = (A' * A) \ (A' * y');
% 构建拟合曲线
x_fit = linspace(min(x), max(x), 100);
y_fit = coeff(1) + coeff(2) * x_fit + coeff(3) * x_fit.^2;
% 计算误差平方和
y_pred = coeff(1) + coeff(2) * x + coeff(3) * x.^2;
error = y - y_pred;
error_squared = sum(error.^2);
% 绘图
plot(x, y, 'o', x_fit, y_fit);
legend('原始数据', '拟合曲线');
title('二次多项式拟合');
xlabel('x');
ylabel('y');
```
这个程序中,首先定义了数据 `x` 和 `y`。然后,根据最小二乘法的原理,构建了一个矩阵 `A`,其中第一列是常数项,第二列是 `x`,第三列是 `x` 的平方。接着,用 MATLAB 的反斜杠运算符 `\` 计算了系数 `coeff`,其中 `coeff(1)` 是常数项系数,`coeff(2)` 是一次项系数,`coeff(3)` 是二次项系数。
接下来,利用 `linspace` 函数生成了一个更加密集的 `x` 值,用 `coeff` 计算了对应的 `y` 值,构建了拟合曲线。然后,计算了原始数据和拟合曲线之间的误差 `error`,并计算了误差平方和 `error_squared`。
最后,利用 `plot` 函数绘制了原始数据和拟合曲线的图像,并加上了标题、坐标轴标签和图例。
阅读全文