Plot matlab

Messaggioda Xemitron » 25/09/2021, 18:04

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)

Codice:
>> 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:

Codice:
>>plot(xx,yy,xx,p,x,y,'o')


Ma per graficare l'errore calcolato?

Grazie dell'eventuali risposte
Xemitron
Starting Member
Starting Member
 
Messaggio: 10 di 30
Iscritto il: 15/01/2018, 16:20

Re: Plot matlab

Messaggioda feddy » 30/09/2021, 08:17

Fai un plot del modulo di $f(x)-q(x)$, che è un vettore, non del suo massimo.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2860 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Plot matlab

Messaggioda Xemitron » 30/09/2021, 09:17

feddy ha scritto: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)?
Xemitron
Starting Member
Starting Member
 
Messaggio: 11 di 30
Iscritto il: 15/01/2018, 16:20

Re: Plot matlab

Messaggioda feddy » 30/09/2021, 11:13

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.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2861 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Plot matlab

Messaggioda Xemitron » 30/09/2021, 11:48

feddy ha scritto: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ì?

Codice:
plot(abs(p-yy),xx,'o')
Xemitron
Starting Member
Starting Member
 
Messaggio: 12 di 30
Iscritto il: 15/01/2018, 16:20

Re: Plot matlab

Messaggioda feddy » 30/09/2021, 11:49

Hai scambiato ascisse con ordinate. Vuoi l'errore in funzione dei punti
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2862 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Plot matlab

Messaggioda Xemitron » 30/09/2021, 23:20

feddy ha scritto: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.
Xemitron
Starting Member
Starting Member
 
Messaggio: 13 di 30
Iscritto il: 15/01/2018, 16:20

Re: Plot matlab

Messaggioda feddy » 01/10/2021, 10:12

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
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2863 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite