import numpy as np import matplotlib.pyplot as plt#importiamo il modulo pyplot di matplotlib def factorial(n): fac=1.0 for i in range(1,n+1): fac*=i return fac def main(): #questo programma crea una lista di n numeri equispaziati #tra 0 x_max e x_max=float(input('Dammi X massimo :')) n=int(input('Dammi n :')) nn=int(input('Dammi l\'ordine dello sviluppo in serie di Taylor: ' )) x=[]#crea una lista per ora vuota f=[] fa=[] for i in range(n):#range crea interi da 0 a n-1 compresi x.append(x_max/n*i)#aggiunge un elemento alla lista f.append(np.sin(x[i]))#x[i] dà l'elemento i-esimo della lista fa.append(0.) fa[i]=np.sin(x[0]) for j in range (1,nn+1): if(int(j/2)*2==j):#j pari fadd=np.sin(x[0])*(-1)**(int(j/2)+1) else:#j dispari fadd=np.cos(x[0])*(-1)**(int(j/2)) fa[i]+=fadd*(x[i]-x[0])**j/factorial(j) fig, ax = plt.subplots()#definiamo un grafico plt.rcParams.update({'font.size': 14})#cambiamo il font ax.set_xlim(0,x_max)#definiamo gli intervalli #ax.set_ylim(-1,1) ax.set_ylim(min(np.min(fa),-1),max(np.max(fa),1)) plt.plot(x,f, ls='-', label="Sin")#grafico plt.plot(x,fa, ls='-', label="Sin app")#grafico ax.legend() ax.set_xlabel("X") ax.set_ylabel("Y") plt.show(block=True) if __name__ == "__main__": main()