Sei sulla pagina 1di 3

Esercizi introduttivi di Matlab

Esercitazioni del 20 e 27 marzo 2012


Costruire le funzioni elencate di seguito.

1. VETTORI E MATRICI
1. B = ridotta(A,j,k), in cui assegnata una matrice A e una coppia di
interi positivi j,k, costruisca la ridotta B ottenuta da A eliminando la
j-riga e la k-esima colonna.
2. flag = rc(v), in cui assegnato un vettore v produca in output il valore
1se v un vettore colonna, 0 se riga e 2 se non un vettore.
3. B = newsize(A,m,n), in cui assegnata una matrice A e una coppia di
interi positivi m; n, estragga da A la sottomatrice formata dalle prime m
righe ed n colonne. Se m maggiore del numero di righe di A, oppure n
maggiore del numero di colonne di A, oppure valgono entrambe queste
condizioni, allora anzich estrarre aggiungerodegli zeri in corrispondenza
delle posizioni (i; j) in cui A non denita. In tutti i casi in uscita dovro
avere B 2 Rm n .
4. B = tridiag(A), in cui assegnata una matrice A, ne estragga la sua parte
tridiagonale.

2. CICLO FOR
1. s = somma(n), in cui assegnato n, calcoli la somma s dei primi n numeri
naturali (supponendo di non conoscere il comando sum)
2. w = disp_0(v), in cui assegnato un vettore v, produca in output un
vettore w tale che wj = vj se j pari, mentre wj = 0 se j dispari.
3. n_fatt = fatt(n), in cui assegnato n, calcoli il suo fattoriale n! (supponendo di non conoscere il comando prod)
4. w = rev_ord(v), in cui assegnato un vettore v inverta lordine dei suoi
elementi (lultimo deve diventare il primo, il penultimo deve diventare il
secondo,...).
5. y = bin(alpha,k), in cui assegnato
coe cinete binomiale
k

1):::(
k!
1

2 R, k > 0, restituisca in y il
k + 1)

6. x = fibonacci(n), in cui assegnato n > 0, restituisca in x i primi n


termini della successione di bonacci denita dalla relazione xk = xk 1 +
xk 2 , k 3 con partenza da x1 = x2 = 1.
7. s = somme_parz(a), in cui assegnato un vettore a, restituisca in output
il vettore s delle somme parziali,
sk =

Xk

j=1

aj

8. [w_in,w_out] = find_ab(v,a,b), in cui assegnato un vettore v, e due


reali a e b tali che a < b, restituisca in output un vettore w_in contenente i
soli elementi di v appartenenti allintervallo [a; b] e in w_out tutti gli altri.
9. V = vdm(x), in cui assegnato un vettore colonna x = (x1 ; :::; xn )T , produca in output la matice di Vandermonde V tale che vij = xji , i = 1; :::n,
j = 0; :::; n 1.
10. K = krylov(A,v,n), in cui assegnata una matrice A 2 RN N , un vettore v 2 RN e un intero n > 0, produca in output una matrice K le cui
colonne sono i vettori di Krylov v; Av; A2 v; :::; An 1 v.
11. n = conta_gta(A,a), in cui assegnata una matrice A e uno scalare a,
produca in output il numero di elementi di A che sono maggiori di a.
12. npv = norma_p(v), in cui assegnato un vettore v, produca in output la
sua norma p, denita come
n
X

kvkp =

k=1

jvj j

!1=p

13. mvw = minvw(v,w), in cui assegnati due vettori v; w, produce in output


un vettore la cui componente j-esima uguale a min(jvj j ; jwj j).
14. A = hilbert(N), in cui assegnato N , costruisca una matrice quadrata A
di ordine N , tale che aij = 1=(i + j 1).

3. BLOCCO WHILE
1. n = min_exp(a), che calcoli il piupiccolo intero n tale the 2n

a.

2. n = armonica(a), in cui assegnato uno scalare a, produca in output il


piugrande intero n 0 tale che
n
X
1
k

k=1

3. C = jk_alpha(n,alpha), in cui, assegnato un intero positivo n, e un


reale tale che 0 < < 1, produca in output una matrice di due colonne,
in cui le righe contengano tutte le coppie distinte di interi j; k 0 tali che
j+k
n. Esempio: per n = 2, = 0:7, si deve ottenere
0
1
0 0
B 1 0 C
B
C
B 2 0 C
B
C
C=B
C
B 0 1 C
@ 1 1 A
0 2

4. FUNZIONI
1. [] = plot_fun(f,a,b), che esegua il plot della funzione f nellintervallo
[a; b].
2. df2 = der2(f,x), che calcoli numericamente la derivata seconda della
funzione f nel punto x attraverso la formula
f 00 (x)

f (x

h)

2f (x) + f (x + h)
h2

3. nf = norma_inf(f,a,b), in cui assegnata una funzione f denita sullintervallo


[a; b], produca in output una stima per
max jf (x)j = kf k1;[a;b]

x2[a;b]

ottenuta tabulando la f su almeno 100 punti in [a; b].