数值计算课程设计,拟合方法与拟合函数的选取

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目:拟合方法与拟合函数的选取

班级:数101班数102班数101班

指导教师:***

提交日期:2013年5月13日

目录

一、拟合问题的提出 (1)

二、拟合准则 (1)

三、拟合函数的选取 (1)

四、函数拟合实 (2)

4.1多项式拟合 (2)

4.2 指数与复合函数拟合 (4)

4.3 分段拟合 (7)

五、总结 (12)

六、参考文献 (12)

一、 拟合问题的提出

在很多科学实验中,我们通过测量或观察等方法获得一组看上去杂乱无章的数据,为了找出这些数据之间的某种规律和联系,即寻找一个较简单的函数曲线,使之在一定准则下最接近这些数据点,以便突显各数据点的先后变化趋势,由此便产生了曲线拟合的概念。

曲线拟合在实际中有着很广泛的实用价值。因为我们所获取的实验数据本身往往带有测量误差,难免会出现个别数据误差过大的现象。相比于插值法,曲线拟合时,不要求曲线严格地经过每一个数据点,这样就能有效降低个别数据对整体数据规律的干扰作用;另外,实验数据往往很多,插值法会比较繁杂,拟合方法则更实际更高效。

二、拟合准则

在曲线拟合中,有几种不同的误差准则:

1.最大误差:

2.平均误差

3.均方根误差

4.误差平方和

通过求误差的最小值,可得该准则下的最佳拟合曲线。由于误差平方和容易进行最小化计算,故而我们通常采用该标准,称之为最小二乘准则。以下课程实验都是在最小二乘准则下实现的。

三、拟合函数的选取

曲线拟合时,首要也最关键的一步就是选取恰当的拟合函数。对于一组给定的数据,

我们可以先做出其散点图,判断应该采用什么样的曲线来作拟合,然后在直观判断的基础上,选取多组曲线分别作拟合,然后比较,看哪条曲线的最小二乘指标最小,也即拟合的最好。

一般来说,选取多项式作为拟合曲线,是简单且常用的。MATLAB 中有现成的多项式拟合程序,调用格式为f=polyfit(x,y,n),其中输入参数x ,y 为要拟合的数据,n 为拟合多项式的系数,输出参数f 为拟合多项式的系数向量。

|

)(|max ||max 11i i n

i i n i y x f E -==≤≤≤≤δ

对于稍微复杂一点的拟合曲线,我们可以先通过线性变换将之转换成简单的线性函数,接着再用多项式拟合的命令f=polyfit(x,y,n)来实现函数的拟合。下面表格列举两个线性变换的例子:

四、函数拟合实例 4.1多项式拟合

例1.给定一组数据点 如下表:

-1.5 -0.7 0 0.5 1.9 2.2 2.9 3.8 4.2 7.52

3.98

2.99

3.57

10.18

12.73

19.81

31.90

38.24

首先,我们在MATLAB 中输入程序

>> x=[-1.5 -0.7 0 0.5 1.9 2.2 2.9 3.8 4.2];y=[7.52 3.98 2.99 3.57 10.18 12.73 19.81

31.90 38.24];

plot(x,y,'b*'),xlabel('x'),ylabel('y') title('表中数据点(xi ,yi )的散点图')

运行后得表中数据的散点图如下(图中*表示数据点的坐标):

),(i i y x i

x i

y

-2

-101

2345

05101520253035

40x

y

表中数据点(xi ,yi )的散点图

因为数据散点图的变化趋势与二次多项式很接近,所以可选用二次多项式作为拟合曲线,设f(x)=ax^2+bx+c 。编程:

>> x=[-1.5 -0.7 0 0.5 1.9 2.2 2.9 3.8 4.2];y=[7.52 3.98 2.99 3.57 10.18 12.73 19.81 31.90 38.24];

f=polyfit(x,y,2);a=f(1),b=f(2),c=f(3)

X=-1.5:0.01:4.2;Y=polyval(f,X);f=polyval(f,x); fy=abs(f-y);E=sum((fy.^2))

plot(x,y,'r*',X,Y,'b-'),xlabel('x'),ylabel('y') title('拟合直线与数据点结合图') 运行后得:

a = 1.9974;

b =0.0021;

c = 3.0188; E = 0.0097 生成如下图形:

-2

-101

2345

05101520253035

40x

y

拟合直线与数据点结合图

即拟合多项式为:f=1.9974x^2+0.0021x+3.0188; 误差很小,只有0.0097.

4.2 指数与复合函数拟合

例2.给出实验数据点

)

,(i i y x 如下表:

在MATLAB 中输入程序: >> x=[2.7 0.1 2.3 1.6 0.7 1.4 0.3];y=[2.64 11.04 3.21 4.03 7.10 4.58 9.37]; >> plot(x,y,'b*'),axis([0,3,0,12]) 得散点图:

00.51 1.52 2.53

2

4

6

8

10

12

据图,我们取两种拟合函数分别为

)0,0(≠>=-b a ae

y bx

)

0(≠+=ab c bx a

y

(1)设 ,在MATLAB 中输入程序

>> x=[2.7 0.1 2.3 1.6 0.7 1.4 0.3];y=[2.64 11.04 3.21 4.03 7.10 4.58 9.37]; Y=log(y);f=polyfit(x,Y ,1);A=f(2);B=f(1);a=exp(A),b=-B X=0:0.01:3;Y=a*exp(-b.*X);f=a*exp(-b.*x); plot(x,y,'r*',X,Y ,'b-'),xlabel('x'),ylabel('y') legend('数据点 (xi,yi)','拟合曲线Y=f(x)') title('数据点(xi,yi)和拟合曲线Y=f(x)的图形') fy=abs(f-y);E1=sum((fy.^2)) 得:

a =10.7441;

b =0.5460; E1 = 1.3072.

)0,0(≠>=-b a ae y bx

相关文档
最新文档