Wpisany przez Andrzej Borucki
wtorek, 06 grudnia 2011 20:09
Mamy zbiór n punktów (xi, yi) dla których chcielibyśmy dopasować funkcję liniową y = ax + b.
Należy znaleźć takie dwie liczby rzeczywiste a oraz b aby jak najwięcej punktów leżało blisko tej prostej. Jako kryterium przyjmujemy minimalizację sumy kwadratów różnic między punktami yi a wyliczonym y = axi + b.
Suma kwadratów różnic charakteryzuje się tym że:
Przykładowy wynik metody:

Mamy wyliczyć i zminimalizować:
(y1 - ax1 - b)2 + (y2 - ax2 - b)2 + ... + (yn - axn - b)2 = f(a, b)
Suma kwadratów różnic zawsze będzie ≥ 0 a równa zero tylko w przypadku gdy wszystkie punkty leżą na prostej y = ax + b, Funkcja ma jedno ekstremum i jest to minimum.
Punkt minimum osiągany jest dla (a, b) takiego, że obie pochodne cząstkowe ∂f(a, b) / ∂a oraz ∂f(a, b) / ∂b są zerowe.
Dla większej czytelności wprowadzamy wartości stałe niezależne od a oraz b:
Pierwsze równanie ma postać:
Używając wprowadzonych stałych:
(1) Sxy - aSxx - bSx = 0
Podobnie wyprowadzamy drugie równanie:
Używając wprowadzonych stałych:
(2) Sy - aSx - n*b = 0
Równania (1) i (2) stanowią układ dwóch równań liniowych z dwiema niewiadomymi a i b Z (2) wyznaczamy b = (Sy - aSx) / n i wstawiamy do (1).
Otrzymane a i b w mianowniku mają to samo wyrażenie, więc zastąpmy je przez delta = Sx2 - Sxxn
Ostatecznie:
a = (SxSy - Sxyn) / delta
b = (SxSxy - SxxSy) / delta
Należy znaleźć takie dwie liczby rzeczywiste a oraz b aby jak najwięcej punktów leżało blisko tej prostej. Jako kryterium przyjmujemy minimalizację sumy kwadratów różnic między punktami yi a wyliczonym y = axi + b.
Suma kwadratów różnic charakteryzuje się tym że:
- składniki sumy są nieujemne,
- funkcja jest różniczkowalna,
- jest prosta
Przykładowy wynik metody:

Mamy wyliczyć i zminimalizować:
(y1 - ax1 - b)2 + (y2 - ax2 - b)2 + ... + (yn - axn - b)2 = f(a, b)
Suma kwadratów różnic zawsze będzie ≥ 0 a równa zero tylko w przypadku gdy wszystkie punkty leżą na prostej y = ax + b, Funkcja ma jedno ekstremum i jest to minimum.
Punkt minimum osiągany jest dla (a, b) takiego, że obie pochodne cząstkowe ∂f(a, b) / ∂a oraz ∂f(a, b) / ∂b są zerowe.
Dla większej czytelności wprowadzamy wartości stałe niezależne od a oraz b:
Pierwsze równanie ma postać:
Używając wprowadzonych stałych:
(1) Sxy - aSxx - bSx = 0
Podobnie wyprowadzamy drugie równanie:
Używając wprowadzonych stałych:
(2) Sy - aSx - n*b = 0
Równania (1) i (2) stanowią układ dwóch równań liniowych z dwiema niewiadomymi a i b Z (2) wyznaczamy b = (Sy - aSx) / n i wstawiamy do (1).
Otrzymane a i b w mianowniku mają to samo wyrażenie, więc zastąpmy je przez delta = Sx2 - Sxxn
Ostatecznie:
a = (SxSy - Sxyn) / delta
b = (SxSxy - SxxSy) / delta
| Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
| Andrzej Borucki | Delphi/Pascal | ![]() | ![]() |
![]() ![]() ![]() ![]() / 3 |
Poprawiony: wtorek, 06 grudnia 2011 20:19



