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://www.mzph.cn/diannao/50717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java成为最适合中国人体质编程语言的缘由

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」,点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!! 语言的流行度Java在中国的普及…

Mybatis(四)特殊SQL的查询:模糊查询、批量删除、动态设置表明、添加功能获取自增的主键

实体类: 数据库: 1、模糊查询 方案一: 不适用#{ },’%?%‘ 问号是属于字符串的一部分 不会被解析成占位符,会被当作是我们字符串的一部分来解析,所以我们执行的语句中找不到占位符,但是我们却…

WEB前端11-Vue2基础01(项目构建/目录解析/基础案例)

Vue2基础(01) 1.Vue2项目构建 步骤一:安装前端脚手架 npm install -g vue/cli步骤二:创建项目 vue ui步骤三:运行项目 npm run serve步骤四:修改vue相关的属性 DevServer | webpack //修改端口和添加代理 const { defineCo…

车载录像机:移动安全领域的科技新星

随着科技的飞速发展,人类社会的各个领域都在不断经历技术革新。其中,车载录像机作为安防行业与汽车技术结合的产物,日益受到人们的关注。它不仅体现了人类科技发展的成果,更在安防领域发挥了重要作用。本文将详细介绍车载录像机的…

在MATLAB中使用importrobot导入机械臂刚体树时没有找到模型文件,只显示坐标;改为使用loadrobot

没有mesh文件夹,所以找不到模型文件 改为使用loadrobot,直接加载刚体树数据

DataFrame RHS语法查询语句

RHS:https://github.com/acoboh/query-filter-jpa/blob/main/README.md 规则: 查询字段名:查询条件(条件值) 关系符 查询字段名:查询条件(条件值) ... 查询条件有: ‒ eq: 等于 ‒ gt: 大于 ‒ gte: 大于等于 ‒ lt: 小于 ‒ lte: 小于等于 ‒ ne: 不等于…

[读论文] LawBench: Benchmarking Legal Knowledge of Large Language Models

Abstract LLM 在各个方面都表现出了强大的能力。然而,当将它们应用于高度专业化、安全关键的法律领域时,尚不清楚他们拥有多少法律知识以及他们是否能够可靠地执行与法律相关的任务。为了弥补这一差距,文章提出了一个综合性评估基准 LawBench…

【SpringBoot】5 Swagger

官网 https://swagger.io/ 介绍 Swagger 是一套基于 OpenAPI 规范构建的开源工具,可以帮助开发者实现设计、构建、记录、使用 Rest API。 Swagger 是一款根据 Restful 风格生成的接口开发文档,并且支持做测试的一款中间软件。 Swagger主要包括三部分&…

力扣141环形链表问题|快慢指针算法详细推理,判断链表是否有环|龟兔赛跑算法

做题链接 目录 前言: 一、算法推导: 1.假设有环并且一定会相遇,那么一定是在环内相遇,且是快指针追上慢指针。 2.有环就一定会相遇吗?快指针是每次跳两步,有没有可能把慢指针跳过去? 3.那一定…

Spring Security认证授权介绍

一、目标 真正控制系统权限的,需要引入专门的安全框架才行,所以,我们今天重点来学习Spring家族中的一员Spring Security安全框架。最终呢,我们会使用Spring Security框架来控制养老项目的后台管理系统 能够熟悉常见的权限控制的方…

恒源云oss命令上传数据与下载数据

云服务器解压zip项目代码 (根目录) unzip 【】unzip /root/.../[已有的压缩包名].zip -d [解压到的目标文件夹路径]云服务器压缩zip项目代码 (根目录) zip -r 【自定义】.zip 【】/z

【通信模块】LoraWAN网络简介

LoRaWAN网络 技象科技相关文章总结,学习笔记,原文链接如下,转载请标明该出处: LORA: https://www.techphant.cn/tag/l-2 LORAWAN:https://www.techphant.cn/tag/l-3 其他:如LAN https://www…

【EMC专题】为什么芯片规格书ESD性能中看不到MM(机器放电模型)

在文章:【ESD专题】1.ESD基础及IEC61000-4-2标准 中我们讲到对于ESD静电放电模型,可分为器件级和系统级。其中器件级ESD包括三种类型,HBM人体放电模型、MM机械放电模型和CDM元件充电模型。 ①HBM(Human Body Model:人体放电模型):假设由人体静电对芯片放电 例:没有做好…

【Linux】一些基本指令

文章目录 前言Linux下基本指令Linux下一些常见的通配符Linux下的引号引用whoamiwholswhichaliaswhereisfindtouchmkdirrmdir & rmmancpmvcatmorelessheadtailechodatecalgrepzip & unziptarrz & szuname几个重要的热键关机 前言 在学习操作系统的时候,我…

本地部署,Whisper: 开源语音识别模型

目录 简介 特点 应用 使用方法 总结 GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak SupervisionRobust Speech Recognition via Large-Scale Weak Supervision - openai/whisperhttps://github.com/openai/whisper 简介 Whisper 是一个由 O…

LabVIEW开发射频测试和测量系统

本文将介绍如何使用LabVIEW开发一个射频(RF)测试和测量系统。该系统的主要功能是对射频信号进行测量和控制,提供用户友好的界面来进行各种操作。 硬件组成 射频信号发生器:用于生成特定频率和功率的射频信号。 射频功率计&#…

windows安装Python

一.下载Python 网址:Python官网 1.选取稳定版本进行下载 2.选好之后,download点击 3.划到页面底部,选择下载 二.安装 1.安装,这里因为之前弄过,所以长得不一样 首次安装的介绍 自定义安装和立即安装的区别&#x…

奇异值分解(SVD)时间复杂度分析与优化

奇异值分解是一种矩阵分解的方法,大学线性代数里面也讲过奇异值分解的方法,因此这是一个为大家所熟知的算法。 1 SVD 时间复杂度分析 给定一个 m n m \times n mn 的矩阵 a \boldsymbol{a} a,按照下面公式做分解,其中 Σ \S…

Java+TestNG

TestNG是Java中的一个测试框架,主要用于编写和执行自动化测试用例。它是一个功能强大的测试工具,旨在提供一个比JUnit更强大、更灵活的测试框架。TestNG的设计目标是简化广泛的测试需求,从单元测试(隔离测试一个类)到集…

福派斯牛肉高脂猫粮,为何成猫舍首选?揭秘其神奇功效!

🐾 说到猫咪的伙食,咱们当铲屎官的可是操碎了心!想让自家毛孩子吃得健康又开心,选对猫粮真的太重要了。今天就来聊聊为啥福派斯牛肉高脂猫粮能成为众多猫舍的首选,以及它到底能帮咱们的小猫咪哪些忙吧! 1️…