Scrivere la funzione spirale.m che, presi due parametri rhomax e ngiri, disegni una spirale di raggio massimo rhomax e con un numero di giri ngiri
Scrivere una funzione sierpinski.m che, preso un intero npunti, disegni npunti del triangolo di Sierpinski
Scrivere una funzione piecelinear.m con la seguente intestazione
function [PL, v]=piecelinear(x, y, u)
dove x sono i nodi, y i valori nei nodi, u sono i valori sui quali si vuole valutare l'intepolante. La funzione deve restituire i valori v che la funzione lineare a tratti interpolante assume nei punti u. I coefficienti che descrivono la funzione lineare a tratti sono contenuti nella matrice 2x(n-1), dove n e' il numero dei nodi.
Scrivere una funzione hermite.m con la seguente intestazione
function a=hermite(x, y, d)
dove x sono i nodi, y i valori che la funzione assume nei nodi e d i valori della derivata prima nei nodi. a e' il vettore dei coefficienti del polinomio di interpolazione che soddisfa le condizioni sui nodi per la funzione e la sua derivata. (Suggerimento: costruire una matrice tipo quella di Vandermonde, e determinare a risolvendo un sistema lineare 2n x 2n).
Utilizzare il comando Octave polyval per valutare il polinomio ottenuto in altri punti e plottare il grafico del polinomio interpolante. Confrontarlo con il polinomio di interpolazione di Lagrange.
Scrivere la funzione bspline.m con la seguente intestazione
function [x, y]=bspline(px, py)
che permette di disegnare la bspline cubica open sui punti di controllo rappresentati mediante le loro coordinate
px e py.
La funzione chiama la funzione bs_base(i, p, t, u) fatta a lezione che calcola i valori che l' i-esimo polinomio di grado p, Ni,p(u) assume nel punto u. Ni,p utlizza il vettore dei knot t=[t0, t1, …, tm]. Si ricorda che
S(u)=sumi=0.. n Ni,p(u)Pi
u \in [tp+1, tm-p]
I knot possono essere generati all'interno della function con il comando linspace ricordando che m=n+p+1.
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
Finire di scrivere la funzione polymult per effettuare la moltiplicazione veloce di due polinomi.
function c=polymult(a,b)
che presi i coefficienti a e b dei polinomi a(x) e b(x), produce il vettore c che rappresenta il polinomio c(x)=a(x) b(x).
Si tenga conto che
Sia N=2^k, tale che N≥n+m.
Se i nodi x_i sono le radici dell'unita' possiamo utilizzate la fft/ifft per la valutazione dei polinomi a(x) e b(x) e per l'interpolazione. La funzione polymult deve utilizzare due chiamate all fft di Octave per implementare il punto 1. e una chiamata alla ifft per l'interpolazione al passo 3.
Scivere una funzione sfumagrigi.m con la seguente intestazione
function I=sfumagrigi(n, ntoni)
che genera un'immagine nxn che utilizza ntoni livelli di grigio e tale che I
(i,j)=(i+j) mod ntoni.