Esercizi Lezione 2: Liste, vettori, matrici.

20. Liste. Una lista è un gruppo di dati qualsiasi (di solito numeri, ma non sempre) disposti in un certo ordine. Una lista di elementi e_1,...,e_n si scrive disponendo gli elementi tra parentesi graffe e separati da virgole: {e_1,...,e_n}. Costruite la lista di elementi 1, 2, 3.

[Graphics:../Images/index_gr_45.gif]
[Graphics:../Images/index_gr_46.gif]

21. Costruzione di liste. Il comando  Table[e_i,{i,1,n}] costruisce la lista {e_1,...,e_n}. Tutte le volte che conosciamo una legge che consente di calcolare l'elemento i-esimo di una lista, e conosciamo il numero degli elementi di una lista, possiamo costruire la lista usando il comando Table: questo comando è cruciale in molti usi di Mathematica. Al posto di i può trovarsi una qualsiasi variabile. Una forma più generale del comando è:
                  Table[e_i,{i,min,max}]
Costruisce la lista {e_min, e_min+1, ..., e_max}. Costruire, utilizzando il Comando Table, una lista l1 di cento "uno", una lista l2 dei primi cento interi, una lista l3 lista dei quadrati dei primi cento interi.

[Graphics:../Images/index_gr_47.gif]
[Graphics:../Images/index_gr_48.gif]
[Graphics:../Images/index_gr_49.gif]
[Graphics:../Images/index_gr_50.gif]
[Graphics:../Images/index_gr_51.gif]

22. Si può decidere di incrementare l'indice i, anzichè di un passo alla volta, di un numero qualunque di passi ogni ogni volta. La forma del comando in tal caso è:
        Table[e_i,{i,min,max,passo}]
Esso costruisce {e_min, e_min+passo, e_min+2passo, ...}, per ogni valore di min+k*passo <= max.  Costruire, utilizzando il comando dato, la lista dei multipli di 10 tra 0 e 100.

[Graphics:../Images/index_gr_52.gif]
[Graphics:../Images/index_gr_53.gif]

23. Operazioni su liste. Calcolate le lunghezze delle liste l1, l2, l3 (comando Length), e controllate che sia 100 in ogni caso.

[Graphics:../Images/index_gr_54.gif]
[Graphics:../Images/index_gr_55.gif]
[Graphics:../Images/index_gr_56.gif]
[Graphics:../Images/index_gr_57.gif]

24. Calcolate alcuni elementi delle liste l1, l2 e l3, usando l'operazione l[[i]] per calcolare l'elemento numero i della lista l.

[Graphics:../Images/index_gr_58.gif]
[Graphics:../Images/index_gr_59.gif]

25. Costruite una nuova lista aggiungendo l'elemento 0 all'inizio di l2, o l'elemento 101 alla fine, utilizzando Prepend e Append. Trovate questi comandi per costruire nuove liste sia nelle Palettes (voce File/Palettes/BasicCalculations/ListsAndMatrices del Menu qui sopra), sia alla voce ListsAndMatrices/ListsOperations dell'Help (sempre nel Menu qui sopra).
Si noti che Prepend, Append costruiscono una nuova lista. Ricalcolate la lista l2 per verificare che non cambia.

[Graphics:../Images/index_gr_60.gif]
[Graphics:../Images/index_gr_61.gif]
[Graphics:../Images/index_gr_62.gif]
[Graphics:../Images/index_gr_63.gif]
[Graphics:../Images/index_gr_64.gif]
[Graphics:../Images/index_gr_65.gif]

27. Operazioni su liste. Costruite nuove liste partendo dalla lista {1,2,3}, ed eseguendo su ogni elemento di l2 le operazioni:
+1, *2, ^2. E' sufficiente indicare l'operazione sull'intera lista: per esempio l2+1 crea una nuova lista aggiungendo 1 ad ogni elemento di l2.

[Graphics:../Images/index_gr_66.gif]
[Graphics:../Images/index_gr_67.gif]
[Graphics:../Images/index_gr_68.gif]
[Graphics:../Images/index_gr_69.gif]

28. Costruite nuove liste sommando, moltiplicando, ed elevando a potenza ogni elemento della lista {1,2,3} con il corrispondente elemento della lista {10,20,30}.

[Graphics:../Images/index_gr_70.gif]
[Graphics:../Images/index_gr_71.gif]
[Graphics:../Images/index_gr_72.gif]
[Graphics:../Images/index_gr_73.gif]

29. Liste di lunghezza variabile. Definire, usando una assegnazione dinamica :=, la lista T come la lista dei quadrati da 1 a n, con n da fissare. Fissare n=5,10,20, e controllare che T varia di conseguenza.

[Graphics:../Images/index_gr_74.gif]
[Graphics:../Images/index_gr_75.gif]
[Graphics:../Images/index_gr_76.gif]
[Graphics:../Images/index_gr_77.gif]
[Graphics:../Images/index_gr_78.gif]

30. Matrici. Una Matrice è un gruppo di dati disposto in forma rettangolare, su n righe tutte di m elementi. In altre parole, é una quadrettatura rettangolare di n righe ed m colonne, che in ogni casellina contiene un dato. Diciamo che la matrice ha dimensione n x m. Una Matrice viene rappresentata da una lista di liste, tipo {{a,b},{c,d}}. Gli elementi {a,b} e {c,d} sono considerati le righe della matrice, e devono avere la stessa lunghezza (la matrice dell'esempio ha dimensione 2x2). Definite M come la matrice 2x2 di elementi 1,2,3,4. Disegnate M in forma rettangolare usando MatrixForm[M].  Calcolate quindi l'inverso di M, il prodotto di M per se stessa e per il suo inverso, il determinante di M (sono operazioni su matrici che vedrete più avanti nei corsi, e che trovate alla voce "Matrici" del Menu: cercate in File/Palettes/BasicCalculations/ListsAndMatrices).
Infine,

[Graphics:../Images/index_gr_79.gif]
[Graphics:../Images/index_gr_80.gif]
[Graphics:../Images/index_gr_81.gif]
[Graphics:../Images/index_gr_82.gif]
[Graphics:../Images/index_gr_83.gif]
[Graphics:../Images/index_gr_84.gif]

30 bis. Scrittura di matrici. Costruire una matrice 3x3 di nome M usando il comando della Palette "Basic Input" relativo a matrici. Tale comando costruisce matrici 2x2: per aggiungere una terza riga, scrivere Control+Enter, per aggiungere una terza colonna, Control+il tasto "virgola".

[Graphics:../Images/index_gr_85.gif]
[Graphics:../Images/index_gr_86.gif]

Matrici e Vettori sono distinti. Anche nel caso in cui una matrice abbia una sola riga (es. {{a,b}}) oppure una sola colonna (es. {{a},{b}}) va considerata distinta dal vettore {a,b} con gli stessi elementi. Bisogna tener conto di questo fatto per non inserire un vettore in un problema in cui è richiesta una matrice, o viceversa.

31. Il comando Table[e_i,j, {i,1,n}, {j,1,m}], analogo al comando già visto per le liste, costruisce la matrice
{{e_1,1,e_1,2,...,e_1,m}, {e_2,1,e_2,2,...,e_2,m}, ....,{e_n,1,e_1,2,...,e_n,m}}
Costruire la matrice 10x10 contenenta la tavola pitagorica (cioè, nella riga 1, 2, 3,..., i primi dieci multipli di 1, 2, 3, ...) .

[Graphics:../Images/index_gr_87.gif]
[Graphics:../Images/index_gr_88.gif]

32. Se l1={e_1,...,e_n}, possiamo disegnare il grafico di{1,e_1},...,{n,e_n} usando ListPlot[l1].Disegnare, i grafici delle liste l1,l2,l3 (la lista di 100 uno, dei primi cento interi, dei quadrati dei primi 100 interi).

[Graphics:../Images/index_gr_89.gif]

[Graphics:../Images/index_gr_90.gif]

[Graphics:../Images/index_gr_91.gif]

[Graphics:../Images/index_gr_92.gif]

[Graphics:../Images/index_gr_93.gif]

[Graphics:../Images/index_gr_94.gif]

[Graphics:../Images/index_gr_95.gif]

33. Cambiare il grafico precedente congiungendo i punti consecutivi con tratti di retta (comando ListPlot[lista,PlotJoined->True]).

[Graphics:../Images/index_gr_96.gif]

[Graphics:../Images/index_gr_97.gif]

[Graphics:../Images/index_gr_98.gif]

[Graphics:../Images/index_gr_99.gif]

[Graphics:../Images/index_gr_100.gif]

[Graphics:../Images/index_gr_101.gif]

[Graphics:../Images/index_gr_102.gif]

34. Grafici di funzioni. Nei due casi precendenti, abbiamo visto un grafico sotto forma di un gruppo di punti, oppure di un gruppo di punti collegato da una linea spezzata.Un grafico può avere anche la forma di una linea continua. Il comando da usare in questo caso è Plot[f[x],{x,a,b}]. In tale comando, f[x] è la funzione di cui vogliamo disegnare il grafico (per esempio, f[x] è Sin[x]); x è la variabile indipendente del grafico, e a,b sono i valori iniziali e finali di x. D isegnare, usando il comando Plot[.], il grafico della funzione sin(x) per x tra 0 e 2π.

[Graphics:../Images/index_gr_103.gif]

[Graphics:../Images/index_gr_104.gif]

[Graphics:../Images/index_gr_105.gif]

35. Ripulite tutte le variabili usate.

[Graphics:../Images/index_gr_106.gif]


Converted by Mathematica      March 1, 2003