Matlab Math 最小二乘 Cleve morler著 陈文斌(wbchen@fudan.edu.cn) 复旦大学2002
Matlab Math Cleve Morler著 陈文斌(wbchen@fudan.edu.cn) 复旦大学2002 最小二乘
模型和曲线拟和 给定一组测量或观测值y2=y(t1),i=1,,m 假设y是n个函数的线性组合 y(1)≈B1(t,x)+…+B,pn(t,a) 设m×n矩阵X定义为 C 所以 y≈X()B 如果X(a)=巧与a无关XB≈y Beta=Xy 注意这里的维数
模型和曲线拟和 给定一组测量或观测值 yi y(t i),i 1,..., m 假设y是n个函数的线性组合 ( ) ( , ) ... ( , ) y t 11 t n n t 设m×n矩阵X定义为 ( ,) ij j i x t 所以 y X () 如果 X () X与无关 X y Beta=X\y 注意这里的维数
Models 直线:y(1)≈Bt+B2 多项式:(1)=”,j=1,…,n olyfit )≈B1+…+Bn-1t+B 有理函数: (t)= t'+.+a.t+a B1+…+Bnt+B t'+.+a t+a 指数:d(1)=e v(t)≈BeM+…1+B,e
Models 直线: 1 2 y(t) t 多项式: t t j n n j j( ) , 1,..., n n n y t t t 1 1 1 ( ) ... polyfit 有理函数: n n n n j j t t t t 1 1 1 ... ( ) n n n n n t t t t y t 1 1 1 1 1 1 ... ... ( ) 指数: t j j t e ( ) t n t n y t e e ( ) ... 1 1
Models Log -lir near y(t)≈K t logy(t)≈B1t+B2 Gaussians ,(t)=e 2 11 An y(1)≈B1e +...+Be
Models t y t Ke ( ) Log-linear: 1 2 log y(t) t Gaussians: 2 ( ) j j t j t e 2 2 1 1 ( ) ... 1 n n t n t y t e e
Censusgul 1900 75.995 1910 91.972 y(taBt'+B2t+B3t+B4 1920 105.711 S=(t-1950)/50 1930 123.203 1940 131.669 1<S≤1 1950 150.697 196017933y(t)≈月3+B2s2+B3s+B4 1970 203.212 预测2010年的人口 1980 226.505 249633 Censusgui m i fitdemo 1990 2000 281.422
Censusgui t y 1900 75.995 1910 91.972 1920 105.711 1930 123.203 1940 131.669 1950 150.697 1960 179.323 1970 203.212 1980 226.505 1990 249.633 2000 281.422 3 4 2 2 3 1 y(t) t t t s (t 1950 ) / 50 1 s 1 3 4 2 2 3 1 y(t) s s s 预测2010年的人口 Censusgui.m fitdemo
norms Residuals:(残量)是观测值和模型的差 =y-∑月的(1,a)=1,,m y-X(OB Least squars 2 不加权的算法可以用 Weighed least squars 来解决加权的问题 ∑n2 ⅹ=diag(w)*x =diag(w)i
Norms Residuals:(残量)是观测值和模型的差 r y X ( ) r y t i m n i i j j i ( , ), 1,..., 1 Least squars: m i r r 1 2 2 Weighed least squars: m i i r w r 1 2 2 X=diag(w)*X y=diag(w)*y 不加权的算法可以用 来解决加权的问题
norms I-norm: r=∑p Infinity-norn:也称为 Chebyshev fit 卩rl max r
Norms 1-norm: m i r r 1 1 Infinity-norm: i i r max r 也称为Chebyshev fit
Linear Least squares 我们希望解XB≈y但这个系统是超定的m>n 实际上我们解min|XB 理论上:我们解法方程就可以求出最小二乘解 X XB=X y n*n维系统 B=(X XX y 数值上: 、求逆的过程是费时的和不精确的 2 cond(XX)=(cond(x)) 用有限精度计算,法方程可能变的奇异
Linear Least Squares 我们希望解 X y 但这个系统是超定的 实际上我们解 X y min m>n 理论上:我们解法方程就可以求出最小二乘解 X X X y T T n*n维系统 X X X y T 1 T ( ) 数值上: 1、求逆的过程是费时的和不精确的 2、 2 cond(X X ) (cond(X )) T 用有限精度计算,法方程可能变的奇异
Linear Least squares Matlab中避免用法方程求解 B=X y QR分解:X=QR Q正交阵( orthogonal)QQ=1 R上三角阵 求解:RB=Qy 看一下模型的演示,用 census数据 v(s)≈B1s2+B2S+B3 graeme l m
Linear Least Squares Matlab中避免用法方程求解 X \ y QR分解: X QR Q正交阵(orthogonal) Q Q I T R上三角阵 R Q y T 求解: 2 3 2 1 y(s) s s 看一下模型的演示,用census数据 qrdemo1.m
Linear Least squares MATLAB s=(1950:10:2000)-1950)/50 =[150.6970179.3230203.2120226.5050 24963302814220y XIS. *s s ones(size(s) R c=qrsteps(x,y) beta=R(1: 3, 1: 3)c(1: 3)%beta=Ric p2010=polyval(beta, 1.2 想一下,c(46)有什么用处?
s=((1950:10:2000)'-1950)/50; y=[150.6970 179.3230 203.2120 226.5050 249.6330 281.4220]'; X=[s.*s s ones(size(s))] [R,c]=qrsteps(X,y) beta=R(1:3,1:3)\c(1:3) %beta=R\c p2010=polyval(beta,1.2) Linear Least Squares 想一下,c(4:6)有什么用处?