天天看點

最小二乘法曲線拟合(matlab)

最小二乘法曲線拟合(matlab)

(1)

Hu.m
function a=hu(x,y,m)
S = zeros(,*m+);
T = zeros(m+,);
for k = :*m+
    S(k) = sum(x.^(k-));
end
for k = :m+
    T(k) = sum(x.^(k-).*y);
end
A = zeros(m+,m+);
a= zeros(m+,);
for i=:m+
    for j=:m+
        A(i,j) = S(i+j-);
    end
end
a = A\T;
end

x = [              ];
y = [              ];
y1 = log(y);
a1 = hu(x,y,)
a2 = hu(x,y1,);
a2() = exp(a2());
a2
           

結果:

a1 =

  -
   94.2302
   -


a2 =

   67.4026
0.2390
           

(2)

x=[   ];
y=[   ];

S = zeros(,);
T = zeros(,);

S() = sum(x.^);   %S¾ØÕóµÄµÚÒ»ÐеÚÒ»ÁÐÔªËØÖµ
S() = sum(x.^);   %S¾ØÕóµÄµÚÒ»ÐеڶþÁÐÔªËØÖµ
S() = sum(x.^);   %S¾ØÕóµÄµÚ¶þÐеÚÒ»ÁÐÔªËØÖµ
S() = sum(x.^);   %S¾ØÕóµÄµÚ¶þÐеڶþÁÐÔªËØÖµ


T() = sum(x.^*y);
T() = sum(x.^*y);

A = zeros(,);

A = S\T 
           

結果:

A =

   -
2.2052
           

繼續閱讀