• Non ci sono risultati.

Laboratorio Calcolo Numerico

N/A
N/A
Protected

Academic year: 2021

Condividi "Laboratorio Calcolo Numerico"

Copied!
3
0
0

Testo completo

(1)

Laboratorio Calcolo Numerico

Esercizio 1. Si vuole determinare un polinomio interpolatore della funzione

f (x) = 1 1 + x2

nellintervallo I = [5, 5]. Considerata la forma di Newton del polinomio inter-polante, si costruisca una tabulazione della funzione data costituita da 11 nodi equidistanti nellintervallo I, e si memorizzino i nodi in una vettore xn ed i

cor-rispondenti valori della funzione nel vettore f (xn). Si scriva una funzione di

nome polnewtondf che abbia la seguente intestazione e che calcoli i coefficienti della base di Newton al caso in cui gli n + 1 nodi in [a, b] siano equispaziati, con a = x0, e b = xn, in cui cio´e xk = a + kh, con k = 0, . . . , n, h = (b − a)/n.

Quale aiuto, si modifichi il pseudocodice

c(0) = f(x(0)) for i = 1, ... , n d = x(i) - x(i-1) u = c(i-1) for j = i - 2, ... , 0 step -1 u = u * (x(i) - x(j)) + c(j) d = d * (x(i) - x(j)) end for j

c(i) = (f(x(i)) - u)/d end for i

e si usi quale intestazione

function c = polnewtondf (x,y)

% POLNEWTONDF Calcola i coefficienti del polinomio interpolatore % utilizzando la forma di Newton per nodi equispaziati

% % Uso:

% c = polnewtondf (x,y) %

% Dati di ingresso: % x vettore dei nodi

% y vettore dei valori della funzione da interpolare nei nodi %

% Dati di uscita:

% c vettore colonna dei coefficienti ordinati per indici % crescenti (c_0, c_1, ... )

(2)

Ovviamente i coefficienti restituiti dovranno coincidere con quelli ottenuti con la function polnewton sviluppata nel laboratorio precedente, ed anche la figura definita nello script (usare anche la function horner per il calcolo del valore del polinomio nei 201 valori di x) risulter´a essere la stessa:

Figure 1: Grafico della funzione f in nero, del polinomio interpolatore pn in

rosso tratteggiato e dei punti da interpolare nei cerchietti in rosso

Il passo h dovr`a essere calcolato all’interno della function utilizazando i nodi memorizzati nel vettore x. All’interno della function, dovranno essere effettuati preventivamente i seguenti controlli:

• la lunghezza dei vettori x ed y deve essere la stessa;

• i nodi devono essere memorizzati in ordine crescente nel vettore x (sug-gerimento, funzione Matlab sort da usare per il controllo);

• i nodi devono essere equispaziati. In caso di violazione, si esca con un error.

Esercizio 2.

Si produca nello script anche una figura che rappresenti nello stesso intervallo lasse x e la funzione errore definita come

E(x) = f (x) − P (x). ottenendo la seguente figura

Figure 2: Grafico di E(x).

Esercizio 3. Risultati analoghi a quelli degli esercizi precedenti si possono ottenere con due funzioni Matlab:

(3)

POLYFIT Fit polynomial to data.

P = POLYFIT(X,Y,N) finds the coefficients of a polynomial P(X) of degree N that fits the data Y best in a least-squares sense.

P is a row vector of length N+1 containing the polynomial coefficients in descending powers, P(1)*X^N + P(2)*X^(N-1) +...+ P(N)*X + P(N+1).

che permette di determinare un vettore che contiene i coefficienti del polinomio interpolante rispetto alla base canonica

POLYVAL Evaluate polynomial.

Y = POLYVAL(P,X) returns the value of a polynomial P evaluated at X. P is a vector of length N+1 whose elements are the coefficients of the polynomial in descending powers.

Y = P(1)*X^N + P(2)*X^(N-1) + ... + P(N)*X + P(N+1)

che valuta un polinomio di cui si conoscono i coefficienti rispetto alla base canon-ica su tutti i valori precedentemente memorizzati su di un vettore. Si scriva un altro script che produca le stesse figure precedentemente richieste (che risulter-anno praticamente uguali) e poi si cerchi di strutturarle con il comando subplot, legend e title come segue

Figure 3: Grafico in alto: la funzione di Runge f , il polinomio interpolatore pn,

e i nodi di interpolazione. In basso: errore E(x).

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

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

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

Considerata la forma di Newton del polinomio interpolante, si costruisca una tabulazione della funzione data costituita da 11 nodi equidistanti nell’intervallo I, e si memorizzino

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

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

1 Aprire un terminale, creare una cartella con nome ’lab01’, entrare nella cartella, visualizzare il percorso della cartella, tornare nella cartella superiore, visualizzare il

Congiungere (AND) un predicato VERO e uno FALSO –> proposizione FALSA Disgiungere (OR) due predicati VERI –> proposizione VERA. Disgiungere (OR) due predicati FALSI