Laboratorio Calcolo Numerico

11 aprile 2017

1 Esercizio 1

Si vuole determinare un polinomio interpolatore della funzione

f(x) = \frac{1}{1 + x^{2}}

nellintervallo I = [5, 5]. Considerata la forma di Newton del polinomio interpolante, si costruisca una tabulazione della funzione data costituita da 11 nodi equidistanti nellintervallo I, e si memorizzino i nodi in una vettore x_{n} ed i corrispondenti valori della funzione nel vettore f(x_{n}). 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 = x_{0}, e b = x_{n}, in cui cioé x_{k} = a + kh, con k = 0, …, n, h = (b − a)/n.

 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, ... )

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á essere la stessa:

Il passo h dovrà essere calcolato allinterno 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; Figura 1: Grafico della funzione f in nero, del polinomio interpolatore p_{n} in rosso tratteggiato e dei punti da interpolare nei cerchietti in rosso

Figura 2: Commento ...

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

• i nodi devono essere equispaziati.

In caso di violazione, si esca con un error.

2 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

3 Esercizio 3

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

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 canonica su tutti i valori precedentemente memorizzati su di un vettore. Si scriva un altro script che produca le stesse figure precedentemente richieste (che risulteranno praticamente uguali) e poi si cerchi di strutturarle con il comando subplot come segue Figura 3: Commento ...

3