Wstęp do biblioteki GSL oraz narzędzia GNUPLOT


Gnu Scientific Library - informacje

GSL jest biblioteką do obliczeń numerycznych, napisaną w języku C.

Jak używać

  • W kodzie źródłowym programu należy dołączyć pliki nagłówkowe używanych funkcji, np:
#include <gsl/gsl_interp.h> 
  • Do linkowania należy dołączyć bibliotekę gsl, gslcblas oraz m (math). Przykładowe polecenie kompilatora ma więc postać:
·                 
·                    gcc interpolacja.c -lgslcblas -lgsl -lm 

Uwaga: można skorzystać z gotowego Makefile (załączony do zadań) i kompilować poleceniem make.

GNUPLOT

  • Program Gnuplot uruchamia się wydając w linii poleceń komendę:
gnuplot
  • Aby uzyskać pomoc w Gnuplocie wydajemy polecenie:
gnuplot> help
  • Przykładowe polecenia:
·                 
·                    gnuplot> plot sin(x)
·                    gnuplot> plot [x=0:4*pi] sin(x)
·                    gnuplot> plot [-pi:pi][-2:2] sin(x)
·                    gnuplot> plot [-pi:pi][-2:2] sin(x) title "Sinus" with lines lt 6 lw 3
·                    gnuplot> plot [-pi:pi][-2:2] sin(x) title "Sinus" with lines lt 6 lw 2, cos(x) title "Cosinus" with points pt 3 ps 2
    
  • Korzystanie ze zbioru danych z pliku:
    Przykladowe dane: fun1.txt.
·                 
·                gnuplot> plot "fun1.txt" 
·                gnuplot> plot "fun1.txt" using 1:3
·                gnuplot> plot "fun1.txt" using 1:2 w boxes
·                gnuplot> plot "fun1.txt" using 1:($2+$3)/2:2:3 w yerrorbars
  • Wykonywanie komend zapisanych w pliku:
·                 
·                    gnuplot> load "wynik_plot"
    
o                      
o                       gnuplot> set output "rys.jpg"
o                       gnuplot> set terminal jpeg
  
    • Rysowanie komendami plot etc. spowoduje wygenerowanie pliku rys.jpg.
    • Polecenie convert - konwersja obrazu, np. z jpeg do gif. Przykład użycia:
o                      
o                       convert rys.jpg rys.gif
  

Zadanie

  • Potrzebne pliki
  • Proszę skompilować program dokladnosc.c przy użyciu polecenia make, a następnie uruchomić go.
  • Korzystając z funkcji gsl_ieee_printf_double zobaczyć, jak zmienia się mantysa i cecha dla coraz mniejszych liczb. Kiedy mantysa nie jest w postaci znormalizowanej?

Zadania - gnuplot

  • Prosze odtworzyc wykres znajdujacy sie na rysunku
  • Przy pomocy gnuplot prosze narysowac dane zgromadzone w pliku dane1.dat. Aby wykres byl czytelny, jedna z osi musi miec skale logarytmiczna. Prosze ustalic, ktora to os i narysowac wykres.
  • Prosze narysowac wykres funkcji dwywymiarowej, ktorej punkty znajduja sie w pliku dane2.dat. Prosze przegladnac plik i sprobowac znalezc w nim maksimum. Potem prosze zlokalizowac maksimum wizualnie na wykresie. Prosze na wykresie zaznaczyc maksimum jako notke (np. set arrow).

GSL na MELETE

GSL skompilowany na melete znajduje siż tutaj:

/afs/wszib/usr/b/a/balis/pub/gsl/

Najlatwiej skompilowac program korzystajac z Makefile dostepnego tutaj.
Przed uruchomieniem należy ustawic jeszcze sciezke do bibliotek dzielonych poleceniem:

export LD_LIBRARY_PATH=/afs/wszib/usr/b/a/balis/pub/gsl/lib

UWAGA! Program skompilowany na melete moze nie dzialac na komputerach w laboratoriach.