Laboratorio di Matematica Computazionale A.A. 2007-2008 - Laboratorio nr.8 Complementi di grafica 2D Un fondo di investimento ventennale frutta il 5% di interessi composti annualmente. Un capitale di 10.000 Euro investito nel fondo cresce pertanto secondo la formula: y(k) = 10 4 (1.05) k, dove k = 0, 1, 2,... è il numero di anni. Rappresentare la quantità di denaro che si accumula fino alla scadenza del fondo utilizzando tre tipi di diagrammi: a steli a gradini e a barre. Dopo quanti anni il capitale si è più che raddoppiato? Grafica 3D Si considerino le seguenti equazioni parametriche di un elica circolare x = a cos(t), y = a sin(t), z = bt, dove a è il raggio del cerchio dell elica e b è una costante che determina la densità dei passi dell elica. Se b > 0 l elica ha la forma di una vite destrorsa, altrimenti ha la forma di una vite sinistrorsa. Si rappresentino su un grafico tridimensionale le eliche definite dai seguenti parametri, per t [0, 10π]: 1
1. a = 1, b = 0.1 2. a = 1, b = 0.1 3. a = 1, b = 0.2 4. a =.5, b = 0.2 Si dimensionino gli assi di ciascun grafico in modo che 1 x, y 1, 6 z 6 e si usi il comando subplot per raccogliere tutte le figure in un unica finestra. Il file MATLAB penny.mat contiene i dati relativi alle misure effettuate dal National Institute of Standards and Technology sulle profondità dello stampo utilizzato per coniare la moneta da un penny americana. Caricare i dati utilizzando il comando load. Disegnare 15 curve di livello utilizzando diversi toni di marrone con il comando colormap(copper). Provare il comando pcolor(p) e shading flat. In entrambi i casi si utilizzi il comando axis ij square per una miglior visualizzazione. Si tracci il grafico a superficie e a curve di livello delle seguenti funzioni su una griglia rettangolare di 20 20 intervalli z = xy [ 2, 2] [ 2, 2], z = 2x 2 y 2 [ 4, 4] [ 4, 4], z = x 2 + y 2 2x + 4y + 1 [ 1, 3] [ 4, 0], z = 7xy + 2x 2 11 [ 4, 2] [ 3, 3], z = 4x 2 + 4y 2xy + 1 [ 4, 4] [ 4, 4] 2
Si vuole rappresentare una piramide a gradini di base [ 5, 5] [ 5, 5], considerando il grafico della superficie della funzione definita da function z=f(x,y) z=5-max(abs(fix(x)),abs(fix(y))) return su una griglia rettangolare di 50 intervalli. Si provino anche i comandi contourf e pcolor. Si provi inoltre il comando shading con le sue varie opzioni. Una piastra metallica quadrata di dimensioni [0, 1] 2 viene riscaldata a 80 0 C nell angolo che ha cordinate x = 1, y = 1. La distribuzione della temperatura della piastra è la seguente: T = 80e (x 1)2 e 3(y 1)2 Si tracci il grafico a superficie e a curve di livello della funzione temperatura. Qual è la temperatura dell angolo di coordinate x = 0, y = 0? Si provino anche i comandi contourf e shading. Si consideri la superficie definita dalla seguente funzione f(x, y) = e ( 5x2 5y 2 ) x, y [ 1, 1] Utilizzando il comando rand ed una opportuna trasfornazione lineare generare un insieme di 400 punti (x, y) nel dominio quadrato 3
della funzione assegnata scelti in modo casuale. Costruire la triangolazione di Dealaunay associata a tali punti e disegnarne il grafico bidimensionale con il comando triplot. Visualizzare infine la superficie utilizzando i comandi trimesh e trisurf Nel file Matlab seamount sono memorizzati tre vettori x, y, z contenenti rispettivamente le coordinate (x i, y i ) dei punti in cui sono state fatte misurazioni sperimentali z i dell altitudine di un monte sottomarino. I punti (x i, y i ) non corrispondono ad una griglia regolare rettangolare. 1. Caricare i dati utilizzando il comando load. 2. Disegnare nel piano i punti in cui sono state effettuate le misurazioni. 3. A partire da tali dati costruire la triangolazione di Delaunay corripondente, e visualizzarla nella finestra grafica insieme ai punti. 4. In una nuova finestra disegnare in 3D la superficie del monte e la triangolazione sottostante. Sia Ω = [ 1, 1] [ 1, 1] R 2. Si consideri il campo vettoriale v : Ω R 2, v(x, y) = (v 1 (x, y), v 2 (x, y)) definito da v 1 (x, y) = y, v 2 (x, y) = x (x, y) Ω. Utilizzare il comado quiver per rappresentare graficamente tale campo. 4
Siano Ω = [ 2, 2] [ 1, 1] R 2 ed f : Ω R, la funzione definita da f(x, y) = xe ( x2 y 2), (x, y) Ω. Il grafico di tale funzione G = {(x, y, z) : (x, y) Ω, z = f(x, y)} individua una superficie in R 3. Sia N : G R 3, il campo vettoriale tale che N(x, y, z) = (N 1 (x, y, z), N 2 (x, y, z), N 3 (x, y, z)) R 3 è il vettore normale alla superficie nel punto (x, y, z) G. Si costruisca una griglia strutturata di punti di Ω con il comando [X,Y] = meshgrid(-2:0.25:2,-1:0.2:1); e si utilizzi il comando [N1,N2,N3] = surfnorm(...); per calcolare N nei punti della griglia. Infine con i comandi surf e quiver3 si rappresentino graficamente la superficie ed il campo delle normali N. 5
Esercizi supplementari Si disegni la spirale di raggio crescente, definita dalle equazioni parametriche: x(t) = r t cos(2π f t + ϕ) y(t) = r t sin(2π f t + ϕ) z(t) = h t t [0, 1] dove r = 2, h = 10, ϕ = π/2 ed f = 2. In cosa si differenziano i grafici ottenuti secgliendo f = 4 oppure f = 5? Si disegni ora, nello stesso grafico, la famiglia di curve ottenuta al variare di ϕ, utilizzando 20 diversi valori calcolati con un incremento costante ϕ = π/20 a partire dal valore di partenza π/2. Dopo aver attentamente esaminato i risultati del precedente esercizio, si disegni la superficie definita dalle equazioni parametriche: x(t, ϕ) = r t cos(2π f t + ϕ) y(t, ϕ) = r t sin(2π f t + ϕ) z(t, ϕ) = h t dove r = 2, h = 10 f = 2 e ϕ = π/3. t [0, 1] ϕ [0, 2π ϕ] Si utilizzino i comandi meshgrid, gradient e quiver per rappresentare il campo gradiente della funzione z(x, y) = xe x2 y 2 6
nell intervallo [ 2, 2] 2. Si sovrappongano a tale grafico 10 linee di livello della funzione. Si consideri il moto di un oggetto soggetto alla sola forza di gravità x(t) = v 0 t + 1 2 gkt2, con velocità iniziale e accelerazione date rispettivamente da v 0 = (2, 3, 10) T ms 1, g = 9.8ms 2, e dove k = (0, 0, 1) T è il versore dell asse z in un sistema di riferimento orientato secondo la terna destrorsa e x = (x, y, z) T. Si calcoli la posizione del corpo x(t) = (x(t), y(t), z(t)) T per t=0:0.1:2. Usando il comando diff, si calcolino le componenti della velocità ẋ(t) = ( x(t) t, y(t) t, z(t) t ) T del corpo per t=0:0.1:2 Si rappresenti la traiettoria del corpo in un grafico 3D e si rappresenti i vettori velocità ad ogni istante di tempo usando il comando quiver3. Come sono orientati? 7