Matrici La base di MathLab sono le matrici per cui

Download Report

Transcript Matrici La base di MathLab sono le matrici per cui

Matrici
La base di MathLab sono le matrici per cui iniziamo a lavorare partendo
proprio dalle creazione di alcune matrici.
Al prompt A>> inseriamo la matrice utilizzando il seguente formato:
x=[2 4 6;1 3 2;0 10 3]
che costruisce una matrice (3 righe 3 colonne), la matrice è visualizzata con
l’enter risulta:
1. Esercizio
Sesi può effettuare lasomma,lungoqualsiasirigaocolonna,olungo
unadelleduediagonaliprincipali.Sum(A)effettualasommaper
colonne.
2. Esercizio
Possiamocalcolarelasommadeglielementidell’ultimacolonnascrivendoil
comando
Sum(A(:,end)
3. Esercizio
Data la matrice A possiamo costruire i vettori formati dalla seconda
colonna o della seconda riga mediante i comandi A(:;2) o A(2,:).
Possiamo costruire la matrice y=[1 5 6;2 8 16;9 10 12] e trovare la
somma tramite il comando sum.
4. Esercizio
Prodottidimatrici
Date due matrici x e y possiamo effettuare il loro prodotto , in modo molto
semplice, scrivendo la seguente equazione.
z=x*y
5. Esercizio
Inversadiunamatrice
Data una matrice x possiamo ottenere l’inversa scrivendo:
6. Esercizio
Matricediagonalediag(x)
Data una matrice trovare la diagonale vuol dire trovare i valori che
sono sulla diagonale principale 1 ,6, 6.
Data la matrice x possiamo trovare la sua diagonale semplicemente
scrivendo:
7. Esercizio
Matricediagonale
E’ possibile ottenere la matrice diagonale scrivendo la matrice con il
comando diag(A), riportando i coefficienti della diagonale principale,
possiamo effettuare la somma degli elementi della diagonale principale
mediante il comando:
Comandofliplr
Il comando riporta una matrice da sinistra a destra.
Somma e differenza di Matrici
MathLab permette di effettuare la somma e la differenza tra le due
matrici x e y , scrivendo le seguenti equazioni:
Sommatramatrici
8. Esercizio
z=x+y
Differenzatramatrici
Scrivendo z=x-y possiamo effettuare la differenza tra le due matrici.
9. Esercizio
10. Esercizio:Sommaedifferenzatramatrici
Potenzadellamatricex2
11. Esercizio
Potenzacubicadellamatricex3
MathLab permette l’uso delle potenze, data la matrice x possiamo
trovare la potenza della matrice data scrivendo x^3.
12. Esercizio
Max
Per trovare il più grande valore contenuto nella matrice, possiamo
usare il comando Max scrivendo il seguente comando max(max(x)).
13. Esercizio
Determinantediunamatricequadrata:funzionedet
Tramite il comando det è possibile trovare il determinante di una
matrice.
14. Esercizio
Esercizio:DatalamatriceAcalcolareildeterminante
15. Esercizio
Inversadellamatricex
Per ottenere l’inversa di una matrice x basta scrivere il comando:
Funzioneinv(x)
16. Esercizio
Traspostadiunamatrice
MathLab permette di ottenere ,tramite il comando A’, la trasposta della matrice. Data la matrice A è
possibile visualizzare la sua trasposta scrivendo A’
17. Esercizio
Mathlab tratta anche i numeri complessi, dato il numero complesso a=2+2i, possiamo trovare
a’, ottenendo il seguente risultato.
18. Esercizio
Lunghezzadiunvettore
Comandolength(x)
Mathlab permette di ottenere la lunghezza di un
dimensionale, mediante il comando length.
vettore, o larghezza di un
array
19. Esercizio
ComandoMagic(3)
Si possono generare matrici definendo solo la dimensione mediante il comando magic( ), magic
(3) genera la seguente matrice:
20. Esercizio
Magic(6)
21. Esercizio
Inserimentodicomandisupiùlinee
Sel’inserimentononvabenesuunalinea,usarei trepunti,...,seguitida
ReturnoEnterperindicarechelalineacontinuasullaprossimalinea.
22. Esempio:
s=1-1/4+1/2-1/8+1/10- 1/9+1/8...
- 1/6+1/9- 1/11+1/12- 1/14;
Comandiperlelinee
frecciasuoppurectrl-p-Richiamanolineaprecedente
frecciagiuoppurectrl-n-Richiamanolineaseguente
frecciasxoppurectrl-b-Trasportanoindietrodiuncarattere
frecciadxoppurectrl-f-Trasportanoinavantidiuncarattere
ctrl+frecciadxoppurectrl-r-Trasportanoalladestradellaparola
ctrl+frecciasxoppurectrl-l-Trasportanoallasinistradellaparola
homeoppurectrl-a-Portaall'iniziodellalinea
endoppurectrl-e-Portaallafinedellalinea
escoppurectrl-u-Ripuliscelalinea
deloppurectrl-d-Cancellanoilcaratteresulcursore
backspaceoppurectrl-h-Cancellanocaratteredopoilcursore
ctrl-k-Cancellafinoallafinedellalinea.
Operatoriperlematrici Mathlabpossiedeiseguenticomandipereffettuarelesingole
operazioni:
ComandiperleOperazionisull’usodellematrici
Elementidiunamatrice:comandi
Comandozeros: Creazionediuna matricecontuttizeri.
23. Esercizio
Comandoblkdiag
Il commando blkdiag costruisce un matrice diagonale da un input di argomenti.
24. Esercizio
Comandoeye Ilcomandoeyegeneraunamatricediagonaleunitaria
25. Esercizio
Uguaglianzatramatrici
Perilcontrollosull’uguaglianzadiduematricimathLabutilizzareilsimbolo‘==’.Avendo
duematriciaeb,possiamocontrollarequalielementisonouguali.Ilrisultatodelcontrollo
èun’altramatricecon0e1.
Lamatricefornitacontiene1,seglielementisonouguali,zeroseglielementisonodiversi.
Comandofreqspace
freqspace restituisce in frequenza l'intervallo equidistante. Freqspace è utile quando si
creano le risposte per una frequenza desiderata, per le varie applicazioni con
rappresentazioni
mono
e
bidimensionale.
Sintassi
[f1,f2] = freqspace(n)
[f1,f2] = freqspace([m n])
[x1,y1] = freqspace(...,'meshgrid')
f = freqspace(N)
[f1,f2]=freqspace (n)
Ilcomandorestituisceunamatrice bidimensionale, infrequenza, perivettori F1 eF2 oper una
matrice n-x-n
Pern dispari, entrambi F1 eF2 sono: [-n +1:2:n-1]/n.
Per npari F1 eF2 sono: [-n:2:n-2]/n.
[f1,f2]=freqspace ([m n])
Restituisceunamatrice bidimensionale in frequenza deivettori F1 eF2 per una matricemx-n.
[x1,y1]=freqspace (...,' meshgrid ')èequivalentea:
[f1,f2]=freqspace (...);
[x1,y1]=meshgrid (f1,f2);
f= freqspace (N)
Restituisceunvettore unidimensionale difrequenzaf ,conNpunti spaziati uniformemente
attornoal cerchiounitario.
PerN pariodispari,fè(0:2 / N: 1).
PerN pari, freqspace quindi ritorna (N +2) / 2punti.
Per N dispari,restituisce(N +1)/2 punti.
f= freqspace (N, 'intero')restituisceN punti equidistanti intornoalcerchio unitario.In
questocaso,fè00:02 / N: 2*(N-1)/N
f = freqspace(N,'whole')
26. Esercizio
ComandoINDSUB2
Ilcomando ind2sub determinaivalori pedice che corrispondenteadun unicoindice inun
array.
[I,J]=ind2sub (siz,IND)
Restituisce le matrici I e J contenenti la riga equivalente e pedice per colonna,
corrispondenti aciascunindice lineare, nel’ INDper lamatricedi SIZ dimensioni, Siz
che èunvettorecon elementi ndim (A). Inquestocaso 2,dove siz (1) èil numerodi
righee SIZ (2) èilnumerodi colonne.
27. Esercizio
Comandorho
Il comando rho visualizza il risultato dei calcoli.
28. Esercizio
Comandomeshgrid
Effettua la visualizzazione in tre dimensioni.
29. Esercizio: I seguenti comandi visualizzano la seguente superfice.
Possiamo ottenere la seguente visualizzazione in tre dimensioni mediante il programma.
30. Esercizio
31. Esercizio: I seguenti due comandi visualizzano una sfera
Comandosphere
Possiamoscrivereiseguenticomandievisualizzaretresfere.
32. Esercizio
Possiamo ottenere un’altra visualizzazione in tre D, modificando le istruzioni.
33. Esercizio
Comandowaterfall
Allevariabili selezionateperil grafico,utilizzareilselettorePlot per Visualizzare l’area
dilavoro, o utilizzarelatavolozza catalogo Figura Plot.
Manipolare grafici nellatrama modalità conl'editor diproprietà.
Per ulteriori informazioni, vedere Strumenti Grafici - Rappresentazione grafica
interattiva nelladocumentazione MATLAB o grafica ecreazionedi grafica dalbrowser
areadilavoro nelladocumentazione MATLAB Desktop Tools.
sintassi
waterfall (Z)
waterfall (X,Y,Z)
waterfall (..., C)
waterfall (axes_handles,...)
h = cascata (...)
Descrizione
Lafunzione cascata disegna unamaglia simileallafunzione meshz,ma nongenera
righe perle colonne dellematrici.Questoproduce uneffetto "acascata".
cascata (Z) creaungraficoacascata con x =1: size (Z,1)
y =1: size (Z,1).Z
Determinailcolore, ilcoloreè proporzionaleall'altezza della superficie.
waterfall (X,Y,Z) creaungraficoacascata con ivalorispecificati nelledirezioniX,Ye
Z. Z, determina anche il colore, per cui il colore è proporzionale alla quota di
superficie.
SeX eY sonovettori,Xcorrisponde allecolonne diZ eY corrisponde allerighe,incui
(x) =nèlalunghezza,(y)=m lalunghezza di [m,n]=size (Z).
Dove XeY sonovettori omatrici chedefiniscono x ey lecoordinate dellatrama.
Z èunamatrice chedefinisce la z-coordinatedellatrama (cioè l’altezza).SeC èomesso
ilcoloreèproporzionalealla Z.
waterfall (..., C) utilizzaivalorideicolori inscala da ottenere secondoicoloridella
mappaattuali.
Scala coloreèdeterminato dallagamma diC chedeveavere lastessadimensione Z.
MATLAB esegueuna trasformazionelineare su C, perottenere icoloridella mappa attuali.
waterfall (axes_handlestrame,...)%in assi conmaniglia%axes_handle alposto degliassi
attuali (GCA).
h = waterfall (...) restituiscel'handle dellagrafica,oggettoutilizzatoperdisegnare latrama.
Osservazioni
Perlacolonna orientata analisideidati,cascatauso(Z')o waterfall (X',Y',Z').
Esempi
Produrreun graficoacascata dellafunzionedi picchi.
[X,Y,Z]=picchi (30);
waterfall (X,Y,Z)
34. Esercizio
ComandoFrame2im
Descrizione
[X,Mappa] = frame2im (F)
Restituiscel'immagineindicizzataX, associati Mappa colormap alsingolo frame delfilm F.
Se il framecontiene true-color dati,l'm-a-n-3 laMappa matrice èvuota. Il getframe funzionie
im2frame creano unacornice film.
Produrreun graficoacascata dellafunzionedi picchi.
[X,Y,Z]=peaks (30);
waterfall(X,Y,Z)
35. Esercizio
TensorediKronecker
Per delta di Kronecker si intende una funzione di due variabili discrete, in particolare di due
variabili sugli interi o sugli interi naturali , che vale 1 se i loro valori coincidono, mentre vale 0 in
caso contrario.
Solitamente si utilizza il simbolo δi,j che si definisce come segue:
1 se i=j
δi,j=
0 se i ≠ j
Nelle matrici ad esempio la matrice identità di aspetto
n × n si può definire come:
|δi,j |i, j=1,2,….,n
Per esprimere una relazione di orto normalità fra i vettori costituenti una base
(i)
ortonormale {e | i = 1,...,n}
∑
=
,
K= Kron (X,Y): restituisceilprodotto tensoredi Kronecker diXe Y. Ilrisultatoè
un array digrandidimensioni, formato da tuttiiprodottidaprendere, possibili tra
glielementi diXe quelli diY.
SeX è unamatrice m-x-n eY èp-x-q,alloraKron (X,Y)è
m *p-x-n* q.)
36. Esercizio
SeXè 2-a-3,poi Kron (X, Y)è
[X (1,1) * Y X (1,2) * Y X (1,3) *Y
X (2,1) * Y X (2,2) * Y X (2,3) * Y]
Larappresentazione dellamatrice dell'operatore Laplaciano discreto, suun
bi-dimensionale,n-a-nèuna griglia
^2-a-n^2 matricisparse.
Cisono almassimo cinqueelementi diversidazero inogni rigaocolonna. La
matricepuò esseregenerata comeilprodotto di Kronecker unidimensionale,
operatori differenzacon questeaffermazioni:
I= Speye (n, n);
E= sparse (2: n, 1: n-1,1,n, n);
D= E+ E'-2* I;
A= Kron (D,I)+Kron (I, D);
Tracciando questocon lafunzionedi spia pern =5 siottiene ilseguentegrafico:
37. Esercizio
Funzionerandom
Generazione dinumericasuali normalmentedistribuiti.
38. Esercizio
ConcatenamentidiMatrici
Per concatenare le matrici occorre definire una matrice y e scrivere la funzione z=y y+10 y .
Otterremo dopo il comando i seguenti risultati:
39. Esercizio
Cancellarerigheecolonne
E’possibile cancellarerigheo colonnedaunamatrice,siutilizzanoperquestoleparentesiquadrate.
DopoaverscrittolamatriceAedeseguitoilcomandoA(:,2)cancelliamolasecondacolonnadella
matriceA.
40.
Esercizio
Formattazionedeidati
Per formattareidatinumericiMathlabdisponedeiseguenticomandi.
Format comandi: short e , long, long e, blank, rat, hex
Eseguiamoi seguenticomandidiformattazione:
41. Esercizio
RadiciEquazionicomandoRoots
Mathlab possiede il comando roots per trovare le radici di un polinomio,
dato il seguente polinomio basta scrivere il comando roots, inserendo i coefficienti del polinomio,
partendo dal coefficiente di grado più elevato.
1. Esercizio
X5+6x4+0.6x3+10x2-2x+4=0
roots([1 6 0.6 10 -2 4])
Il risultato del comando è visualizzato in figura.
Datoilpolinomiodigrado5trovarelesoluzioni:
2. Esercizio
x5 + 10x4 + 0,6x3 + 12x2 - 7x + 5=0 Data l’equazione
roots([1 10 0.6 12 -7 5]) MathLab fornisce le radici
Radiciequazione di decimogrado
Dato il polinomio di grado dieci trovare le sue radici vuol dire scrivere il comando Roots ([1 2 1 4 3 5 3
6 7 4])
3. Esercizio
X10+2x9+1x8+4x7 +3x6 +5x5+3x4 +6x2+7x+4=0
Roots ([1 2 1 4 3 5 3 6 7 4])
Soluzionediunsistemaditreequazioniintreincognite
Mathlab permette di risolvere sistemi di equazioni in modo molto semplice scrivendo la matrice
dei coefficienti A , e la matrice dei termini noti v. Date le due matrici A e v basta costruire la
matrice A-1( inversa) e moltiplicarla per la matrice v.
4. Esercizio
8x – 5y +4z=2
2x +4y +2z=4
4x + 2y +3z=2
Matrice dei coefficienti
Matrice dei termini noti
Inversa della matrice A^-1
Soluz=A-1 v
Le radici risultano: x=9,3333, y=3,3333, z=-14,0000.
Sistemadiquattroequazionicon4incognite
Dato il seguente sistema trovare le radici x, y, z, p
5. Esercizio
8x -5y +4z -2p=2
2x+4y+2z+2p=4
4x+2y+3z+2p=2
8x+2y+8z-2p=6
Costruiamo la matrice dei coefficienti.
Costruiamo la matrice dei termini noti
L’inversa della matrice M-1
Per ottenere le soluzioni basta scrivere la seguente matrice:
Soluz= M-1 v
Soluzioni:( x=2,3793 , y=2,0690, z=-2,6207, p=-1,8966)
Sistemadi5equazioniincinqueincognite
Trovare le radici del seguente sistema di equazioni:
6. Esercizio
2a+1b -1c +2d+1e=1
1a +3b+2c-3d+1e=2
-1a+ 2b+1c-1d+1e=3
2a -3b -1c+4d+1e=1
1a+1b+3c+2d+1e=1
soluz=A-1v
a=-0,5867, b=-0,1067, c=-0,1467, d=-0,2133, e=2,5600.