如何使用matlab中cftoolcftool得到cfit进行计算

Computer Solution of Engineering Problems
Main Navigation:
Personal Access
Matlab Curve Fitting and Interpolation
Polynomials
Interpolation
Curve Fitting
Fitting data to non-polynomial functions can be done with the nlinfit command.
nlinfit example: Save these functions ,
and run these commands. View the expfit2.m file to see how nlinfit is used. This example fits simulated experimental data to a curve of the form y=a*eb*x.
x=linspace(0,3,100);
y=expdata(x,a,b); % generate data with simulated noise via our function from above
[afit bfit] = expfit2(x,y) % fit data with our function from above
% Given an equation of the form x=A*sin(w*t+p)
% determine A, w, and p for this set of data.
% (Answer: A=5, w=1.42, p=1)
t=linspace(0,2*pi,50);
x=[5.13 2.63 4.85 4.09 4.49 6.35 3.60 2.22 3.33 2.29 1.18 1.52 0.32 -0.76 -2.24 ...
-2.45 -3.76 -3.90 -3.99 -4.52 -5.62 -5.48 -5.77 -3.50 -3.98 -3.96 -1.97 -2.28 ...
-0.50 1.42 1.78 1.62 2.48 5.15 3.78 4.72 5.09 5.84 5.19 5.19 4.85 6.63 4.33 ...
1.98 0.86 -0.38 1.98 -1.44 -0.61 -1.88];
If you have data that you want to draw a curve through, and the data doesn't have an associated equation, you can use the spline command. Here is an example.
% Spline curve
% A very simple example of using spline to draw a curve
% through a set of points
% this is NOT the same as a best fit curve,
% but it might be useful for a roller coaster!
x = 0:10; % simple set of x values
y = randi(20,size(x)); % random y values for each x value
xx = linspace(0,10,1000); % many x values for plotting
yy = spline(x,y,xx); % generate y values based on spline interpolation
plot(x,y,'ro'); % red data points
plot(xx,yy,'b-'); % blue spline curve
legend('data points','spline curve');
title('A spline is NOT a best fit curve');
Interactive Tools for Curve Fitting
References您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
matlab-曲线拟合工具箱讲义分析.ppt 10页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:100 &&
matlab-曲线拟合工具箱讲义分析
你可能关注的文档:
··········
··········
曲线拟合工具箱 曲线拟合定义 在实际工程应用和科学实践中,经常需要寻求 两个(或多个)变量间的关系,而实际去只能 通过观测得到一些离散的数据点。针对这些分 散的数据点,运用某种你和方法生成一条连续 的曲线,这个过程称为曲线拟合。 曲线拟合可分为:
(1)参数拟合
---- 最小二乘法
(2)非参数拟合 ---- 插值法
一、数据预处理 在曲线拟合之前必须对数据进行与处理,去 除界外值、不定值和重复值,以减少认为误 差,提高拟合的精度。 数据预处理包括: (1)数据输入与查看 (2)数据的预处理 传输数据通过数据GUI来实现,查看数据点 通过曲线拟合工具的散点图来实现。 1.输入和查看数据集 (1)打开曲线拟合工具界面
通过cftool命令打开曲线拟合工具界面
5个命令按钮 Data按钮:可输出、查看和平滑数据; Fitting按钮:可拟合数据、比较拟合曲线和数据集; Exclude按钮:可以从拟合曲线中排除特殊的数据点; Ploting按钮:在选定区间后,单击按钮,可以显示拟合曲线和数据集; Analysis按钮:可以做内插法、外推法、微分或积分拟合。 (2)输入数据集
在输入数据之前,数据变量必须存在于 matlab的工作区间。可以通过load命令输 入变量。单击曲线拟合工具界面中的Data 按钮,打开Data对话框,在对话框中进行设 置,可以输入数据。
Data对话框 包括两个选项卡:Data Sets
和 Smooth. Data Sets选项卡: .Import workspace vectors 把向量输 入工作区,主要以变量必须具有相同的维数 ,无穷大的值和不定值被忽略。 X data
用于选择观测数据 Y data
用于选择X的响应数据 Weight 用于选择权重,与响应数据相联系的向量,如果没选择,默认值为1. .Preview 对所选向量进行图形化预览 .Data set name 设置数据集的名称。工具箱可以随即产生唯一的文件名,但用户可以重命名。 .Data sets 选项以列表的形式显示所有拟合的数据集。当选择一个数据集时,可以对它做如下操作:
.View 查看数据集,以图标形式和列表形式,可以选择方法排除异常值;
.Rename 重命名
.Delete 删去数据组 例:输入数据,采用matlab自带的文件census census 有两个变量:cdate和pop。
cdate是一个年向量,包括 年,间隔为10年;
pop是对应年份的美国人口。 && whos -file census
Attributes
&& load census && cftool(cdate,pop) 单击Data按钮 在X data和Y data两个下拉式列表框中选 择变量名,将在Data对话框中显示散点图的 预览效果:
当选择Data sets列表框中的数据集时,单 击View按钮,打开View Data Set对话框 2.数据的预处理 在曲线拟合工具箱中,数据的预处理主要包 括平滑法、排除法和区间排除法等。
(1)平滑数据
打开拟合工具箱,单击Data按钮,打开 Data对话框,选择Smooth选项卡
Smooth选项卡各选项的功能: .Original data set 用于挑选需要拟合的数据集; .Smoothed data set平滑数据的名称; .Method用于选择平滑数据的方法,每一个相应数据用通过特殊的曲线平滑方法所计算的结果来取代。平滑数据的方法包括: (ⅰ)Moving average 用移动平均值进行替换; (ⅱ)Lowess局部加权散点图平滑数据,采用线性最小二乘法和一阶多项式拟合得到的数据进行替换;
(ⅲ)Loess局部加权散点图平滑数据,采用线性最小二乘法和二阶多项式拟合得到的数据进行交换; (ⅳ)Savitzky-Golay 采用未加权的线性最小二乘法过滤数据,利用指定阶数的多项式得到的数据进行替换; (ⅴ)Span用于进行平滑计算的数据点的数目; (ⅵ)Degree 用于Savitzky-Golay方法拟合多项式的阶数。 .Smoothed data sets 对于所有平滑数据集进行列表。可以增加平滑数据集,通过单击Create smoothed data
正在加载中,请稍后...MATLAB中如何直接曲线拟合,而不使用cfto;我们知道在MATLAB中有个很方便的曲线拟合工具;最基本的使用方法如下,假设我们需要拟合的点集存放;MATLAB提供了各种曲线拟合方法,例如:Exp;cftool不仅可以绘制拟合后的曲线、给出拟合参;MATLAB已经给出了解决办法,可以在cftoo;以双色球从第125期到第145期蓝球为Y值:;Y=[1215
MATLAB中如何直接曲线拟合,而不使用cftool的GUI界面
(这里使用的版本是MATLAB 2009a) 我们知道在MATLAB中有个很方便的曲线拟合工具:cftool 最基本的使用方法如下,假设我们需要拟合的点集存放在两个向量X和Y中,分别储存着各离散点的横坐标和纵坐标,则在MATLAB中直接键入命令 cftool(X,Y) 就会弹出Curve Fitting Tool的GUI界面,点击界面上的fitting即可开始曲线拟合。 MATLAB提供了各种曲线拟合方法,例如:Exponential, Fourier, Gaussing, Interpolant, Polynomial, Power, Rational, Smoothing Spline, Sum of Functions, Weibull等,当然,也可以使用 Custom Equations. cftool不仅可以绘制拟合后的曲线、给出拟合参数,还能给出拟合好坏的评价参数(Goodness of fit)如SSE, R-square, RMSE等数据,非常好用。但是如果我们已经确定了拟合的方法,只需要对数据进行计算,那么这种GUI的操作方式就不太适合了,比如在m文件中就不方便直接调用cftool。 MATLAB已经给出了解决办法,可以在cftool中根据情况生成特定的m文件,让我们直接进行特定的曲线拟合并给出参数。具体方法在帮助文件的如下文档中\Toolbox \\ Generating M-files From Curve Fitting Tool \,以下简单举例说明: 以双色球从第125期到第145期蓝球为Y值: Y=[12 15 4 1 7 11 5 7 1 6 16 1 1 14 2 12 9 13 10 12 11]; X=1:1:21; cftool(X,Y); 点击Fitting选择最常用的多项式拟合(Polynomial),选择3次多项式拟合(cubic),然后就会出现如下拟合图形:
然后在Curve Fitting Tool窗口中点击 \即可生成能直接曲线拟合的m函数文件,其中使用的拟合方法就是刚才使用的三次多项式拟合,文件中这条语句证明了这一点: ft_ = fittype('poly3'); 保存该m文件(默认叫做createFit.m),调用方法和通常的m文件一样,使用不同的X和Y值就能拟合出不同的曲线。但是,这种调用方法只能看到一个拟合出的图形窗口,拟合参数以及Goodness of fit参数都看不到了,因此需要在刚才的m文件中稍作修改。 找到这句话: cf_ = fit(X(ok_),Y(ok_),ft_); 修改为: [cf_,gof] = fit(X(ok_),Y(ok_),ft_); 然后将函数声明 function createFit(X,Y) 修改为 function [cf_,gof] = createFit(X,Y) ,这样我们再调用试试看: Y=[12 15 4 1 7 11 5 7 1 6 16 1 1 14 2 12 9 13 10 12 11]; X=1:1:21; [c,g]=createFit(X,Y); 这样就会弹出拟合图形的窗口,然后再键入c和g,就能查看多项式拟合参数及拟合评价参数啦。 c和g分别是1×1 cfit 数据类型和1×1 struct 数据类型。本例中c包括p1, p2, p3, p4四个成员,即三次曲线拟合的参数;g包括rmse等成员,即拟合评价参数。如果要在程序中引用这些数据,用法和 C/C++ 一样: a=c.p1; b=g. MATLAB中直接曲线拟合就讲到这里,相信大家用过一两次后就能熟练使用了。 一、 单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。 假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。 1、在命令行输入数据: 》x=[110.8 178.064 202..1 262.908 280. 311.5475]; 》y=[5 10 15 20 25 30 35 40 45 50]; 2、启动曲线拟合工具箱 》cftool 3、进入曲线拟合工具箱界面“Curve Fitting tool” (1)点击“Data”按钮,弹出“Data”窗口; (2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data set name”,然后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数据集的曲线图; (3)点击“Fitting”按钮,弹出“Fitting”窗口; (4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Data set”下拉菜单选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类型有: Custom Equations:用户自定义的函数类型 Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) + c*exp(d*x) Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) + b1*sin(x*w) Gaussian:高斯逼近,有8种类型,基础型是 a1*exp(-((x-b1)/c1)^2) Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-preserving Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree ~ Power:幂逼近,有2种类型,a*x^b 、a*x^b + c Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子还包括constant型 Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思) Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x + c1) Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b) 选择好所需的拟合曲线类型及其子类型,并进行相关设置: ――如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改待估计参数的上下限等参数; ――如果选Custom Equations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear Equations线性等式”和“General Equations构造等式”两种标签。 在本例中选Custom Equations,点击“New”按钮,选择“General Equations”标签,输入函数类型y=a*x*x + b*x,设置参数a、b的上下限,然后点击OK。 (5)类型设置完成后,点击“Apply”按钮,就可以在Results框中得到拟合结果,如下例: general model: f(x) = a*x*x+b*x Coefficients (with 95% confidence bounds): a = 0...00937) b = 1.78e-011 (fixed at bound) Goodness of fit: SSE: 6.146 R-square: 0.997 Adjusted R-square: 0.997 RMSE: 0.8263 同时,也会在工具箱窗口中显示拟合曲线。 这样,就完成一次曲线拟合啦,十分方便快捷。当然,如果你觉得拟合效果不好,还可以在“Fitting”窗口点击“New fit”按钮,按照步骤(4)~(5)进行一次新的拟合。 不过,需要注意的是,cftool 工具箱只能进行单个变量的曲线拟合,即待拟合的公式中,变量只能有一个。对于混合型的曲线,例如 y = a*x + b/x ,工具箱的拟合效果并不好。下一篇文章我介绍帮同学做的一个非线性函数的曲线拟合。
三亿文库包含各类专业文献、生活休闲娱乐、行业资料、文学作品欣赏、高等教育、中学教育、专业论文、外语学习资料、96MATLAB中如何直接曲线拟合等内容。 
 MATLAB中如何直接曲线拟合_计算机软件及应用_IT/计算机_专业资料。MATLAB 中如何直接曲线拟合,而不使用 cftool 的 GUI 界面 中如何直接曲线拟合, (这里使用的版本是...  MATLAB软件基本的曲线拟合函数命令_计算机软件及应用_IT/计算机_专业资料。MATLAB 软件提供了基本的曲线拟合函数的命令。 曲线拟合就是计算出两组数据之间的一种函数关...  一、 单一变量的曲线逼近 Matlab 有功能强大的曲线拟合工具箱,使用方便,能实现多种类型的线性、非 线性曲线拟合。下面结合我使用的 Matlab R2015b 来简单介绍如何...  matlab 曲线拟合函数的具体步骤是什么 1、在命令行输入数据: 2、启动曲线拟合工具箱 》cftool 3、进入曲线拟合工具箱界面“Curve Fitting tool” (1)点击“Data”...  [matlab 曲线拟合(含实例)] matlab 曲线拟合 - 非常好非常全面的介绍 M 拟合的参考资料 Mathworks Tech-Note 1508 曲线拟合向导 1. 介绍 2. Mathworks 产品的...  Matlab 有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线 性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具...  MATLAB中简单的数据拟合方法与应用实例①_理学_高等教育_教育专区。曲线拟合方法、 数学建模、曲线拟合工具箱、备注中有曲线拟合工具箱界面“Curve Fitting tool”具体...  来自:Hi 记忆
基于 Matlab 的曲线拟合摘要:科学研究中经常要对得到的实验数据进行分析,通过研究物理量之间的函数关系,探 索事物之间的联系、规律,或...如何使用matlabcftool得到cfit进行计算_百度知道
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何使用matlabcftool得到cfit进行计算
我有更好的答案
利用返回的cfit结构,可以计算得到拟合的曲线数据例如,用cftool工具箱的smooth spline 拟合一组数据保存的时候得到一个fitmodel1变量,类型为cfit类使用feval语句,可以计算自变量取值为x时对应的拟合曲线数据yy = feval(fitmodel1,x);这里的x可以是你原来数据的自变量数据,也可以是你自己构造的数据比如通常我们的数据点不多的时候,我们需要光滑连接这些数据点就可以采用工具箱中的smooth spline型拟合如果想得到连续光滑的曲线,那么先构造一个比原来数据点采样密集的自变量数组x用y = feval(fitmodel1,x);,计算出对应的数据y用plot(x,y)就可以画出连续的曲线
采纳率:80%
利用返回的cfit结构,可以计算得到拟合的曲线数据
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包

我要回帖

更多关于 matlab cftool robust 的文章

 

随机推荐