在matlab中经常需要对数据进行曲线拟合,如最常见的多项式拟合,一般可以通过cftool调用曲线拟合工具(curve fit tool),通过图形界面可以很方便的进行曲线拟合,但是有些时候也会遇到不方便用图形工具。因此这里简单的记下两种常用的拟合方法。
1 多项式拟合(polyfit和polyval)
polyfit可以对数据进行拟合(自定义用几次多项式),返回相应的参数,然后用polyval生成拟合后的数据点,下面的例子中我们对抛物线y=3x2+6x+5进行拟合。
x = -5:0.1:5;
y = 3*x.^2+6*x + 5 + randn(size(x));
p = polyfit(x,y,2);
yy = polyval(p,x);
plot(x,y,'.');
hold on;
plot(x,yy,'r','LineWidth',2)
polyfit(x,y,2)中x表示自变量,y表示因变量,2表示用二次曲线(抛物线)进行拟合,得到的p其实是对应的参数估计值,yy为拟合数据点。另外在实验中还加了一个随机噪声。
2 高斯函数的曲线拟合
高斯曲线也是很常要拟合的曲线,这里介绍一种直接用代码使用cftool拟合工具的方法,这种方法可以对许多自定义的函数进行拟合(例如用来做多项式拟合,但是这种方法要麻烦很多,远没有前一种方法多项式拟合方便)。下面的是一个简单的例子,其中还可以进行更复杂的设置,具体请help fit和fittype.
f = fittype('a*exp(-((x-b)/c)^2)');
x = -10:0.2:10;
y = 5*exp(-((x)/4).^2)+randn(size(x))*0.1;
plot(x,y,'.')
[cfun,gof] = fit(x(:),y(:),f);
yy = cfun.a*exp(-((x-cfun.b)/cfun.c).^2);
hold on;plot(x,yy,'r','LineWidth',2);
此外,高斯曲线的拟合也可以通过转化为多项式拟合的方法实现,先将被拟合数据y取对数,然后用多项式拟合求出对应的参数。代码如下:
x = -10:0.2:10;
y = 5*exp(-((x)/4).^2);
lny = log(y);
p = polyfit(x,lny,2);
gauss.c = sqrt(-1/p(1));
gauss.b = -p(2)/2/p(1);
gauss.a = exp(p(3)-p(1)*gauss.b^2);
yy = gauss.a*exp(-((x-gauss.b)/gauss.c).^2);
plot(x,y,'.');
hold on;
plot(x,yy,'r','LineWidth',2)
但是这种方法似乎只在没有噪声干扰时效果较好,如果存在噪声的干扰的话,那么这个估计不是最佳的(因为对数运算使不同区间的噪声影响不同),右图为加了噪声之后的情况.
更多曲线拟合 Matlab源码:
http://www.eyesourcecode.com/forum-Matlab-1.html
分享到:
相关推荐
MATLAB曲线拟合工具箱的教程与说明,含有实例,全英文版
### MATLAB曲线拟合工具箱详解及应用 #### 一、MATLAB曲线拟合工具箱概述 MATLAB曲线拟合工具箱是一种强大的数据处理工具,它主要用于寻找数据集之间的数学关系,通过对实验数据或其他类型的数据进行拟合,可以...
而使用Matlab曲线拟合工具箱或类似软件(如Origin)可以更快速地完成拟合任务,因为这些软件已经内置了各种拟合算法,用户只需通过简单的操作界面即可实现拟合,这大大提高了实验数据处理的效率。 总结而言,本文...
本资源"MATLAB曲线拟合代码"提供了一个名为"nihe50.m"的MATLAB脚本,可以帮助用户快速进行各种类型的曲线拟合。 首先,我们来理解曲线拟合的基本概念。曲线拟合是通过找到一个函数,使该函数经过或者最接近给定的...
Matlab 曲线拟合工具 Matlab 曲线拟合工具是 Matlab 环境下的一种强大的工具,用于数据的线性回归预测。通过使用 Matlab 曲线拟合工具箱 CFTOOL,可以对数据进行拟合和回归分析,从而获得精准的预测结果。 曲线...
Matlab 曲线拟合程序 Matlab 曲线拟合程序是一种专业的数据处理工具,适合初学者数据处理,建立曲线拟合模型。曲线拟合是一种常用的数据处理方法,涉及回答两个基本问题:最佳拟合意味着什么?应该用什么样的曲线?...
使用MATLAB曲线拟合工具箱做曲线拟合.pdf
### 使用MATLAB曲线拟合工具箱进行数据拟合详解 #### 一、MATLAB曲线拟合工具箱概览 MATLAB曲线拟合工具箱(Curve Fitting Toolbox)是MathWorks公司为MATLAB用户提供的强大工具之一,专门用于解决数据拟合问题。...
matlab曲线拟合-插值与拟合.doc 自己下载的一些曲线插值,拟合的资料,希望对大家有所帮助
总结来说,一阶惯性加延迟环节的MATLAB曲线拟合是通过最小二乘法来确定模型参数的过程,这需要构建适当的模型函数、定义成本函数,并使用MATLAB的优化工具进行拟合。这个过程中涉及的技能包括数据处理、非线性模型...
利用 MATLAB 曲线拟合工具箱拟合 PN 结伏安特性曲线.pdf 本文介绍了 MATLAB 曲线拟合工具箱的应用于 PN 结伏安特性曲线的拟合。PN 结伏安特性曲线是一种非线性曲线,虽然已经有准确的数学函数来表达其变化规律,但...
标题中的"MATLAB.rar_matlab曲线拟合_曲线拟合程序_曲线拟合误差_误差曲线"表明这个压缩包包含一系列MATLAB程序,专门用于执行曲线拟合和分析拟合误差。 MATLAB提供了多种内置函数来实现曲线拟合,如`polyfit`用于...
"MATLAB曲线拟合工具箱"是MATLAB中一个重要的模块,它提供了丰富的函数和交互式环境来帮助用户对实验数据进行各种类型的曲线拟合,从而揭示隐藏在数据背后的规律。这个使用手册详细介绍了如何有效地利用这个工具箱...
在你提供的资料“MATLAB.rar”中,包含了“MATLAB.pdf”,这很可能是一个详细讲解MATLAB曲线拟合的教程。 首先,MATLAB中的主要曲线拟合工具是`fit`函数,它可以处理多种类型的拟合模型,包括线性、多项式、指数、...
本文将从MATLAB曲线拟合的基本概念、工具箱特色、线性和非线性拟合方法、加权拟合技术以及相关技术资料五个方面详细解析MATLAB曲线拟合的知识点。 首先,曲线拟合作为数学建模的一种方法,主要目的是在给定的数据...
### MATLAB曲线拟合向导知识点解析 #### 一、MATLAB简介 MATLAB(Matrix Laboratory)是由MathWorks公司开发的一款高性能数值计算与可视化软件工具,它集成了数值分析、矩阵运算、函数绘制以及算法实现等多种功能...
基于Matlab曲线拟合工具箱的列表曲线拟合 Matlab是一种功能强大、使用简便的工程计算语言,以矩阵运算为基础,把计算、可视化和程序设计融合到一个交互的环境中。Matlab的曲线拟合工具箱是随Matlab6.5一起发行的,...
matlab曲线拟合-MATLAB曲线拟合向导.doc 自己下载的一些曲线插值,拟合的资料,希望对大家有所帮助