Click here to load reader
View
219
Download
1
Embed Size (px)
Analizowanie danych
Katarzyna Grzelak
listopad 2014
K.Grzelak (IFD UW) 1 / 24
Wprowadzenie
Programy do opracowywania danych doswiadczalnych (rysowaniefunkcji, punktw z bedami, dopasowywanie zaleznosci funkcyjnych dodanych . . . ):
gnuplotdarmowy, dostepny dla systemw operacyjnych Linux (zwykle wstandardowej dystrybucji !) i Windowspolecenia wpisywane jak w terminalu lub zapisywane wpliku-skrypcie (!)niewyszukana grafikaw OKWFie uruchamiany z terminala poleceniem gnuplotstrona www http://www.gnuplot.info/
K.Grzelak (IFD UW) 2 / 24
Wprowadzenie
Programy do opracowywania danych doswiadczalnych (rysowaniefunkcji, punktw z bedami, dopasowywanie zaleznosci funkcyjnych dodanych . . . ):
qtiplotna Linuxie bardzo prosty w instalacji (gotowa wersja egzekucyjna,nie trzeba instalowac dodatkowych bibliotek), Windows - wersjademo, pena wersja patnagraficzne srodowisko, atwe w uzyciuw OKWFie uruchamiany z terminala poleceniem qtiplot(uruchamianie z menu - aktualnie starsza wersja)strona www http://www.qtiplot.com/darmowa alternatywa dla programw typu Origin
Originkomercyjny program, licencja (Windows) Wydziau Fizyki dlastudentw WF, licencja MISMaP dla studentw MISMaP
. . .
K.Grzelak (IFD UW) 3 / 24
qtiplot - wprowadzenie
qtiploturuchamianie z terminala poleceniem qtiplot otwiera siesesja graficznaNowe zadanieFile New New Project albo skrt Ctrl+Nrysunki mozna modyfikowac klikajac prawym klawiszem naposzczeglne elementy albo uzywajac odpowiedniego menu albodwukrotnie klikajac na rysunek
K.Grzelak (IFD UW) 4 / 24
qtiplot - rysowanie funkcji
Rysowanie funkcji: File New New Function Plotalbo skrt Ctrl+FProgram oblicza wartosc funkcji w tylu punktach ile wpiszemy jakowartosc PointsDodawanie kolejnej funkcji do rysunku: Graph AddFunction albo Ctrl+Alt+FLegenda: Graph New Legend albo Ctrl+L
K.Grzelak (IFD UW) 5 / 24
qtiplot - rysowanie kilku rysunkw obok siebie
Najprosciej: Zaznaczenie kolumn do rysowania lewym klawiszemmyszy pojawia sie menu do rysowania: Plot Panel . . .Druga wersja: Graph Add Layer (klikniecie Guessspowoduje dodanie drugiego rysunku obok pierwszego)Wybranie pustego rysunku i Graph Add/Remove Curvepozwala wybrac tabele z danymi do narysowania
K.Grzelak (IFD UW) 6 / 24
qtiplot - wczytywanie danych z pliku
Tworzenie nowej tablicy do wpisywania danych:File New New Table albo skrt Ctrl+TWczytywanie danych z pliku do tabeli:File Import Import Ascii albo skrt Ctrl+K(Simplify white spaces)Zaznaczenie kolumn do rysowania lewym klawiszem myszypojawia sie menu do rysowania: Plot Line,Plot Scatter, ldotspozycje kolumn w tabelce mozna zamieniac klikajac na nagwekkolumny i przesuwajac goDodawanie bedw:Graph Add Error Bars albo skrt Ctrl+B
K.Grzelak (IFD UW) 7 / 24
Dopasowywania zaleznosci funkcyjnych do danych
Metoda najmniejszych kwadratw:Poszukiwanie wartosci parametrw a1, . . . ,al , ktre minimalizujawyrazenie:
X 2 =n
i=1
[yi f (x ;a1, . . . ,al)]2
2i
f - dopasowywana funkcjayi - wynik pomiarui - bad pomiaru yi
Jakosc dopasowania: 2/liczba_stopni_swobody
K.Grzelak (IFD UW) 8 / 24
qtiplot - dopasowywanie funkcji do danych
Analyze Fit Wizard albo skrt Ctrl+YDopasowywanie predefiniowanej funkcji:Built-in, Fit using built-in functionDopasowywanie wasnej funkcji:User defined
operatory: ab (potegowanie), a*b (mnozenie), a/b (dzielenie, a-b,a+b . . .przy definicji wasnych funkcji mozna korzystac z funkcji z menuBasic: abs(x), sin(x), cos(x), tan(x),exp(x),sqrt(x) ...
Uzycie niepewnosci pomiarowych Weighting Arbitrary DatasetWybieramy odpowiednia tabele iodpowiednia kolumne
K.Grzelak (IFD UW) 9 / 24
qtiplot - dopasowywanie funkcji do danychKolejne kroki:
1 nowy projekt2 wczytywanie danych ( z pliku (Import) lub reczne wpisywanie do
tabelki )3 rysowanie (Plot Scatter)4 dodanie bedw na rysunku (Add)5 zmiana opisu osi, modyfikacja legendy . . .6 Analyze Fit Wizard albo skrt Ctrl+Y7 definicja wasnej funkcji (lub wybranie ktrejs z poczatkowo
zdefiniowanych); postac wasnej funkcji mozna zapisac8 ustawienie poczatkowych wartosci parametrw9 uzycie niepewnosci pomiarowych: Weighting Arbitrary
Dataset wybieramy odpowiednia tabele i odpowiednia kolumne10 Fit
11 Sprawdzenie jakosci dopasowania ! (Chi2/doF . . . )
K.Grzelak (IFD UW) 10 / 24
qtiplot - zapisywanie wynikw
Zapisywanie wynikw
1 zapisanie rysunku Export (Export Layer to zapisywanie jednegorysunku, wazne jesli w oknie jest wiecej niz jeden rysunek)
2 duzo mozliwych formatw zapisu rysunku: (pdf, png, jpg, tex)(przy wstawianiu rysunku do latexa trzeba dodac pakiet tikz)
3 zapisanie projektu: File Save Project albo skrt Ctrl+S
K.Grzelak (IFD UW) 11 / 24
Polecenia programu gnuplot
Polecenia sa wprowadzane interakcyjnie albo zapisywane wpliku-skrypcieuruchamianie: gnuplotgnuplot> load skrypt.gp
gnuplot -persist skrypt.gp
Rozrzniane sa wielkie i mae literyWszystkie nazwy polecen mozna skrcic (tak dugo jak skrtpolecenia jest jednoznaczny)Opcje polecen musza byc podawane w okreslonej kolejnosci
K.Grzelak (IFD UW) 12 / 24
gnuplot -zapisywanie napisw i liczb
Napisy zapisywane sa w pojedynczych lub podwjnychapostrofach: dane.datLiczby cakowite: 1, 15Liczby rzeczywiste: 1.,15.,1E0,1.5E1,5E-1Uwaga na wynik dzielenia liczb cakowitych, np. 1/2 = 0
K.Grzelak (IFD UW) 13 / 24
gnuplot - funkcje, operatory
Zdefiniowane funkcje:abs(x), sin(x), cos(x), tan(x), exp(x),sqrt(x)...
Wasne definicje funkcji, np.: a(x b)2f(x)=a*(x-b)**2
Operatory: a**b (potegowanie), a*b (mnozenie), a/b (dzielenie,a-b, a+b . . .
K.Grzelak (IFD UW) 14 / 24
gnuplot - rysowanie funkcji
plot sin(x)set samples 10plot sin(x) lub replotProgram oblicza wartosc funkcji w tylu punktach ile ustawimypoleceniem set samplesPowrt do domyslnych ustawien: reseta=5;b=6h(x)=a*x+bplot h(x)
g(x)=cos(a*x)plot a=0.2,g(x),a=0.4, g(x)
K.Grzelak (IFD UW) 15 / 24
gnuplot - rysowanie funkcji
skala logarytmiczna:plot exp(-x)set logscale yreplot
dwa rysunki na jednym:plot sin(x),cos(x)
K.Grzelak (IFD UW) 16 / 24
gnuplot - rysowanie funkcji
plot sin(x) with pointsplot sin(x) with boxesplot sin(x) with linesplot sin(x) with impulsesplot [-3.14:3.14] sin(x)
K.Grzelak (IFD UW) 17 / 24
gnuplot - rysowanie funkcji, postac parametryczna
Przykad. Krzywa zdefiniowana w nastepujacy sposb:{x = 5 cos ty = 2 sin t
set parametricset xrange [-6:6]set yrange [-6:6]set trange [0:10]set isosamples 60plot 5*cos(t),2*sin(t)
K.Grzelak (IFD UW) 18 / 24
gnuplot - rysowanie funkcji w 3D
splot sin(x*y)set hidden3dset isosamples 30,30replotset xrange[-3:3]set yrange[-3:3]set zrange[-2:5]
set parametricsplot 2*u,u**2+v,v**2
K.Grzelak (IFD UW) 19 / 24
gnuplot - dane z bedami i bez
plot dane.dat
plot dane.dat with errorbars
plot dane.dat with xyerrorbars
plot dane.dat using 1:2:3 w ye
plot dane.dat using 2:1:3 w xe
plot dane1.dat u ($1+$4):5 with lines,dane2.dat u ($1+$4):($15-$17) w l axes x1y2
plot dane1.dat u ($1+$4):5 with lines titleDane1, dane2.dat u ($1+$4):($15-$17) w laxes x1y2 title Dane2 (zmiana legendy)
K.Grzelak (IFD UW) 20 / 24
gnuplot - opcje dla jednego i dwch rysunkw
set title Beams
set xlabel Energy [GeV]
set ylabel p1[GeV]
set y2label p1[GeV]
set y2tics
set ytics nomirror
set tics out
set key
unset key lub set nokeyreplot
K.Grzelak (IFD UW) 21 / 24
gnuplot - zapisywanie do pliku
set output sin.eps
set terminal postscript eps color
plot sin(x) lub replotset output
set terminal X11
Takze set terminal latex i inneW Linuxie epstopdf sin.eps
K.Grzelak (IFD UW) 22 / 24
gnuplot - dopasowywanie krzywych
Dopasowywanie zaleznosci funkcyjnych do danych doswiadczalnych.Kolejne etapy:
Definicja funkcjinp. ft(x)=a*x**2+b*x+cDefiniowanie poczatkowych wartosci parametrw (tak aby funkcjamozliwie najlepiej opisywaa dane)np. a=15; b=2.5; c=1.5Sprawdzenie jak dobrze te parametry zostay wybranenp. plot dane.dat w e, ft(x)Dopasowanie (uwaga - przy opcji using musza byc zdefiniowanedokadnie (!) 3 kolumny, trzecia kolumna to bedy y)np. fit ft(x) dane.dat using 1:2:3 via a,b,cSprawdzenie jakosci dopasowania:
Wizualnenp. plot dane.dat w e, ft(x)Sprawdzenie czy 2/liczba_stopni_swobody jest bliskie 1
K.Grzelak (IFD UW) 23 / 24
gnuplot - zmiana warunkw konca iteracji
Przykady zmian warunkw na zakonczenie poszukiwania minimumwyliczanej funkcji:
FIT_LIMIT = 1e-6FIT_MAXITER = 50
K.Grzelak (IFD UW) 24 / 24