您的位置:首页 > 其它

最小二乘(LS)与总体最小二乘(TLS)总结一

2015-12-30 17:08 330 查看
 

数据的直线拟合:

1. Data:  Y = X*B, B = (a, b), 拟合直线y = ax + b。

>> X =[0.50000   1.00000;   0.80000   1.00000;   1.10000   1.00000;   1.80000   1.00000;   4.00000   1.00000]

X =

   0.50000   1.00000

   0.80000   1.00000

   1.10000   1.00000

   1.80000   1.00000

   4.00000   1.00000

>> Y = [7.10000   4.40000   3.20000   1.90000   0.9]'

Y =

   7.10000

   4.40000

   3.20000

   1.90000

   0.90000

1. LS:

>> B = inv(X'*X) * (X' * Y)

B =

  -1.4052

   5.8046

拟合出直线:a = -1.4052, b = 5.8046;

2. TLS:  法向量A = [t0 t1], 拟合直线 t0*(x-MX) + t1*(y-MY)=0.

>> MX = mean(X(:,1))

MX =  1.6400

>> MY = mean(Y)

MY =  3.5000

>> [m, n] = size(X)

m =  5

n =  2

>> C = ones(m, 2);

>> dX = X(:, 1) .- MX;

>> C(:, 1)=dX

>> dY = Y .- MY;

>> C(:, 1)=dX;

>> C(:, 2)=dY;

>> C

C =

  -1.14000   3.60000

  -0.84000   0.90000

  -0.54000  -0.30000

   0.16000  -1.60000

   2.36000  -2.60000

>>  [MU, MS] = eigs(C'*C)

MU =

  -0.46502  -0.88530

   0.88530  -0.46502

MS =

Diagonal Matrix

   29.0052         0

         0    2.0668

>> A = MU(:, 2)

A =

  -0.88530

  -0.46502

>> t0 = A(1,1)

t0 = -0.88530

>>  t1 = A(2,1)

t1 = -0.46502

>> a = -t0/t1

a = -1.9038

>> b = (t0.*MX+t1.*MY)./t1

b =  6.6222

>> B

B =

  -1.4052

   5.8046

>> PX=[0, 1, 2, 3, 4]

PX =

   0   1   2   3   4

>> PX=[0, 1, 2, 3, 4]'

PX =

   0

   1

   2

   3

   4

>> PY0=PX.*B(1,1) + B(2, 1)

PY0 =

   5.80456

   4.39934

   2.99412

   1.58890

   0.18368

>> PY1=PX.*a + b

PY1 =

   6.62224

   4.71843

   2.81463

   0.91083

  -0.99298

>> plot(X(:, 1), Y, 'o');

>> hold on

>> plot(MX, MY, '*');

>> plot(PX, PY0);

>> plot(PX, PY1);

>> plot(PX, PY1, 'r');



3. y = C * exp(A*x);   线性化拟合: Y = Ax + B,   y = ln(Y), C = exp(B).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: