MatLab曲线拟合工具箱应用.ppt

上传人:牧羊曲112 文档编号:5439156 上传时间:2023-07-07 格式:PPT 页数:85 大小:643.50KB
返回 下载 相关 举报
MatLab曲线拟合工具箱应用.ppt_第1页
第1页 / 共85页
MatLab曲线拟合工具箱应用.ppt_第2页
第2页 / 共85页
MatLab曲线拟合工具箱应用.ppt_第3页
第3页 / 共85页
MatLab曲线拟合工具箱应用.ppt_第4页
第4页 / 共85页
MatLab曲线拟合工具箱应用.ppt_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《MatLab曲线拟合工具箱应用.ppt》由会员分享,可在线阅读,更多相关《MatLab曲线拟合工具箱应用.ppt(85页珍藏版)》请在三一办公上搜索。

1、,MATLAB 曲线拟合工具箱的应用,曲线拟合定义1,在实际工程应用和科学实践中,经常需要寻求两个(或多个)变量间的关系,而实际去只能通过观测得到一些离散的数据点。针对这些分散的数据点,运用某种你和方法生成一条连续的曲线,这个过程称为曲线拟合。曲线拟合可分为:(1)参数拟合-最小二乘法(2)非参数拟合-插值法,一、数据预处理,在曲线拟合之前必须对数据进行与处理,去除界外值、不定值和重复值,以减少认为误差,提高拟合的精度。数据预处理包括:(1)数据输入与查看(2)数据的预处理传输数据通过数据GUI来实现,查看数据点通过曲线拟合工具的散点图来实现。,1.输入和查看数据集,(1)打开曲线拟合工具界面

2、 通过cftool命令打开曲线拟合工具界面,5个命令按钮,Data按钮:可输出、查看和平滑数据;Fitting按钮:可拟合数据、比较拟合曲线和数据集;Exclude按钮:可以从拟合曲线中排除特殊的数据点;Ploting按钮:在选定区间后,单击按钮,可以显示拟合曲线和数据集;Analysis按钮:可以做内插法、外推法、微分或积分拟合。,(2)输入数据集,在输入数据之前,数据变量必须存在于matlab的工作区间。可以通过load命令输入变量。单击曲线拟合工具界面中的Data按钮,打开Data对话框,在对话框中进行设置,可以输入数据。,Data对话框,包括两个选项卡:Data Sets 和 Smoo

3、th.Data Sets选项卡:.Import workspace vectors 把向量输入工作区,主要以变量必须具有相同的维数,无穷大的值和不定值被忽略。X data 用于选择观测数据Y data 用于选择X的响应数据Weight 用于选择权重,与响应数据相联系的向量,如果没选择,默认值为1.,.Preview 对所选向量进行图形化预览.Data set name 设置数据集的名称。工具箱可以随即产生唯一的文件名,但用户可以重命名。.Data sets 选项以列表的形式显示所有拟合的数据集。当选择一个数据集时,可以对它做如下操作:.View 查看数据集,以图标形式和列表形式,可以选择方法排

4、除异常值;.Rename 重命名.Delete 删去数据组,例:输入数据,采用matlab自带的文件census,census 有两个变量:cdate和pop。cdate是一个年向量,包括1790-1990年,间隔为10年;pop是对应年份的美国人口。whos-file census Name Size Bytes Class Attributes cdate 21x1 168 double pop 21x1 168 double load census cftool(cdate,pop),散点图,单击Data按钮,在X data和Y data两个下拉式列表框中选择变量名,将在Data对话框中

5、显示散点图的预览效果:,当选择Data sets列表框中的数据集时,单击View按钮,打开View Data Set对话框,工作表方式,2.数据的预处理,在曲线拟合工具箱中,数据的预处理主要包括平滑法、排除法和区间排除法等。(1)平滑数据打开拟合工具箱,单击Data按钮,打开Data对话框,选择Smooth选项卡,Smooth选项卡各选项的功能:,.Original data set 用于挑选需要拟合的数据集;.Smoothed data set平滑数据的名称;.Method用于选择平滑数据的方法,每一个相应数据用通过特殊的曲线平滑方法所计算的结果来取代。平滑数据的方法包括:()Moving

6、average 用移动平均值进行替换;()Lowess局部加权散点图平滑数据,采用线性最小二乘法和一阶多项式拟合得到的数据进行替换;,()Loess局部加权散点图平滑数据,采用线性最小二乘法和二阶多项式拟合得到的数据进行交换;()Savitzky-Golay 采用未加权的线性最小二乘法过滤数据,利用指定阶数的多项式得到的数据进行替换;()Span用于进行平滑计算的数据点的数目;()Degree 用于Savitzky-Golay方法拟合多项式的阶数。,.Smoothed data sets 对于所有平滑数据集进行列表。可以增加平滑数据集,通过单击Create smoothed data set按

7、钮,可以创建经过平滑的数据集。.View按钮 打开查看数据集的GUI,以散点图方式和工作表方式查看数据,可以选择排除异常值的方法。.Rename用于重命名。.Delete可删去数据组。.Save to workspace保存数据集。,(2)排除法和区间排除法,排除法是对数据中的异常值进行排除。区间排除法是采用一定的区间去排除那些用于系统误差导致偏离正常值的异常值。在曲线拟合工具中单击Exclude按钮,可以打开Exclude对话框,Exclusion rule name指定分离规则的名称Existing exclusion rules列表产生的文件名,当你选择一个文件名时,可以进行如下操作:C

8、opy 复制分离规则的文件;Rename重命名;delete 删去一个文件;View以图形的形式展示分离规则的文件。Select data set 挑选需要操作的数据集;Exclude graphically允许你以图形的形式去除异常值,排除个别的点用“”标记。,Check to exclude point 挑选个别的点进行排除,可以通过在数据表中打勾来选择要排除的数据。Exclude Sections 选定区域排除数据:Exclude X选择预测数据X要排除的数据范围;Exclude Y选择响应数据Y要排除的数据范围。,(3)其他数据预处理方法,其他的预处理方法不便通过曲线拟合工具箱来完成,

9、主要包括两部分:响应数据的转换和去除无穷大、缺失值和异常值。响应数据的转换一般包括对数转换、指数转换,用这些转换可以使非线性的模型线性化,便于曲线拟合。变量的转换一般在命令行里实现,然后把转换后的数据输入曲线拟合工具箱,进行拟合。,无穷大、不定值在曲线拟合中可以忽略,如果想把他们从数据集中删除,可以用isinf和isnan置换无穷大值和缺失值。,二、曲线拟合,Matlab提供两种曲线拟合方法:(1)以函数的形式,使用命令对数据进行拟合。这种方法比较繁琐,需要对拟合函数有比较好的了解。(2)用图形窗口进行操作,具有简便、快速,可操作性强的优点。,1.多项式拟合函数,(1)Polyfit函数P=p

10、olyfit(x,y,n)用最小二乘法对数据进行拟合,返回n次多项式的系数,并用降序排列的向量表示,长度为n+1.,p,s=polyfit(x,y,n)返回多项式系数向量p和矩阵s。s与polyval函数一起用时,可以得到预测值的误差估计。如数据y的误差服从方差为常数的独立正态分布,polyval函数将生成一个误差范围,其中包含至少50%的预测值.,p,s,mu=polyfit(x,y,n)返回多项式的系数,mu是一个二维向量u1,u2,u1=mean(x),u2=std(x),对数据进行预处理 x=(x-u1)/u2,(2)Polyval函数,利用该函数进行多项式曲线拟合评价y=polyva

11、l(p,x)返回n阶多项式在x处的值,x可以是一个矩阵或者是一个向量,向量p是n+1个以降序排列的多项式的系数。,.y=polyval(p,x,mu)用x=(x-u1)/u2代替x,其中mu是一个二维向量u1,u2,u1=mean(x),u2=std(x),通过这样处理数据,使数据合理化。,y,delta=polyval(p,x,s)y,delta=polyval(p,x,s,mu)产生置信区间ydelta。如果误差结果服从标准正态分布,则实测数据落在ydelta区间内的概率至少为50%。,例 x=0 0.0385 0.0963 0.1925 0.2888 0.385;y=0.042 0.10

12、4 0.186 0.338 0.479 0.612;p,s,mu=polyfit(x,y,5),输出结果为:p=Columns 1 through 5 0.0193-0.0110-0.0430 0.0073 0.2449 Column 6 0.2961说明拟合的多项式为:,s=R:6x6 double df:0 normr:2.3684e-016mu=0.1669 0.1499,自由度为 0 标准偏差为 2.3684e-016,例:根据表中数据进行4阶多项式拟合,x=1 3 4 5 6 7 8 9 10;y=10 5 4 2 1 1 2 3 4;p,s=polyfit(x,y,4);y1=po

13、lyval(p,x);plot(x,y,go,x,y1,b-),poly2str(p,t)ans=-0.0049945 t4+0.11461 t3-0.61143 t2-1.1005 t+11.5499,例:电阻和温度的关系数据如下,求60度时的电阻.温度 20.5 32.7 51.0 73.0 95.7电阻 765 826 873 942 1032 T=20.5 32.7 51 73 95.7;R=765 826 873 942 1032;a=polyfit(T,R,1);y=poly2str(a,t)y=3.3987 t+702.0968,y=polyval(a,T)%计算多项式在某一点处

14、的值y=1.0e+003*0.7718 0.8132 0.8754 0.9502 1.0274 plot(T,R,k+,T,y,r*)hold on plot(T,y,b)polyval(a,60)ans=906.0212,例:已知年龄和运动能力的一组数据,试确定二者的关系(根据图形指定次数)年龄 17 19 21 23 25 27 29第一人20.48 25.13 26.15 30.0 26.1 20.3 19.35第二人24.35 28.11 26.3 31.4 26.92 25.7 21.3 x1=17:2:29;x=x1 x1;y=20.48 25.13 26.15 30.0 26.1

15、 20.3 19.35 24.35 28.11 26.3 31.4 26.92 25.7 21.3;plot(x,y,r+),a=polyfit(x,y,2)a=-0.2003 8.9782-72.2150 poly2str(a,x)ans=-0.20031 x2+8.9782 x-72.215 x1=17:0.1:29;y1=-0.20031*x1.2+8.9782*x1-72.215;hold on;plot(x1,y1,b),数据拟合函数表,数据拟合函数表,2.曲线的参数拟合,第一步:在命令行键入Cftool打开 curve fitting tool对话框;第二步:在curve fitt

16、ing tool对话框中 单击Data按钮打开data对话框指 定要分析的(预先存在工作区间)数据;第三步:在curve fitting tool对话框中 单击fitting按钮打开fitting对话 框,进行设置,实现曲线拟合。,Fitting对话框,包括两个面板:“Fit Editor”面板和“Tabe of Fits”面板。(1)Fit editor 选择拟合的文件名、数据集,选择排除数据的文件,比较数据拟合的各种方法,包括库函数、自定义的拟合模型和拟合参数的选择。(2)Table of Fits 同时列出所有的拟合结果。,两个面板的详细描述:,New fit 和 Copy fit 按钮

17、:开始进行曲线拟合是,单击New fit按钮,它采用默认的线性多项式拟合数据。在原有的拟合形式上,选择不同的曲线拟合方法,可以用Copy fit 按钮。Fit name 选项为当前拟合曲线的名字。单击New fit 按钮时系统会产生默认的文件名。Data set 选项为当前的数据集。Exclusion rule 排除异常值的文件名,在数据与处理前建立的文件名。,Center and scale X data 可对观测数据进行中心化和离散化处理。Type of fit 拟合的类型,包括参数拟合和非参数拟合两种。具体包括:(1)Custom Equations 自定义拟合的线性或非线性方程;(2)

18、New equation 使用Custom Equations 按钮钱,必须单击New equation 按钮选择合适的方程;,(3)Exponential指数拟合包括两种形式:y=a*exp(b*x)y=a*exp(b*x)+c*exp(d*x)(4)Fourier傅立叶拟合,正弦和余弦之和(共8个多项式),(5)Gaussian 高斯法,包括8个公式:,(6)Interpolant 内插法,包括线性内插、最近邻内插、三次样条内插和shape-preserving内插;(7)Polynomial多项式,从一次到九次;,(8)Rational有理拟合,两个多项式之比,分子与分母都是多项式;(9

19、)Power指数拟合,包括两种形式:y=a*xb y=a*xb+c(10)Smoothing spline 平滑样条拟合,默认的平滑参数由拟合的数据集来决定,参数是0产生一个分段的线性多项式拟合,参数是1产生一个分段三次多项式拟合;,(11)Sum of Sin Functions 正弦函数的和,采用以下8个公式:a1*sin(b1*x+c1)a1*sin(b1*x+c1)+a8*sin(b8*x+c8)(12)Weibull 两个参数的Weibull分布,表达式如下:Y=a*b*x(b-1)*exp(-a*xb),(3)Degree of Freedom Adjusted R-Square

20、调整自由度以后的残差的平方,数值越接近1,曲线的拟合效果越好(4)Root Mean Square Error 根的均方误差Table of fits 拟合曲线的列表,可以对每个列表做如下操作:Delete fit 删除所选的拟合曲线;Save to workspace 储存所有的拟合信息;Table options 选择与拟合相联系的信息。,例:用三次和五次多项式拟合下列数据,rand(state,0)x=1:0.1:3 9:0.1:10;c=2.5-0.5 1.3-0.1;y=c(1)+c(2)*x+c(3)*x.2+c(4)*x.3+(rand(size(x)-0.5);cftool(x

21、,y);建立一个M文件,并运行上述文件,打开曲线拟合工具,点击fitting按钮new fitcubic polynomial-apply,Fit options 包括一些拟合方法,如线性拟合、非线性拟合,以及其他选项;单击Apply按钮:采用上述所选各种方法进行拟合;单击Immediate apply按钮,在选择一个拟合形式后立即输出结果并存储;Results罗列进行拟合的各种参数:(1)SSE-sum of squares due to error 误差平方和,越接近0曲线的拟合效果越好(2)R-square 越接近1,曲线的拟合效果越好,results,Linear model Poly

22、3:f(x)=p1*x3+p2*x2+p3*x+p4Coefficients(with 95%confidence bounds):p1=-0.09837(-0.1095,-0.08729)p2=1.275(1.113,1.437)p3=-0.4351(-1.092,0.2222)p4=2.56(1.787,3.332)Goodness of fit:SSE:2.587 R-square:0.9993 Adjusted R-square:0.9993 RMSE:0.3039,Results:,Linear model Poly5:f(x)=p1*x5+p2*x4+p3*x3+p4*x2+p5*

23、x+p6Coefficients(with 95%confidence bounds):p1=0.001389(-0.003589,0.006367)p2=-0.03441(-0.1601,0.09125)p3=0.1934(-0.9131,1.3)p4=0.2733(-3.856,4.402)p5=1.013(-5.785,7.811)p6=1.835(-2.167,5.837)Goodness of fit:SSE:2.552 R-square:0.9993 Adjusted R-square:0.9992 RMSE:0.3133,拟合图形:,例:用有理拟合方法拟合数据hahn1.m,ha

24、hn1.m是matlab自带,描述铜的热膨胀与热力学温度的相关性,包括两个向量temp与thermex。load hahn1 cftool(temp,thermex),分子分母均为2次,分子分母均为3次,分子三次、分母二次,分子三次、分母二次的有理多项式拟合鲜果很好,拟合曲线充分体现了整个数据,残差随机分布在0附近。,3.非参数拟合,有时我们对拟合参数的提取或解释不感兴趣,只想得到一个平滑的通过各数据点的曲线,这种拟合曲线的形式称之为非参数拟合。非参数拟合的方法包括(1)插值法Interpoants(2)平滑样条内插法Smoothing spline,内插法:,在已知数据点之间估计数值的过程,

25、包括Linear 线性内差,在每一队数据之间用不同的线性多项式拟合;Nearest neighbor 最近邻内插,内差点在最相邻的数据点之间;Cubic spline 三次样条内插,在每一队数据之间用不同的三次多项式拟合;Shape-preserving 分段三次艾尔米特内插.,平滑样条内插法:,是对杂乱无章的数据进行平滑处理,可以用平滑数据的方法来拟合,平滑的方法在数据的预处理中已经介绍。,例:用三次样条内插和集中平滑样条内插法拟合下列数据,rand(state,0);x=(4*pi)*0 1 rand(1,25);y=sin(x)+.2*(rand(size(x)-.5);cftool(x

26、,y),例:用内插法拟合carbon12alpha.mat数据,load carbon12alpha cftool(counts,angle)fit 1Fittingtype of fitInterpolant-Nearest neighbor fit 2Fittingtype of fitInterpolant-Shape-preserving,曲线的平滑级别用Smoothing Parameter选项给定,默认的平滑参数值与数据集有关,并再单击Apply按钮以后由工具箱自动计算。对于本数据集,默认的平滑参数值接近1,表示平滑样条接近于三次样条,并且几乎正好穿过每个数据点。可以自己指定参数值,为0时,生成一个分段线性多项式的拟合,为1时,生成一个分段三次多项式的拟合,它穿过所有的数据点。fit2默认平滑参数下的平滑样条内插拟合结果效果最好。,4.基本的拟合界面,Matlab还提供了一个方便简捷的拟合界面。它具有拟合快速,操作简便的有时,但拟合方法较少。使用步骤:(1)导入数据,并画图;(2)在tool菜单中单击Basic Fitting对话框,例:用基本拟合界面拟合census.mat,load census plot(cdate,pop,ro),在tool菜单中单击Basic Fitting对话框,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号