练习最小二乘法程序--矩阵法编写使用MATLAB
以下是使用MATLAB编写最小二乘法程序的示例代码:
% 定义数据
x = [1, 2, 3, 4, 5]';
y = [2, 3, 5, 6, 8]';
% 构建设计矩阵
A = [x, ones(size(x))];
% 使用最小二乘法求解
beta = inv(A' * A) * A' * y;
% 输出结果
fprintf('最小二乘法结果:\n');
fprintf('beta 1 = %.2f\n', beta(1));
fprintf('beta 2 = %.2f\n', beta(2));
% 绘制拟合曲线
x_fit = linspace(min(x), max(x), 100);
y_fit = beta(1) * x_fit + beta(2);
figure;
plot(x, y, 'ro', 'MarkerSize', 8);
hold on;
plot(x_fit, y_fit, 'b-', 'LineWidth', 2);
xlabel('x');
ylabel('y');
legend('原始数据', '拟合曲线');
grid on;
在这个示例中,我们假设有一组数据点(x, y),使用最小二乘法拟合一条直线来描述这些数据。首先定义了数据x和y,然后构建设计矩阵A,其中第一列是x,第二列是全1向量。接下来使用最小二乘法求解方程Ax = y,得到参数向量beta。最后输出拟合结果,并绘制原始数据和拟合曲线的图形。
原文地址: https://www.cveoy.top/t/topic/i7ny 著作权归作者所有。请勿转载和采集!