Sei sulla pagina 1di 8

MATLAB cheatsheet

GENERALI:
-Fixed point con 4 cifre decimali: format short

-Fixed point con 14 cifre decimali: format long (si scrive nella riga precedente)

-Controllare la dimensione di una variabile: size(v)

-sopprimere output  inserire ; alla fine della riga

-rimuovere testo dalla command window: clc

-rimuovere le variabili esistenti: clear

-commento: %

-due punti: n1:n2  indica dal numero 1 al numero 2

MATRICI / VETTORI:
-Creazioine di un Array: a = [1 2 3 4]

-Creare una matrice: a = [1 3 5; 2 4 6; 7 8 10]

-Creare una matrice composta da zeri: z= zeros(righe,colonne)

-Creare una matrice che come entrate ha solo 1: z= ones(righe,colonne)

-Generare un vettore riga: v[inizio : passo : fine]

-linspacegenera valori equispaziati: linspace(vIniziale , vFinale , numValori)


( si può anche fare con v= inizio:step:fine)

-Accedere ad un elemento di un vettore: z=v(posizione) (inserire “end” per ultimo el.) oppure per
estrarre molteplici elementi: z=v([vettore posizioni])

-Accedere ad un elemento di una matrice: z=M(riga,colonna) (inserire “end” per ultimo el.)

-Accedere agli elementi di una riga di una M : v=M(riga,posizione 1° vett cercato: ultimo vett cercato)

-Accedere agli elementi di una riga/colonna di una matrice: z=M ( riga, : ) z=M( : , colonna)

-Estrarre una sottomatrice: z= M ( [ vettore riga ] , [ vettore colonna ] )

-Cambiare elementi di una matrice: M ( riga , colonna ) = [ nuovoVal ; nuovoVal ]

-rimuovere una riga: m ( riga, : ) = [ ] (stessa cosa si può fare per una colonna)

-Determinare la lunghezza di un vettore: lenght(v)

-Vettore trasposto: v’

-Norma di un vettore: norm(v)


-somma algebrica tra vettori (v e w): v+w

-prodotto scalare tra vettori (v,w): v*w’ oppure dot(v,w)

-prodotto componente per componente: v.*w

-elevamento a potenza componente per componente: v.^n (n scalare)

-concatenare due vettori v e w: z=[v w]

-eliminare delle componenti da un vettore v: v(comp1 : comp2) = []

-sostituire componenti di un vettore v con quelle di un vettore w: v(c1:c2)=w;

-crea una matrice identita’: e=eye(n)

-crea una matrice di numeri casuali compresi tra 0 e 1: r=rand(n)

-crea una matrice di numeri casuali (anche negativi) : r=randn(n)

-crea una matrice di numeri casuali interi: r=randi(m,n)

-elevare a potenza ogni elemento di una matrice (non la matrice intera): M2=M.^2 (.
=>element by element)-> N.B. devono avere le stesse dimensioni

-diagonale di una matrice: d=diag(M) (la


funzione diag si può usare anche per creare una matrice diagonale: D=diag(vettore)

-matrice triangolare: M=triu(matrice) ->superioreM=tril(mat) ->inferiore

-somma degli elementi delle colonne di una matrice: s = sum(A,1)

-somma degli elementi delle righe di una matrice: s = sum(A,2)

-prodotto scallare di v e w: ps=sum(v.*w)

Polyval e polyfit
Spline

Condizionamento di un sistema lineare

Comandi PA=LU automatica

Fattore R nella fattorizzazione di Cholesky

Fattorizzazione QR della matrice A

SOLUZIONE QR
b=A*x;
[Q,R]=qr(A);
xQR=R\(Q'*b);
Sistema sovradeterminato

Autovalori

Numero di condizionamento di ogni autovalore

Valori singolari

rank

rank
Sistema triangolare superiore  SOSTITUZIONE ALL’INDIETRO

Sistema triangolare inferiore  SOSTITUZIONE IN AVANTI

Metodo delle eliminazioni di GAUSS

Determinare L e U dopo algoritmo di Gauss


Polinomio interpolante dei punti

Polinomio interpolante la funzione

Esempio formula dei trapezi


Approssimare con i polinomi interpolanti di grado n = 5 le funzioni f1(x) = sin(x) nell’intervallo [0, π] e f2(x) = 1/(1 + x
2 ) nell’intervallo [−2π, 2π]. Utilizzare sia i nodi equispaziati che i nodi di Chebyshev-Lobatto
% definizione intervallo [a,b] nel quale dobbiamo studiare la funzione
a = 0;
b = pi;
z = linspace(a,b); %vettore che rappresenta l'intervallo [a,b]
f = @(x) sin(x); %funzione originale
fz = f(z); % fz rappresenta la funzione originale calcolata nell'intervallo [a,b]
n = 40; %grado del polinomio interpolante
x = linspace(a,b,n+1); %nodi equispaziati
%t = -cos((2*(1:n+1)-1)*pi/(2*(n+1)));
%x = (b-a)/2*t+(b+a)/2; % ---versione nodi Chebyshev traslati---
y = f(x); %funzione calcolata nei nodi
c = polyfit(x,y,n); %trova i coefficienti del polinomio interpolante
p = polyval(c,z); % calcola i valori che il polinomio interpolante assume nell'intervallo [a,b]
plot(z,p,'b',z,fz,'r',x,y,'ko','linewidth',3)
%plotta il grafico--> (z,p) = funzione approssimata, (z,fz) = f originale
%(x,y) = punti equispaziati
% -NB- ,aumentando il grado del polinomio aumenta l'errore (no con nodi di chebishev)
Rappresentare graficamente la spline cubica soddisfacente la condizione “not-a-knot” e interpolante la funzione f(x)
= 1/(1 + x 2 ) in 6 nodi equidistanti nell’intervallo [−5, 5]. Confrontare i grafici ottenuti con quelli dell’esercizio 1 e
commentare i risultati.
a = -5; %intervallo [a,]
b = 5;
z = linspace(a,b);
f = @(x) 1./(1+x.^2); %funzione origunale
fz = f(z); %funzione calcolata in [a,b]
n=5;
x = linspace(a,b,n); %nodi
y = f(x);
s = spline(x,y,z); %comando che restituisce una spline not a knot
plot(x,y,'ko',z,fz,'r',z,s,'b','linewidth',3)
err = norm(s-fz,inf) %errore = norma infinito di spline-funzione
% -NB- piu nodi ci sono --> minore errore

Metodo delle potenze


Metodo delle potenze inverse

QR

Potrebbero piacerti anche