N° 2790
CALCOLO NUMERICO 2018-19
DI PETRUZZI GIUSEPPINA
Centro Stampa
ATTENZIONE QUESTI APPUNTI SONO OPERA DI STUDENTI , NON SONO STATI VISIONATI DAL DOCENTE. IL NOME DEL PROFESSORE, SERVE SOLO PER IDENTIFICARE IL CORSO.
COMANDI MATLAB
I seguenti comandi Matlab consentono di ottenere i coefficienti della rappresentazione monomiale e di valutare il polinomio interpolante in qualsiasi punto o vettore di punti assegnato.
c = polyfit(x,y,n) calcola e memorizza in c, i coefficienti della rappresentazione monomiale del polinomio di grado n pn(x) = c(1)xn + c(2)xn−1 + . . . + c(n)x + c(n + 1), interpolante i dati (xi , yi ), i = 1, . . . , n + 1, le cui ascisse xi e ordinate yi sono memorizzate nei vettori x e y, rispettivamente.
p = polyval(c,z) calcola e memorizza nel vettore p, i valori che un qualsiasi polinomio pn(x) = c(1)xn + c(2)xn−1 + . . . + c(n)x + c(n + 1), i cui coefficienti sono memorizzati in c, assume nelle componenti del vettore z.
Per calcolare e valutare la spline S1(x) si può utilizzare il seguente comando Matlab.
s = interp1(x,y,z) calcola e memorizza in s i valori che la spline lineare interpolante i dati (xi , yi ), i = 1, . . . , n + 1, assume in z; i valori xi e yi sono memorizzati in x e in y, rispettivamente.
Per calcolare e valutare le spline “not-a-knot” o le spline vincolate si possono utilizzare i seguenti comandi.
s = spline(x,y,z) calcola e memorizza in s i valori
che la spline cubica interpolante i dati (xi , yi ), i = 1, . . . , n + 1 e soddisfacente la condizione 2)
“not-a-knot”, assume in z; i valori xi e yi sono memorizzati in x e in y, rispettivamente.
s = spline(x,[yd1 y ydn],z) calcola e memorizza in s i valori che la spline cubica interpolante i dati (xi ,yi), i = 1, . . . , n + 1 e soddisfacente la
condizione 3) (yd1= f 0(x1), ydn= f 0(xn+1)), assume
in z; i valori xi e yi sono memorizzati in x e in y, rispettivamente.
L’espressione che definisce il suddetto valore approssimato dell’integrale è detta formula dei trapezi, per via della sua interpretazione
geometrica, ed è implementata nel seguente comando Matlab.
t = trapz(x,y) memorizza in t il valore
approssimato dell’integrale mediante la formula dei trapezi, ottenuto cioè calcolando
(analiticamente) l’integrale della spline lineare e interpolante i dati (xi,yi), i = 1, . . . , n; i valori xi e
yi sono memorizzati nei vettori x e y, rispettivamente.
r = roots(c), che fornisce in r le radici
dell’equazione algebrica i cui coefficienti sono tutti memorizzati in c, a partire dal termine di grado massimo fino a quello di grado zero.
norm(x,1) fornisce la norma 1 del vettore x;
norm(x,2) oppure norm(x) fornisce la norma 2 del vettore x;
norm(x,inf) fornisce la norma infinito del vettore x.
norm(A,1) fornisce la norma 1 della matrice A;
norm(A,inf) fornisce la norma infinito della matrice A.
cond(A,1) fornisce il numero di condizionamento in norma 1 del sistema Ax = b;
cond(A,inf) fornisce il numero di
condizionamento in norma infinito del sistema Ax
= b;
hilb(n) genera la matrice di Hilbert Hn di ordine n;
vander(x) genera la matrice di Vandermonde Vn
x = A\b calcola la soluzione x di Ax = b con il
metodo delle eliminazioni di Gauss con pivoting parziale. Il comando richiama un algoritmo
specifico a seconda delle caratteristiche della matrice A (diagonale, triangolare, simmetrica e definita positiva,... ); se la matrice non soddisfa nessuna delle caratteristiche previste, allora
viene calcolata una generica fattorizzazione PA = LU.
x = A\b, nel caso di un sistema lineare sovradeterminato Ax = b, con A matrice
rettangolare di dimensioni m x n con m > n e di rango massimo, fornisce la soluzione x nel senso dei minimi quadrati del sistema Ax = b.
[L,U,P] = lu(A) calcola i fattori L, U, e P della fattorizzazione PA = LU di A.
R = chol(A) calcola il fattore R triangolare
superiore della fattorizzazione di Choleski A = RTR, della matrice simmetrica e definita positiva A.
L.
I seguenti comandi Matlab consentono di calcolare una fattorizzazione QR di una assegnata matrice A.
[Q,R] = qr(A), data la matrice A di dimensioni m x n, calcola un fattore ortogonale Q di dimensioni m x m e un fattore R di dimensioni m x n tali che A = QR.
I seguenti comandi Matlab consentono di calcolare gli autovalori e gli autovettori ad essi associati di una matrice A.
d = eig(A) restituisce il vettore d contenente tutti gli autovalori di A.
[X,D] = eig(A) restituisce la matrice diagonale D i cui elementi sono gli autovalori di A e la matrice X i cui vettori colonna sono i corrispondenti
autovettori (cioè l'i-esimo vettore colonna X(:,i) è un autovettore associato all'autovalore D(i,i)).
max(abs(eig(A))) per calcolare il raggio spettrale di una matrice A.
norm(A,2) oppure norm(A) restituisce la norma spettrale della matrice A.
Il seguente comando Matlab consente di calcolare il numero di condizionamento di ciascun autovalore.
c = condeig(A) restituisce il vettore c contenente i numeri di condizionamento di ciascun autovalore della matrice A. Se c(i), i = 1, … , n, è circa 1, allora il calcolo di λi è ben condizionato, altrimenti può essere mal condizionato.
Assegnata una matrice A, i seguenti comandi Matlab ci consentono di calcolare solo alcuni suoi
autovalori, per esempio quelli più grandi in modulo oppure quelli più vicini a un dato valore p.
[X,D] = eigs(A,k) restituisce in D e in X
rispettivamente, i k autovalori di A di modulo più grande e i corrispondenti autovettori.
[X,D] = eigs(A,k,p) restituisce in D e in X
rispettivamente, i k autovalori di A più vicini a p e i corrispondenti autovettori.
I seguenti comandi Matlab consentono di calcolare i valori singolari e i fattori U, S e V della
decomposizione ai valori singolari della matrice A.
d = svd(A) restituisce il vettore d contenente, in ordine decrescente, i valori singolari di A.
[U,S,V] = svd(A) restituisce la matrice diagonale S, delle stesse dimensioni di A e con elementi
diagonali (non negativi e in ordine decrescente) coincidenti con i valori singolari, e due matrici ortogonali U e V tali che A = USVT .
r = rank(A) restituisce in r il rango della matrice A sulla base di una tolleranza di default, che
dipende dalla matrice fornita in input e dalla precisione di macchina.
r = rank(A,tol) restituisce in r il rango numerico della matrice A, calcolato come il numero dei valori singolari maggiori della tolleranza tol.
X = pinv(A) restituisce in X la pseudo-inversa della matrice A a partire dalla sua SVD. I valori singolari al di sotto di una tolleranza di default
(dipendente da A) sono trattati come zeri.
X = pinv(A,tol) restituisce in X la pseudo-inversa di A ottenuta ponendo uguali a zero i valori
singolari al di sotto della tolleranza tol.