文档库 最新最全的文档下载
当前位置:文档库 › 指数函数的数据拟合

指数函数的数据拟合

指数函数的数据拟合

四.指数函数的数据拟合

问题1:世界人口预测问题

下表给出了本世纪六十年代世界人口的统计数据(单位:亿)

有人根据表中数据,预测公元2000年世界人口会超过 60亿。这一结论在六十年代末令人难以置信,但现在已成为事实。试建立数学模型并根据表中数据推算出2000年世界人口的数量。

根据马尔萨斯人口理论,人口数量按指数递增的规律发展。记人口数为 N (t ),则有指数函数N e a bt =+。现需要根据六十年代的人口数据确定函数表达式中两个常数a 、b 。为了计算方便,对表达式两边取对数,得 ln N a bt =+,令 N y ln =。于是bt a t y +=)(。

(1)计算出表中人口数据的对数值y k = ln N k ( k = 1,2, (9)

(2) 根据表中数据写出关于两个未知数a 、b 的9个方程的超定方程组(方程数多于未知数个数的方程组)

a + b t k = y k ( k = 1,2, (9)

其中,t 1 =1960,t 2 =1961,t 3 =1962,……,t 9 =1968;

y 1= ln29.72,y 2 = ln 30.61,……,y 9 = ln34.83。

(3) 利用MA TLAB 解线性方程组Ax=c 的命令A \c 计算出a 、b 的值,并写出人口增长函数。利用人口增长函数计算出2000年世界人口数据:N (2000)

数据拟合与函数逼近

第十三章 数据拟合与函数逼近 数据拟合与函数逼近涉及到许多内容与方法,从不同角度出发,也有多种叫法。这一章,我们主要通地线性拟合而引出最小乘法这一根本方法。 13.1 数据拟合概念与直线拟合 插值法是一种用简单函数近似代替较复杂函数的方法,它的近似标准是在插值点处的误差为零。但有时,我们不要求具体某些点的误差为零,而是要求考虑整体的误差限制。对了达到这一目的,就需要引入拟合的方法,所以数据拟合与插值相比: 数据拟合--不要求近似 函数过所有的数据点,而要求它反映原函数整体的变化趋势。 插值法--在节点处取函数值。 实际给出的数据,总有观测误差的,而所求的插值函数要通过所有的节点,这样就会保留全部观测误差的影响,如果不是要求近似函数过所有的数据点,而是要求它反映原函数整的变化趋势,那么就可以用数据拟合的方法得到更简单活用的近似函数。 13.1.1 直线拟合 由给定的一组测定的离散数据(,)i i x y (1,2,,i N = ),求自变量x 和因变量y 的近似表达式()y x ?=的方法。影响因变量y 只有一个自变量x 的数据拟合方法就是直线拟合。 直线拟合最常用的近似标准是最小二乘原理,它也是流行的数据处理方法之一。 直线拟合步骤如下: (1) 做出给定数据的散点图(近似一条直线)。 (2) 设拟合函数为: i bx a y +=* (13.1.1) 然后,这里得到的*i y 和i y 可能不相同,记它们的差为: i i i i i bx a y y y --=-=* δ (13.1.2) 称之为误差。在原始数据给定以后,误差只依赖于b a ,的选取,因此,可以把误差的大小作为衡量b a ,的选取是否优良的主要标志。

怎样用matlab指数函数拟合

matlab指数函数拟合 2011-04-2617:04碎碎j|分类:文档/报告共享|浏览17560次 刚学matlab,完全不知道如何写程序,特来求助! x=[1012.51517.52022.52527.53032.53537.54042.54547.55 0]; y=[62.177.392.5104112.9121.9125129.4134138.2142.3143.214 4.6147.2147.8149.1150.9]; y=A(1)*exp(x/A(2))+A(3) 请高手编程拟合指数函数! 分享到: 2011-05-0119:32提问者采纳 clear all; close all; x=[1012.51517.52022.52527.53032.53537.54042.54547.550]; y=[62.177.392.5104112.9121.9125129.4134138.2142.3143.2144.6147.2147.81 49.1150.9]; myfunc=inline('beta(1)+beta(2)*exp(beta(4)*x)+beta(3)*exp(-beta(4)*x)','beta','x'); beta=nlinfit(x,y,myfunc,[0.50.50.50.5]); a=beta(1),k1=beta(2),k2=beta(3),m=beta(4) xx=min(x):max(x); yy=a+k1*exp(m*xx)+k2*exp(-m*xx); plot(x,y,'o',xx,yy,'r')

提问者评价 知道了,谢谢

MATLAB拟合函数

在Matlab 6.5以上的环境下,在左下方有一个"Start"按钮,如同Windows的开始菜单,点开它,在目录"Toolboxes"下有一个"Curve Fitting",点开"Curve Fitting Tool",出现数据拟合工具界面,基本上所有的数据拟合和回归分析都可以在这里进行。 下面给你简单介绍一下它的使用方法。 首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据,另外一个是你要的y坐标的各个数据。输入以后假定叫x向量与y向量,可以在workspace里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。 例如在命令行里输入下列数据: x=(0:0.02:0.98)';二胡与施工的计划的风光好舒服很多国家法规和积分高科技 y=sin(4*pi*x+rand(size(x))); 此时x-y之间的函数近似的为正弦关系,频率为2,但是存在一个误差项。 可以通过作图看出它们的大体分布: plot(x,y,'*','markersize',2); 打开曲线拟合共工具界面,点击最左边的"Data..."按钮,出现一个Data对话框,在Data Sets 页面里,在X Data选项中选取x向量,Y Data选项中选取y向量,如果两个向量的元素数相同,那么Create data set按钮就激活了,此时点击它,生成一个数据组,显示在下方Data Sets列表框中。关闭Data对话框。此时Curve Fitting Tool窗口中显示出这一数据组的散点分布图。 点击Fitting...按钮,出现Fitting对话框,Fitting对话框分为两部分,上面为Fit Editor,下面为Table of Fits,有时候窗口界面比较小,Fit Editor部分会被收起来,只要把Table of Fits 上方的横条往下拉就可以看见Fit Editor。在Fit Editor里面点击New Fit按钮,此时其下方的各个选框被激活,在Data Set选框中选中刚才建立的x-y数据组,然后在Type of fit 选框中选取拟合或回归类型,各个类型的拟合或回归相应的分别是: Custom Equations 用户自定义函数 Expotential e指数函数 Fourier 傅立叶函数,含有三角函数 Gaussian 正态分布函数,高斯函数 Interpolant 插值函数,含有线性函数,移动平均等类型的拟合 Polynomial 多项式函数 Power 幂函数 Rational 有理函数(不太清楚,没有怎么用过) Smooth Spline ??(光滑插值或者光滑拟合,不太清楚) Sum of sin functions正弦函数类 Weibull 威布尔函数(没用过) 不好意思,没有学过数理统计,所以很多东西都是用了才知道,翻译也就不太准确。不过在Type of fit选框下方有一个列表框,基本上各个函数类里的函数都写成解析式列在下方以供选择,所以找合适的函数还是比较容易的。

数值分析课件第3章函数逼近与曲线拟合

第三章 函数逼近与曲线拟合 1 函数的逼近与基本概念 1.1问题的提出 多数计算机的硬件系统只提供加、减、乘、除四种算术运算指令,因此为了计算大多数有解析表达式的函数的值,必须产生可用四则运算进行计算的近似式,一般为多项式和有理分式函数.实际上,我们已经接触到两种逼近多项式,一种是泰乐多项式,一种是插值多项式.泰乐多项式是一种局部方法,误差分布不均匀,满足一定精度要求的泰乐多项式次数太高,不宜在计算机上直接使用.例如,设()f x 是[1,1]-上的光滑函数,它的Taylor 级数0()k k k f x a x ∞ ==∑, ()(0)! k k f a k =在[1,1]-上收敛。当此级数收敛比较快时,11()()()n n n n e x f x s x a x ++=-≈。这个误差分布是不均匀的。当0x =时,(0)0n e =,而x 离开零点增加时,()n e x 单调增加,在1x =±误差最

大。

为了使[1,1]-的所有x 满足()()n f x s x ε-<,必须选取足够大的n ,这显然是不经济的。插值函数出现的龙格现象表明,非节点处函数和它的插值多项式相差太大。更重要的是,实际中通过观测得到的节点数据往往有各种误差,此时如果要求逼近函数过全部节点,相当于保留全部数据误差,这是不适宜的。如图1所示,给出五个点上的实验测量数据,理论上的结果应该满足线性关系,即图1中的实线。由于实验数据的误差太大,不能用过任意两点的直线逼近函数。如果用过5个点的4次多项式逼近线性函数,显然误差会很大。 实验数据 真函数 插值多项式逼近 精确的线性逼近 图1

数值分析函数逼与曲线拟合

第三章 函数逼近与曲线拟合 1 函数的逼近与基本概念 1.1问题的提出 多数计算机的硬件系统只提供加、减、乘、除四种算术运算指令,因此为了计算大多数有解析表达式的函数的值,必须产生可用四则运算进行计算的近似式,一般为多项式和有理分式函数.实际上,我们已经接触到两种逼近多项式,一种是泰乐多项式,一种是插值多项式.泰乐多项式是一种局部方法,误差分布不均匀,满足一定精度要求的泰乐多项式次数太高,不宜在计算机上直接使用.例如,设 ()f x 是[1,1]-上的光滑函数,它的Taylor 级数0 ()k k k f x a x ∞ ==∑, ()(0) ! k k f a k = 在[1,1]-上收敛。当此级数收敛比较快时,1 1()()()n n n n e x f x s x a x ++=-≈。这个误差分布是不均匀的。当0x =时,(0)0n e =,而x 离开零点增加时,()n e x 单调增加,在1x =±误差最大。为了使[1,1]-的所有x 满足()()n f x s x ε-<,必须选取足够大的n ,这显然是不经 济的。插值函数出现的龙格现象表明,非节点处函数和它的插值多项式相差太大。更重要的是,实际中通过观测得到的节点数据往往有各种误差,此时如果要求逼近函数过全部节点,相当于保留全部数据误差,这是不适宜的。如图1所示,给出五个点上的实验测量数据,理论上的结果应该满足线性关系,即图1中的实线。由于实验数据的误差太大,不能用过任意两点的直线逼近函数。如果用过5个点的4次多项式逼近线性函数,显然误差会很大。

1.2范数与逼近 一、线性空间及赋范线性空间 要深入研究客观事物,不得不研究事物间的内在联系,给集合的元素之间赋予某种“确定关系”也正是这样的道理.数学上常把在各种集合中引入某些不同的确定关系称为赋予集合以某种空间结构,并将这样的集合称为空间。最常用的给集合赋予一种“加法”和“数乘”运算,使其构 成线性空间.例如将所有实 n 维数对组成的集合,按照“加法”和“数乘”运算构成实数域上的线 性空间,记作n R ,称为n 维向量空间.类似地,对次数不超过n 的实系数多项式全体,按通常多项式与多项式加法及数与多项式乘法也构成数域R 上一个线性空间,用n H 表示,称为多项式空间。所有定义在[,]a b 上的连续函数集合,按函数加法和数与函数乘法构成数域R 上的线 性空间,记作[,]C a b .类似地,记[,]p C a b 为具有p 阶连续导数的函数空间. 在实数的计算问题中,对实数的大小、距离及误差界等是通过绝对值来度量的.实践中,我们常常会遇到对一般线性空间中的向量大小和向量之间的距离进行度量的问题,因此有必要在一般线性空间上,赋予“长度”结构,使线性空间成为赋范线性空间. 定义1 设 X 是数域K 上一个线性空间,在其上定义一个实值函数g ,即对于任意 ,x y X ∈及K α∈,有对应的实数x 和y ,满足下列条件 (1) 正定性:0x ≥,而且0x =当且仅当0x =; (2) 齐次性:x x αα=; (3) 三角不等式:x y x y +≤+; 实验数据 真函数 插值多项式逼近 精确的线性逼近 图1

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。 3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过实验或观测得到量x与y的一组数据对(X i,Y i)(i=1,2,...m),其中各X i 是彼此不同的。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或拟合已知数据。f(x,c)常称作拟合模型,式中c=(c1,c2,…c n)是一些待定参数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在各点

(完整版)Matlab学习系列13.数据插值与拟合

13. 数据插值与拟合 实际中,通常需要处理实验或测量得到的离散数据(点)。插值与拟合方法就是要通过离散数据去确定一个近似函数(曲线或曲面),使其与已知数据有较高的拟合精度。 1.如果要求近似函数经过所已知的所有数据点,此时称为插值问 题(不需要函数表达式)。 2.如果不要求近似函数经过所有数据点,而是要求它能较好地反 映数据变化规律,称为数据拟合(必须有函数表达式)。 插值与拟合都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数。区别是:【插值】不一定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。【拟合】要求得到一个具体的近似函数的表达式。 因此,当数据量不够,但已知已有数据可信,需要补充数据,此时用【插值】。当数据基本够用,需要寻找因果变量之间的数量关系(推断出表达式),进而对未知的情形作预测,此时用【拟合】。

一、数据插值 根据选用不同类型的插值函数,逼近的效果就不同,一般有:(1)拉格朗日插值(lagrange插值) (2)分段线性插值 (3)Hermite (4)三次样条插值 Matlab 插值函数实现: (1)interp1( ) 一维插值 (2)intep2( ) 二维插值 (3)interp3( ) 三维插值 (4)intern( ) n维插值 1.一维插值(自变量是1维数据) 语法:yi = interp1(x0, y0, xi, ‘method’) 其中,x0, y0为原离散数据(x0为自变量,y0为因变量);xi为需要插值的节点,method为插值方法。 注:(1)要求x0是单调的,xi不超过x0的范围; (2)插值方法有‘nearest’——最邻近插值;‘linear’——线性插值;‘spline’——三次样条插值;‘cubic’——三次插值;

数据拟合方法

第二讲 数据拟合方法 在实验中,实验和戡测常常会产生大量的数据。为了解释这些数据或者根据这些数据做出预测、判断,给决策者提供重要的依据。需要对测量数据进行拟合,寻找一个反映数据变化规律的函数。数据拟合方法与数据插值方法不同,它所处理的数据量大而且不能保证每一个数据没有误差,所以要求一个函数严格通过每一个数据点是不合理的。数据拟合方法求拟合函数,插值方法求插值函数。这两类函数最大的不同之处是,对拟合函数不要求它通过所给的数据点,而插值函数则必须通过每一个数据点。例如,在某化学反应中,测得生成物的质量浓度y (10 –3 g/cm 3)与时间t (min )的关系如表所示 显然,连续函数关系 y (t )是客观存在的。但 是通过表中的数据不可能确切地得到这种关系。何况,由于仪器和环境的影响,测量数据难免有误差。因此只能寻求一个近拟表达式 y = (t )

寻求合理的近拟表达式,以反映数据变化的规律,这种方法就是数据拟合方法。数据拟合需要解决两个问题:第一,选择什么类型的函数)(t ?作为拟合函数(数学模型);第二,对于选定的拟合函数,如何确定拟合函数中的参数。 数学模型应建立在合理假设的基础上,假设的合理性首先体现在选择某种类型的拟合函数使之符合数据变化的趋势(总体的变化规律)。拟合函数的选择比较灵活,可以选择线性函数、多项式函数、指数函数、三角函数或其它函数,这应根据数据分布的趋势作出选择。为了问题叙述的方 假设拟合函数是线性函数,即拟合函数的图形是一条平面上的直线。而表中的数据点未能精确地落在一条直线上的原因是实验数据的误差。则下一步是确定函数 y= a + b x 中系数a 和b 各等于多少从几何背景来考虑,就是要以a 和b 作为待定系数,确定一条平面直线使得表中数据所对应的10个点尽可能地靠近这条直线。一般来讲,数据点将不会全部落在这条直线上,如果第k 个点的数据恰好落在这条直线上,则这个点的坐标满足直线的方程,即 a + b x k = y k 如果这个点不在直线上,则它的坐标不满足直线方程,有一个绝对值为 k k y bx a -+的差异(残差) 。于是全部点处的总误差是 ∑=-+10 1 k k k y bx a 这是关于a 和b 的一个二元函数,合理的做法是选取a 和b ,使得这个函 数取极小值。但是在实际求解问题时为了操作上的方便,常常是求a 和b 使得函数 ∑=-+=10 12)(),(k k k y bx a b a F 达到极小。为了求该函数的极小值点,令 0=??a F ,0=??b F , 得

matlab拟合工具箱的使用

matlab拟合工具箱使用 2011-06-17 12:53 1.打开CFTOOL工具箱。在Matlab 6.5以上的环境下,在左下方有一个"Start"按钮,如同Windows的开始菜单,点开它,在目录"Toolboxes"下有一个"Curve Fitting",点开"Curve Fitting Tool",出现数据拟合工具界面,基本上所有的数据拟合和回归分析都可以在这里进行。也可以在命令窗口中直接输入”cftool”,打开工具箱。 2.输入两组向量x,y。 首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据,另外一个是你要的y坐标的各个数据。输入以后假定叫x向量与y向量,可以在workspace里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。 例如在命令行里输入下列数据: x = [196,186, 137, 136, 122, 122, 71, 71, 70, 33]; y = [0.012605; 0.013115; 0.016866; 0.014741; 0.022353; 0.019278; 0.041803; 0.038026; 0.038128; 0.088196]; 3.数据的选取。打开曲线拟合共工具界面,点击最左边的"Data..."按钮,出现一个Data对话框,在Data Sets页面里,在X Data选项中选取x向量,Y Data 选项中选取y向量,如果两个向量的元素数相同,那么Create data set按钮就激活了,此时点击它,生成一个数据组,显示在下方Data Sets列表框中。关闭Data对话框。此时Curve Fitting Tool窗口中显示出这一数据组的散点分布图。

数值计算方法教案_曲线拟合与函数逼近

第三章 曲线拟合与函数逼近 一.曲线拟合 1.问题提出: 已知多组数据(),,1,2,,i i x y i N = ,由此预测函数()y f x =的表达式。 数据特点:(1)点数较多。(2)所给数据存在误差。 解决方法:构造一条曲线反映所给数据点的变化总趋势,即所谓的“曲线拟合”。 2.直线拟合的概念 设直线方程为y=a+bx 。 则残差为:?i i i e y y =-,1,2,,i N = ,其中?i i y a bx =+。 残差i e 是衡量拟合好坏的重要标志。 可以用MATLAB 软件绘制残差的概念。 x=1:6; y=[3,4.5,8,10,16,20]; p=polyfit(x,y,1); xi=0:0.01:7; yi=polyval(p,xi); plot(xi,yi,x,y, 'o'); y1=polyval(p,x); hold on for i=1:6 plot([i,i],[y(i),y1(i)], 'r'); end 可以绘制出如下图形:

三个准则: (1)max i e 最小 (2)1n i i e =∑最小 (3)21 N i i e =∑最小 3.最小二乘法的直线拟合 问题:对于给定的数据点(),,1,2,,i i x y i N = ,求一次多项式y=a+bx ,使得总误差Q 最小。其中()2 21 1 N N i i i i i Q e y a bx ====-+????∑∑。根据 0,0.Q Q a b ??==?? 2222 1 222N i i i i i i i Q y a b x y a y x b x ab =??=++--+??∑

函数逼近与曲线拟合

实验二 函数逼近与曲线拟合报告 一、问题提出 从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。 在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量与时间t 的拟合曲线。 t(分) 0 5 10 15 20 25 30 35 40 45 50 55 4(10)y -? 0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64 二、要求 1、用最小二乘法进行曲线拟合; 2、近似解析表达式为23123()t a t a t a t ?=++; 3、打印出拟合函数()t ?,并打印出()j t ?与()j y t 的误差,1,2,,12j = ; 4、另外选取一个近似表达式,尝试拟合效果的比较; 5、* 绘制出曲线拟合图。 三、目的和意义 1、掌握曲线拟合的最小二乘法; 2、最小二乘法亦可用于解超定线代数方程组; 3、探索拟合函数的选择与拟合精度间的关系。 四、实验学时:2学时 五、实验步骤: 1.进入C 或matlab 开发环境; 2.根据实验内容和要求编写程序; 3.调试程序; 4.运行程序; 5.撰写报告,讨论分析实验结果.

解: 实验步骤 (一)算法流程 构造a1、a2、a3的线性方程组------构造误差平方和------对a1、a2、a3求偏导数------令偏导为零求得a1、a2、a3的值。 (二)编程步骤与分析 1. 绘制数据点(t,yi)的散点图 输入程序为: t=[0 5 10 15 20 25 30 35 40 45 50 55]; y=[0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64].*1e-4 plot(t,y,'r*'), legend('实验数据(t,yi)') xlabel('x'), ylabel('y'), title('数据点(t,yi)的散点图'),显示结果为: 2.求参数a1、a2、a3的解析表达式 计算)(x f 在),(i i y x 处的函数值,即输入程序 syms a1 a2 a3 t=[0 5 10 15 20 25 30 35 40 45 50 55]; fi=a1.*t+ a2.*t.^2+ a3.*t.^3 运行后屏幕显示关于a1,a2, a3的线性方程组: fi = [ 0, 5*a1 + 25*a2 + 125*a3, 10*a1 + 100*a2 + 1000*a3, 15*a1 + 225*a2 + 3375*a3, 20*a1 + 400*a2 + 8000*a3, 25*a1 + 625*a2 + 15625*a3, 30*a1 + 900*a2 + 27000*a3, 35*a1 + 1225*a2 + 42875*a3, 40*a1 + 1600*a2 + 64000*a3, 45*a1 + 2025*a2 + 91125*a3, 50*a1 + 2500*a2 + 125000*a3, 55*a1 + 3025*a2 + 166375*a3] 构造误差平方和: y=[0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64].*1e-4;

matlab非线性参数拟合估计_很好的参考材料

使用nlinfit、fminsearch在matlab中实现基于最小二乘法的 非线性参数拟合 (整理自网上资源) 最小二乘法在曲线拟合中比较普遍。拟合的模型主要有 1.直线型 2.多项式型 3.分数函数型 4.指数函数型 5.对数线性型 6.高斯函数型 ...... 一般对于LS问题,通常利用反斜杠运算“\”、fminsearch或优化工具箱提供的极小化函数求解。在Matlab中,曲线拟合工具箱也提供了曲线拟合的图形界面操作。在命令提示符后键入:cftool,即可根据数据,选择适当的拟合模型。 “\”命令 1.假设要拟合的多项式是:y=a+b*x+c*x^ 2.首先建立设计矩阵X: X=[ones(size(x)) x x^2]; 执行: para=X\y para中包含了三个参数:para(1)=a;para(2)=b;para(3)=c; 这种方法对于系数是线性的模型也适应。 2.假设要拟合:y=a+b*exp(x)+cx*exp(x^2) 设计矩阵X为 X=[ones(size(x)) exp(x) x.*exp(x.^2)]; para=X\y 3.多重回归(乘积回归) 设要拟合:y=a+b*x+c*t,其中x和t是预测变量,y是响应变量。设计矩阵为X=[ones(size(x)) x t] %注意x,t大小相等! para=X\y polyfit函数 polyfit函数不需要输入设计矩阵,在参数估计中,polyfit会根据输入的数据生成设计矩阵。 1.假设要拟合的多项式是:y=a+b*x+c*x^2 p=polyfit(x,y,2) 然后可以使用polyval在t处预测: y_hat=polyval(p,t) polyfit函数可以给出置信区间。 [p S]=polyfit(x,y,2) %S中包含了标准差 [y_fit,delta] = polyval(p,t,S) %按照拟合模型在t处预测 在每个t处的95%CI为:(y_fit-1.96*delta, y_fit+1.96*delta)

常用a_N曲线拟合方法的比较

·24· 设计与研究 机械 2009年第2期 总第36卷 ——————————————— 收稿日期:2008-10-09 作者简介:王红军(1981-),男,硕士研究生,主要研究方向为疲劳可靠性设计;徐人平(1949-),男,博士,博士生导师,主要研究方向为疲劳可靠性设计。 常用a -N 曲线拟合方法的比较 王红军,徐人平 (昆明理工大学 机电工程学院,云南 昆明 650093) 摘要:在疲劳裂纹扩展研究中,a -N 曲线拟合精度对裂纹扩展速率的研究具有决定性的影响。本研究采用我国自行研制的高强度合金钢GC4钢材的疲劳试验数据,将试验数据导入MATLAB 软件中,通过编写程序或利用其拟合工具箱得出不同方法所得到的a -N 曲线,然后分析这些方法拟合的误差平方和,得出具有最小误差平方和且具有统一公式的方法(即为所求的最佳拟合曲线)。这种方法不仅适用于求GC4钢材的a -N 曲线,而且可用于其它材料的a -N 曲线。 关键词:裂纹扩展;a -N 曲线;曲线拟合 中图分类号:TP391 文献标识码:A 文章编号:1006-0316 (2009) 02-0024-02 Comparison of common used a-N curve fitting method WANG Hong-jun ,XU Ren-ping (Kunming university of science and technology ,Kunming 650093,China ) Abstract :In the study of fatigue crack growth, a-N curve fitting accuracy has a decisive impact in the crack growth rate studies. In this study, we use our country self-developed high-strength alloy steel GC4 fatigue test data, we import the test data into MATLAB and can be get the curves of a-N through programming or using the fit toolbox of MATLAB, and then analyze the fitting square error of those methods. The method (which is seeking the best fitting curve )which has the least square error and the unified formula can be got. This method not only applies to seek the a-N of GC4 steel, but also can be used for seeking the a-N curve of other materials. Key words :fatigue crack growth ;a -N curve ;curve fitting 工程构件的破坏形式主要有三种:磨损、腐蚀和断裂。磨损和腐蚀进行得很缓慢,一般可通过定期检查、修理、更换来解决。而断裂是突发性的,往往造成灾难性的设备事故或人身事故。造成断裂的原因很多有,有过载低应力脆断、疲劳等。据国外统计,机械零件的破坏50%~90%为疲劳破坏。 钢结构节点和材料的疲劳性能研究中,一般采用断裂力学方法,应用Paris 公式建立裂纹扩展速率d a /d N 和裂纹尖端应力强度因子?K 之间的关系,即: d ()d m a C K N =? 式中:C 和m 为材料的裂纹扩展参数,可用实验的方法获得。 由Paris 公式可见,在疲劳研究中裂纹扩展速率 是非常重要的指标。为了得到裂纹扩展速率,生成裂纹长度对时间的数据必须处理成d a /d N ,不同的处理方法,常常导致裂纹扩展的分散性,从而影响作为应力强度因子?K 函数的d a /d N 的统计分散性。为了使裂纹扩展的分散性尽可能小,必须提高拟合a -N 曲线的精度。目前拟合a -N 曲线的方法有很多种,如增量多项式局部拟合法,三参数幂函数拟合法,正交多项式拟合法等。如何从这些方法中取得最佳拟合方法尤为重要,本文利用MATLAB 对几种常用的拟合方法进行检验,得到最佳拟合方法。 1 常用的a -N 曲线拟合方法 由图1可以看出a -N 数据点大致的分布情况,由数据点的分布规律从而找出较为合适的数学曲线进行拟合,根据其分布情况,比较常用的拟合方法

MATLAB数据拟合例子

MATLAB数据拟合例子(一次函数、指数函数、双曲线) (2010-06-03 01:44:30)转载▼ 分类:数学工具 标签:杂 谈 一次函数:(a+bx = y) %先求出拟合函数 format long; x = [2001 2002 2003 2004 2005 2006 2007 2008 2009]; y = [32.2 31.3 29.7 28.6 27.5 26.1 25.3 23.7 22.7]; d = [1 1 1 1 1 1 1 1 1]; a=[d;x]; b = a*y'; a=a*a'; c=a\b c = 1.0e+003 * 2.436797222221444 -0.001201666666666 %所以,拟合函数为 y = 1.0e+003 *(2.436797222221444 - 0.001201666666666*x %根据拟合函数求估测值 format short; x = [2010, 2011, 2012, 2013, 2014] 1.0e+003 *( 2.436797222221444 - 0.001201666666666*x) ans = 21.4472 20.2456 19.0439 17.8422 16.6406

指数函数:( y = exp(a + b*x)) >> x = [2001 2002 2003 2004 2005 2006 2007 2008 2009]; y = [21.5 15.9 11.8 8.7 6.5 4.8 3.5 2.6 2.0]; y=log(y'); d = [1 1 1 1 1 1 1 1 1]; a=[d;x]; b = a*y; a=a*a'; c=a\b c = 601.9448 -0.2993 %所以,拟合函数为 y = exp(601.9448 - 0.2993*x) %根据拟合函数求估测值 >> x = [2010, 2011, 2012, 2013, 2014] exp(601.9448 - 0.2993*x) ans = 1.4216 1.0539 0.7813 0.5792 0.4294 双曲线:(1/y = a + b/x) format long;

函数逼近与曲线拟合

函数逼近与曲线拟合 3.1函数逼近的基本概念 3.1.1 函数逼近与函数空间 在数值计算中常要计算函数值,如计算机中计算基本初等函数及其他特殊函数;当函数只在有限点集上给定函数值,要在包含该点集的区间上用公式给出函数的 简单表达式,这些都涉及到在区间上用简单函数逼近已知复杂函数的问题,这就是函数逼近问题.上章讨论的插值法就是函数逼近问题的一种.本章讨论的函数逼近,是指“对函数类A中给定的函数,记作,要求在另一类简单的便于计算的函数类B中求函数,使与的误差在某种度量意义下最小”.函数类A通常是区间上的连续函数,记作,称为连续函数空间,而函数类B通常为n次多项式,有理函数或分段低次多项式等.函 数逼近是数值分析的基础,为了在数学上描述更精确,先要介绍代数和分析中一些基本概念及预备知识. 数学上常把在各种集合中引入某些不同的确定关系称为赋予集合以某种空间结构,并将为样的集合称为空间.例如将所有实n维向量组成集合,按向量加法及向量与数的乘法构成实数域上的线性空间,记作,称为n维向量空间.类似地,对次数不超过n(n为正整数)的实系数多项式全体,按通常多项式与多项式加法及数与多项式乘法也构成数域上的一个线性空间,用表示,称为多项式空间.所有定义在上的连续函数集合,按函数加法和数与函数乘法构 成数域上的线性空间,记作.类似地,记为具有p阶的连续导数的函数空间. 定义1设集合S是数域P上的线性空间,元素,如果存在不全为零的数,使得

, (3.1.1)则称线性相关.否则,若等式(3.1.1)只对成立,则称线性无关. 若线性空间S是由n个线性无关元素生成的,即对都有 则称为空间S的一组基,记为,并称空间S为n维空间,系数称为x在基下的坐标,记作,如果S中有无限个线性无关元素,…,则称S为无限维线性空间. 下面考察次数不超过n次的多项式集合,其元素表示为 , (3.1.2)它由个系数唯一确定.线性无关,它是的一组基,故,且是的坐标向量,是维的.对连续函数,它不能用有限个线性无关的函数表示,故是无限维的,但它的任一元素均可用有限维的逼近,使误差 (为任给的小正数),这就是著名的Weierstrass定理.定理1(Weierstrass)设,则对任何,总存在一个代数多项式,使

matlab中的最小二乘法拟合指数函数(人口问题)

紧急:用matlab中的最小二乘法拟合指数函数(人口问题) 2008-5-11 18:37 提问者:337645394|悬赏分:10|浏览次数:8496次 t=[1971:1:1990]; y=[8.5229 8.7177 8.9221 9.0859 9.2420 9.3717 9.4974 9.6259 9.7542 9.8705 10.0072 10.1654 10.3008 10.4357 10.5851 10.7507 10.9300 11.1026 11.2704 11.4333]; 拟合曲线y=exp(a*t+b) 希望您上机操作一下,给出具体的编写程序. x=[1971:1990]; y=[8.5229 8.7177 8.9221 9.0859 9.2420 9.3717 9.4974 9.6259 9.7542 9.8705 10.0072 10.1654 10.3008 10.4357 10.5851 10.7507 10.9300 11.1026 11.2704 11.4333]; z=log(y); p=polyfit(x,z,1) y1=polyval(p,x); 由此程序求得y1=exp(0.0147*x-26.7773) 再绘图plot(x,y,'o',x,y1),结果点都在拟合的曲线的下面,谁能帮我找出毛病并修改一下? 问题补充: 并写出答案的结果 2008-5-11 21:21 最佳答案 呵呵,还需要转换一次啊。及y1=exp(z1) clear all x=[1971:1990]; y=[8.5229 8.7177 8.9221 9.0859 9.2420 9.3717 9.4974 9.6259 9.7542 9.8705 10.0072 10.1654 10.3008 10.4357 10.5851 10.7507 10.9300 11.1026 11.2704 11.4333]; fun=inline('exp(a(1)*t+a(2))','a','t') a=nlinfit(x,y,fun,[0.01 -20]) xx=1970:1990; yy=exp(a(1)*xx+a(2)); plot(x,y,'o',xx,yy) z=log(y); p=polyfit(x,z,1)

MATLAB在非线性曲线拟合中的应用研究

MATLAB 在非线性曲线拟合中的应用小结 摘要:归纳总结了非线性曲线拟合的方法、求解步骤和上机操作过程 关键词:曲线拟合非线性MATLAB 正文: 1.曲线拟合的基本原理 已知一组测定的数据(例如N 个点(xi,yi )去求得自变量x 和因变量y 的一个近似解析表达式y=φ(x )。若记误差δi=φ(xi )-yi ,i=1,2,…N ,则要使误差的平方和最小,即要求: ∑==N i i Q 1 2 δ 为最小,这就是常用的最小二乘法原理。 2 .MATLAB 曲线拟合的相关方法 2.1.函数形式: (1)多项式拟合函数polyfit ,调用格式为: p=polyfit (x,y,n ) 其中x ,y 为参与曲线拟合的实验数据,n 为拟合多项式的次数,函数返回值为拟合多项式的系数(按降幂排列)。n=1时,就为线性拟合。 例1:给出表1数据,试用最小二乘法求一次和二次拟合多项式。 表1 数据 在MATLAB 命令窗口中输入: clear; close; x=-1:0.25:1; y=[-0.2209,0.3295,0.8826,1.4392,2.0003,2.5645,3.1334,3.7061,4.2836] p1=polyfit(x,y,1) p2=polyfit(x,y,2) y1=polyval(p1,x); y2=polyval(p2,x); plot(x,y,'+',x,y1,'r:',x,y2,'k-.') 运行结果:

拟合多项式为:y*=2.0516+2.0131和y*=0.0313x2+2.2516x+2.20001 (2)非线性数据拟合函数lsqcurvefit 调用格式为: c=lsqcurvefi (t'fun',x0,xdata,ydata ) 其中'fun'为拟合函数的M -函数文件名,x0为初始向量,xdata,ydata 为参与曲线拟合的实验数据。函数返回值c 为非线性函数fun 的拟合系数。 例2:2004年全国大学生数学建模竞赛C 题(酒后驾车)中给出某人在短时间内喝下两瓶啤酒后,间隔一定的时间测量他的血液中酒精含量y (毫克/百毫升),得到数据如表2。 表2 酒精含量与饮酒时间的实验数据 通过建立微分方程模型得到短时间内喝酒后血液中 酒精浓度与时间的关系为: )(321t c t c e e c y ---= (2) 根据实验数据,利用非线性拟合函数lsqcurvefit ,确定模型(2)式中的参数c1,c2,c3。求解过程为: 先编写一个M -函数文件Example2_1: function f=Example2_1(c,tdata) f=c(1)*(exp(-c(2)*tdata)-exp(-c(3)*tdata)); 保存后,在命令窗口中输入: clear tdata=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16]; ydata=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 8 15 12 10 7 7 4]; c0=[1 1 1];

matlab指数函数拟合

matlab指数函数拟合 浏览次数:347次悬赏分:50 |解决时间:2011-5-25 19:18 |提问者:孤倚修竹 x=[39;47;45;47;65;46;67;42;67;56;64;56;59;34;42;48;45;18;20;19;36;50;39;21 ;44;53;63;29;25;69]; y=[144;150;138;145;162;142;170;124;158;154;162;150;140;110;128;130;135; 114;116;124;136;142;120;120;160;158;144;130;125;175]; y=exp(a+bx) 求a b的值 最佳答案 利用cftool工具可以很快得到结果。 General model Exp1: f(x) = a*exp(b*x) Coefficients (with 95% confidence bounds): a = 101.8 (92.97, 110.6) b = 0.006974 (0.005257, 0.00869) Goodness of fit: SSE: 2459 R-square: 0.7167 Adjusted R-square: 0.7065 RMSE: 9.372 exp(a)可以当做常数。%%%%%%%%%%%%%%%%%%%%%%%% 1 command window里输入cftool; 2 点data,输入x和y的数据; 3 点fitting,然后点Newfit,在Type of fit 里选择指数拟合; 4 选好以后,点击apply即可; 追问 不好意思啊,我们的作业里面要求在common window里面直接输入代码来计算结果,能不能不用快捷操作给出一份指数拟合的代码啊,就是我在这里直接复制粘贴以后能出来运行结果的 回答 x=[39 47 45 47 65 46 67 42 67 56 64 56 59 34 42 48 45 18 20 19 36 50 39 21 44 53 63 29 25 69]; y=[144 150 138 145 162 142 170 124 158 154 162 150 140 110 128 130 135 114 116 124 136 142 120 120 160 158 144 130 125 175]; y=log(y');

相关文档
相关文档 最新文档