Strumenti Utente

Strumenti Sito


mcl:assignaments10

Questa è una vecchia versione del documento!


Alcuni esercizi per casa

Lezione del 1/3/2010

Scrivere una function Sierpinski per disegnare il triangolo di Sierpinski usando le trasformazioni lineari affini

x=Ax+b_i

dove A=[1/2, 0; 0, 1/2], b_1=[0,0]; b_2=[1/2 0]; b_3=[1/4, sqrt(3)/4]. Ognuna delle trasformazione si applica con probabilita' 1/3.

Lezione del 15 Marzo 2010

Scivere la funzione miaspline per valutare la spline cubica in un nodo i

function v=miaspline(nodi,y, u)

con nodi vettore dei nodi e y valori e u un vettore di valori sulla quale si vuole valutare la spline s(x). v e' un vettore lungo quanto u tale che v=s(u). Sia n=length(nodi)-1, cioe' n e' il numero di intervalli in cui e' diviso l'intervallo [x_0, x_n].

Dalla teoria vista a lezione, detti mu(i) i momenti del secondo ordine mu(i)=s“_i(x(i)), si arriva ad un sistema tridiagonale con elementi principali uguali a 2 e con elemeti sopra diagonali d_i e sotto diagonali c_i, dove valcolo le seguenti relazioni. Poiche' nodi=[x_0, x_1…, x_n], abbiamo che nodi(i)=x_(i-1)

d_i=h_i/(h_(i-1)+h_(i)) i=1, 2, …, n-2

e c_i=h_(i-1)/(h_(i-1)+h_i) i=2, 3, …, n-1

dove h_i=nodi(i+2)-nodi(i+1)=x_(i+1)-x_i, i=0,1,.. n-1.

Si faccia attenzione al fatto che poiche' in Octave gli indici partono da 1, le due relazioni precedenti devono essere riscritte tenedo conto che h_i=nodi(i+2)-nodi(i+1), mentre se h=diff(nodi) abbiamo che h(i)=nodi(i+1)-nodi(i), cioe' h(i)=h_(i+1), quindi le relazioni precedenti diventano

d(i)=h(i+1)/(h(i)+h(i+1)) per i=1, 2, .. ,n-2

c(i)=h(i)/(h(i)+h(i+1)) per i=2, 3, …, n-1

In particolare il primo d_i e'

d(1)=h(2)/(h(1)+h(2))= (x_2-x_1)/(x_2-x_0)=(nodi(3)-nodi(2))/(nodi(3)-nodi(1))

e l'ultimo c_i e'

c(n-1)= h(n-1)/(h(n-1)+h(n))=(nodi(n)-nodi(n-1))/(nodi(n+1)-nodi(n-1))

Se i nodi sono equidistanti si deve ottenere d(i)=c(i)=1/2.

Per il termine noto abbiamo che posto

delta= diff(y)./h;

dove delta e' un vettore lungo n.

diffdelta=diff(delta)

Il termine noto del sistema risulta

b(i)=diffdelta(i)/(h(i)+h(i+1))

Lezione del 18/3/2010

Completare l'esercizio iniziati a lezione sulle Bspline. In particolare, scrivere la funzione bs_coeff con le seguenti specifiche

function N=bs_coeff(i,p,t,u)

tale che N=N_{i,p}(u), con nodi specificati da t.

Lezione del 22/3/2010

Finire di scrivere la funzione polytrig con le seguenti caratteristiche

function v=polytrig(y, u)

che restituisce il polinomio di interpolazione triogonometrico valutato in u, cioe' v=F(u).

Si ricorda che F e' definito nel seguente modo

F(x)

e alpha(j)=2 Re(z(j)), beta(j)=-2 Im(z(j)) con z=1/n V^H y

Lezione del 19/4/2010

Scrivere la funzione rifft

function y=rifft(z)

che preso un vettore di dimensione N=2^s, restituisce la sua IDFT. Si implementi l'algoritmo ricorsido di cost0 n log(n)

Lezione del 23/4/2010

Scrivere la funzione ruota_im con le seguenti caratteristiche

function Ir=ruota_im(I, a, s)

dove I e' un immagine, a un angolo in radianti ed s un fattore di scala. Ir e' l'immagine I ruotata a destra rispetto al centro dell'immagine di un angolo a e scalata di un fattore s.

Si puo' supporre che Ir non mantenga le dimensioni dell'immagine originale. la trasformazione che implementa la rotazione e' data dalla matrice

T=[s cos(a), s sin(a); -s sin(a), s cos(a)]

Risultapiu' semplice, per ogni punto dell'immagine ruotata Ir stabilire di quale punto sono la controimmagine.

Si puo' procedere une seguente modo:

  1. Si suppone che l'immagine abbia come coordinate cartesiane dei vertici i punti (1,1), (larghezza, 1), (1, altezza), (larghezza, altezza)
  2. Si calcolano le coordinate del centro di rotazione
  3. Si calcolano le coordinate dei vertici di Ir (immagine dei vertici traslati rispetto al centro di rotazioone)
  4. Si costruisce la mesh sulla nuova immagine
  5. Si va a vedere per ogni punto di Ir a quale pixel su I corrispondono
  6. Attraverso l'interpolazione bidimensionale si assegna il volore opportuno ai pixel.
mcl/assignaments10.1272120255.txt.gz · Ultima modifica: 24/04/2010 alle 14:44 (14 anni fa) da Gianna M. Del Corso