ml - Introduzione interattiva di MATLAB       Vai all'indice del corso

Sequenze e tabelle numeriche
Versione 0.82


Indice del modulo

0stn.01 - Sequenze, tabelle ed arrays
0stn.02 - Sequenze numeriche
0stn.05 - Le matrici di MATLAB
0stn.10 - Sequenze e vettori MATLAB
0stn.11 - Definizione di vettori mediante componenti
0stn.12 - Definizione di semplici vettori
0stn.20 - L'operatore di trasposizione di matrici
0stn.21 - Trasposizione di matrice
0stn.23 - Da vettori riga a vettori colonna
0stn.24 - Trasposizioni di vettori riga e colonna
0stn.26 - Le trasposizioni e le involuzioni
0stn.28 - Aggiunta e trasposta di matrice complessa
0stn.30 - Vettori con componenti progressive
0stn.31 - Le progressioni
0stn.32 - Sequenze di interi consecutivi
0stn.33 - Progressioni di numeri dispari
0stn.34 - Progressioni decrescenti
0stn.35 - Progressioni ridotte a semplice numero
0stn.36 - Richieste di progressioni senza esito
0stn.38 - Concatenazione di progressioni
0stn.40 - Matrici e vettori simili
0stn.41 - Function length e function size
0stn.50 - Dati numerici di origine empirica e dati di natura matematica
0stn.51 - Operazioni sugli schieramenti numerici
0stn.54 - Applicazioni delle sequenze numeriche
0stn.56 - Applicazioni delle matrici
0stn.58 - Matrice esprimente un'operazione aritmetica
0stn.59 - Matrice esprimente un gruppo di rotazioni


0stn.01 - Sequenze, tabelle ed arrays

Per risolvere gran parte dei problemi computazionali di rilevanza applicativa si devono elaborare collezioni anche molto estese di dati esprimibili mediante numeri e scritture convenzionali che tendenzialmente seguono precise regole formali. Le collezioni di dati piu` facilmente trattabili sono quelle dotate di strutture ben definite: si parla allora di strutture di dati o di strutture informative. Talune di queste strutture si possono studiare proficuamente con metodi matematici rigorosi anche decisamente astratti: si parla allora di strutture matematiche. Altre strutture di dati ricavati dalla osservazione del mondo reale, invece, si sanno trattare per fini pratici solo con procedimenti elaborativi che richiedono il computer.

Le strutture di dati piu` semplici sono le sequenze; subito dopo vengono le tabelle. Le prime sono costituite da informazioni che si presentano una di seguito all'altra e che si possono registrare in dispositivi di memoria chiamati nastri costituiti da caselle affiancate, ciascuna in grado di registrare un dato. Le tabelle sono invece costituite da informazioni che si presentano in due dimensioni, disposte a rettangolo, e che quindi si possono registrare in caselle disposte in modo da presentare allineamenti orizzontali chiamati righe ed allineamenti verticali chiamati colonne. Tutte le righe di una tabella hanno lo stesso numero di componenti; la stessa cosa accade alle sue colonne.

Le sequenze numeriche sono dette anche vettori (questo termine pero` dovrebbe essere usato solo con una connotazione geometrico-fisica) e le tabelle numeriche sono chiamate spesso matrici.

Le sequenze e le tabelle sono anche dette, rispettivamente, arrays monodimensionali e arrays bidimensionali. Traduciamo la parola inglese array con il termine schieramento (per la verita` poco adottato).

Piu` in generale si possono considerare anche schieramenti su tre e piu` dimensioni (v.o.).

Le informazioni che costituiscono un array sono dette componenti, o anche elementi.

torna all'indice del modulo - del corso

0stn.02 - Sequenze numeriche

Consideriamo ora gli arrays piu` semplici, cioe` le sequenze numeriche.

Una sequenza viene indicata genericamente con una scrittura del tipo

a1, a2, ..., aN.

Il numero ai per i=1,2,...,N viene chiamato componente i-esima della sequenza; l'intero positivo N viene detto lunghezza della sequenza.

Esempi di sequenze numeriche sono dati da:
i punti di classifica ottenuti nelle successive giornate di campionato di una squadra
le temperature corporee di un malato misurate in determinati momenti successivi di una giornata
i numeri dispari compresi tra -10 e 5.

Osserviamo che i componenti di una sequenza, contrariamente agli elementi di un insieme, possono presentare ripetizioni e non si possono cambiare di posto: due sequenze che presentano le stesse componenti disposte diversamente vanno considerate entita` diverse.

torna all'indice del modulo - del volume

0stn.05 - Le matrici di MATLAB

Uno dei maggiori pregi del sistema MATLAB consiste nella facilita` con la quale permette di gestire grandi complessi di dati numerici (e non) organizzati in arrays. I complessi di dati piu` importanti per MATLAB sono le matrici, tabelle le cui componenti sono numeri, reali o complessi.

Le componenti di una linea orizzontale di una matrice M costituiscono una riga di M, quelle di una linea verticale costituiscono una colonna di M. Una matrice con nr righe ed nc colonne viene detta matrice di aspetto, o di tipo, nr x nc; il numero delle sue componenti è nr*nc. Quando nr=1 la matrice prende il nome di vettore riga, mentre quando nc=1 prende il nome di vettore colonna.

La componente di una matrice M di aspetto nr x nc collocata nella casella facente parte della riga i e della colonna j viene indicata con Mi,j e la matrice complessiva viene espressa mediante le sue componenti come

[Mi,j  | i=1,...,nr   j=1,...,nc]

Per certe manovre di MATLAB i singoli dati numerici sono convenientemente considerati come matrici di tipo 1 x 1, come matrici ad una sola componente, mentre le sequenze di n numeri sono considerate come matrici del tipo 1 x n.. Inoltre, come vedremo, una stringa di caratteri come 'Stringa' viene considerata come una matrice del tipo 1 x 7 le cui componenti sono caratteri.

Una variabile di MATLAB si puo` considerare come una coppia (identificatore, memorie) associata ad una matrice. In particolare si hanno le variabili associate a vettori riga (matrici 1 x nc) ed a vettori colonna (matrici nr x 1). Ancor piu` in particolare si hanno le variabili associate a singoli dati numerici (matrici 1 x 1).

Nel linguaggio MATLAB si esprime una matrice mediante le sue componenti elencando questi numeri delimitati entro una coppia di parentesi quadre; le componenti vengono scritti per righe successive procedendo in ogni riga da sinistra a destra; lo spazio o la virgola separano le componenti successive della stessa riga, mentre per passare da una riga alla successiva occorre inserire il separatore ``;'' . Una matrice puo` anche essere assegnata disponendo le sue componenti in linee successive del foglio di lavoro, utilizzando ogni linea per gli elementi di una riga.

torna all'indice del modulo - del corso

0stn.10 - Sequenze e vettori MATLAB

Operando con MATLAB le sequenze numeriche si possono trattare con due tipi di strutture di dati leggermente diverse, i vettori riga ed i vettori colonna. I primi sono presentati con le componenti disposte orizzontalmente e si possono considerare matrici con una sola riga; i secondi presentano le componenti disposte verticalmente e si possono considerare matrici con una sola colonna . I due tipi di vettori MATLAB differiscono non per i loro contenuti informativi, che sono equivalenti, ma per i modi secondo i quali si opera su di essi, come vedremo in seguito.

torna all'indice del modulo - del volume

0stn.11 - Definizione di vettori mediante componenti

Si considerino le seguenti frasi di introduzione di alcuni vettori riga mediante le loro singole componenti, costituite da costanti o da variabili numeriche, separate da blanks o da virgola:

>> PuntiInClassifica = [3 4 5 8 8 11 12 13 13 16];
>> SeqTemporaleTemperature = [38.3 38.6 38.3 37.8 37.4 36.7 36.6];
>> VariazPercent = [-3.1 -2.5 1.8 -1.2 0.2];
>> VariazPercent =
>>     [-3.1 -2.5 1.8 -1.2 0.2]

Con ciascuna delle precedenti frasi si e` introdotta una struttura di dati costituente un vettore riga e si e` dichiarato il suo identificatore. Gli identificatori che abbiamo scritti fanno pensare di essere stati scelti in modo da risultare significativi e mnemonici.

Si possono invece introdurre vettori colonna ponendo le loro componenti tra due parentesi quadrate come per i vettori riga, ma separandoli mediante separatori ``;`` :

>> coord = [13.3; 4.5; -8.8]
>> coord
>>     13.3
>>      4.5
>>     -8.8

torna all'indice del modulo - del volume

0stn.12 - Definizione di semplici vettori

Componiamo il vettore riga dei primi cinque interi positivi pari ed il vettore colonna dei primi cinque interi positivi multipli di 4.

>> VettRig=[2 4 6 8 10], VettCol=[4;8;12;16;20]
VettRig =
     2     4     6     8    10
VettCol =
     4
     8
    12
    16
    20

Si possono facilmente costruire vettori utilizzando non solo singole componenti numeriche, ma anche dei vettori precedentemente definiti.

>>Vett = [0 1 VettRig 11 12 VettCol']
Vett =
  Columns 1 through 12 
     0     1     2     4     6     8    10    11    12     4     8    12
  Columns 13 through 14 
    16    20

torna all'indice del modulo - del volume

0stn.20 - L'operatore di trasposizione di matrici

Per matrice trasposta di una data si intende la matrice ottenuta da quella di partenza scambiando le sue righe con le sue colonne. MATLAB consente di passare da una matrice alla sua trasposta applicando l'operatore `` ' `` alla sua destra. Questo operatore di trasposizione e` quindi un operatore unario suffisso, cioe` un operatore che agisce sopra un solo operando che compare alla sua sinistra. La trasposta della matrice Matr si denota quindi Matr'.

Si noti che applicando due volte la trasposizione si riottiene la matrice di partenza.

Nel caso di matrici di numeri complessi l'operatore `` ' '', oltre a trasporre una matrice, trasforma i suoi elementi nei corrispondenti complessi coniugati; la matrice cosi` ottenuta si dice matrice aggiunta di quella data. Per ottenere la sola trasposizione di una matrice complessa occorre servirsi dell'operatore unario dato dai due segni `` .' `` .

torna all'indice del modulo - del corso

0stn.21 - Trasposizione di matrice

Considera la matrice M43 di tipo 4 x 3 che nella casella della riga r e della colonna c contiene r*10+c e trasponila.

>> M43=[11 12 13 ; 21 22 23; 31 32 33 ; 41 42 43];
>> M43'
ans =
  11     21     31     41
  12     22     32     42
  13     23     33     43
>>

Una matrice le cui componenti hanno valori che sono in grado di far capire a quale la riga ed a quale colonna appartengono la chiameremo matrice a posizioni evidenti. La precedente matrice e` di questo tipo.

torna all'indice del modulo - del corso

0stn.23 - Da vettori riga a vettori colonna

Particolari trasposizioni di matrici sono la trasformazione di un vettore riga nel corrispondente vettore colonna e la trasformazione di un vettore colonna nel corrispondente vettore riga. Questa operazione viene richiesta facendo seguire da un segno apice `` ' `` l'identificatore del vettore da trasporre o, piu` in generale, l'espressione che lo fornisce.

>> coordriga = coord'
>> coordriga =
>>     13.3       4.5      -8.8
>> Trasp = VarPercent'
>> Trasp =
>>     -3.1 
>>     -2.5 
>>     1.8 
>>     -1.2 
>>      0.2

torna all'indice del modulo - del volume

0stn.24 - Trasposizione di vettori riga e colonna

Considera i seguenti vettori trasposti.

>> VettRig' 
   ans = 
   2 
   4 
   6
   8
   10
>> VettCol' 
   ans = 
   4 8 12 16 20 

torna all'indice del modulo - del volume

0stn.26 - Le trasposizioni e le involuzioni

Abbiamo notato che applicando due volte la trasposizione si riottiene la matrice di partenza.

Le trasformazioni che agiscono sopra un determinato insieme le quali quando sono applicate due volte lasciano invariato ogni elemento dell'insieme si dicono involuzioni o trasformazioni involutorie. Dunque la trasposizione e` una trasformazione involutoria dell'insieme delle matrici.

Oltre alla trasposizione di matrici in matematica si incontrano molte altre interessanti involuzioni. Alcuni esempi:
(1) il passaggio da un numero (intero, reale, complesso) al suo opposto in segno;
(2) il passaggio da un numero reale positivo al suo reciproco;
(3) la riflessione dei punti del piano rispetto ad una qualsiasi retta;
(4) la trasformazione dei vettori v dello spazio tridimensionale negli opposti in segno -v;
(5) il passaggio da una funzione f(x) definita per per ogni x reale alla f(-x);
(6) il passaggio da un numero complesso al suo complesso coniugato.

In generale una involuzione definita sopra un insieme S e` una trasformazione T tale che

per ogni x di S: T(T(x)) = x

Nell'insieme S si distinguono gli elementi f che non sono modificati dalla T, per i quali T(f) = f. Questi si dicono punti fissi della T. Ogni altro elemento d viene trasformato in un elemento d' t.c. T(d)=d' e T(d')=d. Quindi gli elementi di S che non sono punti fissi costituiscono coppie di elementi che si dicono oggetti mutuamente duali per la T.

Punti fissi (o elementi autoduali) della trasposizione sono le matrici quadrate simmetriche; punti fissi delle precedenti trasformazioni sono
(1) il solo numero zero;
(2) il solo numero 1;
(3) i punti della retta di riflessione;
(4) il solo vettore nullo (0,0,0);
(5) le funzioni pari come x^2, 2/x^4, sin(3x), cos^2(x);
(6) i numeri reali.

torna all'indice del modulo - del corso

0stn.28 - Aggiunta e trasposta di matrice complessa

 format rat
>> m=[1+i i/2 ; -i/4 0.5-i]
m =
      1       +    1i            0       +    1/2i    
      0       -    1/4i         1/2      -    1i      
>> m'
ans =
      1       -    1i            0       +    1/4i    
      0       -    1/2i         1/2      +    1i      
>> m.'
ans =
      1       +    1i            0       -    1/4i    
      0       +    1/2i         1/2      -    1i 

Osserviamo che anche il passaggio all'aggiunta e` una involuzione; in effetti la coniugazione complessa e` una involuzione e il prodotto di due involuzioni che commutano e` una involuzione.

torna all'indice del modulo - del corso

0stn.30 - Vettori con componenti progressive

Un vettore riga le cui componenti costituiscono una progressione aritmetica si puo` indicare sinteticamente servendosi del segno `` : ``.

Scrivi il vettore riga dei numeri pari positivi compresi tra 6 e 18.

>> (6:2:18)
ans =
     6    8   10   12   14   16  18
>>

Servendosi dell'operatore di trasposizione si possono definire sinteticamente anche i vettori colonna contenenti progressioni aritmetiche

Scrivi il vettore colonna dei primi dieci numeri dispari.

>> (1:2:19)'
ans =
     1
     3
     5
     7
     9
    11
    13
    15
    17
    19

torna all'indice del modulo - del volume

0stn.31 - Le progressioni

Sequenze numeriche che seguono regole matematiche molto semplici sono le progressioni aritmetiche (o progressioni tout court), cioe` le sequenze costituite da un certo numero n di numeri equispaziati e quindi ottenibili da un valore iniziale ni aggiungendogli una, due, ..., n-1 volte un certo valore passo vp; esse quindi hanno la forma:

[ ni   ni+vp   ni+2*vp ... ni+(n-1)*vp ]

Per definire una progressione come questa MATLAB consente di utilizzare l'espressione della forma

ni : vp : nb     con ni, vp ed nb numeri interi o reali

Il numero ni stabilisce il valore iniziale della progressione e puo` essere qualsiasi; vp da` il valore del passo e puo` essere positivo o negativo, ma non nullo; nb e` il numero al quale la progressione si avvicina: se ni < nb, allora vp deve essere positivo e l'espressione fornisce la progressione

ni, ni+vp, ..., nf con nb-vp<nf<=nb;

se ni > nb, allora vp deve essere negativo e l'espressione fornisce la progressione

ni, ni+vp, ..., nf con nb<=nf<nb-vp.

MATLAB dispone gli elementi di una tale progressione in un array riga di nf-ni+1 componenti.

Quando il passo e` uguale ad 1 si puo` utilizzare il comando in forma semplificata

n 1 :nf

torna all'indice del modulo - del volume

0stn.32 - Sequenze di interi consecutivi

Definire due vettori riga contenenti i primi dieci numeri positivi rispettivamente in ordine crescente e decrescente.

>> n = 1 : 10 
n =
   1    2    3    4    5    6    7    8    9   10
>> countdown = 10 : -1 : 1
countdown =
  10    9    8    7    6    5    4    3    2    1

torna all'indice del modulo - del volume

0stn.33 - Progressioni di numeri dispari

Scrivi il vettore colonna dei primi sei numeri dispari.

>> (1:2:19)'
ans =
     1
     3
     5
     7
     9
    11
>>

Scrivi il vettore riga dei primi 8 multipli dispari di 3.

>> (3:6:45)
ans =
     3   9   15   21   27   33   39   45

torna all'indice del modulo - del volume

0stn.34 - Progressioni decrescenti

Costruisci la sequenza delle cifre decimali decrescenti

>> 9:-1:0
ans =
    9  8  7  6  5  4  3  2  1  0

Costruisci la progressione decrescente degli angoli in radianti che dividono l'angolo giro in n parti uguali, per n=5

>>n=5; frang=2*pi/n; sqang=[(n-1)*frang:-frang:0]
sqang =
     5.0265    3.7699   2.5133   1.2566

torna all'indice del modulo - del volume

0stn.35 - Progressioni ridotte a semplice numero

Una richiesta con valore iniziale e valore bersaglio uguali o meno distanti del passo porta ad un valore numerico semplice

>>5:2:5, 5:=2:4
ans =
        5
ans =
        5
>>ans^2
ans =
        25

torna all'indice del modulo - del volume

0stn.36 - Richieste di progressioni senza esito

Le richieste di progressioni crescenti (passo positivo) con valore iniziale superiore al finale e le richieste di progressioni decrescenti (passo negativo) con valore iniziale inferiore al finale comportano solo messaggi di errore che segnalano che la ``matrice`` richiesta e` vuota. La stessa conseguenza ha una richiesta di progressione di passo 0.

>> 3:1:0
ans =
   Empty matrix: 1-by-0
>> [10:-2:30]'
ans =
   Empty matrix: 0-by-1
>> 4:0:4
ans =
   Empty matrix: 1-by-0

torna all'indice del modulo - del volume

0stn.38 - Concatenazione di progressioni

MATLAB consente di costruire facilmente sequenze formate concatenando progressioni e componenti fornite esplicitamente: un esempio e` il seguente:

>> anni=[1970:2:1982 1983 1986 1990:3:2002]
anni  =
  1970  1972  1974  1976  1978  1980  1982  1983  1986  1990  1993  1996  1999  2002

torna all'indice del modulo - del volume

0stn.40 - Matrici e vettori simili

Due matrici si dicono matrici simili se hanno lo stesso numero di righe e lo stesso numero di colonne. Due vettori ML, casi particolari di matrici, sono simili se sono entrambi vettori riga o vettori colonna e se presentano lo stesso numero di componenti.

Sono dunque simili i vettori ML che rappresentano i vettori del piano cartesiano, i vettori ML che rappresentano i vettori dello spazio vettoriale tridimensionale ed i vettori ML che rappresentano i vettori di un spazio vettoriale n-dimensionale. Come vedremo in ???, sono simili anche i vettori ML che rappresentano i polinomi di un determinato grado.

Sui vettori simili si possono definire varie relazioni ed operazioni significative ed utili per molte applicazioni.

torna all'indice del modulo - del volume

0stn.40 - Function length e function size

Si puo` stabilire la lunghezza di un vettore riga, cioe` il numero delle sue componenti, mediante la function length. Si possono invece stabilire il numero delle righe ed il numero delle colonna di una matrice richiamando la function size.

>> length(2:-0.5:-2)
ans =
        9
>> [nr nc] = size([1 2 3 4 ; 5 6 7 8 ; 9 10 11 12])
nr =
        3
nc =
        4

torna all'indice del modulo - del volume

0stn.50 - Dati numerici di origine empirica e dati di natura matematica

Dal punto di vista di chi effettua calcoli con il computer (con MATLAB o con altro sistema software) occorre distinguere tra
schieramenti di dati che devono essere forniti al sistema immettendoli uno per uno, battendoli su una tastiera o facendoli prelevare da una registrazione, e
schieramenti che sono governati da regole matematiche piu` o meno semplici e che possono essere costruite con procedimenti automatici.

Tra i primi, che diremo schieramenti di origine empirica, vi sono le collezioni di dati ottenibili attraverso misurazioni, forniti da sensori, ricavati da indagini, ottenuti dalla consultazione di documenti.

Le sequenze numeriche di natura matematica piu` semplici sono le progressioni aritmetiche come le seguenti:

2, 3, 4, 5 , 6      10, 15, 20, 25, 30, 35      21, 14, 7, 0, -7.

Un esempio di tabella di natura matematica e` dato dalla seguente porzione del triangolo di Tartaglia, o triangolo di Pascal.

1 1 1 1 1 1
1 2 3 4 5 6
1 3 6 10 15 21
1 4 10 20 35 56
1 5 15 35 70 126
1 6 21 56 126 252

I numeri in questa tabella sono detti coefficienti binomiali e possono essere definiti in molti modi: la definizione piu` semplice dice che ogni casella contiene il numero (intero positivo) dei cammini che consentono di raggiungere la casella stessa a partire dalla casella in alto a sinistra con passi da una casella verso quella immediatamente inferiore o quella immediatamante alla sua destra. Da questa richiesta segue tutte le caselle della prima riga e della prima colonna contengono 1 e che in ogni altra casella si ha la somma degli interi contenuti nelle due caselle immediatamente a sinistra e superiore.

Il precedente schieramento puo` quindi essere interamente costruito sulla base di una certa regola di calcolo o algoritmo. Molti schieramenti di natura matematica sono quelli le cui componenti si possono ottenere mediante opportune espressioni. Alcuni li tratteremo tra breve, dopo avere visto come costruirli con comandi MATLAB.

torna all'indice del modulo - del volume

0stn.51 - Operazioni sugli schieramenti numerici

Sugli schieramenti di dati empirici, in genere si rende necessario effettuare analisi ed elaborazioni di vari tipi: potrebbero interessare la somma dei dati, il loro valore massimo, il valore medio o altri indicatori o parametri significativi.

Quando risulta necessario conoscere questi indicatori relativamente a schieramenti numerici retti da regole matematiche, si puo` cercare di dedurli da queste stesse regole. Se pero` la cosa non risulta possibile, oppure se la cosa e` possibile ma si rivela impegnativa, puo` essere conveniente procedere empiricamente con il computer, approntando opportune procedure, in particolare servendosi di MATLAB. Talora, dopo aver ottenuti dal computer i valori di taluni casi significativi, si riescono ad intuire le regole per i calcoli che interessano. Successive procedure piu` consapevoli forniscono risultati la cui correttezza si puo` sottoporre a verifiche piu` attente. In una ulteriore fase si puo` cercare di dimostrare le procedure di calcolo: se si giunge a una dimostrazione si riesce a raggiungere una consapevolezza matematica pienamente soddisfacente.

Osserviamo anche che tutti gli schieramenti di dati, sia quelli dinatura empirica che quelli dinatura matematica, possono essere capiti meglio quando si dispone di una loro adeguata presentazione grafica.

Come vedremo MATLAB rende disponibili molti strumenti che consentono il calcolo di parametri significativi per le collezioni di dati e fornisce molti meccanismi per il tracciamento di efficaci visualizzazioni dei dati.

torna all'indice del modulo - del volume

0stn.54 - Applicazioni delle sequenze numeriche

Abbiamo visto sequenze numeriche riguardanti situazioni che possono essere rappresentate e studiate quantitativamente (punteggi, temperature, dati finanziari, ... ).

Le sequenze numeriche, come abbiamo gia` accennato, consentono di trattare concretamente anche svariate entita` matematiche. Spendiamo qualche parola in proposito.

I vettori del piano e dello spazio tridimensionale sono trattati piuttosto bene mediante, rispettivamente, le coppie e le terne delle loro coordinate cartesiane. In certi casi puo` essere opportuno servirsi di altri tipi di coordinate (le polari, le sferiche, le cilindriche, ...); in ogni caso si hanno coppie o terne di numeri numeri reali che in genere sono soggetti a limitazioni.

Passando dalle coppie e terne di coordinate alle sequenze di 4, 5 ,... , n componenti si riescono a trattare vettori in spazi di 4, 5 ..., n dimensioni. Anzi la stessa nozione di spazio n-dimensionale, di per se poco intuitiva, si introduce abbastanza agevolmente sevendosi delle n-uple, cioe` delle sequenze di n componenti.

Con una sequenza di n+1 numeri si individua un polinomio di grado n in una variabile che indichiamo con x, il polinomio che presenta le successive componenti della sequenza come coefficienti delle successive potenze della variabile x. Introdurremo abbastanza ampiamente i polinomi nel modulo ml1pol.

Con sequenze numeriche opportune si possono trattare efficacemente le funzioni f(x) di variabile reale che presentano un andamento abbastanza regolare. Come vedremo in genere si ha una buona idea dell'andamento della funzione considerando i valori assunti dalla funzione in corrispondenza di una sequenza abbastanza estesa e abbastanza fitta di valori equispaziati per la x appartenenti ad un intervallo opportuno del dominio della funzione. In questo modo si considera quella che viene detta una campionatura della funzione. In altri casi si considera una campionatura casuale della funzione f(x) considerando i valori che essa assume in corrispondenza dei valori della x forniti da una cosiddetta sequenza pseudocasuale (v.o.).

Un esempio e` dato dai numeri triangolari forniti dalle somme dei primi interi positivi Trin = 1+2+...+n: per l'n-esimo di questi numeri su ha l'espressione

Trin =n(n+1)/2

Altre sequenze numeriche si possono ottenere solo applicando formule di ricorrenza. Questo e` il caso dei numeri di Fibonacci, numeri interi che hanno varie applicazioni (dalla genetica, all'architettura, all'analisi degli algoritmi) e sono definiti dalle formule

F0=1    F1=1    Fn=Fn-1 + Fn-2

Per costruire queste sequenze occorre servirsi di comandi iterativi del linguaggio di programmazione di MATLAB.

torna all'indice del modulo - del volume

0stn.56 - Applicazioni delle matrici

Le matrici hanno molte ed importanti applicazioni. Accenniamo ora brevemente alle categorie nelle quali si possono inquadrare.

Molte situazioni che si incontrano nelle attivita` produttive, gestionali e finanziarie, ma anche nello studio e nella ricerca, vengono descritte con tabelle di dati. Queste sono matrici di dati limitatamente omogenei; spesso si hanno dati omogenei solo nelle singole colonne: questo e` quello che accade spesso per le tabelle di dati di interesse statistico. Strutture di dati di questo genere costituiscono anche le basidati piu` semplici. Queste matrici sono sottoposte ad elaborazioni di natura empirica.

Sono invece matrici omogenee quelle che consentono di trattare le trasformazioni lineari entro un unico spazio vettoriale o tra due spazi vettoriali. Nel primo caso si hanno matrici quadrate, nel secondo si possono avere matrici rettangolari. Queste matrici vengono elaborate con metodi matematici anche molto sofisticati, metodi che afferiscono all'algebra lineare, alla geometria ed alla analisi numerica.

Matrici numeriche come le precedenti forniscono campionature delle funzioni di due variabili reali. Esse servono per trattare numericamente e graficamente queste funzioni. Anche per queste matrici MATLAB mette a disposizione strumenti di elevata efficacia i quali in particolare consentono di ottenere grafici tridimensionali di grande efficacia, mappe ed animazioni di realta` virtuale.

Matrici con componenti binarie, cioe` componenti che possono valere 0 o 1, consentono di rappresentare i digrafi, strutture discrete che descrivono reti di collegamento che possono schematizzare circuiti elettrici, sistemi di strade, sistemi di collegamenti di dipendenza fra attivita` produttive, sistemi di collegamento tra informazioni, voci di enciclopedie, programmi per il computer. Queste matrici e altre collegabili ad esse sono da sottoporre ad elaborazioni rette da algoritmi studiati nell'ambito della metematica discreta e dell'informatica teorica.

La usuale tavola pitagorica riguardante i prodotti dei numeri da 1 a 10 e` chiaramente una matrice. Piu` in generale mediante matrici si possono dare leggi di composizione di strutture algebriche come gruppi e campi .

torna all'indice del modulo - del volume

0stn.58 - Matrice esprimente un'operazione aritmetica

Componi la tavola pitagorica in base 3, cioe` la matrice che fornisce gli interi rappresentati nella base 3 che costituiscono i risultati della moltiplicazione dei numeri 0, 1 e 2.

>> MatMul3 = [ 0 0 0; 0 1 2; 0 2 11 ]
MatMul3 =
     0     0     0
     0     1     2
     0     2    11
>>

Ricordiamo che nella rappresentazione in base 3 si usano solo le cifre 0, 1 e 2 e che una scrittura come 21 reppresenta il numero 2*3 + 1, cioe` il numero che nella rappresentazione decimale viene dato da 7 e nella rappresentazione binaria viene scritto 111.

torna all'indice del modulo - del corso

0stn.59 - Matrice esprimente un gruppo di rotazioni

Le rotazioni del piano cartesiano dei multipli di 2/5 pi costituiscono un gruppo di trasformazioni del piano stesso, cioe` un insieme di trasformazioni che contiene anche le inverse delle trasformazioni e le composizioni di due di esse. La tavola pitagorica o tavola di composizione di questo gruppo e` la matrice le cui righe e colonne sono in corrispondenza con le diverse rotazioni (di 0, 72, 144, 216 e 288 gradi) e che in ogni casella contiene la rotazione ottenuta applicando di seguito la rotazione della riga e quella della colonna. Costruiamola.

>> MatRot5 = [ 0 2/5*pi 4/5*pi 6/5*pi 8/5*pi
2/5*pi 4/5*pi  6/5*pi  8/5*pi 0 
4/5*pi 6/5*pi  8/5*pi  0  2/5*pi 
6/5*pi 8/5*pi  0  2/5*pi  4/5*pi 
8/5*pi 0  2/5*pi  4/5*pi  6/5*pi ]
MatRot5 =
         0    1.2566    2.5133    3.7699    5.0265
    1.2566    2.5133    3.7699    5.0265         0
    2.5133    3.7699    5.0265         0    1.2566
    3.7699    5.0265         0    1.2566    2.5133
    5.0265         0    1.2566    2.5133    3.7699

torna all'indice del modulo - del corso