一文搞懂最小二乘算法(MATLAB实例讲解)

本文介绍了最小二乘法作为一种数学统计方法,尤其在线性回归中的应用,通过实例展示了如何使用MATLAB编程求解线性最小二乘问题并生成拟合曲线。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最小二乘法是一种数学统计方法,从拟合的角度理解,它可以使拟合的误差(即实际值与拟合值之差)的平方和达到最小。这种方法在回归分析、曲线拟合、求解超定方程组等领域有广泛应用。

线性最小二乘问题的数学形式

对于线性回归问题,我们通常有一个形式为y = X\beta + \varepsilon的模型,其中:

y 是观测到的因变量(响应)向量。
X是设计矩阵,包含观测到的自变量(解释变量)的值。
\beta是要估计的参数向量。
\varepsilon是误差向量。

最小二乘估计的目标是找到使残差平方和最小的 \beta 值,即:

\hat{\beta} = \arg\min_{\beta} |y - X\beta|^2

这可以通过求解正规方程X^TX\beta = X^Ty来得到,从而得到最小二乘估计\hat{\beta} = (X^TX)^{-1}X^Ty

最简单的MATLAB代码如下:

clc;close all;clear all;warning off;%清除变量
rand('seed', 100);
randn('seed', 100);
format long g;


% 生成模拟数据
x = (0:0.1:10)'; % 自变量
beta = [2; -1]; % 真实参数值
y = [ones(size(x,1),1),x] * beta + randn(size(x,1),1) * 0.5; % 因变量,加入一些噪声

% 使用最小二乘法进行拟合
X = [ones(size(x)), x]; % 设计矩阵,包括截距项和x项
beta_hat = (X' * X) \ (X' * y); % 求解正规方程得到参数估计值

% 绘制实际值和拟合值图像
figure;
plot(x, y, 'ro', 'MarkerFaceColor', 'r'); % 绘制实际值点图,红色圆圈表示
hold on;
y_fit = X * beta_hat; % 计算拟合值
plot(x, y_fit, 'b-'); % 绘制拟合线,蓝色实线表示
xlabel('x');
ylabel('y');
legend('实际值', '拟合值');
title('最小二乘拟合');
grid on;
hold off;

程序结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB代码顾问

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值