以编程方式拟合

news2024/11/16 11:41:29

目录

适用于多项式模型的 MATLAB 函数

带非多项式项的线性模型

多次回归


适用于多项式模型的 MATLAB 函数

        有两个 MATLAB® 函数可通过多项式对数据建模。

多项式拟合函数

函数

说明

polyfit

polyfit(x,y,n) 通过最大限度地减小数据与模型偏差的平方和(最小二乘拟合),求拟合 y 数据的 n 次多项式 p(x) 的系数。

polyval

polyval(p,x) 返回基于 x 进行计算,且由 polyfit 确定的 n 次多项式的值。

        此示例说明如何使用多项式对数据建模。在时间 t 的多个值处测量数量 y。

t = [0 0.3 0.8 1.1 1.6 2.3];
y = [0.6 0.67 1.01 1.35 1.47 1.25];
plot(t,y,'o')
title('Plot of y Versus t')

        如图所示:

        可尝试使用以下二次多项式函数对此数据进行建模: 

        通过最大限度地减小数据与模型偏差的平方和(最小二乘拟合),计算未知系数 a0、a1和a2

        使用 polyfit 求多项式系数。

p = polyfit(t,y,2)

p = 1×3

   -0.2942    1.0231    0.4981

        MATLAB 以降幂计算多项式系数。数据的二次多项式模型由以下方程给出:

         按均匀的时间间隔 t2 计算多项式。然后,在同一个图中绘制原始数据和模型。

t2 = 0:0.1:2.8;
y2 = polyval(p,t2);
figure
plot(t,y,'o',t2,y2)
title('Plot of Data (Points) and Model (Line)')

        如图所示:

        按数据时间向量计算模型 

y2 = polyval(p,t);

        计算残差。

res = y - y2;

        绘制残差图。

figure, plot(t,res,'+')
title('Plot of the Residuals')

        如图所示:

        请注意,二阶拟合大致遵循数据的基本形状,但并不能捕获数据似乎具备的平滑曲线。残差似乎存在一个模式,意味着可能需要不同的模型。如下所示,五次多项式在遵循数据波动方面表现更佳。

        重复该练习,不过这次使用来自 polyfit 的五次多项式。

p5 = polyfit(t,y,5)

p5 = 1×6

    0.7303   -3.5892    5.4281   -2.5175    0.5910    0.6000

        在 t2 上计算多项式,并在新的图窗窗口中基于数据绘制拟合图。

y3 = polyval(p5,t2);   
figure
plot(t,y,'o',t2,y3)
title('Fifth-Degree Polynomial Fit')

        如图所示:

注意:如果尝试对物理情况建模,务必考虑特定阶次的模型是否对您的情况有意义。 

带非多项式项的线性模型

        此示例说明如何使用含有非多项式项的线性模型拟合数据。若多项式函数并未得出适合您数据的满意模型,可尝试使用带非多项式项的线性模型。以如下函数为例,它在参数 a0、a1 和 a2 中为线性,而在 t 数据中为非线性:

        可通过构建及求解一组联立方程并为参数求解,计算未知系数 a0、a1 和 a2。以下语法通过构建一个设计矩阵实现此目的,该矩阵中的每一列代表用于预测响应(模型中的项)的变量,每一行对应于这些变量的一个观测值。输入 t 和 y 作为列向量。

t = [0 0.3 0.8 1.1 1.6 2.3]';
y = [0.6 0.67 1.01 1.35 1.47 1.25]';

        构建设计矩阵。

X = [ones(size(t))  exp(-t)  t.*exp(-t)];

        计算模型系数。

a = X\y
a = 3×1

    1.3983
   -0.8860
    0.3085

        因此,该数据的模型由以下公式提供:

        现在以等间距点评估模型,并以原始数据绘制模型。 

T = (0:0.1:2.5)';
Y = [ones(size(T))  exp(-T)  T.*exp(-T)]*a;
plot(T,Y,'-',t,y,'o'), grid on
title('Plot of Model and Original Data')

        如图所示:

多次回归

        此示例说明如何使用多次回归对具有多个预测变量的函数进行数据建模。若 y 是具有多个预测变量的函数,则必须对表示各变量之间关系的矩阵方程进行扩展,以容纳额外的数据。这称为多次回归。

        为多个 x1 和 x2 值测量对应的量 y。将这些值分别存储在向量 x1、x2 和 y 中。

x1 = [.2 .5 .6 .8 1.0 1.1]';
x2 = [.1 .3 .4 .9 1.1 1.4]';
y  = [.17 .26 .28 .23 .27 .24]';

        此数据的模型采用以下形式: 

        多次回归可通过最大限度地减小数据与模型偏差的平方和(最小二乘拟合),对未知系数 a0、a1 和 a2 求解。

        通过构建设计矩阵 X,构建和求解一组联立方程。

X = [ones(size(x1))  x1  x2];

        使用反斜杠运算符对参数求解。

a = X\y

a = 3×1

    0.1018
    0.4844
   -0.2847

        数据的最小二乘拟合模型为

为了验证该模型,请求出数据与模型偏差绝对值的最大值。 

Y = X*a;

MaxErr = max(abs(Y - y))
MaxErr = 0.0038

        该值远小于任何数据值,表明该模型能够准确贴合数据。

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

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

相关文章

可视化图表统计的好处

可视化图表统计是将数据以图形的方式呈现,通过视觉化的方式帮助人们更好地理解和分析数据。下面是一个详细介绍可视化图表统计的好处: 1. 提供清晰的信息传递: - 可视化图表能够将大量的数据和复杂的信息转化为易于理解和消化的形式。 - 图表…

监测难?误差大?北斗突破铁路监测预警难题,24小时全方位守护

受极端气象和复杂地形地质条件的影响,近年来铁路沿线地质灾害易发频发。为防范化解重大安全风险,提高自然灾害防治能力,国务院决策部署制定了《关于加强铁路自然灾害监测预警工作的指导意见》,强调了利用先进技术和手段开展各类自…

定义USB接口,鼠标类和键盘类都可以作为实现类去实现USB接口

目录 程序设计 程序分析 系列文章 ​ 如图所示,我们电脑上都有USB接口,当我们的鼠标和键盘插上去之后才可以使用,拔出来就关闭使用。其实具体是什么USB设备,笔记本并不关心,只要符合USB规格的设备都可以。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范…

URL endoce 和 decode

URL地址中的一些字符在传输过程中需要被编码,以确保其能够正确地被解析和显示。在URL中,所有非字母数字字符都需要被编码成%后面跟着两个十六进制数的形式。 URL的编码过程被称为"URL编码"或"百分号编码",常见的编码字符…

Linux音频-基本概念

文章目录 机器声音的采集原理机器声音的播放原理音频相关基本概念计算机采集音频的模型Linux系统音频框架Linux音频框架的三类角色 Linux音频框架参考文章:Linux音频框架 机器声音的采集原理 声音是一种连续的信号,故其是一种模拟量。 录音设备可以捕获…

ubuntu安装配置mantis

目录 前言安装Apache2安装PHP安装数据库mariadbmariadb安装MariaDB重置密码为MantisBT创建数据库和用户 phpmyadmin安装和配置安装phpmyadmin查看安装内容配置phpmyadmin1.phpmyadmin apache配置文件2.为phpmyadmin创建数据库和用户3.修改配置文件config-db.php4.重新运行 管理…

【python海洋专题二十九】读取CTD文件数据并画单点温度剖面图

往期推荐 图片 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深nc文件并水深地形图 【python海洋专题三】图像修饰之画布和坐标轴 【Python海洋专题四】之水深地图图像修饰 【Python海洋专题五】之水深地形图海岸填充 【Pytho…

智能振弦传感器的读取工具——振弦采集仪

智能振弦传感器的读取工具——振弦采集仪 为了解决振弦传感器间接测量物理量时繁琐的问题,我们结合微处理器和振弦传感器信号电路,开发出了智能振弦模块。该模块具有通信、信息存储、温度测量和传感器信号传递等功能,可以嵌入传统振弦传感器…

asp.net急救资源管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net 急救资源管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c# 语言开发 asp.net急救资源管理信息系统…

微信小程序开发-01-入门

文章目录 一、微信开发者工具介绍基础文件介绍具体文件介绍JSON配置文件的作用wxmlwxssjs 二、宿主环境介绍通信模型运行机制组件视图容器基础内容其他常用组件 API 三、操作流程基本操作流程新建小程序页面 修改项目首页后续 四、协同工作和发布权限管理需求项目成员的组织结构…

Go语言入门心法(十四): Go操作Redis实战

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 Go语言入门心法(六): HTTP面向客户端|服务端编程 Go语言入门心法(七): 并发与通道 Go语言入门心法(八): mysql驱动安装报错o…

成都瀚网科技有限公司抖音小店:创新营销引领电商潮流

在当今数字化时代,抖音作为一款备受欢迎的短视频平台,不仅吸引了大量用户的关注,还为众多电商企业提供了新的销售渠道。成都瀚网科技有限公司抖音小店便是其中之一,凭借其独特的营销策略和优质的产品,成为了抖音电商领…

编写竞赛程序

目录 程序设计 程序分析 系列文章 竞赛规则(Competitive Rules)包括启动(Start)、加速(speedup)、转弯(turn)、犯规(foul)。参与竞赛可能涉及的有汽车(car)、摩托车(motorbike)、自行车(bike)、马(horse)、摩托艇(motorboat)。 程序设计 Competition…

vue2.x封装svg组件并使用

第一步&#xff1a;安装svg-sprite-loader插件 <!-- svg-sprite-loader svg雪碧图 转换工具 --> <!-- <symbol> 元素中的 path 就是绘制图标的路径&#xff0c;这种一大串的东西我们肯定没办法手动的去处理&#xff0c; 那么就需要用到插件 svg-sprite-loader …

安装elasticsearch,kibana

大家好, 我是苏麟 , 今天来安装es , kibana . 部署单点es 创建网络 因为我们还需要部署kibana容器&#xff0c;因此需要让es和kibana容器互联。这里先创建一个网络&#xff1a; docker network create es-net 镜像 我们用docker命令拉取和长传都可以选一种就可以 . 拉取…

内网windows实现同步时钟

windows系统可通过联网自动校准系统时间&#xff0c;如果是公网连接的内网环境主机可通过以下方式实现 1. 配置时间服务器 &#xff08;本案例环境为windows server 2019&#xff0c;ip:192.168.0.1&#xff09; 修改注册表 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\serv…

如何在两个月内学会Python编程?——最佳学习计划指南

Python编程已经成为互联网时代最重要的技能之一&#xff0c;不仅对编程新手&#xff0c;对于从事数据科学、网站开发和自动化任务的专业人士也是必备的技能。你是否想要学习Python编程&#xff0c;但不知道如何安排时间和方法&#xff1f;你是否担心学习过程太长、太枯燥、太难…

VR酒店专业情景教学演示

VR酒店情景教学为学生带来的全新学习体验。在这个虚拟环境中&#xff0c;学生可以亲身经历各种酒店管理场景&#xff0c;从客房清洁、餐厅服务&#xff0c;到客人接待、突发事件处理&#xff0c;都能得到生动的模拟和实践。 客房清洁是酒店管理中最基础却也最重要的一环。通过V…

自编efi文件测试vmware虚拟机如何进入UEFI环境

同事突然让帮忙编一下UEFI&#xff0c;之前完全没有接触过&#xff0c;在此粗鲁记录其过程。 UEFI的开源框架是edk2&#xff0c;开发环境配置起来还是有些麻烦&#xff0c;完全按照文档编译不过&#xff0c;经人帮助总算编译通过&#xff0c;但如何测试又是问题&#xff1b;网…

设计模式:装饰器模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

上一篇《桥接模式》 下一篇《迭代器模式》 简介&#xff1a; 装饰器模式&#xff0c;它是一种结构型模式&#xff0c;它通过将一个对象封装在一个装饰器对象中&#xff0c;使得你可以通过改变装饰器对象来改变…