数模培训_数据拟合方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
u 直线y=a1x+a2 u 多项式 y=a1xm+…+amx+am+1 (一般m=2,3,不宜过高) u 双曲线(一支) y=a1/x+a2 u 指数曲线 :拟合前需作变量代换,化为线性函数。 对已知数据,用什么样的曲线拟合最好,可以在直观判断的基础上,选
择几种曲线分别作拟合,然后比较,看那条曲线的最小二乘指标J最小。
a=eA= 3.072525924,
于是得到此模型下的最小二乘拟合曲线
g(x)= 3.072525924e0.5057x 。
算例
(3) 比较上面的结果如下:
i
0
1
2
3
4
xi
1.00
1.25
1.50
1.75
2.00
f(xi)
5.10
5.79
6.53
7.45
8.46
直线模型
4.99
5.83
6.67
7.50
y=a+bx+cx2与(xi,yi),i=0,1,2,3,4,做最小二乘拟合,yi=f(xi)。列表计算
如下:
i
0
1
2
3
4
xi
1.00
Yi=f(xi)
5.10
r1(x)=1
1
r2(x)=x
1.00
r3(x)=1x2 1
1.00
1 .0000
1
1 .25
1 .5625
R 1 1 .50 2 .2500
0.77436 1.11299
0.118203
求解法方程组得到 a0=0.27139,a1=-0.07768,
于是得到该模型下的最小二乘拟合曲线为
g(x)=1/(0.27139-0.07768x)。
算例
l 指数曲线模型 y=aebx
选择y=aebx,取对数lny=lna+bx,令Y=lny,A=lna,取r1(x)=1,r2(x)=x,
线性最小二乘法原理
3. 求解方法
l 描出数据的图示; l 观察并选择不同的数学函数进行拟合; l 比较多种拟合结果,选择其中较好的一种或者某几种作为备选结果;
注·意:通常需要将非线性函数rk(x)的转化成线性的函数Rk(x), 然后再用Rk(x)进行拟合,计算中通常需要列下表:
i
0
1
…
n
xi yi=f(xi) R1(x)
1 1 .75
3 .0625
1 2 .00 4 .0000
1.25
1.50
1.75
2.00
5.79
6.53
7.45
8.46
1
1
1
1
1.25
1.50
1.75
2.00
1.5625
2.25
3.0625
4.00
RTR11111175..1.5215.65802751125.5.271010.55193..118.60.077865257125401.5.010310.0983..681111178851111272....0752058505000111324.0.0...050202066505022000550
0.12e-2
用Matlab进行数据拟合
1. 多项式曲线拟合: polyfit.
p=polyfit(x,y,m) 其中, x, y为已知数据点向量, 分别表示横,纵坐 标, m为拟合多项式的次数, 结果返回m次拟合 多项式系数, 从高次到低次存放在向量p中.
y0=polyval(p,x0) 可求得多项式在x0处的值y0.
要求Y=A+bx与(xi,Yi),i=0,1,2,3,4,做最小二乘拟合,Yi=lnf(xi)。计算结果 如下:
i
0
1
2
3
4
xi f(xi) Yi=lnf(xi)
r1(x)
r2(x)
1
1
R 1
1
1
1
1 . 25
1 . 50
1 . 75
2 . 00
1.00 5.10 1.629240540
求血药浓度随时间的变化规律c(t).
2
10
1
10
0
10
0
2
4
6
8
半对数坐标系(semilogy)下的图形
Log10c(t)=a t + b
c(t) c0ekt c, k为待定系数
数据拟合问题的提法
数据拟合问题:已知一维(二维,…)数据,即平面上的n个点(xi,
yi),i=1,2,…,n,xi互不相同,寻求一个函数(曲线)y=f(x),使f(x)在某 种准则下与所有数据点最为接近,即曲线拟合的最好,如下图所示(图 中δi为(xi,yi)与y=f(x)的距离)。
下:
i
0
1
2
3
4
xi
1.00
1.25
1.50
1.75
2.00
f(xi)
5.10
5.79
6.53
7.45
8.46
Yi=1/f(xi) 0.196078 0.172712 0.153139 0.134228 0.118203
r1(x)
1
1
1
1
1
r2(x) 1
1
R 1
1
1
1.00
1.25
1.50
75.50
7.50 11.875
1 2.00
算例
1.629240054
RTY
1 1
1 1.25
11.5011.7512.00112...870750668412031624322920493
9.405342918 14.42408932
2.13534941 7
求解法方程组得到
A=1.1225,b=0.5057,
方程组(3)可表为
RTRA=RTy
(4)
(4)称为法方程组,当{r1(x),…,rm(x)}线性无关时,R列满秩,RTR可 逆,于是方程组(4)有唯一解
A=(RTR)-1RTy
(5)
可以看出,只要f(x)关于待定系数a1,…,am线性,在最小二乘准则 (2)下得到的方程组(3)关于a1,a2,…,am也一定是线性的,故称线 性最小二乘法。
1.75
2.00
1
1 1
1 . 25
1 . 50
1 . 75
RTR11
11 1 1.25 1.50 1.75
21.00111
1.25 1.50 1.75
75.50
7.50 11.875
2 . 00
1 2.00
算例
0.196078
RTY11
1 1.25
1 1.50
11.75 12.00000...111357432217231892
8.34
多项式模型 5.107 5.769
6.549
7.445
8.46
双曲线模型 5.162 5.738
6.457
7.383 8.618
指数函数模型 5.095 5.781
6.560
7.444 8.448
经过比较,使用多项式与指数函数拟合效果较好。
4
2 i
i 0
0.49e-1 0.85e-3
0.42e-1
数据拟合与线性最小二乘法
教学内容
数据拟合问题的提法 数据拟合问题的求解思路 线性最小二乘法原理 算例 MATLAB 工具箱Curvefit演示
引例1:热敏电阻电阻值的变化规律
已知热敏电阻数据: 温度t(0C) 20.5 32.7 51.0 73.0 95.7 电阻R() 765 826 873 942 1032 求电阻R随温度t的变化规律。
线性最小二乘法原理
2.理论______函数rk(x)的选取
对数据(xi,yi)用线性最小二乘法作拟合时,首要的、也是关键的一步是 恰当地选取r1(x),r2(x),…,rm(x)。 n 如果通过机理分析,能够知道y与x之间应该有什么样的函数关系, 则r1(x),…,rm(x)容易确定。 n 若无法知道y与x之间的关系,可以将数据(xi,yi),i=1,2,…,n作图, 直观地判断应该用什么样的曲线去作拟合。常用的曲线有
1 1.00
1.25 5.79 1.756132292
1 1.25
1.50
6.53
1.8764069 4 1
1.50
1.75
7.45
2.0082140 3 1
1.75
2.00
8.46
2.1353491 7 1
2.00
1 1
RTR
1 1
11 1 1.25 1.50 1.75
21.00111
1.25 1.50 1.75
x0
x1
…
y0
y1
…
R1(x0)
R1(x1)
…
………………
xn yn R1(xn)
Rm(x)
Rm(x0)
Rm(x1)
…
Rm(xn)
这样就容易确定出法方程组RTRA=RTy。上表中后面的m行即为RT。
算例
【例】给定数据(xi,f(xi)),i=0,1,2,3,4,见下表,使选择适当的模型,
求最小二乘拟合函数g(x)。
i
xi f(xi) Yi=lnf(xi)
0 1.00 5.10 1.629
1 1.25 5.79 1.756
【解】:(1)、先描出数据的图示
2 1.50 6.53 1.876
Hale Waihona Puke Baidu
3 1.75 7.45 2.008
4 2.00 8.46 2.135
算例
(2)选定不同的数学函数(模型)或者rk(x)进行拟合 l 直线模型 y=a+bx
g(x)=3.6294+0.5406x+0.9371x2。
算例
l 双曲线模型 y=1/(a0+a1x)
选取y=1/(a0+a1x),令Y=1/y=a0+a1x,此时,r1(x)=1,r2(x)=x。要求
Y=a0+a1x与(xi,yi),i=0,1,2,3,4,做最小二乘拟合,Yi=1/f(xi)。列表计算如
选取y=a+bx,此时,r1(x)=1,r2(x)=x。要求y=a+bx与(xi,yi),
i=0,1,2,3,4,做最小二乘拟合,yi=f(xi)。 列表计算如下:
i
0
1
2
3
4
xi
1.00
1.25
1.50
1.75
2.00
yi=f(xi) 5.10
5.79
6.53
7.45
8.46
r1(x)
1
1
1
1
1
r2(x)
1 1.50
1 1.75
12.00765...457539
33 52
.33 .09
8.46
求解法方程组 75.5071.5.18075a b5 3..2 30 39 3
得到 a=1.6380,b=3.3520,
于是得到该模型下的最小二乘拟合曲线为
g(x)=1.6380+3.3520x。
算例
l 多项式模型 y=a0+a1x+a2x2 选取Y=a+bx+cx2,此时,r1(x)=1,r2(x)=x,r3(x)=x2。要求
1100
设 R=at+b
1000
a,b为待定系数
900
800
700
20
40
60
80
100
引例2:血药浓度的变化规律
对某人用快速静脉注射方式一次性注射某种药物 300mg后,经过时间t采集血样,测得血药浓度c如下表:
t (h) 0.25 0.5 1 1.5 2 3 4 6 8
c (g/ml) 19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01
i
拟合准则还有如最小一乘准则、极大极小准则等。
线性最小二乘法原理
1. 理论———基本理论之ak的确定
根据最小二乘准则,记
n
n
J(a1,a2,…,am)=
2 i
[f(xi)yi]2
i1
i1
(2)
为求a1,a2,…,am是 J 达到最小,只需要利用极值的必要条件
J0(k1, ...m ,), ak
得到关于a1,…,am的线性方程组
in1r1(xi
m
)[akrk
k1
(xi
)
yi
]
0
... ... ... ...
(3)
n
m
i1rm(xi
)[akrk
k1
(xi
)
yi
]
0
线性最小二乘法原理
r1(x1) ... rm(x1)
记
...
...
...
,A=(a1,a2,…,am)T,y=(y1,…,yn)T,
r1(xn ) ... rm(xn )nm
例1 已知观测数据点如表所示
x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 y -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2
分别用3次和6次多项式曲线拟合这些数据点.
编写Matlab程序如下:
x=0:0.1:1 y=[-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2] plot(x,y,'k.','markersize',25) axis([0 1.3 -2 16]) p3=polyfit(x,y,3) p6=polyfit(x,y,6)
1.00
1.25
1.50
1.75
2.00
1
1
R 1
1
1
1
1 . 25
1 . 50
1 . 75
2 . 00
1 1
1
RTR1
11 1 1.25 1.50 1.75
21.00111
1.25 1.50 1.75
75.50
7.50 11.875
1 2.00
算例
5.10
RTY
1 1
1 1.25
y
(xi,yi)
δi
O
x
数据拟合问题的求解思路
线性最小二乘法是解决数据拟合最常用的方法。
基本思路:
令 f(x)=a1r1(x)+a2r2(x)+…+amrm(x)
(1)
其中rk(x)是事先选定的一组函数,ak是待定系数
(k=1,2,…,m,m<n)。
拟合准则是使n个点(xi,yi),i=1,2,…,n,与y=f(xi)的距离 δ 的平方和最小,称为最小二乘准则。
算例
5.10
1
RTY 1
1
11..1525625112.5.205113.7.05621524..0000765...457539 8.46
33.330 52.090 85.495
求解法方程组得到 a=3.6294,b=0.5406,c=0.9371,
于是得到该模型下的最小二乘拟合曲线为
择几种曲线分别作拟合,然后比较,看那条曲线的最小二乘指标J最小。
a=eA= 3.072525924,
于是得到此模型下的最小二乘拟合曲线
g(x)= 3.072525924e0.5057x 。
算例
(3) 比较上面的结果如下:
i
0
1
2
3
4
xi
1.00
1.25
1.50
1.75
2.00
f(xi)
5.10
5.79
6.53
7.45
8.46
直线模型
4.99
5.83
6.67
7.50
y=a+bx+cx2与(xi,yi),i=0,1,2,3,4,做最小二乘拟合,yi=f(xi)。列表计算
如下:
i
0
1
2
3
4
xi
1.00
Yi=f(xi)
5.10
r1(x)=1
1
r2(x)=x
1.00
r3(x)=1x2 1
1.00
1 .0000
1
1 .25
1 .5625
R 1 1 .50 2 .2500
0.77436 1.11299
0.118203
求解法方程组得到 a0=0.27139,a1=-0.07768,
于是得到该模型下的最小二乘拟合曲线为
g(x)=1/(0.27139-0.07768x)。
算例
l 指数曲线模型 y=aebx
选择y=aebx,取对数lny=lna+bx,令Y=lny,A=lna,取r1(x)=1,r2(x)=x,
线性最小二乘法原理
3. 求解方法
l 描出数据的图示; l 观察并选择不同的数学函数进行拟合; l 比较多种拟合结果,选择其中较好的一种或者某几种作为备选结果;
注·意:通常需要将非线性函数rk(x)的转化成线性的函数Rk(x), 然后再用Rk(x)进行拟合,计算中通常需要列下表:
i
0
1
…
n
xi yi=f(xi) R1(x)
1 1 .75
3 .0625
1 2 .00 4 .0000
1.25
1.50
1.75
2.00
5.79
6.53
7.45
8.46
1
1
1
1
1.25
1.50
1.75
2.00
1.5625
2.25
3.0625
4.00
RTR11111175..1.5215.65802751125.5.271010.55193..118.60.077865257125401.5.010310.0983..681111178851111272....0752058505000111324.0.0...050202066505022000550
0.12e-2
用Matlab进行数据拟合
1. 多项式曲线拟合: polyfit.
p=polyfit(x,y,m) 其中, x, y为已知数据点向量, 分别表示横,纵坐 标, m为拟合多项式的次数, 结果返回m次拟合 多项式系数, 从高次到低次存放在向量p中.
y0=polyval(p,x0) 可求得多项式在x0处的值y0.
要求Y=A+bx与(xi,Yi),i=0,1,2,3,4,做最小二乘拟合,Yi=lnf(xi)。计算结果 如下:
i
0
1
2
3
4
xi f(xi) Yi=lnf(xi)
r1(x)
r2(x)
1
1
R 1
1
1
1
1 . 25
1 . 50
1 . 75
2 . 00
1.00 5.10 1.629240540
求血药浓度随时间的变化规律c(t).
2
10
1
10
0
10
0
2
4
6
8
半对数坐标系(semilogy)下的图形
Log10c(t)=a t + b
c(t) c0ekt c, k为待定系数
数据拟合问题的提法
数据拟合问题:已知一维(二维,…)数据,即平面上的n个点(xi,
yi),i=1,2,…,n,xi互不相同,寻求一个函数(曲线)y=f(x),使f(x)在某 种准则下与所有数据点最为接近,即曲线拟合的最好,如下图所示(图 中δi为(xi,yi)与y=f(x)的距离)。
下:
i
0
1
2
3
4
xi
1.00
1.25
1.50
1.75
2.00
f(xi)
5.10
5.79
6.53
7.45
8.46
Yi=1/f(xi) 0.196078 0.172712 0.153139 0.134228 0.118203
r1(x)
1
1
1
1
1
r2(x) 1
1
R 1
1
1
1.00
1.25
1.50
75.50
7.50 11.875
1 2.00
算例
1.629240054
RTY
1 1
1 1.25
11.5011.7512.00112...870750668412031624322920493
9.405342918 14.42408932
2.13534941 7
求解法方程组得到
A=1.1225,b=0.5057,
方程组(3)可表为
RTRA=RTy
(4)
(4)称为法方程组,当{r1(x),…,rm(x)}线性无关时,R列满秩,RTR可 逆,于是方程组(4)有唯一解
A=(RTR)-1RTy
(5)
可以看出,只要f(x)关于待定系数a1,…,am线性,在最小二乘准则 (2)下得到的方程组(3)关于a1,a2,…,am也一定是线性的,故称线 性最小二乘法。
1.75
2.00
1
1 1
1 . 25
1 . 50
1 . 75
RTR11
11 1 1.25 1.50 1.75
21.00111
1.25 1.50 1.75
75.50
7.50 11.875
2 . 00
1 2.00
算例
0.196078
RTY11
1 1.25
1 1.50
11.75 12.00000...111357432217231892
8.34
多项式模型 5.107 5.769
6.549
7.445
8.46
双曲线模型 5.162 5.738
6.457
7.383 8.618
指数函数模型 5.095 5.781
6.560
7.444 8.448
经过比较,使用多项式与指数函数拟合效果较好。
4
2 i
i 0
0.49e-1 0.85e-3
0.42e-1
数据拟合与线性最小二乘法
教学内容
数据拟合问题的提法 数据拟合问题的求解思路 线性最小二乘法原理 算例 MATLAB 工具箱Curvefit演示
引例1:热敏电阻电阻值的变化规律
已知热敏电阻数据: 温度t(0C) 20.5 32.7 51.0 73.0 95.7 电阻R() 765 826 873 942 1032 求电阻R随温度t的变化规律。
线性最小二乘法原理
2.理论______函数rk(x)的选取
对数据(xi,yi)用线性最小二乘法作拟合时,首要的、也是关键的一步是 恰当地选取r1(x),r2(x),…,rm(x)。 n 如果通过机理分析,能够知道y与x之间应该有什么样的函数关系, 则r1(x),…,rm(x)容易确定。 n 若无法知道y与x之间的关系,可以将数据(xi,yi),i=1,2,…,n作图, 直观地判断应该用什么样的曲线去作拟合。常用的曲线有
1 1.00
1.25 5.79 1.756132292
1 1.25
1.50
6.53
1.8764069 4 1
1.50
1.75
7.45
2.0082140 3 1
1.75
2.00
8.46
2.1353491 7 1
2.00
1 1
RTR
1 1
11 1 1.25 1.50 1.75
21.00111
1.25 1.50 1.75
x0
x1
…
y0
y1
…
R1(x0)
R1(x1)
…
………………
xn yn R1(xn)
Rm(x)
Rm(x0)
Rm(x1)
…
Rm(xn)
这样就容易确定出法方程组RTRA=RTy。上表中后面的m行即为RT。
算例
【例】给定数据(xi,f(xi)),i=0,1,2,3,4,见下表,使选择适当的模型,
求最小二乘拟合函数g(x)。
i
xi f(xi) Yi=lnf(xi)
0 1.00 5.10 1.629
1 1.25 5.79 1.756
【解】:(1)、先描出数据的图示
2 1.50 6.53 1.876
Hale Waihona Puke Baidu
3 1.75 7.45 2.008
4 2.00 8.46 2.135
算例
(2)选定不同的数学函数(模型)或者rk(x)进行拟合 l 直线模型 y=a+bx
g(x)=3.6294+0.5406x+0.9371x2。
算例
l 双曲线模型 y=1/(a0+a1x)
选取y=1/(a0+a1x),令Y=1/y=a0+a1x,此时,r1(x)=1,r2(x)=x。要求
Y=a0+a1x与(xi,yi),i=0,1,2,3,4,做最小二乘拟合,Yi=1/f(xi)。列表计算如
选取y=a+bx,此时,r1(x)=1,r2(x)=x。要求y=a+bx与(xi,yi),
i=0,1,2,3,4,做最小二乘拟合,yi=f(xi)。 列表计算如下:
i
0
1
2
3
4
xi
1.00
1.25
1.50
1.75
2.00
yi=f(xi) 5.10
5.79
6.53
7.45
8.46
r1(x)
1
1
1
1
1
r2(x)
1 1.50
1 1.75
12.00765...457539
33 52
.33 .09
8.46
求解法方程组 75.5071.5.18075a b5 3..2 30 39 3
得到 a=1.6380,b=3.3520,
于是得到该模型下的最小二乘拟合曲线为
g(x)=1.6380+3.3520x。
算例
l 多项式模型 y=a0+a1x+a2x2 选取Y=a+bx+cx2,此时,r1(x)=1,r2(x)=x,r3(x)=x2。要求
1100
设 R=at+b
1000
a,b为待定系数
900
800
700
20
40
60
80
100
引例2:血药浓度的变化规律
对某人用快速静脉注射方式一次性注射某种药物 300mg后,经过时间t采集血样,测得血药浓度c如下表:
t (h) 0.25 0.5 1 1.5 2 3 4 6 8
c (g/ml) 19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01
i
拟合准则还有如最小一乘准则、极大极小准则等。
线性最小二乘法原理
1. 理论———基本理论之ak的确定
根据最小二乘准则,记
n
n
J(a1,a2,…,am)=
2 i
[f(xi)yi]2
i1
i1
(2)
为求a1,a2,…,am是 J 达到最小,只需要利用极值的必要条件
J0(k1, ...m ,), ak
得到关于a1,…,am的线性方程组
in1r1(xi
m
)[akrk
k1
(xi
)
yi
]
0
... ... ... ...
(3)
n
m
i1rm(xi
)[akrk
k1
(xi
)
yi
]
0
线性最小二乘法原理
r1(x1) ... rm(x1)
记
...
...
...
,A=(a1,a2,…,am)T,y=(y1,…,yn)T,
r1(xn ) ... rm(xn )nm
例1 已知观测数据点如表所示
x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 y -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2
分别用3次和6次多项式曲线拟合这些数据点.
编写Matlab程序如下:
x=0:0.1:1 y=[-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2] plot(x,y,'k.','markersize',25) axis([0 1.3 -2 16]) p3=polyfit(x,y,3) p6=polyfit(x,y,6)
1.00
1.25
1.50
1.75
2.00
1
1
R 1
1
1
1
1 . 25
1 . 50
1 . 75
2 . 00
1 1
1
RTR1
11 1 1.25 1.50 1.75
21.00111
1.25 1.50 1.75
75.50
7.50 11.875
1 2.00
算例
5.10
RTY
1 1
1 1.25
y
(xi,yi)
δi
O
x
数据拟合问题的求解思路
线性最小二乘法是解决数据拟合最常用的方法。
基本思路:
令 f(x)=a1r1(x)+a2r2(x)+…+amrm(x)
(1)
其中rk(x)是事先选定的一组函数,ak是待定系数
(k=1,2,…,m,m<n)。
拟合准则是使n个点(xi,yi),i=1,2,…,n,与y=f(xi)的距离 δ 的平方和最小,称为最小二乘准则。
算例
5.10
1
RTY 1
1
11..1525625112.5.205113.7.05621524..0000765...457539 8.46
33.330 52.090 85.495
求解法方程组得到 a=3.6294,b=0.5406,c=0.9371,
于是得到该模型下的最小二乘拟合曲线为