数学建模案例分析-- 插值与拟合方法建模2数据拟合方法及应用

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

§2数据拟合方法及应用

在生产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的一批离散样点,要求由此建立变量之间的函数关系或得到样点之外的数据。与此有关的另一类问题是拟合问题。当原始数据),(,),,(),,(1100n n y x y x y x 有误差时,我们确定的初等函数)(x P y =并不要求经过数据点,而是要求在某种距离意义下的误差达到最小(通常考虑使各数据点误差平方和最小)。

假设已知函数),(x c f y =(这里c 可以是多个未知参数)的一批有误差的数据

)

,(,),,(),,(2211n n y x y x y x 要求据此确定参数c ,这样的问题称为数据拟合。最小二乘法就是求c 使得残差平方和

2

1

)),(()(i n

i i x c f y c Q -=∑=达到最小。这里的建模原理实质上就是数理统计中的回归分析。

1、线性函数(1)建立回归方程

若离散样点),(,),,(),,(2211n n y x y x y x 集中在一条直线的附近,这时可建立线性回归方程

x b a y

ˆˆˆ+=按最小二乘法得到的具体算法是

∑∑∑∑∑=====-=-=-===n

i i i xy n

i i yy n

i i xx n

i i

n

i i

y

x n y x S y

n y S x

n x S y y x x 1

1

2

21

2

21

1

11则有

xx xy S S b

=ˆx b y a

ˆˆ-=(2)线性回归的显著性检验

采用如下检验统计量:

xx S b T σ

ˆˆ=

,其中的)ˆ(2

1ˆ2xx

yy S b S n --=σ

若)2(2

->n t T α,则认为所建立的线性回归方程正确。(3)利用回归方程作区间预测

当0x x =时,y 的置信度为α-1的预测区间是:

)

)(11ˆ)2(ˆˆ,)(11ˆ)2(ˆˆ(2

02

02020xx xx S x x n n t x b a S x x n n t x b a -++∙-++-++∙--+σσαα例1、为研究某一化学反应过程中温度x 对产品得率y 的影响,测得数据如下。x (℃)100110120130140150160170180190y

(%)

45

51

54

61

66

7074

78

85

89

要求拟合出它们的函数关系。

x=[100110120130140150160170180190];

y=[45515461667074788589];close;plot(x,y,’o’);

由于这些点落在一条直线附近,可以用线性函数bx a y +=来拟合,按上面算法通过命令p=polyfit(x,y,1)

求出x y 483.0735.2+-=。

2、可线性化的函数

根据专业知识或离散样点的形状,有时可选择适当的非线性函数来拟合。为确定其中的未知参数,可通过变量转换,把非线性函数转换成线性函数,然后借助线性函数的方法来实现数据拟合。诸如下面所列的曲线函数都能做到线性化:(1)

x

b a y +=1(2)b

ax

y =(3)x

b a y ln +=(4)bx

ae

y =(5)b ae

y =(6)x

be a y -+=

1以x

b

ae y =为例,我们只要作变换y Y x

X ln ,1

==

,就可化为线性函数bX a Y +=ln 。例2、电容器充电后,电压达到100伏,然后开始放电,测得时刻i t (秒)时电压i u (伏)如下表。

t 012345678910u

100

75

55

40

30

20

15

10

10

5

5

要求拟合电压u 与放电时间t 的函数关系。t=[012345678910];

u=[100755540302015101055];close;plot(t,u,’o’)

由于这些点落在曲线)0(,<=b ae u bt

附近,可通过变量转换u U t T ln ,==,化成线性函数

bT a U +=ln 。按上面算法通过如下命令来实现:

T=t;U=log(u);p=polyfit(T,U,1)b=p(1)

a=exp(p(2))

求出078.100,3126.0=-=a b ,这样所拟合的函数t

e

u 3126.078.100-=3、多项式函数

若离散样点的形状表明既不能用线性函数来拟合,又不能用可以线性化的函数来拟合的话,从理论上讲,用一个多项式函数来拟合总是可行的。在实际应用中,最常用的是二次和三次多项式函数。下面通过一个例子来说明。

例3、某种产品在生产过程中的废品率y 与它所含的某种物质量x 有关,现将试验所得16组数据记录列于下表。

x 3436373839393940y 1.30 1.000.730.900.810.700.600.50x 4041424343454748y

0.44

0.56

0.30

0.42

0.35

0.40

0.41

0.60

要求拟合y 与x 的函数关系。

x=[34363738393939404041424343454748];

y=[1.301.000.730.900.810.700.600.500.440.560.300.420.350.400.410.60];close;plot(x,y,’o’)

这些离散样点落在开口向上的二次抛物线2

cx bx a y ++=附近,按最小二乘法,使残差平方和

2

1

2

)(i n

i i i y cx bx a S -++=∑=达到最小。分别对S 求关于a,b,c 的偏导数,并令其为0,得到如下方程组

⎪⎪⎪⎩

⎪⎪⎪

⎨⎧=++=++=++∑∑∑∑∑∑∑∑∑∑∑===========i n

i i n i i n i i n i i i

n i i n i i n i i n i i n

i i

n i i n i i y x c x b x a x y x c x b x a x y c x b x na 1214131

2113

121

1

12

1)()()()()()()()(将以上表中数据代入方程组求出2

0093.08205.04840.18x x y +-=。

下面是用MATLAB 具体实现:

p=polyfit(x,y,2)

xi=linspace(34,48,1000);%绘图的X 轴数据z=polyval(p,xi);%得到多项式在数据点处的值close;

plot(x,y,’ko’,xi,z,’r-’)

若多项式次数太高,则会影响到拟合的精度,这时可考虑用分段多项式拟合。

相关文档
最新文档