Hiperboliczna 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

Hiperboliczna Metoda Najmniejszych Kwadratów

Post autor: janusz47 »

Hiperboliczna Metoda Najmniejszych Kwadratów

Hiperboliczna metoda Najmniejszych Kwadratów wykorzystuje jako funkcję aproksymującą - funkcję hiperboliczną

\(\displaystyle{ f(x) =a + \frac{b}{x} \ \ (1) }\)

Ten rodzaj aproksymacji stosuje się, gdy dane dążą do asymptot poziomych lub pionowych.

Przed znalezieniem i rozwiązaniem układu równań normalnych - linearyzujemy funkcję \(\displaystyle{ (1) }\) za pomocą podstawień:

\(\displaystyle{ F(x)= f(x), \ \ \alpha =a, \ \ \beta = b, \ \ }\) i \(\displaystyle{ X = \frac{1}{x}. }\)

Otrzymujemy funkcję liniową: \(\displaystyle{ F(x) = \alpha + \beta\cdot X, }\) przekształcamy współrzędne \(\displaystyle{ (x_{i}, y_{i}, ) }\) na \(\displaystyle{ \left(\frac{1}{x_{i}} , y_{i} \right), \ \ i=1,2,...,n.}\)

Program w MATLAB

Kod: Zaznacz cały

function hipmnk(x,y)
% Hiperboliczna Metoda Najniejszych Kwadratów
n =length(x);
n=length(y);
z=ones(size(x));
z=z./x;
sumz=sum(z);
sumy=sum(y);
sumz2=sum(z.*z);
sumzy=sum(z.*y);
b=(n*sumzy-sumz*sumy)/(n*sumz2-sumz^2);
a=(sumz2*sumy-sumzy*sumz)/(n*sumz2-sumz^2);
disp('     Hiperboliczna Metoda Najmniejszych Kwadratów      ')
fprintf('a=%12.6f\n',a)
fprintf('b=%12.6f\n',b)
disp('____________________________________________________________')
disp('   xi      yi   a+b/xi     a+b/xi   |yi-(a+b/xi)|')
disp('_____________________________________________________________')
for i=1:n
    yh=a+b/x(i);
    err(i)=abs(yh-y(i));
    fprintf('%6.2f %6.2f %6.2f %12.6f %12.6f\n',x(i),y(i),z(i),yh,err(i))
end
Przykład

Kod: Zaznacz cały

>> x=[1 3 4 6 9 15];
>> y=[4.0 3.5 2.9 2.5 2.75 2]; 
>> hipmnk(x,y)
     Hiperboliczna Metoda Najmniejszych Kwadratów      
a=    2.364128
b=    1.797526
____________________________________________________________
   xi      yi   a+b/xi     a+b/xi   |yi-(a+b/xi)|
_____________________________________________________________
  1.00   4.00   1.00     4.161654     0.161654
  3.00   3.50   0.33     2.963304     0.536696
  4.00   2.90   0.25     2.813510     0.086490
  6.00   2.50   0.17     2.663716     0.163716
  9.00   2.75   0.11     2.563853     0.186147
 15.00   2.00   0.07     2.483963     0.483963
ODPOWIEDZ