最小二乘拟合曲线代码matlab
时间: 2023-08-23 10:08:15 浏览: 125
matlab最小二乘曲线拟合
以下是最小二乘拟合曲线的 MATLAB 代码示例:
```matlab
% 生成数据点
x = linspace(0, 1, 20);
y = sin(2*pi*x) + randn(size(x))*0.1;
% 拟合曲线的阶数
n = 3;
% 构造向量 X
X = zeros(length(x), n+1);
for i = 0:n
X(:,i+1) = x.^i;
end
% 最小二乘解
coeff = (X' * X) \ (X' * y');
% 生成拟合曲线
xfit = linspace(0,1,100);
yfit = zeros(size(xfit));
for i = 0:n
yfit = yfit + coeff(i+1) * xfit.^i;
end
% 绘制数据点和拟合曲线
plot(x, y, 'o', xfit, yfit, '-')
legend('Data points', 'Fitted curve')
```
上述代码使用 `linspace` 生成 20 个等间距的数据点,其中 y 值为 sin(2πx) 加上一些噪声。然后,代码使用最小二乘法拟合一个 n 次多项式曲线。最后,绘制数据点和拟合曲线。
阅读全文