NiceFit minimum

 

1.      Niniejszy tekst zawiera minimum wiadomości o programie Nicefit, które jest konieczne do jego obsługi dla opracowania pomiarów wykonanych na I i II Pracowni Fizycznej. Zainteresowanych pełnymi możliwościami programu zachęcamy do zapoznania się z opisem, który jest dostępny jako dokument o nazwie NF.doc.

 

2.      Wiadomości ogólne

Program NiceFit został opracowany przez firmę GEVA ok. 20 lat temu, w związku z tym nie ma wielu „bajerów” posiadanych przez programy wymagające systemu operacyjnego Windows (może być używany pod DOSem, Windows’ami oraz pod LINUXem. W tym ostatnim przypadku konieczne jest ściągnięcie z http://dosbox.sourceforge.net

emulatora DOS’a o nazwie DOSBox.).

Bardziej zaawansowanym amatorom linuxa polecam załączony do tego pakietu plik nicefit.html z instrukcja napisana przez jednego ze studentów.

NiceFit ma jednak wiele zalet:

o       Jest napisany przez fizyków i dla fizyków, a w szczególności opiera się na procedurze Minuit, stworzonej w CERNie, która stała się standardem w problemach minimalizacji, jest używana przez tysiące fizyków na całym świecie i w związku z tym została dokładnie przetestowana.

o       Umożliwia dopasowywanie do danych obarczonych niepewnością nie tylko zmiennej zależnej (y), ale i zmiennej niezależnej (x).

o       Jest prosty w obsłudze.

o       Last but not least – jest darmowy i może być swobodnie rozpowszechniany.

 

3.      Instalacja

Należy stworzyć katalog NICEFIT, najlepiej jako C:\NICEFIT, a następnie skopiować tam plik NICEFIT.zip. Po odkompresowaniu powinien się tam pojawić podkatalog PAR, zawierający pliki wymagane przez program. To wszystko.

4.      Przygotowanie danych

Przy pomocy edytora ASCII, np. windows’owego Notatnika, przygotowujemy plik z danymi. Przykładowy plik o nazwie A.DAT znajduje się w pakiecie Nicefit. W kolejnych liniach zawiera on wartości x y dy lub (jeśli mamy taką potrzebę i możliwość) x y dx dy:

x1 y1 dx1

x2 u2 dy2

..............

Kolumny rozdzielamy SPACJĄ (nie tabulatorem!), a w ułamkach dziesiętnych używamy kropki (a nie przecinka).

Nazwa pliku musi spełniać kryteria DOSowe, tzn składać się z nie więcej niż 8 znaków oraz rozszerzenia 3-literowego. Uwaga: w nazwie nie wolno używać spacji! Najwygodniej plik zapisać w katalogu Nicefit.

5.      Użycie Nicefita.

o       Uruchamiamy Nicefit.Exe.

o       Po zapytaniu o Nicefit.log naciskamy klawisz „escape”.

o       Wczytanie danych (Read data points).

W tym miejscu informujemy program o znaczeniu kolejnych kolumn danych. Program zakłada, ze dane zapisane są jako x y dx dy; jeśli zapis jest inny, należy zmienić wartości w odpowiednich linijkach. W szczególności, w najczęstszym przypadku braku danych o dx, w linijce Hor. error column wpisujemy 0 (praktycznie: naciskamy klawisz h a następnie wpisujemy 0). Teraz możemy już napisać R (bądź przy użyciu strzałki ↑ przesunąć marker do pierwszej linii i zrobić enter), a program zapyta nas o nazwę pełnej ścieżki prowadzącej do pliku z danymi.

o       Po podaniu tej informacji musimy wybrać dopasowywaną funkcję (function Type). Na pracowni najczęściej mamy do czynienia z wielomianem (1-go lub 2-go stopnia), wiec zgadzamy się (przez enter) na proponowany przez program „polynomial”. Jeżeli katalog PAR jest na swoim miejscu (patrz wyżej), program sam wczyta odpowiednie parametry, w przeciwnym przypadku zapyta o pełną ścieżkę prowadzącą do nich.

o       Wielomian określony jest jako a0 + a1x + a2x2 + a3x3 +…+ a7x7. Jeśli interesuje nas dopasowanie prostej, to współczynniki a2…a7 muszą być ustalone (status = fix) na wartości (value) 0, status a0 i a1 musi być free (bo te współczynniki będą dopasowywane), a ich wartości początkowe (value) powinny być zbliżone do 1. W przypadku dopasowywania wielomianu 2-go stopnia status free powinien dotyczyć dodatkowo parametru a2.

o       Przez klawisz „escape” wychodzimy do głównego menu. Jeśli chcemy uwzględnić niepewności x, wchodzimy do Options, przechodzimy do „X-errors using” i przez „enter” ustawiamy tę opcję na „yes”, po czym przez „escape” wracamy do głównego menu.

o       Możemy teraz ew. sprawdzić, czy nie pomyliliśmy się w danych oglądając ich wykres (R, enter, enter) i/lub przejść do dopasowywania (Go minimization).

o       Z kilku metod dopasowywania wybieramy Simplex. Po chwili wyświetlone zostaną wyniki dopasowywania (jeśli nie będzie komunikatu, że „minimization converged”, wciskamy „escape” i powtarzamy minimalizację Simplex). W kolumnie „value” wyświetlone zostaną optymalne wartości dopasowywanych parametrów, zaś w kolumnie „maximal error” – niepewność tych wartości.

o       Ponadto wyświetlone zostaną wartości chi2, NDF i chi2/NDF. Wielkość chi2 (oznaczana jako χ2) jest miarą jakości dopasowania (sumą odległości od krzywej do punktów doświadczalnych w jednostkach błędów), zaś NDF jest ilością stopni swobody (ilość punktów doświadczalnych minus ilość dopasowywanych parametrów). W przypadku dobrego dopasowania chi2/NDF » 1.0. Czy odchylenie od tej wartości możemy uważać za statystycznie usprawiedliwione (prawdopodobne) zależy od wartości NDF i może być sprawdzone w tablicach chi2, które można znaleźć w dowolnym podręczniku rachunku błędów. Jeżeli ten stosunek jest wyraźnie większy od 1.0, może to oznaczać że danych nie można opisać dopasowywaną krzywą, lub że niepewności danych były niedoszacowane. Pierwsza możliwość może być np. spowodowana jednym punktem doświadczalnym, wyraźnie odskakującym od innych; można wówczas próbować ten punkt usunąć, należy jednak ten fakt omówić w sprawozdaniu. Jeśli z rysunku widać, ze dane nadal układają się wyraźnie inaczej niż dopasowana funkcja, to należy zmienić funkcję, jeśli jednak mamy do dopasowywanej funkcji zaufanie, a więc podejrzewamy, że chodzi tylko o niedoszacowanie niepewności, to „maximal errors” należy pomnożyć przez i fakt ten koniecznie odnotować w opisie. Z kolei zbyt mała wartość chi2 może być spowodowana przeszacowaniem błędów, co należy uwzględnić w taki sam sposób (mnożąc maximal errors przez ).

o       Dla koneserów: kolejne naciśnięcie „enter” spowoduje wyświetlenie macierzy korelacji dopasowanych parametrów.

o       Teraz możemy wykonać rysunek danych z dopasowaną krzywą. Przez „escape” wychodzimy do głównego menu, wybieramy draw Fit i robimy dwukrotnie „enter”. Aby zmienić granice rysunku możemy zrobić „escape” i zmienić wartości Left, Right, Bottom i/lub Bottom edge. Wbrew napisowi na marginesie, drukowanie przez <*> nie jest możliwe, ponieważ program nie jest przystosowany do obsługi współczesnych drukarek, możemy jednak zapamiętać rysunek w postaci bitmapy przez jednoczesne naciśnięcie klawiszy ALT i PRTSCR (komputer nic nie powie, ale zapamieta ekran w schowku),  a następnie wkleić go np. do dokumentu MSWord komendą „wklej” (bądź CTRL V). Ponieważ czarne tło rysunku niepotrzebnie zużywa duże ilości tonera, wskazane jest, by przed wklejeniem do dokumentu otworzyć np. MSPaint, wykonać operację Edycja/Wklej, a następnie zrobić CTRL+I i dopiero tak zmieniony rysunek wkleić do dokumentu.

UWAGA: ta metoda rysowania może się nie powieść, jeżeli Twój komputer pracuje pod Windows XP. W takiej sytuacji masz 3 wyjścia:

-         narysować wyniki ręcznie (to nie wpłynie na ocenę, chociaż jest męczące)

-         użyć dowolnego programu graficznego, jakim dysponujesz

-         używać NICEFIT’a pod emulatorem DOSBOX. Można go ściągnąć za darmo ze strony http://dosbox.sourceforge.net

Dokładnie te same czynności można wykonać dla wydrukowania wyników dopasowywania (po wejściu do show final Values).

o       I to wszystko. Teraz możemy z czystym sumieniem wykonać komendę Quit.

 

Have a nice fitting!

E.Piasecki