既有适合小白学习的零基础资料,也有适合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)**