Quiz su interpolazione in Matlab

Messaggioda Alessio_Ale » 08/07/2022, 09:12

Ciao a tutti, sto preparando un esame su matlab e non riesco a risolvere alcuni esercizi.
Mi date una mano a capire dove sbaglio?



Immagine

Il codice che ho scritto è:

Codice:
a=0;
b=2*pi;
g=7;
n=g+1;

f=@(x) 3.*x.*cos(x).*sin(x); %definisco f(x)
x=linspace(a,b,n);               
y=f(x);

c=polyfit(x,y,n);                   %creo il polinomio

f1=f(pi/2)                            %valore di f1


fin qui funziona tutto ma non riesco a capire come calcolare il valore di p $ ( (pi)/(2) ) $

Ogni suggerimento è ben accetto! Grazie! :smt023
Ultima modifica di feddy il 08/07/2022, 22:42, modificato 1 volta in totale.
Motivazione: Sistemato titolo
Alessio_Ale
Starting Member
Starting Member
 
Messaggio: 20 di 36
Iscritto il: 23/06/2022, 22:31

Re: Quiz su interpolazione in Matlab

Messaggioda feddy » 08/07/2022, 21:46

Big hint:
Codice:
polyval
:D
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2937 di 5941
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Quiz su interpolazione in Matlab

Messaggioda feddy » 08/07/2022, 21:52

In particolare, la documentazione ti spiega anche come funziona: https://it.mathworks.com/help/matlab/ref/polyval.html
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2938 di 5941
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Quiz su interpolazione in Matlab

Messaggioda feddy » 08/07/2022, 22:45

Un paio di cose importanti per quando posti :-)
1) Non postare l'immagine del testo del problema. Questi link una volta rotti rendono il post incomprensibile.
2) Scrivi un titolo sensato. "Esercizi matlab che mi fanno impazzire" non permette agli utenti futuri di capire quale sia il contenuto del messaggio.
3) Posta il codice tra gli appositi tag.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2942 di 5941
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Quiz su interpolazione in Matlab

Messaggioda Alessio_Ale » 09/07/2022, 09:32

Ho provato ad inserire "polyval" nel codice, ma non mi tornano i risultati.
Se non ho capito male dovrei andare a valutare il mio valore sul polinomio c creato con polyfit; la sintassi giusta è quindi polyval(c,pi/2) ?
Alessio_Ale
Starting Member
Starting Member
 
Messaggio: 24 di 36
Iscritto il: 23/06/2022, 22:31

Re: Quiz su interpolazione in Matlab

Messaggioda feddy » 09/07/2022, 09:52

Sì, corretto. Cosa non ti torna?
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2946 di 5941
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Quiz su interpolazione in Matlab

Messaggioda feddy » 09/07/2022, 10:00

Ah, ho visto il codice ora. Il tuo errore è in polyfit: l'ultimo argomento deve essere il grado, cioè
Codice:
g
che è $7$, non il numero di punti di interpolazione, che è $8$ (vedi la documenzione: https://it.mathworks.com/help/matlab/re ... escription). Infatti, ti sarà sicuramente comparsa una warning dicendoti che il grado è maggiore o uguale del numero di punti iniziali. Quindi l'esercizio diventa:

Codice:
a=0;
b=2*pi;
g=7;

f=@(x) 3.*x.*cos(x).*sin(x); %definisco f(x)
x=linspace(a,b,g+1);               
y=f(x);

c=polyfit(x,y,7);                   %creo il polinomio

abs(f(pi/2) - polyval(c,pi/2))
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2947 di 5941
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Quiz su interpolazione in Matlab

Messaggioda Alessio_Ale » 09/07/2022, 11:02

Perfetto, ora funziona! Grazie mille
Alessio_Ale
Starting Member
Starting Member
 
Messaggio: 25 di 36
Iscritto il: 23/06/2022, 22:31

Re: Quiz su interpolazione in Matlab

Messaggioda feddy » 09/07/2022, 11:04

Prego!
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2948 di 5941
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