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.xdnf.cn/news/1489046.html

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

相关文章

鸿蒙APP架构及开发入门

1.鸿蒙系统 1.1 什么是鸿蒙 鸿蒙是一款面向万物互联时代的、全新的分布式操作系统。 在传统的单设备系统能力基础上,鸿蒙提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、…

超燃!纯AI生成《泰坦尼克号》大片!浙大阿里发布MovieDreamer:超长电影生成“梦工厂“

论文链接:https://arxiv.org/pdf/2407.16655 项目主页:https://aim-uofa.github.io/MovieDreamer/ github链接:https://github.com/aim-uofa/MovieDreamer 亮点直击 MovieDreamer,一个新颖的分层框架,将自回归模型与扩…

正则表达式与文本处理

目录 一、正则表达式 1、正则表达式定义 1.1正则表达式的概念及作用 1.2、正则表达式的工具 1.3、正则表达式的组成 2、基础正则表达式 3、扩展正则表达式 4、元字符操作 4.1、查找特定字符 4.2、利用中括号“[]”来查找集合字符 4.3、查找行首“^”与行尾字符“$”…

前端江湖:从菜鸟到大侠的修炼手册

在这个数字编织的梦幻世界里,前端,这个听起来就带着几分仙气与神秘感的词汇,实则是每一位互联网探险家手中的魔法杖。它不仅连接着代码的冰冷逻辑与用户的炽热情感,更在无数次的点击与滑动间,绘制出一幅幅绚丽多彩的交…

通过IP获取对应的经纬度地区

背景 项目现在要通过IP获取对应的地区和经纬度。后面会根据经纬度在地图上展示 直接用大佬给出的ip-info 这是大佬给的项目地址 https://gitee.com/jthinking/ip-info这是运行实例 感谢大佬打赏 ![在这里插入图片描述]

怎样在 Nginx 中配置基于请求客户端指纹识别数据的路由?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 文章目录 怎样在 Nginx 中配置基于请求客户端指纹识别数据的路由 怎样在 Nginx 中配置基于请求客户端指纹识别数据的路由 在当今数字化的世界中,网站和应用程…

谷粒商城实战笔记-69-商品服务-API-品牌管理-JSR303自定义校验注解

文章目录 1. 需求介绍2. 创建自定义校验注解2.1 编写自定义校验注解2.1.1 注解定义2.1.2 配置文件 3. 实现自定义校验器3.1 编写自定义校验器 4. 使用自定义校验5. 多类型校验器的支持6. 测试 上一节讲解了如何使用分组校验。 这一节将详细介绍如何在Java中实现自定义校验注解以…

步进电机常见的三种驱动方式

步进电机是一种作为控制用的特种电机, 它的旋转是以固定的角度(称为"步距角")一步一步运行的, 其特点是没有积累误差( 为100%), 所以广泛应用于各种开环控制。 步进电机的运行要有一电子装置进行驱动, 这种装置就是步进电机驱动器, 它是把控制系统发出的脉冲信号转化…

宝塔单ip,新建多站点

报错如上: 那么如何新建多站点呢 先随便写个名字上去,然后再重新绑定别的端口… 这个时候访问99端口即可 。 如果是有域名,则不需要这样做 、直接80端口也可以多站点

富芮坤FR800X系列之按键检测模块设计

FR800X系列按键检测模块 读者对象: 本文档主要适用以下工程师: 嵌入式系统工程师 单片机软件工程师 IOT固件工程师 BLE固件工程师 文章目录 1.概要2.用户如何设计按键检测模块2.1 GPIO初始化2.2按键模块初始化2.3设计中断函数:2.4循环…

Florence2:Advancing a unified representation for a variety of vision tasks

Florence-2模型:开启统一视觉基础模型的新篇章_florence -2-CSDN博客文章浏览阅读1.1k次,点赞108次,收藏109次。Florence-2是由微软Azure AI团队开发的一款多功能、统一的视觉模型。它通过统一的提示处理不同的视觉任务,表现出色且优于许多大型模型。Florence-2的设计理念是…

ArcSDE超过连接数解决方案

问题说明:服务器间歇性的会报连接数超限的问题,经常需要手动释放部分连接才能解决。之前遇到过类似的问题,主要是增大数据库连接数,同时检查死链接的情况,因为修改配置需要重启数据库,所以前期一直手动释放…

谷粒商城实战笔记-62-商品服务-API-品牌管理-OSS整合测试

文章目录 一,Java中上传文件到阿里云OSS1,整合阿里云OSS2,测试上传文件 二,Java中整合阿里云OSS服务指南引言准备工作1. 注册阿里云账号2. 获取Access Key3. 添加依赖 实现OSS客户端1. 初始化OSSClient2. 创建Bucket3. 上传文件4.…

初识Play Framework框架和第一个Java play web项目的创建

文章目录 初识Play Framework框架和第一个Java play web项目的创建一、简介特点架构开发流程示例代码总结 二、创建第一个Java play web项目1、下载play框架,配置系统环境变量(jdk的安装就不再说了) 2、检查play的版本和创建第一个play项目3、将项目通过idea或eclip…

福特汽车:总是悲喜交加时

每辆电动汽车的亏损高达6.94万美元,这把全美最大汽车制造商——福特汽车,也整不会了。 燃油车全美销量第一、电动车全美销量第二,销量大增的福特汽车增收不增利,息税前利润下滑27%至28亿美元, 因盈利远不及预期&#x…

【Python】pandas:查看数据(head, tail, values属性, at, iat, loc, iloc, [ ], sample)

pandas是Python的扩展库(第三方库),为Python编程语言提供 高性能、易于使用的数据结构和数据分析工具。 pandas官方文档:User Guide — pandas 2.2.2 documentation (pydata.org) 帮助:可使用help(...)查看函数说明文…

Spring Boot:图书管理系统(一)

1.编写用户登录接口 代码: package com.example.demo;import jakarta.servlet.http.HttpSession; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotatio…

Linux 查找命令

目录 1. 查看二进制文件 which 2. 查看指定文件 find ​2.1 文件名查找 2.2 文件大小查找 前面学习过的 Linux 命令,其实质是一个个的二进制可执行程序,与 Windows 系统中的 .exe 文件是一个意思。 1. 查看二进制文件 which 语法: w…

sonar代码扫描报错:ERROR: Something went wrong storing the PDF at server side.

原因: URL带“/”引起的,去掉即可。 去掉之后成功:

2、从0搭建企业门户网站——云服务器租用

目录 正文 1、登录阿里云 2、进入云服务器界面 3、租用云服务器 正文 云服务器厂商很多,这里主要以阿里云服务器为主介绍云服务器的相关知识。 1、登录阿里云 阿里云官网地址 2、进入云服务器界面 登录后,点击控制台,进入主界面。