• Non ci sono risultati.

IDL 27 ottobre 2011

N/A
N/A
Protected

Academic year: 2021

Condividi "IDL 27 ottobre 2011"

Copied!
5
0
0

Testo completo

(1)

27 ottobre 2011 IDL

In IDL i comandi possono essere dati “in linea” (direttamente sul prompt come abbiamo fatto  il   20   ottobre)   o   scritti   in   sequenza   all'interno   di   un  file  che   poi   possiamo   mandare   in  esecuzione.   È     convenzione   porre   l'estensione  .pro  (procedure)   ai  file  che   contengono  sequenze di comandi IDL.

1) Editate (con nedit) un file che chiamerete prova.pro e che contenga questa sequenza di comandi:

for i=1,10 do begin print,i

endfor end

Entrate in IDL e scrivete   .run prova (IDL> .run prova) per verificare cosa faccia la procedura  prova. 

Se  rieditate  prova.pro  e mettete come prima  istruzione  pro prova  allora per lanciare la  procedura sarà sufficiente scrivere prova (IDL>prova)

2) Create   (con   nedit)   un   file   di   nome  prova2.pro    contenente   questa   sequenza   di  istruzioni:

        pro prova2

x=findgen(1000)*2*!pi/500

read,ii,prompt='0= grafico del seno ­­ altro numero del  coseno' if(ii eq 0) then plot,x,sin(x) else plot,x,cos(x)

end if end

Mandate in esecuzione prova2 (IDL>prova2).

      La procedura prova2  mostra:

      ­  come  passare  valori dall'esterno;

– la sintassi dell'istruzione if nel caso semplice in cui la condizione dell' if implichi una  sola istruzione. Se invece ad un if compete una serie di istruzioni la sintassi    è la  seguente (modificate prova2.pro in questo modo):

     

         pro prova2

x=findgen(1000)*2*!pi/500

read,ii,prompt='0 =grafico del seno altro numero del  coseno if(ii eq 0) then begin

y=sin(x)  plot,x,y

endif else begin y=cos(x)

plot,x,y

(2)

endelse end   

Se   vogliamo   avere   la   possibilità   di   rieseguire   il   grafico   cambiamo  prova2.pro    nel  modo  seguente (in grassetto le modifiche):

 

       pro prova2

     x=findgen(1000)*2*!pi/500

again:    read,ii,prompt='0 =grafico del seno altro numero del  coseno          if(ii eq 0) then begin

       y=sin(x) y=sin(x)      plot,x,y

     endif else begin      y=cos(x)

     plot,x,y      endelse

       read,c,prompt='continui? yes=1,no=0'      if (c eq 1) then goto,again

    end

Le linee di commento nelle procedure devono essere precedute dal ;       

       Esercizio 1

Scrivere una procedura che contenga tutte le istruzioni di cui al punto [11] del 20 ottobre e  mandarla in esecuzione.

  

       Esercizio 2

La procedura che segue legge i dati contenuti nel file pippo.dat (che avete creato il 20 ottobre  e che contiene velocità radiale e distanza di 4 galassie)   li inserisce nella matrice  data  (2  colonne 4 righe)  

1

, li grafica   e poi esegue un  fit  lineare (minimi quadrati) utilizzando la  funzionei linfit di IDL .

La retta di best fit viene graficata costruendo il vettore x2 (contenente i valori da assegnare  alla variabile indipendente, la distanza) e ricavando  i valori della velocità radiale (la y2)  utilizzando i coefficienti della retta di best fit che vengono salvati nel vettore coeff,

Questi valori sono anche “stampati” sul terminale assieme al valore della variabile prob (da  noi chiamata probs) che è legata al  chi quadro  e alla bontà del  fit. Il  fit  è da considerarsi  1  ATTENZIONE  :La   notazione   IDL   per   le   matrici   (n

col

,n

rig

) (è   contraria   a   quella  convenzionale   (n

rig

,n

col

) .

 Inoltre il primo elemento di una matrice o di un vettore è lo ZERO e non l'UNO), Per capire  meglio questo secondo punto scrivete in linea questa serie di comandi:

IDL>a=[3,7,9]       (questa istruzione crea un vettore (a) contenente 3 elementi) IDL>print,a

IDL>print,a(0)

IDL>print,a(2)

(3)

affidabile  se probs è maggiore di 0.1       pro pippo

data=intarr(2,4) openr,1,'pippo.dat' readf,1,data

close,1

plot,data(1,*),data(0,*),psym=2,xrange=[50,150],yrange=[0,12000]

coeff=linfit(data(1,*),data(0,*),chisq=xi,prob=probs,yfit=yvalue) print,coeff,probs

x2=indgen(760)*0.1+ 55 y2=x2*coeff(1)+coeff(0)

oplot,x2,y2,color=160,thick=2 end

1) Create   un  file  (pippo.pro)   che   contenga   tutte   le   istruzioni   qui   sopra   elencate   e  mandatelo in esecuzione.

2) Osservate che dal fit avete ottenuto il valore della costante di Hubble (64) ma anche  un valore molto elevato (533)  per il termine noto. Aggiungete quindi alla procedura  pippo alcune sequenze di comandi capaci di :

­ correggere per questo “punto zero” delle velocità,

­ “overplottare” i punti corretti,

­ trovare la nuova retta di best fit e “overplottarla” ai nuovi dati.

3) Utilizzando i dati corretti per il punto zero trovate il  fit  inverso (non più y =f(x) ma  x=f(y)),   re­invertitelo e plottate sul grafico I   punti e le due rette di  best fit. Fate  stampare anche il coefficiente di correlazione ( r

2

 ) ricordando che è pari al prodotto  dei due coefficienti angolari  a a ' delle rette di cui sopra.

      Esercizio 3

Rifate tutto l'esercizio 2 utilizzando invece di pippo.dat il file 27ottobre.dat che trovate  in  http://gbm.bo.astro.it/paola/didattica/AA2011­2012/statistica/.

Mettete il titolo  “Legge di Hubble” al grafico e  le etichette agli assi. Salvate il grafico in un  file postscript. (Se preferite piuttosto che mostrare tutto sullo stesso grafico potete disegnare  più grafici sulla stessa pagina utilizzando l'opzione !p.multi).

      

       Esercizio 4

Dallo stesso sito di cui sopra scaricate il  file elly.dat. È un  file  che contiene dati su un  campione di più di 6000 galassie ellittiche.

In particolare il file contiene 7 colonne in cui si trovano I seguenti dati :

– la morfologia (codice di de Vaucouleurs ossia un numero che per le ellittiche va da ­5 

a ­3);

(4)

– la magnitudine apparente in banda B; 

– la velocità radiale eliocentrica;

– la velocità radiale corretta per il moto verso l'ammasso della Vergine;

– la magnitudine assoluta in B;

– la dispersione di velocità;

–  la brillanza superficiale alla 25 isofota.

I valori ­99 e  0.00 indicano l'assenza del dato.

­ Scrivete una procedura IDL capace di produrre un plot di questo tipo:

I punti rappresentano la  M

B

 verso la  v

r

(quella corretta per il moto verso la Vergine).Le  due curve rappresentano l'andamento della  M

B

 in funzione di  v

r

per campioni limitati  in magnitudine apparente  ( m

B

)  assunta rispettivamente pari a 15 e a 17, secondo la ben  nota relazione del modulo di distanza :

M

B

=m

B

−25−5 log d

Mpc

­   Dopo   aver   graficato   diverse   curve   (con   diversi   valori   per   la   m

B

  limite)   stabilite   il  ragionevole limite in  m

B

del campione elly.dat.

FATE ATTENZIONE A non utilizzare  i valori fasulli !! 

Come fare a leggere un file di cui non si conosce esattamente il numero delle righe ??

(Come nel caso di elly.dat ???) 

(5)

Questo è un modo ma potete escogitarne altri   openr,1,'elly.dat'

s=' ' b=0

while NOT EOF(1) do begin readf,1,s

b=b+1 endwhile close,1 print,b

data=fltarr(7,b­1) openr,1,'elly.dat' readf,1,data close,1

print,data(*,b­2) end

NOTATE che b­1 è il numero di righe di cui è composto il file elly.dat, però siccome il primo  elemento è ZERO e non UNO allora l'ultima riga della matrice data in cui abbiamo messo  elly.dat è la  b­2 e non la b­1.

È  sempre buona norma  farsi stampare alcuni valori dei  file  che si stanno leggendo per 

verificare che la procedura faccia le cose giuste.

Riferimenti

Documenti correlati

90 BOLLETTINO UFFICIALE DELLA REGIONE MARCHE 27 OTTOBRE 2011... 90 BOLLETTINO UFFICIALE DELLA REGIONE MARCHE 27

Una scuola moderna realmente rispondente ai bisogni educativi e culturali dei suoi studenti è quella che prevede che differenti approcci pedagogici si rivolgano, in modo diverso,

I parametri sono simili per la salentina Porto Cesareo: la perla dello Ionio registra una velocità di download lievemente inferiore rispetto che in Toscana: la media

[r]

« Come uno ' psichico infrarosso ' la psiche istintiva biologica, gradua lmente trapassa nella fisiologia del- l'organismo e si fonde colle sue condizioni chimiche e fisiche;

come la somma delle sue esperienze o delle relazioni che instaura ma ancor più come quella delle

15.00 Innovazione sociale: il progetto Quartiere della cultura tra criticità e opportunità per imprese e territorio, 16° Caffè dlla Responsabilità promosso da Spazio

La validità del presente certificato è subordinata alla sorveglianza periodica almeno annuale, al riesame completo del sistema gestione qualità aziendale con periodicità