Come disegnare il grafico della derivata di una funzione in Python
Per disegnare il grafico di una funzione derivata in Python, uso i moduli misc di scipy e pylab.
import pylab as py
from scipy import misc, arange
Poi definisco il range della variabile indipendentemente con la funzione arange di scipy.
x = arange(-20, 20, 1)
In questo caso l'intervallo è [-20,20] con incremento uguale a +1.
La funzione arange() crea un oggetto iterabile (array) con gli elementi unitari da -100 a +100 e lo assegna alla variabile x.
>>>x
array([-20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8,
-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19])
A questo punto definisco la funzione vera e propria f(x) con l'istruzione def.
Per semplicità scelgo la funzione f(x)=x2.
def f(x):
return x**2
Poi calcolo la sua derivata prima f'(x) rispetto alla variabile x tramite la funzione misc.derivative
fd = misc.derivative(f, x)
L'oggetto f(x) e l'oggetto fd sono due array contenenti i dati della funzione e della derivata prima nell'intervallo [-20,20] della x.
Ecco il contenuto dell'oggetto f(x)
>>> f(x)
array([400, 361, 324, 289, 256, 225, 196, 169, 144, 121, 100, 81, 64,
49, 36, 25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25,
36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324,
361], dtype=int32)
e il contenuto dell'oggetto fd
>>> fd
array([-40., -38., -36., -34., -32., -30., -28., -26., -24., -22., -20.,
-18., -16., -14., -12., -10., -8., -6., -4., -2., 0., 2.,
4., 6., 8., 10., 12., 14., 16., 18., 20., 22., 24.,
26., 28., 30., 32., 34., 36., 38.])
Infine creo i dati del grafico con la funzione plot().
Definisco sia i dati di f(x) e sia quelli della derivata f'(x) ossia fd.
In questo modo posso stampare entrambi sullo stesso diagramma cartesiano.
py.plot(x,f(x))
py.plot(x,fd)
Poi stampo a video il grafico con la funzione py.show()
py.show()
Si apre una finestra con la rappresentazione grafica delle due funzioni sul diagramma cartesiano.
Il grafico di colore blu è la funzione f(x)=x2 mentre quello arancione è la funzione derivata f'(x)=2x.
Ho così disegnato un grafico contenente entrambe le funzioni nello stesso grafico.
E così via.