• Non ci sono risultati.

Laboratorio di Calcolo Numerico A.A. 2007/2008 – II semestre

N/A
N/A
Protected

Academic year: 2021

Condividi "Laboratorio di Calcolo Numerico A.A. 2007/2008 – II semestre"

Copied!
2
0
0

Testo completo

(1)

Corso di Laurea Triennale in Matematica Laboratorio di Calcolo Numerico

A.A. 2007/2008 – II semestre

Esercitazione 7

Creare una cartella <cognome> dove verranno salvati i file creati nella sessione di lavoro.

Appena entrati in MATLAB posizionarsi in <cognome>.

Risolvere in ambiente MATLAB i seguenti esercizi.

1. La temperatura T in prossimità del suolo varia al variare della concentrazione k dell'acido carbonico e della latitudine L. Per k=1.5 la temperatura al suolo subisce una variazione dipendente dalla temperatura secondo la seguente tabella:

L -55 -45 -35 -25 -15 -5 5 15 25 35 45 55 65

T 3.7 3.7 3.52 3.27 3.2 3.15 3.15 3.25 3.47 3.52 3.65 3.67 3.52

Si vuole costruire un modello che descriva la legge T=T(L) anche per latitudini non misurate.

In particolare si vuole valutare la variazione di temperatura a Roma ( L=42°) utilizzando la tecnica di interpolazione con spline cubiche (comando spline() di MATLAB).

2. Nel seguente esercizio vi si chiede di rispondere al seguente quesito:

dati 25 punti sapete disegnare un elefante?

- Caricare l'immagine dell’elefante contenuta nel file elephant.bmp utilizzando i seguenti comandi:

[I,map] = imread('elephant.bmp');

imagesc(I) colormap(map)

- Selezionare un insieme di 25 punti (x,y) sulla silhouette dell’elefante utilizzando il comando:

[x,y]=ginput;

(N.B. Per terminare la selezione occorre premere CR).

- Utilizzare questi punti per produrre un polinomio lineare a tratti (semplice uso di plot) e una curva spline cubica nella forma parametrica (x(t), y(t)), essendo t un vettore di punti equispaziati in [0,1]

e x(t), y(t) gli interpolanti delle ascisse e delle ordinate dei punti selezionati (uso della built-in- function spline() per l’interpolazione delle x e delle y).

(2)

- Valutare la bontà dell’interpolazione eseguita rappresentando in una finestra i due interpolanti trovati e i dati da interpolare.

3. Si considerino dati (x,y) provenienti dalle seguenti funzioni test:

a) f(x)=x5-4x2+2, b) f(x)=cos(x),

c) f(x)=exp(x) cos(4x).

Utilizzando rispettivamente 7 nodi in [-2,2] ( caso a) ), 7 nodi in [0,2π] ( caso b) ), 10 nodi in [0,3]

( caso c) ), mostrare con degli esempi come la scelta delle condizioni iniziali e finali influenza l'andamento della spline interpolante I(x) dei dati assegnati (spline naturale, periodica, completa, not a knot).

Nel caso della spline completa considerare anche valori delle derivate agli estremi “diversi” da quelli esatti, quali per esempio:

- il valore approssimato fornito dal rapporto incrementale - dei valori errati scelti arbitrariamente.

Si calcoli infine una tabulazione dell'errore r(x)=f(x)-I(x). Commentare i risultati ottenuti.

4. Simulare il percorso di un braccio meccanico di un robot controllato mediante curve spline (FACOLTATIVO)

Realizzare uno script MATLAB che, presi in input due vettori di coordinate x, y che rappresentano punti lungo una traiettoria sulla quale la mano del robot deve muoversi, si calcoli la spline cubica di intersezione delle coppie dei corrispondenti angoli. Il programma deve:

salvare in output il file dati motori.dat contenente la sequenza degli opportuni valori degli angoli (da fornire ai due motori che pilotano i joint);

permettere di inserire interattivamente i punti iniziale, intermedi e finale;

visualizzare lo spostamento lungo la traiettoria calcolata.

Per la realizzazione dell'esercizio, sfruttare le seguenti relazioni tra posizioni (x,y) ed angoli:



<

0 θ se β α

0 θ se β +

= α θ

x arctan y

= α R ;

2L L R L

= cos L ;

2L L R L

= θ cos

; y + x

= R

1 2

2

2 2 1

2

2 1 2 2 2

2 2 2 1 2

2 2

1 ( )

)

( β

5. Approssimare con spline ai minimi quadrati le seguenti configurazioni di dati a) x=[-3.14 -2.4 -1.57 -0.7 -0.3 0 0.4 0.7 1.57];

y=[0.02 -1 -0.9 -0.72 -0.2 -0.04 0.65 0.67 1.1];

b) [x,y]=titanium;

c) x=linspace(0,3,12), y=exp(x)cos(4x)+randn(1,12);

utilizzando un set di nodi a vostra scelta.

Nel caso a) provare anche ad utilizzare il seguente set di nodi:

knots=[-3.2 -3.2 -3.2 -3.2 -2.5 -2.3 -2 -1.2 -1.1 0.5 1.59 1.59 1.59 1.59].

Nei tre casi, confrontare i risultati con quelli ottenuti con “un polinomio ai minimi quadrati”.

Riferimenti

Documenti correlati

si suppone che lo studente abbia letto le regole prima del compito, come richiesto; il compito dura in totale 40 minuti e consta di 4 quiz (7 minuti) e un codice Matlab da scrivere

Scrivere l’M-file somma.m per calcolare la somma dei primi n numeri naturali dispari sia utilizzando un ciclo for che servendosi dell’istruzione

Spiegare perché per valori di x vicini a multipli di π/2 la valutazione della funzione risulta un problema mal condizionato4. Osservare cosa succede

Costruire una funzione MATLAB per il calcolo della soluzione di una generale equazione AX=B, con X, B matrici, che utilizza la fattorizzazione LU. Utilizzarla poi per

In uscita devono essere restituiti il vettore soluzione del sistema lineare e il numero dei passi effettuati per ottenere l'approssimazione desiderata (massimo 100).. Scrivere una

La funzione deve prendere in input la matrice A, il vettore di innesco x 0 , il numero massimo di iterazioni consentite (nmax) e la tolleranza toll per il

Si applichino il metodo EN sviluppato e il metodoQRLS (ottenuto chiamando successivamente le due funzioni MATLAB polyfit( ) e polyval( )) per il calcolo dei polinomi ai minimi

Eseguire il file showtrunc.m che illustra il comportamento dell’errore locale di troncamento nel metodo di EULERO applicato alla risoluzione del problema a valori