Plot matlab
Salve, io avrei un esercizio che mi chiede di calcolare l'errore di approssimazione della funzione runge calcolando il massimo tra |f(x)-q(x)| in 10001 punti equidistanti, dove f è la funzione di runge e q un polinomio interpolante su 31 ascisse equidistanti.
Beh, l'avrei svolto così(con una funzione che mi implementa il polinomio interpolante di Lagrange)
Bene, una volta trovata l'approssimazione dell'errore dovrei graficare il risultato.
Io al massimo so graficare il polinomio interpolante in questo modo:
Ma per graficare l'errore calcolato?
Grazie dell'eventuali risposte
Beh, l'avrei svolto così(con una funzione che mi implementa il polinomio interpolante di Lagrange)
>> x=linspace(-5,5,31) >> y=1.^(1+x.^2) >> xx=linspace(-5,5,10001) >> yy=1.^(1+xx.^2) >> p=interp_lagrange(x,y,xx) >> max(abs(p-yy))
Bene, una volta trovata l'approssimazione dell'errore dovrei graficare il risultato.
Io al massimo so graficare il polinomio interpolante in questo modo:
>>plot(xx,yy,xx,p,x,y,'o')
Ma per graficare l'errore calcolato?
Grazie dell'eventuali risposte
Risposte
Fai un plot del modulo di $f(x)-q(x)$, che è un vettore, non del suo massimo.
"feddy":
Fai un plot del modulo di $f(x)-q(x)$, che è un vettore, non del suo massimo.
Ma in questo caso che argomenti deve prendere la funzione plot? Come ho scritto nel mio post, solo che al posto di p (polinomio interpolante) ci metto abs(p-xx)?
direi abs(p-yy), piuttosto che abs(p-xx). Tu vuoi vettore che ha puntualmente il valore assoluto della distanza tra l'interpolante e la funzione esatta da interpolare.
"feddy":
direi abs(p-yy), piuttosto che abs(p-xx). Tu vuoi vettore che ha puntualmente il valore assoluto della distanza tra l'interpolante e la funzione esatta da interpolare.
Sisi, certo volevo dire yy. Però so che la funzione plot ha bisogno di coppie di vettori per graficare sul piano xy. Quindi devo plottare abs(p-yy) con xx? Quindi volendo basterebbe fare così?
plot(abs(p-yy),xx,'o')
Hai scambiato ascisse con ordinate. Vuoi l'errore in funzione dei punti
"feddy":
Hai scambiato ascisse con ordinate. Vuoi l'errore in funzione dei punti
Cioè devo fare plot(xx, abs(p-yy))? Non capisco i punti dati da abs(p-yy) che tipo di punti siano.
Una componente qualsiasi del vettore abs(p-yy) ha il valore assoluto dell'errore (assoluto) tra l'interpolatore da te costruito e la funzione esatta. Quello che stai plottando è una funzione (discreta) che associa ad ogni elemento (un punto) del vettore xx, l'errore in quel preciso punto. Se non ti è chiaro, prova plottare quanto scritto per rendertene conto