【MATLAB】数据拟合_阶数的确定
多项式阶数N的确定
我们在拟合数据的过程中,事先不知道要拟合的数据是几阶的,那我们如何确定给定的拟合阶数N最终为多少呢?
阶数确定方法一:
这种方法是最常用的确定方法,一般情况下,我们拟合函数的目的,就是为了调用,所以在用函数拟合之前会用matlab曲线拟合工具箱进行拟合函数阶数的确定,由其确定拟合的阶数,然后我们用这个函数命令在其他地方进行十分方便地调用,这是最常用的做法。我们往往拟合的是多个同类型的数据,所以确定好一组样本的次数之后,就可以对其他数据用同样的N进行拟合。
使用方法:
Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。 假设要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0。 1、在命令行输入数据:>> x=0:0.01:1;ya=(x.^2-3*x+5).*exp(-5*x).*sin(x);>> cftool 2、启动曲线拟合工具箱 》cftool 3、进入曲线拟合工具箱界面“Curve Fitting tool” (1)点击“Data”按钮,弹出“Data”窗口; (2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data set name”,然后点击“Createdata set”按钮,退出“Data”窗口,返回工具箱界面cf,这时会自动画出数据集的曲线图; (3)点击“Fitting”按钮,弹出“Fitting”窗口; (4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Dataset”下拉菜单选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型
阶数确定方法二:
这种方法方法可以取代用cftool进行判断的过程,具体实现代码如下:
for i=1:5
y2=polyfit(x,y,i);
Y=polyval(y2,x);%计算拟合函数在x处的值。
if sum((Y-y).^2)<0.1
c=i
break;
end
end
>> for i=1:5y2=polyfit(x,ya,i);Y=polyval(y2,x);%计算拟合函数在x处的值。if sum((Y-ya).^2)<0.1c=i break;endendc =4
假设我们的误差平方和精度范围为0.1,那么通过以上程序,我们可以看到用4阶函数拟合,就可以达到精度要求。在多项式进行拟合的时候这个值我们在程序执行的过程中就直接可以调用。
matlab曲线拟合结果调用及显示
大家可能有疑问,我们拟合完函数之后得到的是拟合多项式的系数,我们应该如何调用?如何查看我们拟合的多项式是什么形式呢?下面我们就接着上面的内容进行介绍。
拟合多项式的显示:
在MATLAB主窗口中输入
syms x f(x)
f(x)=poly2sym(y2,x)
我们会看到输出如下结果:
f(x) =
4*x^3 + 3*x^2 + (5822273280258613*x)/1267650600228229401496703205376 + 2
这就是我们拟合出来的多项式。
这里我们看到一次项的系数并不是0,这里5822273280258613/1267650600228229401496703205376=4.5930e-15,这个数量级我们完全可以忽略,认为是0。
拟合结果的调用:
在MATLAB主窗口中输入如下命令:
TEST=polyval(y2,x)
我们可以看到如下结果,如下图。
函数polyval()的第一个参数为多项式的系数,第二个参数为要计算的自变量值。可以是向量或者矩阵。
参考:百度百科
https://jingyan.baidu.com/article/9c69d48f409c6013c9024e8c.html
【MATLAB】数据拟合_阶数的确定相关推荐
- matlab数据拟合工具箱的应用(转载)
数据拟合工具箱笔记 在matlab中做数据拟合是非常常见的事,而又以多项式拟合最为常用,下面简单介绍一下常见的多项式拟合的方法: 多项式拟合 1. 多项式拟合命令 x=[1 2 3 4 5 6 7 8 ...
- matlab数据拟合语句,Matlab数据拟合程序 - 范文中心
课程设计名称: 设计二:数据拟合 指导教师: 张莉 课程设计时数: 6 课程设计设备:安装了Matlab .C ++软件的计算机 课程设计日期: 实验地点: 第五教学楼北902 课程设计目的: 1. ...
- 如何确定matlab多项式拟合的阶数,基于多项式拟合函数趋势项与阶数估计加速度、速度、位移的方法与流程...
本发明属于信号处理领域,尤其涉及一种基于多项式拟合函数趋势项与阶数估计加速度.速度.位移的方法. 背景技术: 目前信号处理领域常用的加速度积分方法主要有时域积分和频域积分两种.时域积分常数项经积分会产 ...
- (每日一练)MATLAB数据拟合
今天就的学习内容是数据拟合. 数据拟合也称为曲线拟合,是一种把现有数据透过数学方法来代入一条数式的表示方式.科学和工程问题可以通过诸如采样.实验等方法获得若干离散的数据,根据这些数据,我们往往希望得到 ...
- matlab 数据拟合
数据拟合 clc,clear; 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]; p=polyfit(x,y,2); x1 ...
- matlab求偏态系数,Matlab数据拟合正太分布与偏态分布
这是图片灰度值的一行, Y1=[7 7 7 7 7 7 7 7 8 8 8 7 7 7 7 7 7 8 8 8 8 8 8 8 7 8 8 9 9 9 9 10 10 10 10 10 10 10 1 ...
- matlab 最小二乘法拟合_机器学习十大经典算法之最小二乘法
点击上方"计算机视觉cv"即可"进入公众号" 重磅干货第一时间送达 最小二乘法概述 最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找 ...
- 用python对人口模型数据拟合_万字案例 | 用Python建立客户流失预测模型(含源数据+代码)...
1.采集数据 本数据集来自DF ,数据源地址: https://www.datafountain.cn/dataSets/35/details# 本数据集描述了电信用户是否流失以及其相关信息,共包含7 ...
- matlab 最小二乘法拟合_高中数学:最小二乘法与线性回归方程
1.怎样的拟合直线最好?--与所有点都近,即与所有点的距离之和最小. 最小二乘法可以帮助我们在进行线性拟合时,如何选择"最好"的直线.要注意的是,利用实验数据进行拟合时,所用数据的 ...
最新文章
- 腾讯员工人均年薪84.7万,马化腾:员工心理健康最重要
- rabbitmqctl status报错
- MMC无法创建管理单元
- FluidSynth(实时MIDI合成器)
- 100台CentOS7要升级OpenSSH怎么办?
- 要把AI建在赤道上的华为,为何用全栈全场景方案打响第一枪
- ffmpeg + rtp介绍
- 计算机怎么办错误,电脑日志错误怎么办
- 机器学习项目实战(一) 鸢尾花
- 虚拟机中标麒麟操作系统gcc安装
- 计算机专业线性代数教学大纲,线性代数(专业必修课)教学大纲(2018版)
- ASO积分墙优化,差点毁了我家产品
- Java Seckill Module:product details
- 用EasySysprep封装Win7系统
- SQL的DATEDIFF计算天数
- 计算机编程实训视频教程,C++网络编程实践视频教程 共84节课 陈硕主讲
- dismiss ios pop效果_动画切换效果之push、pop、present、dismiss
- js递归处理删除某些节点
- 李晨光:向着兴趣一路前行
- 多元函数链导法则的理解