Ecrire un code en python pour illustrer le développement limité en 0 de sinus

Published: 05 avril 2017

DMCA.com Protection Status

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:

Ecrire un code en python pour illustrer le développement limité en 0 de la fonction sinus
Ecrire un code en python pour illustrer 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
Image

of