用MATLAB进行数据拟合讲解

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

(2)
i1 k 1
问题归结为,求 a1,a2, …am 使 J(a1,a2, …am) 最小。
线性最小二乘法的求解:预备知识
超定方程组:方程个数大于未知量个数的方程组

r11a1


r12a2

r1m am

y1
(n m)
rn1a1 rn2a2 rnmam yn
拟合
对于情况较复杂的实际问题(因素不易化简,作用 机理不详)可直接使用数据组建模,寻找简单的因果变 量之间的数量关系, 从而对未知的情形作预报。这样组 建的模型为拟合模型。 拟合模型的组建主要是处理好观 测数据的误差,使用数学表达式从数量上近似因果变量 之间的关系。拟合模型的组建是通过对有关变量的观测
数据的观察、分析和选择恰当的数学 表达方式得到的。
拟合
1. 拟合问题引例 2.拟合的基本原理
拟合问题引例1
已知热敏电阻数据:温度t(0C) 20.5 32.7 51.0 73.0 95.7 电阻R() 765 826 873 942 1032
求600C时的电阻R。
1100
1000
设 R=at+b
可得最小二乘意义下的解。
3.多项式在x处的值y可用以下命令计算: y=polyval(a,x)
y
+
+
+
+
+ (xi +i,yi)
+
+
y=f(x) +
x i 为点(xi,yi) 与曲线 y=f(x) 的距离
拟合与插值的关系
问题:给定一批数据点,需确定满足特定要求的曲线或曲面 解决方案: •若要求所求曲线(面)通过所给所有数据点,就是插值问题; •若不要求曲线(面)通过所有数据点,而是要求它反映对象 整体的变化趋势,这就是数据拟合,又称曲线拟合或曲面拟合。
最临近插值、线性插值、样条插值与曲线拟合结果:
0
2
4
6
8
10
12
14
16
18
0
5
ÒÑÖªÊý¾Ýµã 10
25
ÒÑÖªÊý¾Ýµã 20
15
È ý ´ Î ¶ à Ï î Êlin½es²t å Ö µ
10
5
0
0
2
4
6
8
10
12
14
16
18
15
È ý ´ Î ¶ à Ï î Êne½ar²estå Ö µ
i 1
则称a为上述超定方程的最小二乘解。
线性最小二乘法的求解
所以,曲线拟合的最小二乘法要解决的问题,实际上就是 求以下超定方程组的最小二乘解的问题。
其中
Ra=y
r1 ( x1 ) rm ( x1 )
R
,
r1 ( xn ) rm ( xn )
a1
a


900
a,b为待定系数
800
700
20
40
60
80
100
拟合问题引例2
已知一室模型快速静脉注射下的血药浓度数据(t=0注射300mg) 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
1、线性最小二乘拟合 2、非线性最小二乘拟合
用MATLAB作线性最小二乘拟合
1. 作多项式f(x)=a1xm+ …+amx+am+1拟合,可利用已有程序: a=polyfit(x,y,m)
输出拟合多项式系数
输入同长度
拟合多项
a=[a1, …am , am+1] (数组)) 的数组X,Y
式次数
2. 对超定方程组 Rnmam1 yn1 (m n) ,用 a R \ y
即 Ra=y
r11 r12 r1m
a1
y1
其中 R


,
a



,
y




rn1 rn2 rnm
am
yn
超定方程一般是不存在解的矛盾方程组。
n
如果有向量a使得
(ri1a1 ri2a2 rimam yi )2 达到最小,
求血药浓度随时间的变化规律c(t).
作半对数坐标系(semilogy)下的图形
2
10
MATLAB(aa1)
c(t) c0ekt
101
c, k为待定系数
0Biblioteka Baidu
10
0
2
4
6
8
曲线拟合问题的提法
已知一组(二维)数据,即平面上 n个点(xi,yi) i=1,…n, 寻求一个函数(曲线)y=f(x), 使 f(x) 在某种准则下与所 有数据点最为接近,即曲线拟合得最好。

,
am
(3)
y1
y




yn
定理:当RTR可逆时,超定方程组(3)存在最小二乘解, 且即为方程组
RTRa=RTy
的解:a=(RTR)-1RTy
线性最小二乘拟合 f(x)=a1r1(x)+ …+amrm(x)中 函数{r1(x), …rm(x)}的选取 1. 通过机理分析建立数学模型来确定 f(x);
(1)
其中 a1,a2, …am 为待定系数。
第二步: 确定a1,a2, …am 的准则(最小二乘准则):
使n个点(xi,yi) 与曲线 y=f(x) 的距离i 的平方和最小 。
n
n
记 J (a1, a2 ,am )

2 i

[ f (xi ) yi ]2
i 1
i 1
nm
[ ak rk (xi ) yi ]2
2. 将数据 (xi,yi) i=1, …n 作图,通过直观判断确定 f(x):
f=a1+a2x +
++
++
f=a1+a2x+a3x2 +
+
+ +
+
f=a1+a2x+a3x2
++ +
+ +
f=a1+a2/x +
+++ +
f=aebx
+
+
++ +
+ f=ae-bx + + ++
用MATLAB解拟合问题
函数插值与曲线拟合都是要根据一组数据构造一个函数作 为近似,由于近似的要求不同,二者的数学方法上是完全不同 的。
实例:下面数据是某次实验所得,希望得到X和 f之间的关系?
x1 2 4
7
9
12 13 15 17
f 1.5 3.9 6.6 11.7 15.6 18.8 19.6 20.6 21.1
MATLAB(cn)
20
25
25
ÒÑÖªÊý¾Ýµã 20
15 spline
10 Èý´Î¶àÏîʽ²åÖµ
5
0
0
2
4
6
8
10
12
14
16
18
曲线拟合问题最常用的解法——线性最小二乘法的基本思路
第一步:先选定一组函数 r1(x), r2(x), …rm(x), m<n, 令
f(x)=a1r1(x)+a2r2(x)+ …+amrm(x)
相关文档
最新文档