Ricerca nel sito web

Come calcolare e tracciare la derivata di una funzione utilizzando Python - Matplotlib?


La derivata di una funzione è uno dei concetti chiave utilizzati nel calcolo infinitesimale. È una misura di quanto cambia la funzione quando cambiamo l'output.

Considerando che Matplotlib è una libreria di grafici per Python, poiché non fornisce un metodo diretto per calcolare la derivata di una funzione, è necessario utilizzare NumPy, che è anche una delle librerie Python e puoi usarla per calcolare la derivata di una funzione e Matplotlib per visualizzare i risultati.

In questo articolo calcoleremo la derivata di una funzione utilizzando la libreria NumPy e la visualizzeremo con l'aiuto di Matplotlib in Python.

Cos'è la derivata di una funzione?

Una derivata è la velocità con cui una funzione cambia rispetto al suo input. Fornisce la pendenza della linea tangente della funzione in qualsiasi punto e può essere utilizzato anche per trovare massimi, minimi, punti critici e punti di flesso. La derivata della funzione f(x) è definita come il limite del quoziente di differenza quando le variazioni di x si avvicinano allo zero. Una dichiarazione matematica che lo spiega è la seguente:

 f`(x) = lim (h -> 0) [(f(x + h) – f(x)) / h] 

Qui, il limite indica la velocità istantanea di variazione della funzione in x.

Cos'è Matplotlib in Python?

Matplotlib è una delle librerie di visualizzazione più popolari per Python. È ampiamente utilizzato nella comunità informatica scientifica. Supporta una varietà di tipi di grafici e presenta molte opzioni di personalizzazione, si integra anche con NumPy e altre librerie di calcolo scientifico.

Calcolo della derivata di una funzione utilizzando Matplotlib

Poiché in Matplotlib non disponiamo di alcun metodo diretto per calcolare la derivata di una funzione, dobbiamo utilizzare la formula per calcolare la derivata e tracciare il risultato utilizzando un grafico. Seguire i passaggi indicati di seguito per farlo –

Passaggio 1 – Prima di tutto importa i moduli richiesti, ad esempio matplotlib e numpy.

import numpy as np
import matplotlib.pyplot as plt

Passaggio 2 – Dopo aver importato i moduli, definisci una funzione che desideri differenziare. Prendiamo f(x)=x2

Def f(x):
    return x**2

Passaggio 2 – Ora definisci l'intervallo di valori x su cui tracciare le funzioni e la derivata. Prendiamo un intervallo di [-4, 4]

x = np.linspace(-4, 4, 1000)

Passaggio 3 – Quindi, utilizzando la funzione gradient() di numpy possiamo calcolare la derivata della funzione. Il compito di questa funzione è calcolare il gradiente numerico di una matrice di valori, che è un'approssimazione della derivata.

dfdx = np.gradient(f(x), x)

Passaggio 4 – Per tracciare la funzione originale e la sua derivata, utilizzeremo matplotlib. Come output verrà creata una trama.

plt.plot(x, f(x), label = ‘f(x)’)
plt.plot(x, dfdx, label = ‘df/dx’)
plt.legend()
plt.show()

Esempio

Dopo aver seguito tutti i passaggi, il codice e l'output saranno i seguenti:

import numpy as np
import matplotlib.pyplot as plt
def f(x):
    return x**2
x = np.linspace(-2, 2, 100)
dfdx = np.gradient(f(x), x)
plt.plot(x, f(x), label='f(x)')
plt.plot(x, dfdx, label='df/dx')
plt.legend()
plt.show()

Produzione

Esempio

Qui, definiremo prima la funzione come f(x)=sin(x) e poi utilizzando la funzione gradiente di NumPy calcoleremo la sua derivata. Quindi proveremo a tracciare sia la funzione originale f(x) che la derivata df/dx utilizzando la funzione plot() di Matplotlib.

import numpy as np
import matplotlib.pyplot as plt
def f(x):
    return np.sin(x)
x = np.linspace(-np.pi, np.pi, 1000)
dfdx = np.gradient(f(x), x)

fig, ax = plt.subplots()
ax.plot(x, f(x), label='f(x)')
ax.plot(x, dfdx, label="df/dx")
ax.legend()
plt.show()

Produzione

Esempio

Il primo passo è definire la funzione che vogliamo differenziare utilizzando la funzione di potenza numpy. Quindi, per calcolare la derivata della funzione in un insieme di punti, utilizzeremo la funzione gradient().

Il ruolo di questa funzione è prendere una matrice di valori e quindi restituire una matrice della stessa forma avente le derivate numeriche dei valori ottenuti.

import matplotlib.pyplot as plt
import numpy as np
def f(x):
    return np.power(x, 2)
x = np.linspace(0, 4, 100)
y = f(x)
dy = np.gradient(y, x)
plt.plot(x, y, label='f(x)')
plt.plot(x, dy, label="f'(x)")
plt.legend()
plt.show()

Produzione

Qui, in ogni caso, abbiamo prima definito la funzione di cui vogliamo calcolare la derivata. Abbiamo creato i valori dell'asse x utilizzando la funzione linspace() di numpy e li abbiamo utilizzati per calcolare i valori derivati. Infine, tracciamo la funzione e la sua derivata utilizzando la funzione plot e aggiungiamo una legenda al grafico utilizzando la funzione legend.

Conclusione

In questo articolo abbiamo calcolato la derivata di una funzione utilizzando Python – Matplotlib. Abbiamo utilizzato diverse funzioni come gradient() per calcolare la derivata, linspace() per l'intervallo di valori e plot() per tracciare rispettivamente la funzione e la sua derivata.

Articoli correlati: