lettura facile

La funzione polyfit() di Matlab

La funzione polyfit() di Matlab ti permette di trovare un polinomio che si adatta a una serie di dati.

polyfit(Y)

L'argomento della funzione è un array contenente una serie di dati.

Ti faccio un esempio pratico.

Considera questa serie di dati.

>> X = [ 1 2 3 4 5 6 ]
>> Y = [ 3 8 6 9 7 8 ]

Rappresenta questa serie in un grafico tramite la funzione plot(X,Y)

>> plot(X,Y)

Il grafico della serie di dati è il seguente

il grafico dei dati

Ora cerca un polinomio di primo grado che si adatti a questa serie di dati

>> P = polyfit(X,Y,1)

Il risultato è

P =
0.71429 4.33333

Sono i coefficienti del polinomio di primo grado

$$ P_1(x) = 0.71429 \cdot x + 4.33333 $$

Calcola i valori del polinomio tramite la funzione polyval() usando come argomento l'array X

>> polyval(P,X)

Questa funzione ti calcola i valori del polinomio per ogni elemento dell'array X

ans =
5.0476 5.7619 6.4762 7.1905 7.9048 8.6190

Visualizza entrambi i grafici sul diagramma cartesiano tramite la funzione plot()

plot(X,Y,X,polyval(P,X))

La funzione polinomiale di primo grado (lineare) trova una retta che approssima la serie di dati.

la funzione polinomiale approssima i dati tramite una retta

Esempio 2

Ora calcola un polinomio di secondo grado che si adatti ai dati

>> P = polyfit(X,Y,2)

Il risultato è

P =
-0.35714 3.21429 1.00000

Sono i coefficienti del polinomio di secondo grado

$$ P_2(x) = -0.35714 \cdot x^2 + 3.21429 x + 1.0 $$

Calcola i valori del polinomio tramite la funzione polyval()

>> polyval(P,X)

Il risultato è un array con i valori del polinomio per ogni elemento dell'array X

ans =
3.8571 6.0000 7.4286 8.1429 8.1429 7.4286

A questo punto visualizza entrambi i grafici sul diagramma cartesiano tramite la funzione plot()

plot(X,Y,X,polyval(P,X))

La funzione polinomiale di secondo grado (linea rossa) si adatta meglio alla serie di dati.

il polinomio di secondo grado

Esempio 3

Infine calcola un polinomio di terzo grado che si adatti ai dati

>> P = polyfit(X,Y,3)

Il risultato della funzione è

P =
0.18519 -2.30159 9.08466 -3.66667

Sono i coefficienti del polinomio di terzo grado

$$ P_3(x) = 0.18519x^3 -2.30159 \cdot x^2 + 9.08466 x - 3.66667 $$

Calcola i valori del polinomio con la funzione polyval()

>> polyval(P,X)

In questo modo ottieni i relativi valori del polinomio per ogni elemento dell'array X

ans =
3.3016 6.7778 7.8730 7.6984 7.3651 7.9841

Visualizza i grafici sul diagramma cartesiano tramite la funzione plot()

plot(X,Y,X,polyval(P,X))

La funzione polinomiale di terzo grado (linea rossa) approssima ancora meglio la serie di dati

il polinomio di terzo grado

In conclusione, man mano che aumenti il grado del polinomio, la funzione polinomiale l'errore di approssimazione si riduce perché il polinomio si adatta meglio alla serie dei dati.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin