May 3, 2024, Friday, 123

KADD laboratorium 11

From MJanik

Jump to: navigation, search

Zadanie

Metoda najmniejszych kwadratów (5 pkt.)

Korzystając z metody najmniejszych kwadratów, dopasować do otrzymanych danych wielomiany stopnia n=0..5.

  • Proszę wczytać dane z 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 wykładzie 11 oraz w instrukcji):

Wzor1.png

Wzor2.png

Wzor3.png

Wzor4.png

Wzor567.png

Wzor89.png

Komentarz: szukamy minimum funkcji M (odpowiednik statystyki chi-kwadrat), wartości t_{j} to cosinusy kąta rozproszenia (pierwsza kolumna pliku), wartości y_{j} to liczby obserwacji (druga kolumna). Estymatory x 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 (Wzor10.png)
//  bswp - tablica do ktorej nalezy wpisac bledy wyznaczonych wspolczynnikow (pierwiastki kwadratowe z elementów diagonalnych macierzy  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 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

Mnk.png

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