数据拟合与最小二乘法.
数据拟合与最小二乘法 Data Fit & Least Squares
最小二乘原理
设已知某物理过程y=f(x)在n个互异点的观测数据
xi yi x1 y1 x2 … .. xn y2 … .. yn
求一个简单的近似函数p(x),使之 “最好”地逼 近f(x),而不必满足插值原则。称函数y= p(x)为经验
y=[42 39
37
35
32
29.5 23.8 21 19];
p1=polyfit(x,y,1) u_m=abs(p1(1))
%拟合一次多项式,返回系数向量
y1=polyval(p1,x); plot(x,y, 'r*',x,y1) k_jam=exp(p1(2)/u_m)
【例3】已知:u-k观测数据,试采用Underwood速度—密度模 型在Matlab平台上进行数据拟合,P.23 ki 10 15 20 25 30 35 40 45 50 55 60 65 70
n
n
n n R 2 ri 2 ( yi b axi ) 0, b i 1 i 1 n n R 2 ri xi 2 ( yi b axi )xi 0, a i 1 i 1
法方程组
bn a xi yi 2 b xi a xi xi原理: 求出使R取最小值时的a、 b、c R取最小值的条件:
R 0, a
R 0, b
R 0 c
R ri ( yi axi2 bxi c)2
u_f=exp(p1(2))
k_jam=abs(1/p1(1))
• 2、推广到2次多项式拟合
• 物理过程y=f(x)为2次多项式
y p( x) ax 2 bx c
• 超定方程组 曲线拟合问题中的偏差:
y1 ax bx1 c 2 y2 ax2 bx2 c y ax 2 bx c n n n
公式或拟合曲线。这就是曲线拟合问题。
广泛用于工程中的参数标定问题。
• 多项式拟合
• 1、直线拟合
y p( x ) ax b
曲线拟合问题中的偏差:
超定方程组
y1 ax1 b y ax b 2 2 yn axn b
r1 y1 ax1 b r y ax b 2 2 2 rn yn axn b
解法方程组,求出a、b
【例1】已知:u-k观测数据,试采用Greenshields速度—密度 线性模型在Matlab平台上进行数据拟合,P.22 ki 20 30 40 50 60 70 80 90 100 110 120 u u f (1 k ) kj ui 107 96 88 86 73 67 58 48 42 38 29
ui lnui
99 94 89 85 80 76 73 69 64 62 59 55 52
k u u f exp( ) km k ln u ln u f km
u f exp(p1(2)) 1 km p1(1)
Underwood速度—密度模型在Matlab平台上的数据拟合
clear all; close all
令:
R r 2 ri ( yi b axi )
2 2 i 1 i 1
n
n
2
最小二乘原理:求出使R取最小值时的a、 b R取最小值的条件:
R 0, b
R 0 a
R r 2 ri2 ( yi b axi )2
2 i 1 i 1
clear all; close all
x=[20 30 40 50 60 70 80 90 100 110 120 ];
y=[107 96 88 86 73 67 58 48 42 p1=polyfit(x,y,1) u_f=p1(2) k_jam=-u_f/p1(1) 38 29]; %拟合一次多项式,返回系数向量
x=[10 15 20 25 30 35 40 45 50 55 60 65 70 ]; y=[log(99) log(94) log(89) log(85) log(80) log(76) log(73) log(69) log(64) log(62) log(59) log(55) log(52) ]; p1=polyfit(x,y,1) %拟合一次多项式,返回系数向量 y1=polyval(p1,x); plot(x,y, 'r*',x,y1)
2 1
r1 y1 ax12 bx1 c 2 r2 y2 ax2 bx2 c r y ax 2 bx c n n n n
令: R r r 2 ( y ax 2 bx c)2 i i i i 2
y1=polyval(p1,x); plot(x,y, 'r*',x,y1)
【例2】已知:u-k观测数据,试采用Greenberg速度—密度模 型在Matlab平台上进行数据拟合,P.22 ki 80 85 90 95 100 105 110 115 120
ui 32 33 29 26 27 26.5 25.8 24 22 lnki 4.38 4.44 4.5 4.55 4.61 4.65 4.7 4.74 4.79
u um ln(
kj k
) um ln k j um ln k
um p1(1)
p1(2) k j exp( ) um
Greenberg速度—密度模型在Matlab平台上的数据拟合
clear all; close all
x=[log(80) log(85) log(90) log(95) log(100) log(105) log(110) log(115) log(120)];