From Łukasz Graczykowski
(Difference between revisions)
|
|
Line 1: |
Line 1: |
- | == Zadanie ==
| |
- | '''Metoda najmniejszych kwadratów''' (5 pkt.)
| |
- |
| |
- | Korzystając z metody najmniejszych kwadratów, dopasować do otrzymanych danych wielomiany stopnia <code>n=0..5</code>.
| |
- |
| |
- | * Proszę wczytać dane z [http://hirg.if.pw.edu.pl/~mszymanski/kadd/dane_mnk.dat pliku]. Pochodzą one z eksperymentu zderzeń sprężystych ujemnie naładowanych mezonów K z protonami, przy ustalonej energii mezonu K. W pierwszej kolumnie znajdują się wartości cosinusa kąta rozpraszania w układzie środka masy, a w drugiej kolumnie odpowiadające im liczby zderzeń. Jako błędy pomiarów należy przyjąć pierwiastek kwadratowy z liczby obserwacji. Jeżeli otrzymany rozkład ma postać wielomianu, to wyznaczenie jego stopnia umożliwia wyznaczenie spinowych liczb kwantowych występujących stanów pośrednich ("Analiza danych", S.Brandt, Przykład 9.2.).
| |
- |
| |
- | * Proszę zaimplementować funkcję realizującą procedurę dopasowania metodą najmniejszych kwadratów. W tym celu należy wykorzystać wzory (ich wyprowadzenie znajduje się w [http://if.pw.edu.pl/~kisiel/kadd/Wyklad11.pdf wykładzie 11] oraz w [http://www.if.pw.edu.pl/~majanik/files/wiel.ps instrukcji]):
| |
- |
| |
- | [[File:wzor1.png]]
| |
- |
| |
- | [[File:wzor2.png]]
| |
- |
| |
- | [[File:wzor3.png]]
| |
- |
| |
- | [[File:wzor4.png]]
| |
- |
| |
- | [[File:wzor567.png]]
| |
- |
| |
- | [[File:wzor89.png]]
| |
- |
| |
- | ''Komentarz'': szukamy minimum funkcji M (odpowiednik statystyki chi-kwadrat), wartości <code>t_{j}</code> to cosinusy kąta rozproszenia (pierwsza kolumna pliku), wartości <code>y_{j}</code> to liczby obserwacji (druga kolumna). Estymatory <code>x</code> to poszukiwane współczynniki wielomianu.
| |
- |
| |
- | Przykładowy nagłówek funkcji:
| |
- | // Funkcja zwraca wartosc funkcji M
| |
- | // parametry:
| |
- | // st - stopien dopasowanego wielomianu
| |
- | // n - liczba pomiarow
| |
- | // tj - tablica cosinusow kata rozproszenia
| |
- | // yj - wyniki pomiarow
| |
- | // sigmaj - bledy pomiarow
| |
- | // wsp - tablica do ktorej nalezy wpisac wartosci wyznaczonych wspolczynnikow ([[File:wzor10.png]])
| |
- | // bswp - tablica do ktorej nalezy wpisac bledy wyznaczonych wspolczynnikow (pierwiastki kwadratowe z elementów diagonalnych macierzy [[File:wzor11.png]])
| |
- | // wsp_pop - tablica do ktorej nalezy wpisac wartosci wspolczynnikow poprawionych (macierz eta)
| |
- | double dopasuj (int st, int n, double *tj, double *yj, double *sigmaj, double *wsp, double *bwsp, double *wsp_pop);
| |
- |
| |
- | Do zaimplementowania powyższych wzorów wygodnie jest skorzystać z klasy [http://www.slac.stanford.edu/comp/unix/package/cernroot/30106/TMatrixD.html TMatrixD]. Przykłady jej użycia:
| |
- |
| |
- | // utworzenie macierzy o wymiarach n x m
| |
- | TMatrixD *macierzA = new TMatrixD(n,m);
| |
- |
| |
- | // dostep do elementu o indeksach i,j macierzy macierzA, np.:
| |
- | (*macierzA)(i,j) = 1;
| |
- |
| |
- | // mnozenie macierzy: macierzA = macierzB macierzC
| |
- | TMatrixD *macierzA = new TMatrixD(*macierzB, TMatrix::kMult, *macierzC);
| |
- |
| |
- | // transponowanie macierzy
| |
- | TMatrixD *macierzAt = new TMatrixD(TMatrix::kTransposed,*macierzA);
| |
- |
| |
- | // odwracanie macierzy
| |
- | macierz->Invert();
| |
- |
| |
- | * Proszę zinterpretować otrzymane dopasowania przeprowadzając test chi-kwadrat (korzystając z wyznaczonej wartości funkcji M). Należy określić stopień wielomianu, dla którego dopasowanie jest najlepsze oraz wyznaczyć najmniejszy stopień wielomianu, którego nie możemy odrzucić. Proszę wypisać wartości wyznaczonych współczynników wielomianu.
| |
- |
| |
| == Wynik == | | == Wynik == |
| | | |
Revision as of 09:42, 16 May 2012
Wynik
Output:
Dopasowanie wielomianem stopnia 0
M = 833.548
wsp[0] = 57.8452 +- 2.4051
Liczba stopni swobody=9
Wartosc krytyczna=21.666
Poziom istotnosci=0.01
Stopien 0: odrzucamy
Dopasowanie wielomianem stopnia 1
M = 585.449
wsp[0] = 82.6551 +- 2.87498
wsp[1] = 99.0998 +- 6.29159
Liczba stopni swobody=8
Wartosc krytyczna=20.0902
Poziom istotnosci=0.01
Stopien 1: odrzucamy
Dopasowanie wielomianem stopnia 2
M = 36.4096
wsp[0] = 47.267 +- 3.24753
wsp[1] = 185.955 +- 7.30235
wsp[2] = 273.612 +- 11.6771
Liczba stopni swobody=7
Wartosc krytyczna=18.4753
Poziom istotnosci=0.01
Stopien 2: odrzucamy
Dopasowanie wielomianem stopnia 3
M = 2.84989
wsp[0] = 37.949 +- 3.62403
wsp[1] = 126.546 +- 12.5894
wsp[2] = 312.018 +- 13.4278
wsp[3] = 137.585 +- 23.7499
Liczba stopni swobody=6
Wartosc krytyczna=16.8119
Poziom istotnosci=0.01
Stopien 3: akceptujemy
Dopasowanie wielomianem stopnia 4
M = 1.68602
wsp[0] = 39.6179 +- 3.94036
wsp[1] = 119.102 +- 14.3563
wsp[2] = 276.49 +- 35.5643
wsp[3] = 151.91 +- 27.2096
wsp[4] = 52.5999 +- 48.7566
Liczba stopni swobody=5
Wartosc krytyczna=15.0863
Poziom istotnosci=0.01
Stopien 4: akceptujemy
Dopasowanie wielomianem stopnia 5
M = 1.66265
wsp[0] = 39.8786 +- 4.29351
wsp[1] = 121.384 +- 20.7054
wsp[2] = 273.188 +- 41.6103
wsp[3] = 136.571 +- 103.954
wsp[4] = 56.8995 +- 56.2858
wsp[5] = 16.7294 +- 109.424
Liczba stopni swobody=4
Wartosc krytyczna=13.2767
Poziom istotnosci=0.01
Stopien 5: akceptujemy