Wykładnicza Metoda Najmniejszych Kwadratów

Przybliżanie, metoda najmniejszych kwadratów, wielomiany interpolacyjne i inne.
janusz47
Użytkownik
Użytkownik
Posty: 7910
Rejestracja: 18 mar 2009, o 16:24
Płeć: Mężczyzna
Podziękował: 30 razy
Pomógł: 1670 razy

Wykładnicza Metoda Najmniejszych Kwadratów

Post autor: janusz47 »

Wykładnicza Metody Najmniejszych Kwadratów

W wielu zagadnieniach zwłaszcza ekonomicznych przyjmuje się wykładniczą postać funkcji \(\displaystyle{ f(x) = a\cdot e^{b\cdot x} }\) w Metodzie

Namniejszych Kwadratów.

W tym celu funkcję wykładniczą sprowadzamy do funkcji liniowej przez logarytmowanie:

\(\displaystyle{ \ln [f(x)] = b\cdot x +\ln(a), }\)

i stosując podstawienia:

\(\displaystyle{ F(x) = \ln[f(x)], \ \ \alpha = \ln(a), \ \ \beta = b,}\)

otrzymujemy funkcję liniową:

\(\displaystyle{ F(x) = \beta \cdot x + \alpha .}\)

Transformujemy punkty \(\displaystyle{ (x_{i}, y_{i}) }\) na punkty \(\displaystyle{ (x_{i}, \ln(y_{i})) }\)

obliczając wartości \(\displaystyle{ \beta }\) i \(\displaystyle{ \alpha. }\) Z równań \(\displaystyle{ b = \beta, \ \ a = e^{\alpha} }\) otrzymujemy \(\displaystyle{ a,b. }\)

Program w MATLAB

Kod: Zaznacz cały

function expmnk(x,y)
% Wykładnicza Metoda Najniejszych Kwadratów
n =length(x);
n=length(y);
z=log(y);
sumx=sum(x);
sumz=sum(z);
sumx2=sum(x.*x);
sumxz=sum(x.*z);
beta=(n*sumxz-sumx*sumz)/(n*sumx2-sumx^2);
b=beta;
alfa=(sumx2*sumz-sumxz*sumx)/(n*sumx2-sumx^2);
a=exp(alfa);
disp('     Wykladnicza Metoda Najmniejszych Kwadratów      ')
fprintf('\n a=%12.6f\n',a)
fprintf('b=%12.6f\n',b)
disp('____________________________________________________________')
disp('   xi     yi   ln(yi)   a*exp(b*xi)  |yi-[a*exp(b*xi)]|')
disp('_____________________________________________________________')
for i=1:n
    ye=a*exp(b*x(i));
    err(i)=abs(ye-y(i));
    fprintf('%6.2f %6.2f %6.2f %12.6f %12.6f\n',x(i),y(i),z(i),ye,err(i))
end
Przykład

Kod: Zaznacz cały

>> expmnk(x,y)
     Wykladnicza Metoda Najmniejszych Kwadratów      

a=    3.801404
b=   -0.044406
____________________________________________________________
   xi     yi   ln(yi)   a*exp(b*xi)  |yi-[a*exp(b*xi)]|
_____________________________________________________________
  1.00   4.00   1.39     3.636293     0.363707
  3.00   3.50   1.25     3.327274     0.172726
  4.00   2.90   1.06     3.182757     0.282757
  6.00   2.50   0.92     2.912280     0.412280
  9.00   2.75   1.01     2.549046     0.200954
 15.00   2.00   0.69     1.952841     0.047159
pesel
Użytkownik
Użytkownik
Posty: 1707
Rejestracja: 8 cze 2010, o 13:09
Płeć: Mężczyzna
Podziękował: 1 raz
Pomógł: 412 razy

Re: Wykładnicza Metoda Najmniejszych Kwadratów

Post autor: pesel »

Zawsze jak korzystam z tego sposobu to zastanawiam się skąd wiadomo, że suma kwadratów odchyleń funkcji liniowej minimalizuje się dla tych samych współczynników, dla których miinimalizuje się ta suma dla funkcji wykładniczej. Jest na to jakiś dowód?
3a174ad9764fefcb
Użytkownik
Użytkownik
Posty: 287
Rejestracja: 18 lip 2022, o 17:46
Płeć: Mężczyzna
wiek: 40
Podziękował: 3 razy
Pomógł: 41 razy

Re: Wykładnicza Metoda Najmniejszych Kwadratów

Post autor: 3a174ad9764fefcb »

Nie, nie ma na to dowodu i nie będzie. Gdy zagadnienie traktujemy addytywnie, otrzymamy inny wynik niż gdy multiplikatywnie. Wynik zależy więc od intuicji analityka i od tego, jak przygotuje dane przed wrzuceniem do maszynki, która nazywa się metodą najmniejszych kwadratów.
ODPOWIEDZ