Même exemple que précédemment mais avec la fonction sinus.
Exemple de comment implementer en python un code pour calculer le développement limité en 0 de la fonction sinus:
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
import math
#----------------------------------------------------------------------------------------#
# Plot sinus function
xmin = -2.0*np.pi
xmax = 2.0*np.pi
x = np.arange(xmin,xmax,0.1)
y = np.sin(x)
plt.plot(x,y)
ax = plt.gca()
ax.spines['left'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
ax.spines['top'].set_color('none')
plt.grid()
plt.xlim(xmin,xmax)
plt.ylim(-1.2,1.2)
plt.savefig("sinus.png", bbox_inches='tight')
#plt.show()
#----------------------------------------------------------------------------------------#
# Sinus Taylor series Function
def dl0_sinus(x,n):
f = 0
for i in range(n+1):
f = f + ( (-1.0)**i / math.factorial(2.0*i+1) ) * x**(2.0*i+1)
return f
#----------------------------------------------------------------------------------------#
# Plot with order 2n = 4
n = 2
y = dl0_sinus(x,n)
plt.plot(x,y)
plt.savefig("test_dl0_sinus.png", bbox_inches='tight')
#plt.show()
plt.close()
#----------------------------------------------------------------------------------------#
# Create a loop over n
for n in range(1,10):
x = np.arange(xmin,xmax,0.1)
y = np.sin(x)
plt.plot(x,y)
ax = plt.gca()
ax.spines['left'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
ax.spines['top'].set_color('none')
plt.grid()
plt.xlim(xmin,xmax)
plt.ylim(-1.2,1.2)
y = dl0_sinus(x,n)
plt.plot(x,y)
plt.title(u"Développement limité de la fonction sinus ( n = "+str(n) +")")
plt.savefig("dl0_sinus_"+str(n)+".png", bbox_inches='tight')
plt.close()
Dans la première partie du code on trace simplement la fonction sinus sur l'intervalle $[-2\pi,2\pi]$, dans la seconde partie du code on définit le développement limité en 0 de la fonction sinus:
$$ cos(x) = \sum_{i=0}^n \frac{(-1)^i}{(2i+1)!}x^{2i+1} + o(x^{2n+1}) $$
puis dans la troisième partie on tracer le le développement limité en 0 de sinus pour un ensemble de n (avec $n \ge 1$)
Remarque: pour créer une animation gif avec les résultats obtenus il suffit de lancer la commande suivante:
convert -delay 100 dl0_cosinus_* dl0_sinus.gif
Références
Liens | Site |
---|---|
Développement limité | wikipedia |
Taylor series | wikipedia |