matlab笔记 - 最小二乘法拟合直线的原理与实现

最小二乘法拟合直线原理与实现

    • 一、引言
    • 二、原理概述
      • 1. 建模思路
      • 2.误差函数
      • 3.求解最优参数
    • 三、matlab实现最小二乘法拟合直线
      • 1.直接代码实现
      • 2.MATLAB内置函数实现
    • 四、扩展
      • 统计学与回归分析
      • 经济学
      • 工程学
      • 图像处理
      • 机器学习

一、引言

最小二乘法(Least Squares Method)是一种广泛应用的数学优化方法,它通过最小化误差的平方和来找到最佳匹配函数。在数据分析和工程应用中,我们经常需要拟合直线或其他曲线以描述数据的趋势。

二、原理概述

1. 建模思路

最小二乘法拟合直线的核心思想是:给定一组数据点(xi, yi),其中i=1, 2, …, N,我们希望找到一条直线y = kx + b,使得这些点到直线的垂直距离的平方和最小。这里的k是直线的斜率,b是直线的截距。

2.误差函数

为了找到最佳的k和b,我们需要定义一个误差函数,该函数表示所有数据点到直线的垂直距离的平方和。误差函数e可以表示为:
在这里插入图片描述

3.求解最优参数

为了找到使误差函数e最小的k和b,我们需要对e分别关于k和b求偏导,并令其为0。
对k求偏导:
在这里插入图片描述

化简得:
在这里插入图片描述

对b求偏导:
在这里插入图片描述

化简得:
在这里插入图片描述

将上述两个方程联立,我们可以得到一个关于k和b的线性方程组,解这个方程组就可以得到k和b的最优值。
令:
在这里插入图片描述

我们可以得到以下形式的线性方程组:
在这里插入图片描述

解这个方程组,我们可以得到k和b的表达式:
在这里插入图片描述
​至此,已经通过最小二乘法求解出了拟合直线的k和b参数,即求得最优直线

三、matlab实现最小二乘法拟合直线

1.直接代码实现

在代码中,我们给定一组数据点(x, y)模拟离散点,直接根据上面推导的公式计算k和b。

% 给定数据  
x = [0.1; 0.3; 0.4; 0.75; 0.9];  
y = [1.7805; 2.2285; 2.3941; 3.2226; 3.5697];  % 计算k和b  
N = length(x);  
k = (sum(y .* x) - N * mean(y) * mean(x)) / (sum(x .^ 2) - N * mean(x) ^ 2);  
b = mean(y) - k * mean(x);  % 绘制拟合直线  
x_line = linspace(min(x), max(x), 100);  
y_line = k * x_line + b;  
plot(x, y, 'o', x_line, y_line, '-r');  
legend('原始数据', '拟合直线');  
xlabel('x');  
ylabel('y');  
title('最小二乘法拟合直线');

代码中给定了一组5个点的数据 ,通过最小二乘公式运算结果如下:
在这里插入图片描述

2.MATLAB内置函数实现

MATLAB还提供了内置函数如polyfit来实现多项式拟合,拟合方法也是最小二乘法。直线可以看作是一阶多项式。代码如下所示:

% 给定数据  
x = [0.1; 0.3; 0.4; 0.75; 0.9];  
y = [1.7805; 2.2285; 2.3941; 3.2226; 3.5697];  % 使用 polyfit 函数拟合直线(n=1 表示一阶多项式,即直线)  
p = polyfit(x, y, 1);  
k = p(1); % 斜率  
b = p(2); % 截距  % 绘制拟合直线  
x_line = linspace(min(x), max(x), 100);  
y_line = k * x_line + b;  
plot(x, y, 'o', x_line, y_line, '-r');  
xlabel('x');  
ylabel('y');  
title('最小二乘法拟合直线');

运算结果如下:
在这里插入图片描述

四、扩展

最小二乘法(又称最小平方法)是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。拟合直线只是其中一种简单的应用,这种方法在多个领域有着其他广泛的应用,以下是一些典型的应用领域:

统计学与回归分析

  • 线性回归:最小二乘法广泛应用于线性回归分析中,用于确定自变量和因变量之间的线性关系。通过最小化残差平方和,可以求解出线性模型的参数(斜率和截距),从而得到最佳拟合直线或超平面。
  • 多元回归:在多元回归分析中,最小二乘法同样适用,可以处理多个自变量与因变量之间的关系。

经济学

  • 经济指标预测:最小二乘法可以用来分析宏观经济数据,如预测GDP、失业率等经济指标,为政府制定经济政策提供依据。
  • 金融市场分析:在金融市场,最小二乘法可用于股票价格、汇率等金融数据的预测和分析,帮助投资者做出更明智的投资决策。

工程学

  • 材料性质分析:在工程学领域,最小二乘法可用于分析材料的性质,如强度、硬度、耐腐蚀性等,对材料的选取和设计具有重要意义。
  • 系统辨识与预测:在控制系统和信号处理中,最小二乘法可用于系统参数的辨识和预测,提高系统的性能和稳定性。### 医学
    医学数据分析:在医学领域,最小二乘法可用于分析药物代谢速率、病人健康指标、病人预后等数据,为疾病治疗和预防提供支持。

图像处理

图像拟合、滤波、去噪:在图像处理中,最小二乘法可用于对图像进行拟合、滤波和去噪等操作,提高图像的质量和可读性。

机器学习

参数估计:在机器学习的某些算法中,如线性回归模型、逻辑回归模型等,最小二乘法也被用于参数的估计和优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3268764.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

遇到Websocket就不会测了?别慌,学会这个Jmeter插件轻松解决....

websocket 是一种双向通信协议,在建立连接后,websocket服务端和客户端都能主动向对方发送或者接收数据,而在http协议中,一个request只能有一个response,而且这个response也是被动的,不能主动发起。 websoc…

常见的jmeter面试题及答案

1、解释什么是JMeter? JMeter是一款Java开源工具, 用于性能负载测试。它旨在分析和衡量Web应用程序和各种服务的性能和负载功能行为。 2、说明JMeter的工作原理? JMeter就像一群将请求发送到目标服务器的用户-样。它收集来自目标服务器的响应以及其他统计数据&…

WARNING: Ignoring invalid distribution -ip警告信息如何去掉?

查看已安装依赖列表的时候,出现了很多警告信息,如何去掉呢? 解决办法 打开这个路径:d:\software\python\python39\lib\site-packages 这种波浪线开头的,我们将它删除掉,就可以了。

结构体,联合体,指针和浮点代码笔记

系列文章 : 深入理解计算机系统笔记 文章目录 系列文章3.9 异质的数据结构3.9.1 结构3.9.2 联合3.9.3 数据对齐 3.10 在机器级程序中将控制和数据结合起来3.10.1 理解指针3.10.2 应用:使用GDB调试器3.10.3 内存越界引用和缓冲区溢出3.10.4 对抗缓冲区溢出攻击3.10…

2.1、matlab绘图汇总(图例、标题、坐标轴、线条格式、颜色和散点格式设置)

1、前言 在 MATLAB 中进行绘图是一种非常常见且实用的操作,可以用来可视化数据、结果展示、分析趋势等。通过 MATLAB 的绘图功能,用户可以创建各种类型的图形,包括线图、散点图、柱状图、曲线图等,以及三维图形、动画等复杂的可视…

京东云ifrit-agent占用80端口问题

即使停止服务后还是会自动重启,网上查找无果后询问京东云客服,人家服务蛮好,回复很快 解决办法 centos7: 停止服务 systemctl stop ifritd 卸载 rm -rf /usr/local/share/jcloud/ifrit centos 6: 停止服务 cd /usr/local…

Windows系统安装FinalShell

一、下载 通过百度网盘分享的文件:finalshell_install.exe 链接:https://pan.baidu.com/s/1_vcb_t-Cp4TZSN4nWUmLww 提取码:d6v8 二、安装 三、远程连接Linux系统 (1)打开VMware虚拟机 右键空白区域,点击open Terminal 输入命令…

AI/机器学习(计算机视觉/NLP)方向面试复习3

1. Pooling 有哪些方式?pytorch的实现? Pooling可以分成:最大池化,平均池化,全局平均池化,随机池化,空间金字塔池化。 1. 最大池化(Max Pooling) 最大池化是最常用的池…

YOLOv8魔改核心-模型yaml文件解析与网络结构打印

前言 本篇文章主要用于记录学习YOLOv8中网络模型yaml文件,我们一般只知道如何去训练模型,和配置yaml文件,但是对于yaml文件是如何输入到模型里,模型如何将yaml文件解析出来的确是不知道的,下面我们从yaml文件来讲解&a…

C语言同时在一行声明指针和整型变量

如果这么写, int *f, g; 并没有声明2个指针,编译器自己会识别,f是一个指针,g是一个整型变量; void CTszbView::OnDraw(CDC* pDC) {CTszbDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for nat…

Java算法之递归算法-如何计算阶乘的值

上一篇学了递归之后,练习一下递归算法。 题目:使用递归算法计算阶乘的值,也就是5!5*4*3*2*1,直接使用循环是非常简单的,这边练习一下递归算法。 先写一下两个条件 基线条件:等于1的时候返回1…

学习C语言第十四天(指针练习)

1.第一题C 2.第二题C 3.第三题 00345 short类型解引用一次访问两个字节 4.第四题 6,12 5.第五题C 6.第六题 下面代码结果是0x11223300 7.第七题 int main() {int a 0;int n 0;scanf("%d %d",&a,&n);int i 0;int k 0;int sum 0;for (i 0;…

Docker 搭建Elasticsearch详细步骤

本章教程使用Docker搭建Elasticsearch环境。 一、拉取镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:8.8.2二、运行容器 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-n

【Rust】所有权OwnerShip

什么是所有权 rust使用由编译器检查的一些规则构成的所有权系统来管理内存。且这不会影响程序的运行效率。 所有权规则 rust中每一个每一个值都有一个owner。在同一时刻,只能有一个owner。当这个owner超过范围,则该值会被丢弃。 String类型 为什么需…

kitti数据集转为bag

下载原始的数据集后,通过终端来运行: unzip 2011_10_03_calib.zip和 unzip 2011_10_03_drive_0047_sync.zip这样这个文件夹才算准备好: 然后去下载kitti2bag工具: pip install kitti2bag然后去2011_10_03文件夹下执行&#xf…

photoshop学习笔记——选区3 选区的变化

选区制作完成之后可以对选区进行变化 主要有: 反选:shift ctrl I 变换 修改: 边界 设置选区的边界大小 类似 CSS中的borderSize平滑 对选区的角进行平滑扩展 向外扩展选区收缩 向内收缩选区羽化 让边界变得过渡透明度 设置…

python安装python-bioformats库教程

在python中安装python-bioformats库,可能并不是那么顺利,需要注意一下细节问题。 过程中主要遇到以下报错信息: error: subprocess-exited-with-error python setup.py egg_info did not run successfully.│ exit code: 1╰─> [10 lines of output]Traceback (most rec…

Hello 算法:动画图解、一键运行的数据结构与算法教程

Hello 算法 《Hello 算法》是一份开源、免费的数据结构与算法入门教程,特别适合新手。全书采用动画图解,内容清晰易懂,学习曲线平滑,引导初学者探索数据结构与算法的知识地图。源代码可以一键运行,帮助读者通过练习提…

yolov5-7在opencv里跑自己的onnx模型

先把模型放在如下目录 运行如下代码 import cv2 import numpy as npclass Onnx_clf:def __init__(self, onnx:strdnn_model1/plane02.onnx, img_size640, classlist:list[plane]) -> None: func: 读取onnx模型,并进行目标识别para onnx:模型路径img_size:输出图片大小,和模…

智慧校园班级信息基础数据维护功能概述

在智慧校园的基础平台管理中,班级信息管理为所有的业务模块提供了最小单位的基础数据。它不仅是连接学生、教师与学校管理层的桥梁,更是优化教育资源分配、提升教学质量的催化剂。智慧校园通过融合一系列智能化工具,实现了对班级信息的精细化…