用matlab编程实现最小二乘法一次多项式拟合,不使用函数,在命令窗口输出最终拟合函数,并画出图像
时间: 2024-02-12 12:04:57 浏览: 57
好的,以下是一个完整的 MATLAB 代码实现最小二乘法一次多项式拟合,并在命令窗口输出最终拟合函数,并画出图像的过程:
```matlab
% 定义数据
x = [1, 2, 3, 4, 5];
y = [1.2, 1.9, 3.2, 4.1, 5.3];
% 拟合一次多项式
n = length(x);
A = [ones(n, 1), x'];
b = y';
p = (A' * A) \ (A' * b);
% 在命令窗口输出最终拟合函数
fprintf('最终拟合函数为:y = %.4f + %.4f * x\n', p(1), p(2));
% 画出原始数据和拟合曲线
plot(x, y, 'ro', 'MarkerSize', 8);
hold on;
xfit = linspace(min(x), max(x), 100);
yfit = p(1) + p(2) * xfit;
plot(xfit, yfit, 'b-', 'LineWidth', 2);
grid on;
xlabel('x');
ylabel('y');
legend('原始数据', '拟合曲线', 'Location', 'northwest');
```
在这个例子中,我们同样构造了一组简单的数据,并使用最小二乘法拟合一次多项式。拟合结果存储在向量 `p` 中,其中 `p(1)` 是常数项,`p(2)` 是一次项系数。然后我们使用 `fprintf` 函数在命令窗口输出最终拟合函数。最后,我们使用 `plot` 函数画出原始数据和拟合曲线,并使用 `legend` 函数添加图例。运行代码后,将会看到一个包含原始数据和拟合曲线的图像。
阅读全文