最全MATLAB实现最小二乘法_最小二乘法求一次线性方程matlab,C C++高级工程师必看系列

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

直接给出该式的参数解:

其中,为x的算术平均值,也可解得如下形式:

一般线性情况

若含有更多不相关模型变量,可如组成线性函数的形式:

即线性方程组:

通常人们将xij记作数据矩阵 A,参数bj记做参数向量b,观测值yi记作Y,则线性方程组又可写成:

上述方程运用最小二乘法导出为线性平方差计算的形式为:

最后的最优解为:

示例

实验得到4个数据(x, y):(1, 6)、(2, 5)、(3, 7)、(4, 10)。希望找出一条和这四个点最匹配的直线:

最小二乘法采用的手段是尽量使得等号两边的方差最小:

通过对β1,β2求偏导:

得到β1=3.5,β2=1.4。所以:最佳。

MATLAB实现

例一:小车时间与位移关系

% 小车时间(xi)和位移关系(yi)关系
x = [0 1 2 3 4 5 6  7  8  9];
y = [0 2 4 7 8 9 12 14 15 18];

%{
    subplot(m,n,p) 其中前两个参数 m,n是指将你的图分成 m*n个栅格,
    每个栅格用 p 来编号,而编号是按行(横着)编号的,所以,当 m = 2,n = 2时编号规则为

        1 | 2
        ------
        3 | 4

    所以subplot(2,2,[1 3]),就说明你这一个子图占据的是 1, 3两个栅格,
    而subplot(2,2,2)说明子图仅占据第2个栅格.
%}
subplot(1,2,1);
plot(x,y,'o');
% 图形的一些设置
xlabel('时间(秒)');
ylabel('位移(米)');
title('原始数据离散点')  
%{
    grid on:是打开网格
    grid off:是关闭网格
    而grid是切换两种状态,如果在grid off的状态下,输入grid,相当于grid on
    相反,如果在grid on状态下输入grid 等价于grid off
%}
grid on

%{
    polyfit函数是matlab中用于进行曲线拟合的一个函数。其数学基础是最小二乘法曲线拟合原理。
    曲线拟合:已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值。
    调用方法:polyfit(x,y,n)。用多项式求过已知点的表达式,
        其中x为源数据点对应的横坐标,可为行向量、矩阵;
            y为源数据点对应的纵坐标,可为行向量、矩阵;
            n为你要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况而定。

    多项式在x处的值y可用下面程序计算:y=polyval(a,x,m)
%}
p = polyfit(x,y,1)
% 0:0.01:9    起始为0,终点为9,步长0.01
x1 = 0:0.01:9;
y1 = polyval(p,x1);

x2 = 0:0.01:9;
%{
    MATLAB中的插值函数为interp1,其调用格式为:  yi= interp1(x,y,xi,'method')           


![img](https://img-blog.csdnimg.cn/img_convert/a9a9739ebf549d613dae48f313cbe888.png)
![img](https://img-blog.csdnimg.cn/img_convert/6c21f6a4f463a0e695e6653a90434161.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值