搜档网
当前位置:搜档网 › 利用Excel软件进行非线性拟合的非编程方法

利用Excel软件进行非线性拟合的非编程方法

利用Excel软件进行非线性拟合的非编程方法
利用Excel软件进行非线性拟合的非编程方法

利用Excel软件进行非线性拟合的非编程方法

余亮

摘要:一种在Excel软件中进行非线性拟合的方法,并通过实例说明了该方法的有效性和实用性。

关键词:数据分析非线性曲线拟合非线性规划

曲线拟合是数据分析和数据处理的重要工作之一。在利用数据对系统的物理和化学现象进行深入研究时,往往需要利用机理数学模型和试验数据拟合。另外由于机理数学模型是在一定的物理化学理论基础上建立的,所以各个参数以及不同数据的性质也是各不相同的。因此在进行数据分析的时候,不同的数据往往需要根据它在模型中的地位和特性进行特殊的处理。

微软公司Office套件中的Excel已经成为许多场合下的数据台帐工具。作为一种标准的数据记录和管理工具,它具有大多数数据分析时所需的基本工具,包括图形和线性回归等。为了能够利用Excel进行更多的数据分析工作,一些人提出了利用其内嵌BASIC(VBA)进行编程处理的方法。但是由于要求进行程序编制,所以并不是一般工程技术人员可以容易掌握的一种途径。

对于非线性拟合这个特殊的问题,经过适当转换,可以将它转换为一个非线性规则问题,从而利用Excel附属的规划求解工具能很容易地进行处理。

1 拟合和规划的等价关系及Excel中的规划求解工具

(1)拟合问题的数学表示

不失一般性,以最小二乘法为例,拟合问题的数学表示如下:

有数据x和y各为以列向量,假定它们具有关系y=f(x,a,b),其中:a为已知常数共n个、b为待定参数共m个。

定义最小二乘误差为:

问题为:求b使得E为最小。

(2)规划问题的数学表示目标函数:f(b0)

限制条件:G(b0)<0

其中:b0为待定参数。

不失一般性,假定需要得到目标函数的最小值。

问题为:在满足限制条件的前提下求解目标函数的最小值以及相应的参数

b0。

(3)拟合与规划之间的等价关系

显然,令拟合问题中的待定参数b为规划问题中的参数b0,令拟合问题中的最小二乘误差函数E为规划问题中的目标函数,令规划问题中的限制条件为空,则求解该规划问题就可以得到拟合问题的解。显然,因为拟合问题中的E

函数为非线性函数,在这里需要规划问题也是一个非线性规划问题。

(4)Excel中的规划求解工具

当安装Office套件选择了规划求解工具时,在软件菜单的工具菜单中会出现规划求解项目,选中该项目,填写对话框以后,工具会根据对话框中的定义自动进行规划求解。

Microsoft Excel的“规划求解”取自德克萨斯大学奥斯汀分校的Leon Lasdon和克里夫兰州立大学的Allan Waren共同开发的Generalized Reduced Gradient(GRG2)非线性最优化代码。线性和整数规划取自Frontline Systems 公司的John Watson和Dan Fylstra提供的有界变量单纯形法和分支边界法。Microsoft Excel Solver程序代码是以宏的方式提供调用的。使用时不需要关心其具体的实现方法,只需要和它的对话框进行交互就可以了。

2 一个实例

下面是液相吸附平衡式的实例。

往DBS水溶液中投入活性炭,在等温下放置到达吸附平衡.DBS的平衡浓度C与投入活性炭的吸附量q之间的关系列于表1中。

表1 待拟合原始数据

应用非线性最小二乘法估计下式中的参数:

q=bC/(1+aCβ)

显然这个非线性函数是无法直接将它线性化的,必须进行非线性拟合求解。根据经验将初始参数指定为:a=0.3,b=100,β=0.8。表2为在Excel中进行求解的数据准备情况。

表2 数据准备

表格从左到右各列分别为:因变量的原始数据、自变量的原始数据、根据参数计算的估计因变量数据、单个样本点的误差平方。将待定参数的初始值填写存储在准备用于计算的单元格区域F1:F3,并使单元格F4的数值等于由误差平方累计的误差平方和数值。

设定规划求解对话框使目标单元为误差平方和数值对应的单元格F4,并设目标为求极小值,设定可变单元为待定参数数值对应的3个单元格(F1:F3),约束条件为空。经过计算可得对应的3个参数分别为:a=0.654,b=185.100,β=0.878。此时对应的因变量估计值以及误差数据如表3。图1为数据点和拟合线的对照。

图1 数据点和拟合线对照

表3 计算结果

3 方法讨论和结论

从以上实例可以看出,在求解过程中没有使用任何程序的概念。求解过程准备阶段的工作为Excel表格的公式计算,求解过程中人工操作的仅仅是对话框填充。所以本方法在使用上是非常简便的。

由于问题的定义对使用者透明,所以使用者能很方便地根据实际要求进行修正。比如根据已知参数的物理化学意义设定参数的变化范围(利用规划问题的约束条件);或者指定某参数为整数(利用规划求解中的整数规划或者混合规划求解器)。

另外,由于问题的定义是直接在Excel表上构造的,所以可以方便地改变问题的构造方法,从而引入其它的拟合计算方法。比如在表格的误差列中,将原来的计算方法由误差平方更改为误差和原值的比值,则可以按照相对误差的最小重新求得参数的估计值。这种改变对于数值变化范围比较大的情况具有很实用的意义,而在求解时则只需要像书写公式一样更改表格中的计算公式,没有增加任何多余的操作。

余亮(安徽华东冶金学院计算机科学系 243002)

参考文献

[1]张治文,何磊.中文Excel 7.0 for Windows 95教程.北京:科学出版社,1997

[2]朱中南,戴迎春.化工数据处理与实验设计.烃加工出版社,1989 [3]邓乃洋.无约束最优化方法.北京:科学出版社,1982

[4]Jonathan,Bard.Nonlinear Parameter Estimation.New York:Academic Press,1974

粒子群算法在神经网络非线性函数拟合中的应用【精品文档】(完整版)

粒子群算法在神经网络非线性函数 拟合中的应用 一、本文研究和解决的问题 在自动控制问题中,系统辨识的目的是为了建立被控对象的数学模型。多年来,控制领域对于复杂的非线性对象的辨识一直未能很好的解决,神经网络所具有的非线性特性和学习能力使其在系统辨识方面有很大的潜力。为解决具有复杂的非线性、不确定性和不确知对象的辨识问题开辟了一条有效的途径。基于神经网络的系统辨识是以神经网络作为被辨识对象的模型,利用其非线性特性,可建立非线性系统的静态或动态模型。理论上,多层前馈神经网络能够以任意精度逼近任意非线性映射。 但传统神经网络学习算法中存在的收敛速度慢、容易陷入局部最优等缺点,于是设计了基于标准粒子群算法的神经网络非线性函数拟合系统。 二、传统的BP神经网络 BP 神经网络即采用误差反向传播算法的网络,是一种至今仍然最为流行的前馈型神经网络模型。BP 神经网络有很强的非线性映射能力,它能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供给网络进行学习训练,它便能完成由n 维输入空间到m 维输出空间的非线性映射。BP 学习算法属于误差修正型学习,其关键在于根据误差修正输出层和隐含层的连接权值。其学习的基本实现方法是基于最小平方误差准则和梯度下降优化方法来确定权值调整法则。 BP网络建模特点: 非线性映照能力:神经网络能以任意精度逼近任何非线性连续函数。在建模过程中的许多问题正是具有高度的非线性。 并行分布处理方式:在神经网络中信息是分布储存和并行处理的,这使它具有很强的容错性和很快的处理速度。 自学习和自适应能力:神经网络在训练时,能从输入、输出的数据中提取出规律性的知识,记忆于网络的权值中,并具有泛化能力,即将这组权值应用于一般情形的能力。神经网络的学习也可以在线进行。 数据融合的能力:神经网络可以同时处理定量信息和定性信息,因此它可以利用传统的工程技术(数值运算)和人工智能技术(符号处理)。 多变量系统:神经网络的输入和输出变量的数目是任意的,对单变量系统与多变量系统提供了一种通用的描述方式,不必考虑各子系统间的解耦问题。

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

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(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=(c 1,c 2 ,…c n )是一些待定参 数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在

非线性曲线拟合的实证分析

- 17 - 非线性曲线拟合的实证分析 吴 燕 (安徽财经大学,安徽 蚌埠 233041) 【摘 要】文章主要是运用matlab 软件,通过定量分析对非线性曲线模型进行曲线拟合,得到非线性曲线的模型,并找出最佳模型。 【关键词】matlab;双曲线;对数曲线;幂函数曲线;预测 【中图分类号】TP319 【文献标识码】A 【文章编号】1008-1151(2008)09-0017-02 (一)理论概述 在生产和科学实验中,线性模型是回归模型中最常见的一种,但实际中,许多现象之间的关系往往并不是线性的,而是呈现某种曲线关系。这就产生了非线性模型理论方法。 非线性模型指的是关于参数或自变量是非线性函数的模型。非线性模型的形式复杂多样,有双曲线形式、对能够数 形式、幂函数形式等,更复杂的有修正指数曲线、Compterz 曲线以及Logistic 曲线等。如何根据实际的数据选择合适的模型,是建模的关键。总的说来可以参考两种方法:一是根 据散点图来确定类型,即由散点图的形状来大体确定模型类 型;二是根据一定的经济知识背景。 在matlab 软件中,非线性拟合主要是通过函数inline 和命令[beta,r,J] = nlinfit(x,y,fun,beta0)来进行的。其 中,函数inline 是用来定义所要求的函数的;用命令[beta,r,J]= nlinfit(x,y,fun,beta0)来进行拟合,其中x,y 为原始数据,fun 是在M 文件中定义的函数,beta0是函数中 参数的初始值;beta 为参数的最优值,r 是各点处的拟合残差,J 为雅克比矩阵的数值。 (二)实证分析 本文采用某企业在16个月度的某产品产量和单位成本资料的数据,研究二者关系,运用matlab 软件分别对数据进行双曲线拟合、对数曲线拟合,幂函数曲线拟合,并从中找出最佳的拟合形式。 某企业某产品产量和单位成本资料 月度序号 产量(台)x 单机成本(元/台)y 1 4300 346.23 2 4004 343.34 3 4300 327.46 4 5016 313.27 5 5511 310.75 6 5648 307.61 7 5876 314.56 8 6651 305.72 9 6024 310.82 10 6194 306.83 11 7558 305.11 12 7381 300.71 13 6950 306.84 14 6471 303.44 15 6354 298.03 16 8000 296.21 首先,为了明确产量和单机成本是何种关系,先绘制散点图。在matlab 软件中用plot(x,y)命令来做散点图,得到如下图形: 2333333 散点图 从图中可以看出y 和x 不宜采用线性模型来描述,此时考虑非线性模型。根据散点图,y 随着x 的增加而减少,结合 经济学中成本理论的相关知识,可以考虑以下三个模型: 双曲线:y=a+b/x 对数曲线:y=a+b*lnx 幂函数曲线:y=b ax 下面分别给出三种曲线函数的拟合程序: 1.双曲线模型:y=a+b/x x1=[4300,4004,4300,5016,5511,5648,5876,6651,6024,6194,7558,7381,6950,6471,6354,8000]; y1=[346.23,343.34,327.46,313.27,310.75,307.61,314.56,305.72,310.82,306.83,305.11,300.71,306.84,303.44,298.03,296.21]; 先要进行初始参数的计算,选择已知数据的两点(4300,346.23)和(8000,296.21),在matlab 软件中用如下命令来解方程组: [a,b]=solve('346.23=a+b/4300','296.21=a+b/8000'); 得到初始值a= 238.08,b= 465050.81 b01=[238.08,465050.81]; %初始参数值 fun1=inline('b(1)+b(2)./x','b','x'); % 定义函数 [b1,r1,j1]=nlinfit(x1,y1,fun1,b01); y=250+355460/x1; %根据b1写出具体函数 【收稿日期】2008-06-09 【作者简介】吴燕(1983-),安徽巢湖人,安徽财经大学数量经济专业在读生,研究方向为经济优化与应用。

Origin8.0 非线性拟合法

Origin8.0 非线性拟合法 1.打开Origin 8.0软件。 2.在A(X)列输入自变量,在B(Y)列输入因变量。不能把二 者位置搞错。 3.点击analysis下拉菜单→点击Fitting→Nonlinear Curve Fit →Open Dialog… 4.在打开的新窗口中选择Function Selection,点击Gauss下 拉菜单→点击,这时会出现新的页面。然后在新页面进行如下操作: 5.在Independent Variables中选定自变量,在Dependent Variables中选定因变量,在Parameters name 中给出所有待拟合参数的符号如p1,p2,p3…… 6.在Function中建立待拟合的非线性函数关系。 7.就建立了待拟合的非线性函数关系后,依次点击右上角的 Save和右边靠近下方的Ok,这时会出现新的页面。 8.从新页面的Function栏可查看欲用的函数名(即刚建立的 非线性拟合函数);点击新页面的Code,可查看新建的非线性拟合函数;点击Parameters,然后在Value下分别给待拟合参数输入初始值。 9.接下来,可一次次点击下方从左到右第五个按钮,一次一 次进行拟合;也可以击下方从左到右第六个按钮,此时系统会反复进行多次拟合直到收敛为止。收敛后,第五和第六个按钮就都改变颜色变成不能再点击了。这时,点击Ok按钮。结果就出来了。 10.可从中读取待拟合参数的拟合值。 11.双击其中的拟合曲线(Fitted Curves Plot),即可把图放大, 并可按下法进行适当编辑。 12.右键单击横坐标轴或纵坐标轴,点击下拉菜单钟的 Properties…,然后可以选择性调整坐标轴的刻度、刻度线的朝向(朝里或朝外) 13.在Origin中把坐标刻度、刻度线的朝向、数据点的符号、

一种非线性函数的曲线拟合方法

一种非线性函数的曲线拟合方法(函数公式:k = A*(T^a)*exp(E/T) ) 上一篇文章说了,函数的曲线拟合我以前没做过,所以是摸着石头过河,不知道所采用的方法是否合理,虽然是完成了拟合,不过我觉得自己采用的拟合方法还是比较原始的,希望做曲线拟合的朋友多多指教。 原始数据如下: T(K) K 200.00 2.5069E-13 220.00 3.5043E-13 223.00 3.6741E-13 225.00 3.7904E-13 250.00 5.4617E-13 275.00 7.5744E-13 295.00 9.6192E-13 298.00 9.9551E-13 300.00 1.0183E-12 325.00 1.3346E-12 350.00 1.7119E-12 375.00 2.1564E-12 400.00 2.6739E-12 425.00 3.2706E-12 450.00 3.9527E-12 475.00 4.7261E-12 480.00 4.8922E-12 500.00 5.5968E-12 525.00 6.5710E-12 550.00 7.6544E-12 575.00 8.8529E-12 600.00 1.0172E-11

800.00 2.5705E-11 1000.00 5.1733E-11 1250.00 1.0165E-10 目标:拟合成k = A*(T^a)*exp(E/T) 模式的公式, 其中A、a和E为未知常数,是我们需要通过曲线拟合要求出的数据。 拟合目标中的公式是幂逼近和指数逼近的混合,用Matlab的cftool 工具箱的自定义函数来逼近,效果并不理想,所以我就参考了网上的一些博客和百度知道等资源,采取如下策略: 首先将非线性的拟合公式转化为线性公式,再用求解线性方程组的矩阵方法求出未知常数的值。 具体地说,拟合公式的线性化表达式为:log(k) = log(A) + a*log(T) + E/T 。这里有三个未知常数log(A)、a 和E,则依次取T,K各三个数据,组成N 个线性方程组:Cx=b,其中:x=[log(A), a, E], C=[1, log(T), 1/T], b=log(k) 。 解这些线性方程组,得到所有方程组的解组成的解矩阵xMat,其大小为N*3,对解矩阵的每一列求平均,即可得到所求的未知常数值。 根据以上策略,可求得未知常数A、a和E的值如下: A = 3.8858e-020,a = 3.0595,E = -117.2915 程序源码: function [A,a,E]= fun_NLFit(T,K) % 函数FUN_NLFIT() 根据输入T,K的数据集,求出拟合公式k = A*(T^a)*exp(E/T) % 的未知常数A,a,E 。 logT=log(T); logK=log(K);

实验四 插值法与曲线拟合

计算方法实验报告 专业班级:医学信息工程一班姓名:陈小芳学号:201612203501002 实验成绩: 1.【实验题目】 插值法与曲线拟合 2.【实验目的】 3.【实验内容】 4. 【实验要求】

5. 【源程序(带注释)】 (1)拉格朗日插值 #include #include #include #include #include #define n 4 //插值节点的最大下标 main() { double x1[n+1]={0.4,0.55,0.65,0.8,0.9}; double y1[n+1]={0.4175,0.57815,0.69657,0.88811,1.02652}; double Lagrange(double x1[n+1],double y1[n+1],float t); int m,k;float x,y;float X;double z; printf("\n The number of the interpolation points is m ="); //输入插值点的个数 while(!scanf("%d",&m)) { fflush(stdin); printf("\n输入错误,请重新输入:\n"); printf("\n The number of the interpolation points is m ="); } for(k=1;k<=m;k++) { printf("\ninput X%d=",k); while(!scanf("%f",&X)) { fflush(stdin); printf("\n输入错误,请重新输入:\n"); printf("\ninput X%d=",k); } z=Lagrange(x1,y1,X); printf("P(%f)=%f\n",X,z); } getch(); return (0); } double Lagrange(double x[n+1],double y[n+1],float X) { int i,j;

基于BP神经网络的非线性函数拟合

基于BP神经网络的非线性函数拟合 摘要:本文建立BP神经网络对一个多输入多输出系统的二元非线性函数进行拟合,仿真实验表明:在样本数据充足且不含噪声的情况下,训练的精度越高,逼近的效果越好;数据不充足且不含噪声时,训练精度的高低在一定范围内对于网络性能没有决定性的影响,网络性能主要取决于初始化;不管训练数据是否充足,若含有噪声,训练精度过高会使网络泛化能力降低。 0引言 作为当前应用最为广泛的一种人工神经网络,BP网络在函数逼近、模式识别、数据压缩、智能控制等领域有着非常广泛的应用。BP网络由大量简单处理单元广泛互联而成,是一种对非线性函数进行权值训练的多层映射网络,结构简单,工作状态稳定,具有优良的非线性映射能力,理论上它能够以任意精度逼近任意非线性函数。BP神经网络通过学习能够存储大量输入输出样本中蕴含的映射关系,只需提供足够的样本模式对BP网络进行训练,而无需事先了解数学方程。本文采用BP神经网络解决下列函数拟合问题。 函数逼近:设计一个神经网络拟合下列多输入多输出函数: y1=2+x1RP1.5-1.5sin(3x2); y2=x2sin(x1)+x1cos(x2); 1< x1, x2<5 产生200个数据,其中100个用来训练网络,另外100个用于网络模型的测试。1BP神经网络结构和算法 一个典型的3层BP神经网络结构如图1所示,包括输入层、隐含层和输出层。各层

神经元之间无反馈连接,各层内神经元之间无任何连接。其中隐含层的状态影响输入输出之间的关系,及通过改变隐含层的权系数,就可以改变整个多层神经网络的性能。BP 神经网络的学习过程由正向传播和反向传播组成。在正向传播中,输入的样本从输入层经过隐含层之后,传向输出层,在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。反向传播过程中,误差信号从输出层向输入层传播,并对每个隐含层的各个神经元的权系数进行修改,使误差不断减少,直至达到精度要求。BP 算法的实质是求取误差函数最小值问题,通过多个样本的反复训练,一般采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数。 隐含节点 图1 典型3层BP神经网络结构图 2用于函数拟合的BP神经网络模型的建立 为建立函数拟合的BP神经网络模型,一般要考虑以下几步: (1) 样本数据的产生 为简单起见,在x1,x2均属于[1,5]区间内选择均匀分布的200个数据点分别作为训练和测试样本。如图2所示。

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)

数值计算_第6章 曲线拟合的最小二乘法

第6章曲线拟合的最小二乘法 6.1 拟合曲线 通过观察或测量得到一组离散数据序列,当所得数据比较准确时,可构造插值函数逼近客观存在的函数,构造的原则是要求插值函数通过这些数据点,即。此时,序列与 是相等的。 如果数据序列,含有不可避免的误差(或称“噪音”),如图6.1 所示;如果数据序列无法同时满足某特定函数,如图6.2所示,那么,只能要求所做逼近函数最优地靠近样点,即向量与的误差或距离最小。按与之间误差最小原则作为“最优”标准构造的逼近函数,称为拟合函数。 图6.1 含有“噪声”的数据 图6.2 一条直线公路与多个景点 插值和拟合是构造逼近函数的两种方法。插值的目标是要插值函数尽量靠近离散点;拟合的目标是要离散点尽量靠近拟合函数。 向量与之间的误差或距离有各种不同的定义方法。例如: 用各点误差绝对值的和表示: 用各点误差按模的最大值表示: 用各点误差的平方和表示: 或(6.1)

其中称为均方误差,由于计算均方误差的最小值的方法容易实现而被广泛采用。按 均方误差达到极小构造拟合曲线的方法称为最小二乘法。本章主要讲述用最小二乘法构造拟合曲线的方法。 在运筹学、统计学、逼近论和控制论中,最小二乘法都是很重要的求解方法。例如,它是统计学中估计回归参数的最基本方法。 关于最小二乘法的发明权,在数学史的研究中尚未定论。有材料表明高斯和勒让德分别独立地提出这种方法。勒让德是在1805年第一次公开发表关于最小二乘法的论文,这时高斯指出,他早在1795年之前就使用了这种方法。但数学史研究者只找到了高斯约在1803年之前使用了这种方法的证据。 在实际问题中,怎样由测量的数据设计和确定“最贴近”的拟合曲线?关键在选择适当的拟合曲线类型,有时根据专业知识和工作经验即可确定拟合曲线类型;在对拟合曲线一无所知的情况下,不妨先绘制数据的粗略图形,或许从中观测出拟合曲线的类型;更一般地,对数据进行多种曲线类型的拟合,并计算均方误差,用数学实验的方法找出在最小二乘法意义下的误差最小的拟合函数。 例如,某风景区要在已有的景点之间修一条规格较高的主干路,景点与主干路之间由各具特色的支路联接。设景点的坐标为点列;设主干路为一条直线 ,即拟合函数是一条直线。通过计算均方误差最小值而确定直线方程(见图6.2)。 6.2线性拟合和二次拟合函数 线性拟合 给定一组数据,做拟合直线,均方误差为 (6.2) 是二元函数,的极小值要满足 整理得到拟合曲线满足的方程:

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

MATLAB 在非线性曲线拟合中的应用小结 摘要:归纳总结了非线性曲线拟合的方法、求解步骤和上机操作过程 关键词:曲线拟合非线性MA TLAB 正文: 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];

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

曲线拟合的数值计算方 法实验 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(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=(c 1,c 2,…c n )是一些待定参数。当c 在f 中出现时,称为线性模型,否则称为。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c 使得拟合模型与实际在各点的(或),c)-f (f y e k k k 的平方和达到最小,此时所求曲线称作在加权最小二乘意义下对数据的拟合曲线。有许多求解拟合曲线的成功方法,对于线性模型一般通过建立和求解来确定参数,从而求得拟合曲线。至于,则要借助求解非线性方程组或用最优化方法求得所需参数才能得到拟合曲线,有时称之为非线性。 曲线拟合:与路径转化时的误差。值越大,误差越大;值越小,越精确。 2.最小二乘法拟合:

matlab非线性曲线拟合

m atlab非线性曲线拟合 最近在用matlab做非线性曲线拟合,发现matlab功能确实很强大,总结其方法有如下几种: 一、Matlab非线性拟合工具箱 单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。假设我们要拟合的函数形式是y=a+(b-a)*c^2*(c^2-x^2)/((c^2-x^2)^2+(2*d*x)^2);其中 a,b,c,d是待定系数。 在命令行输入数据: x=8:0.01:12.4; y=real(epsilon); 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 nam e”,通过“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+(b-a)*c^2*(c^2-x^2)/((c^2-x^2)^2+(2*d*x)^2),设置参数a、b、c、d的上下限,然后点击OK。 5)类型设置完成后,点击“Apply”按钮,就可以在Results框中得到拟合结果,如下例: General model: f(x) = a+(b-a)*c^2*(c^2-x^2)/((c^2-x^2)^2+(2*d*x)^2) Coefficients (with 95% confidence bounds): a = 3.155 (3.129, 3.181)

非线性回归分析(常见曲线及方程)

非线性回归分析 回归分析中,当研究的因果关系只涉及因变量和一个自变量时,叫做一元回归分析;当研究的因果关系涉及因变量和两个或两个以上自变量时,叫做多元回归分析。此外,回归分析中,又依据描述自变量与因变量之间因果关系的函数表达式是线性的还是非线性的,分为线性回归分析和非线性回归分析。通常线性回归分析法是最基本的分析方法,遇到非线性回归问题可以借助数学手段化为线性回归问题处理 两个现象变量之间的相关关系并非线性关系,而呈现某种非线性的曲线关系,如:双曲线、二次曲线、三次曲线、幂函数曲线、指数函数曲线(Gompertz)、S型曲线(Logistic) 对数曲线、指数曲线等,以这些变量之间的曲线相关关系,拟合相应的回归曲线,建立非线性回归方程,进行回归分析称为非线性回归分析 常见非线性规划曲线 1.双曲线1b a y x =+ 2.二次曲线 3.三次曲线 4.幂函数曲线 5.指数函数曲线(Gompertz) 6.倒指数曲线y=a / e b x其中a>0, 7.S型曲线(Logistic) 1 e x y a b-= + 8.对数曲线y=a+b log x,x>0 9.指数曲线y=a e bx其中参数a>0 1.回归: (1)确定回归系数的命令 [beta,r,J]=nlinfit(x,y,’model’,beta0) (2)非线性回归命令:nlintool(x,y,’model’, beta0,alpha)2.预测和预测误差估计:

[Y ,DELTA]=nlpredci (’model’, x,beta ,r ,J ) 求nlinfit 或lintool 所得的回归函数在x 处的预测值Y 及预测值的显著性水平为1-alpha 的置信区间Y ,DELTA. 例2 观测物体降落的距离s 与时间t 的关系,得到数据如下表,求s 关于t 的回归方程2?ct bt a s ++=. 解: 1. 对将要拟合的非线性模型y=a /e b x ,建立M 文件如下: function yhat=volum(beta,x) yhat=beta(1)*exp(beta(2)./x); 2.输入数据: x=2:16; y=[ 10 ]; beta0=[8 2]'; 3.求回归系数: [beta,r ,J]=nlinfit(x',y','volum',beta0); beta 即得回归模型为: 1.0641 11.6036e x y - = 4.预测及作图: [YY,delta]=nlpredci('volum',x',beta,r ,J); plot(x,y,'k+',x,YY,'r')

曲线拟合的最小二乘法论文#精选.

“数值计算方法与算法”论文 题目:浅谈曲线拟合的最小二乘法 院系:化学与材料工程学院20系 姓名: 学号: 时间:2015年春季学期

浅谈曲线拟合的最小二乘法 【摘要】 数值计算方法,一种研究并解决数学问题的数值近似解的方法,主要解决那些理论上有解但是无法轻易且准确求解的数学问题。在当今计算机技术日渐成熟的背景下,数值计算方法的应用被大大的推广,并且极大的推动了自然科学的规律探索及理论验证。本文主要探讨了一种重要的数值计算方法——曲线拟合的最小二乘法的历史发展、理论核心以及应用价值。 关键词:数值计算方法最小二乘法应用 【正文】 数值计算方法,是一种研究并解决数学问题的数值近似解方法,现在通常在计算机上使用来求解数学问题。它主要的计算对象是那些在理论上有解而又无法直接手工计算的数学问题【1】。例如,用已知的数据点来构造合适的插值函数或拟合出合适的曲线来近似代替原函数,从而解决了因难以求得原函数表达式而无 法计算相关函数值的难题;又如,对于一个一般的非线性方程,可能在 计算方程的根时既无一定章程可循,也无理论解法可言,那么这时就可以构造合适的迭代格式如Newton迭代,通过对一个近似的初值进行有限次迭代,就可以得到较精准的根值,从而有效避免了冗长而又复杂的理论求解的过程。 在学习完计算方法与算法这门课程后,我收获了许多实用的计算方法、技巧和思想,而对书中的某些问题的解法的深入思考也让我加深了对这门课程的理解。由于专业的相关需要,我对曲线拟合的最小二乘法这部分知识点进行了重点的学习和深刻的反思,也收获了许多。 1.最小二乘法的发展历史 18世纪中期以后,欧拉(L. Euler, 1707-1783)、梅耶(T. Meiyer, 1723-1762)、拉普拉斯(P. S. Laplace, 1749—1827)等科学家在研究一些天体运动规律时,都得到了一些含有m个变量n个()方程的线性方程组(也就是我们现在所说的线性矛盾方程组),并且各自运用了一些方法解出了方程组的较优解。虽然方法繁琐且奇特,但不失为数学史一次伟大的尝试。 有关于最小二乘法的首次应用于实际计算并成功的记载,是关于第一颗小行星位置的预测,十分之有趣。1801年,意大利天文学家朱塞普·皮亚齐(Giuseppe Piazzi,1746-1826)发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后,全世界的科学家利用皮亚齐的观测数据,开始了寻找谷神星之旅。但是,根据大多数人的计算结果来寻找谷神星,都以失败告终。时年24岁的伟大的数学家高斯(C.F.Gauss, 1777

非线性函数拟合

用非线性回归nlinfit,如果数据点多些,效果会更好。 function nonlinefit clc;clear; t=[0 4 8 40]; y=[20.09 64.52 85.83 126.75]; beta=nlinfit(t,y,@myfunc,[1 1 1 1]) a=beta(1) k1=beta(2) k2=beta(3) m=beta(4) tt=0:1:40 yy=a+k1*exp(m*tt)+k2*exp(-m*tt) plot(t,y,'o',tt,yy) function y1=myfunc(const,t) a=const(1); k1=const(2); k2=const(3); m=const(4); y1=a+k1*exp(m*t)+k2*exp(-m*t); %或者用以下代码,更为简捷。 clc;clear; t=[0 4 8 40]; y=[20.09 64.52 85.83 126.75]; myfunc=inline('beta(1)+beta(2)*exp(beta(4)*t)+beta(3)*exp(-beta(4) *t)','beta','t'); beta=nlinfit(t,y,myfunc,[1 1 1 1]); a=beta(1),k1=beta(2),k2=beta(3),m=beta(4) %test the model tt=0:1:40 ; yy=a+k1*exp(m*tt)+k2*exp(-m*tt); plot(t,y,'o',tt,yy,'r') 结果:

计算方法离散数据曲线拟合

第三章 数据拟合 知识点:曲线拟合概念,最小二乘法。 1.背景 已知一些离散点值时,可以通过构造插值函数来近似描述这些离散点的运动规律或表现这些点的隐藏函数 曲线拟合方法也可以实现这个目标,不同的是构造拟合函数。两种方法的一个重要区别是:由插值方法构造的插值函数必须经过所有给定离散点,而曲线拟合方法则没有这个要求,只要求拟合函数(曲线)能“最好”靠近这些离散点就好。 2.曲线拟合概念 实践活动中,若能观测到函数y=f(x )的一组离散的实验数据(样点):(x i ,y i ), i =1,2…,n 。就可以采用插值的方法构造一个插值函数?(x),用?(x)逼近f(x )。插值方法要求满足插值原则 ?(x i )=y i ,蕴涵插值函数必须通过所有样点。另外一个解决

逼近问题的方法是考虑构造一个函数?(x )最优靠近样点,而不必通过所有样点。如图。 即向量T=(?(x 1), ?(x 2),…?(x n ))与Y=(y 1,y 2,。。。,y n )的某种误差达到最小。按T 和Y 之间误差最小的原则作为标准构造的逼近函数称拟合函数。 曲线拟合问题:如何为f(x )找到一个既简单又合理的逼近函数?(x)。 曲线拟合:构造近似函数?(x),在包含全部基节点x i (i =1,2…,n)的区间上能“最好”逼近f(x )(不必满足插值原则)。 逼近/近似函数y =?(x)称经验公式或拟合函数/曲线。 拟合法则:根据数据点或样点(x i ,y i ),i =1,2…,n ,构造出一条反映这些给定数据一般变化趋势的逼近函数y =?(x),不要求曲线?(x )经过所有样点,但要求曲线?(x)尽可能靠近这些样点,即各点误差δi =?(x i )-y i 按某种标准达到最小。 均方误差/误差平方和/误差的2-范数平方: 常用误差的2-范数平方作为总体误差的度量,以误差平方和达到最小作为最优标准构造拟合曲线的方法称为曲线拟合的最小二乘法(最小二乘原理)。 3.多项式拟合 2 4 4 2 ? ? ? ? ? ? ? ? -4 -2 样点 y =?(x) ?(x i ) y i =f(x i ) ∑==n i i 122 2 ||||δδ

非线性拟合的初值问题

第24卷第1期吉首大学学报(自然科学版)Vol.24No.1 2003年3月J ournal of J ishou University(Natural Science Edi ti on)Mar.2003 文章编号:1007-2985(2003)01-0037-03 非线性拟合的初值问题* 胡亮 (昆明理工大学数理系,云南昆明650224) 摘要:综述了非线性拟合初值的求解方法,并在前人研究的基础上提出了常见非线性模型初值的简便求法.该方法既可在计算机上编程实现,亦可利用计算机数学分析工具M atlab,Maple,Mathematica,M atcad,微软EXCEL及微软ORIGIN等直接求解. 关键词:数据处理;非线性拟合;插值法;数值微分 中图分类号:O241;O245文献标识码:A 曲线拟合是数据分析和数据处理的重要工作之一.曲线拟合可分为线性拟合和非线性拟合.许多数据关系可化为线性模型,但数据关系极其复杂;非线性模型也是工程技术和预测分析中常遇到的数据关系[1~3].非线性模型参数需用(加权)最小二乘法或最优化方法求解.通常的求解方法具有局部收敛性,需要给出适合的初值,初值准确与否是整个求解工作成败的关键.目前各种数学分析工具用于非线性拟合时,都要给出参数初值.Matlab,Maple,Mathematica可用求极小值或最小二乘函数公式求非线性模型参数; Matcad则有多种非线性拟合公式,其中包括广义非线性拟合公式genfit;微软EXC EL应用/规划求解0工具也能进行非线性拟合[4];微软ORIGI N则提供了许多拟合函数.但是上述方法都需要设定初值,Matcad的genfit还要求参数偏导的初值.通常初值设定是凭经验进行猜测和试探,盲目性很大,难于求得合适的初值,因此笔者拟对该初值问题进行了探讨. 1初值估算方法概述 由于非线性拟合比较复杂,因此应尽可能将模型线性化,如进行取变量的倒数、对数等数学变换,关系式的微分-积分线性化变换[3,4],分段线性化,根据专业理论简化模型(如忽略小量)等,将非线性拟合问题转化为线性拟合问题.对于不能线性化的模型,其最优化拟合就存在参数初值问题.首先,可进行专业理论分析确定参数数值范围,在这个范围内设定初值.其次,最简单的方法是选定几组实验值代入模型,联立其中简单的方程求解参数[1~3];或者用消元法得到单参数的非线性方程,用较宽的求解方法求解,如劈因子法;或研究其大范围的收敛性,得到近似初值[6],该方法需要通过数学分析确定单变量方程的收敛区间.对于多参数、高度复杂的非线性拟合,可采用各种确定性和随机性的全局最优算法.但是,全局最优理论和方法比较复杂,需要繁琐的编程和大量的计算.同时,线性化变换不如非线性拟合直接,可能仅得到近似值.因此,有必要对应用广泛而又常见的非线性拟合寻找简便的参数初值确定方法. 2几种初值估算方法 2.1参数消元法 最常见的非线性拟合是包含3个参数的拟合问题.其中带常数项的幂函数和指数函数在应用中常常用到,其典型方程式为y=ax b+c和y=ab x+c(或y=a e b x+c),指数函数的2种形式很容易互相转 *收稿日期:2002-06-02 作者简介:胡亮(1964-),男,四川省泸州市人,昆明理工大学数理系博士研究生,主要从事计算机与应用化学研究.

相关主题