matlab图形绘制之——最小二乘拟合

2023-11-10

一、最小二乘法

记忆中是在高中阶段学习的最小二乘法。看一下最小二乘法的定义。

二、matlab中的polyfit

在Matlab中 使用polyfit()函数对数据进行最小二乘法拟合,调用格式:

p = polyfit(x,y,n)    % 多项式曲线拟合
%  返回阶乘为n的多项式P(x)的系数.该阶乘是y中数据的最佳拟合(最小二乘法中)
%   p 中的系数按降幂排列,p 的长度为 n+1 (p:向量)

例如:x,y是给定的数据中的所有点的横坐标和纵坐标,n为要拟合的线性的幂。

    p = polyfit(x,y,2);              %  这里polyfit 即表示用一个最高次为 2次的多项式来拟合

返回的p:计算出来的拟合曲线对应的幂的系数。 按照降幂排列。

如:得到的  p 为:3  2  3                 即对应的拟合曲线为:3*x^2 + 2*x + 3;

三、实例

给定x,y的数据集

x = [0.5,1.0,1.5,2.0,2.5,3.0];
y = [1.75,2.45,3.81,4.80,7.00,8.60];

分别用1次   2次  3次 进行拟合 绘制出相应曲线

 

代码:

clc,clear,close all;
x = [0.5,1.0,1.5,2.0,2.5,3.0];
y = [1.75,2.45,3.81,4.80,7.00,8.60];
a1 = polyfit(x,y,1);    % n=1 的 一次拟合
a2 = polyfit(x,y,2);    % 二次拟合
a3 = polyfit(x,y,3);    % 三次拟合
%  a: 返回的是拟合曲线的系数的降幂排列

x1 = [0.5:0.05:3.0];    % 拟合曲线的 x 的取值
y1 = a1(1)*x1 + a1(2);  % 一次多项式
y2 = a2(1).*x1.*x1 + a2(2)*x1 + a2(3);   %二次多项式
y3 = a3(1).*x1.*x1.*x1 + a3(2).*x1.*x1 + a3(3)*x1 + a3(4);  %三次多项式
% 根据返回的系数 a 得到拟合曲线 y1 y2 y3

plot(x,y,'*');
hold on;

plot(x1,y1,'b--',x1,y2,'k',x1,y3,'ro-');
legend('原始数据','一次拟合','二次拟合','三次拟合');

补充说明:

x 是给定的原始数据的横坐标点。

x1 是拟合曲线要使用的横坐标的值(因为要绘制曲线图),是较为精细的。

根据a0 a1 a2 得到三条拟合曲线为: y1, y2, y3

以x1 作为横坐标,绘制出拟合曲线y1, y2, y3:    plot(x1,y1,'b--',x1,y2,'k',x1,y3,'ro-');

legend(label1,...,labelN)
// 为每个绘制的数据序列创建一个带有描述性标签的图例.
// plot(x1,y1,'b--',x1,y2,'k',x1,y3,'ro-');
// legend('原始数据','一次拟合','二次拟合','三次拟合');

得到的图形界面:

说明: 以上例题来自《MATLAB经典案例实战》一书。

部分知识点来自  matlab官方文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab图形绘制之——最小二乘拟合 的相关文章

  • MATLAB中如何画水平线和垂直线?

    我目前正在尝试在 MATLAB 中绘制简单的垂直线和水平线 例如 我想绘制线 y 245 我该怎么做呢 MATLAB 根据您提供的向量逐点进行绘图 因此 要创建一条水平线 您需要改变x同时保持y对于垂直线恒定 反之亦然 xh 0 10 yh
  • 如何使用matlab生成不同频率的正弦波?

    对于我的项目 我需要使用 matlab 生成一个正弦波 它有 100 000 个样本 并且频率在每 10 000 个样本后随机变化 采样率和频率可以根据方便而定 matlab中有没有函数可以生成这个 好的另一个例子 生成 5 个随机频率 r
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • 句柄类和值类的区别

    我有一些 C 背景 想使用 Matlab 中的类 句柄和值类有什么区别 我知道如果我想定义一个带有重载运算符 例如 和 的矩阵类 我会使用值类 然而 有时 当我选择一个手柄类时 事情似乎只对我有用 MathWorks 提供了一些有关其用途的
  • 为什么旋转 3D 点云后顶点法线会翻转?

    我有两个人脸 3D 点云样本 蓝色点云表示目标面 红色点云表示模板 下图显示目标面和模板面在不同方向上对齐 目标面大致沿 x 轴 模板面大致沿 y 轴 Figure 1 The region around the nose is displ
  • 如何找到在matlab中重复的矩阵的每一行的索引?

    我想找到矩阵中所有有重复项的行的索引 例如 A 1 2 3 4 1 2 3 4 2 3 4 5 1 2 3 4 6 5 4 3 要返回的向量将是 1 2 4 很多类似的问题建议使用unique函数 我已经尝试过 但我能得到的最接近我想要的功
  • 如何在 Matlab 中对数组应用低通或高通滤波器?

    有没有一种简单的方法可以将低通或高通滤波器应用于 MATLAB 中的数组 我对 MATLAB 的强大功能 或数学的复杂性 有点不知所措 需要一个简单的函数或一些指导 因为我无法从文档或网络搜索中找到答案 看着那 这filter http w
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 如何在 matlab 中创建由多个 3d 图像数据数组组成的数组

    我正在阅读 15 张图片imagedata imread imagename jpg 它的大小总是320 by 320 by 3 如何将数据放入数组中 使用 for for 循环 以便在访问新数组的第一个元素时获得输入的第一个图像的 RGB
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • MATLAB 中的霍夫变换

    有谁知道如何使用霍夫变换来检测二值图像中最强的线 A zeros 7 7 A 6 10 18 24 36 38 41 1 使用 rho theta 格式 其中 theta 以 45 为步长 从 45 到 90 以及如何在 MATLAB 中显
  • Matlab 的 imresize 函数中用于插值的算法是什么?

    我正在使用 Matlab Octaveimresize 对给定的二维数组重新采样的函数 我想了解如何使用特定的插值算法imresize works 我在Windows上使用八度 e g A 1 2 3 4 是一个二维数组 然后我使用命令 b
  • 给定协方差矩阵,在Matlab中生成高斯随机变量

    Given a M x M期望的协方差 R 以及所需数量的样本向量 N计算一个N x M高斯随机向量 X在普通 MATLAB 中 即不能使用r mvnrnd MU SIGMA cases 不太确定如何解决这个问题 通常你需要一个协方差并且意
  • 如何在MATLAB中显示由三个矩阵表示的图像?

    我有 3 个相同大小的 2D 矩阵 假设 200 行和 300 列 每个矩阵代表三种 基本 颜色 红色 绿色和蓝色 之一的值 矩阵的值可以在 0 到 255 之间 现在我想组合这些矩阵以将它们显示为彩色图像 200 x 300 像素 我怎样
  • MATLAB 类的 Description 和DetailedDescription 属性

    内置 MATLAB 类具有 Description 和 DetailedDescription 属性的值 gt gt handle ans meta class handle Package meta Properties Name han
  • matlab中求和函数句柄

    Hi我试图对两个函数句柄求和 但它不起作用 例如 y1 x x x y2 x x x 3 x y3 y1 y2 我收到的错误是 对于 function handle 类型的输入参数 未定义函数或方法 plus 这只是一个小例子 实际上我实际
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB

随机推荐

  • SpringBoot: Mybatis配置事务管理

  • awk 正则表达式、正则运算符详细介绍

    http www cnblogs com chengmo archive 2010 10 11 1847772 html 前言 使用awk作为文本处理工具 正则表达式是少不了的 要掌握这个工具的正则表达式使用 其实 我们不必单独去学习它的正
  • STM32CubeMX—串口空闲中断+DMA接收

    一 实验说明 实验平台 STM32F103C8T6 实验内容 使用串口一空闲中断结合DMA 完成不定长数据接收 STM32的串口接收数据的方式 1 轮询接收 所谓轮询 就是在主函数中判断接收完成的标志位 举个不太恰当例子 就比如 此时你正在
  • 【8086汇编】字符串逆序的实现,附代码

    目录 引言 题目 程序思想 程序例程 程序结果 改进思路 引言 之前有本科的同学需要做一个汇编程序 简单补了补发现自己会嘻嘻嘻 题目 题目 从键盘输入任一字符串 字符数 gt 1 在下一行以相反的次序显示出来 如 输入字符串123abc 在
  • 企业微信三方应用开发(三)企业微信第三方应用开发常见问题

    加我微信li570467731 拉你进二百多人企业微信开发同行群 文末有二维码 企业微信开发三部曲 企业微信应用开发概述篇 免费 已完结 企业微信开发第三方应用开发篇 更新中 企业微信开发自建内部应用开发 筹备中 关注公众号 ToB Dev
  • 详细解析Python爬虫代理的使用方法

    嗨 大家好 作为一名专业的代理IP供应商 我想和你们聊一聊爬虫中常用的代理IP类型以及如何在Python中使用代理IP 相信这篇文章会让你对Python爬虫代理IP的使用有更深入的了解 那么 不多说 让我们开始吧 首先 让我们来了解一下爬虫
  • Java基础——环境变量配置、注释、关键字、标识符

    目录 01 01 计算机基础知识 计算机概述 01 02 计算机基础知识 软件开发和计算机语言概述 01 03 计算机基础知识 人机交互 01 04 计算机基础知识 键盘功能键和快捷键 01 05 计算机基础知识 如何打开DOS控制台 01
  • mes选型与实施指南_中小制造企业,如何选型信息系统?

    一 前言 最近走访客户和讲课比较多 接触到了大量的中小制造企业 深刻体会到了制造企业的焦虑 也深刻体会到了中小企业期望进行数字化转型 期望实现智能制造的迫切愿望 但是受限于人才 受限于知识 受限于经验 对实现企业信息化的过程中 过多受到乙方
  • Revit 2011二次开发之得到选择的对象

    start Transaction TransactionMode Manual Regeneration RegenerationOption Manual public class Document Selection IExterna
  • 微前端介绍

    提到微前端 稍微懂微前端的同学 可能会这样问 为什么不用iframe方案呢 其实 如果不考虑体验问题 iframe方案几乎是最完美的微前端解决方案 iframe最大的特性就是提供了浏览器原生的硬隔离方案 样式隔离 js隔离 但它最大的问题也
  • 韦东山嵌入式教程第四篇Linux驱动基础知识学习笔记(1)——Hello驱动程序

    驱动入门 Hello驱动程序 1 怎么写出一个驱动程序 确定主设备号 定义自己的file operations结构体 实现对应的open read write函数 填入file operations结构体 实现入口函数 安装驱动程序时 就会
  • 软件设计模式----访问者模式

    访问者模式 模式动机 对于系统中的某些对象 它们存储在同一个集合中 且具有不同的类型 而且对于该集合中的对象 可以接受一类称为访问者的对象来访问 而且不同的访问者其访问方式有所不同 访问者模式为解决这类问题而诞生 在实际使用时 对同一集合对
  • img固件修改_完整恢复玩客云官方固件,恢复迅雷下载和备份

    写在最前 刷了各种固件 最后都不是很满意 还是喜欢玩客云的下载和备份功能 就想着怎么恢复 先上一张照片 这是等待了2天后才写的这个教程 下载速度还可以 毕竟宽带才30M 文末再放些完成后的照片 在整个过程中 可能会遇到失败 需要冷静的再尝试
  • 基于Arnold变换的图像置乱-Matlab实现

    Arnold变换是俄国数学家VladimirI Arnold提出的一种变换 一幅M N的数字图像的二维Arnold 变换定义为 xn 1yn 1 1abab 1 xnyn mod N x n
  • java怎么实现分页分页代码_Java简单分页功能的实现代码

    网页内容多了我们就会想到分页功能 分页功能既能减少页面体积还能提升加载速度 因此我门就要学会实现简单的分页功能 那么我们现在就去看看Java简单分页功能的实现代码吧 不用根据改变SQL的形式去查询 直接查询所有的数据 根据页码自动显示数据
  • 实体与Dto(MODEL)之间的转换问题

    文章目录 实体与Dto MODEL 之间的转换问题 实体与Dto MODEL 之间的转换问题 在开发的过程中 实体之间相互赋值是很正常的事 但是我们一般的方法都通过set和get方法来进行的 如果要赋值的字段少那还行 但是需要赋值的字段超过
  • 实训笔记2.0

    3 22 CSRF漏洞介绍 CSRF Cross site request forgery 跨站请求伪造 也被称为 One Click Attack 或者 Session Riding 通常缩写为 CSRF 或者 XSRF 是一种对网站的恶
  • 一)Stable Diffusion使用教程:安装

    目前AI绘画最火的当属Midjorney和Stable Diffusion 但是由于Midjourney没有开源 因此我们主要分享下Stable Diffusion 后面有望补上Midjourney教程 本节主要讲解Stable Diffu
  • CSS知识点

    CSS text align 行内块元素才能居中显示 vertical align 解决图片底测有空白缝隙的问题 white space 强制一行内显示 overflow hidden 溢出隐藏 text overflow ellipsis
  • matlab图形绘制之——最小二乘拟合

    一 最小二乘法 记忆中是在高中阶段学习的最小二乘法 看一下最小二乘法的定义 二 matlab中的polyfit 在Matlab中 使用polyfit 函数对数据进行最小二乘法拟合 调用格式 p polyfit x y n 多项式曲线拟合 返