% 定义数据 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。最后输出拟合结果,并绘制原始数据和拟合曲线的图形。

MATLAB最小二乘法程序:矩阵法实现及代码示例

原文地址: https://www.cveoy.top/t/topic/l0wN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录