Développement limité
Un article de Haypo.
Retour aux articles de mathématiques
Pour évaluer une fonction mathématique (cosinus, exponentielle, etc.) en un point, il existe de nombreuses méthodes : méthode de cardic (utilisée dans les calculatrices de poche), algorithme de Newton, etc. Les développements limités sont l'une d'elles. Cet outil permet d'évaluer rapidement une fonction en un point avec une bonne précision.
Sommaire |
[modifier] La formule de Taylor
[modifier] Définition
C'est principalement Taylor qui nous a fait avancer dans ce domaine. La formule est :
- Pour x qui tend vers x0, on a :
- f(x) = f(x0) + f'(x0)×(x-x0) + f''(x0)×(x-x0)^2/2! + f'''(x0)×(x-x0)^3/3! + ... + f(n)(x0)×(x-x0)^n/n! + O(xn)
Notes :
- f'(x0) est la dérivée de f par rapport à x au point x0
- f''(x0) est la dérivée seconde de f par rapport à x au point x0
- f(n)(x0) est la dérivée nième de f par rapport à x au point x0
- n est l'ordre du développement limité
- O(xn) est une fonction qui tend vers zéro quand x tend vers x0.
En pratique, on néglige O(xn), ou plutôt on s'arrange pour qu'il soit négligeable :-)
[modifier] Corollaire de Mac Laurrin
Mac Laurrin a trouvé un truc super : x0=0, génial non ? Ca donne :
- Pour x qui tend vers x0, on a :
- f(x) = f(0) + f'(0)*x + f''(0)*x^2/2! + ... + f(n)(0)*x^n/n!
C'est pratique car les dérivées de fonctions au point 0 ont souvent des valeurs simples. Exemple, la fonction cosinus donne la suite : (1, 0, -1).
[modifier] Trouver un développement limité
[modifier] En dérivant successivement
Pour trouver un développement limité : on utilise la formule de Taylor avec x0=0. C'est assez embêtant au niveau des dérivées qui n'arrêtent pas de se rallonger! Dans certain cas, ça reste supportable :
- Cos'(x) = -Sin(x)
- Cos''(x) = -Sin'(x) = -Cos(x)
- Cos'''(x) = -Cos'(x) = Sin(x)
- Cos(4)(x) = Cos(x) ...
- Cos(n)(x) = Cos(x +n*pi/2)
Pour x qui tend vers zéro, on a :
- Cos(x)
- = Cos(0) - Sin(0) × x - Cos(0) × x^2/2! + Sin(0) × x^3/3! + Cos(0) × x^4/4! - Sin(0) × x^5/5! - ...
- = 1 - 0 - x^2/2! + 0 + x^4/4! - 0 - ...
- = 1 - x^2/2! + x^4/4! -...
- Cos(x)
[modifier] En utilisant la dérivé de la fonction
On peut aussi passer aux dérivées des fonctions que nous intêgrerons :
- ArcCos'(x)= -1/Racine(1-x^2) = -(1-x^2)^(-1/2)
- ArcSin'(x)= 1/Racine(1-x^2) = (1-x^2)^(-1/2)
- ArcTan'(x)= 1/(1+x^2) = (1+x^2)^(-1)
- ArcCosH'(x)= 1/Racine(x^2-1) = (x^2-1)^(-1/2)
- ArcSinH'(x)= 1/Racine(x^2 +1) = (1 +x^2)^(-1/2)
- ArcTanH'(x)= 1/(1 -x^2) = (1 -x^2)^(-1/2)
Et on utilise ensuite le DL de (1+x)^a = 1 +a*x +a(a-1)*x +a(a-1)(a-2)*x^2/2! +...
Exemple:
- ArcTan'(x)
- = 1 +(-1)*(x^2) +(-1)(-2)*(x^2)^2/2 +(-1)(-2)(-3)*(x^2)^3/3! +...
- = 1 -x^2 +x^4 -x^6 +... (c'est super, les coefficients disparaissent ;-)
On intègre ensuite : ArcTan'(x) = x -x^3/3 +x^5/5 -x^7/7 +...
[modifier] Développements limités usuels
Note : On prendra toujours x qui tend vers 0, on verra plus loin comment se débrouiller pour d'autres valeurs.
[modifier] (1+x)a
- (1+x)^a = 1 + a*x +a(a-1)*x^2/2! + a(a-1)(a-2)*x^3/3! + a(a-1)(a-2)(a-3)*x^4/4! + ...
[modifier] ln(1+x) et exp(x)
- ln(1+x) = x - x^2/2 + x^3/3 - x^4/4 + ...
- exp(x) = 1 + x + x^2/2! + x^3/3! + x^4/4! +...
Le développement limité de exp(x) est le plus simple à retenir.
[modifier] cos(x), sin(x) et tan(x)
- cos(x)= 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! -...
- sin(x)= x - x^3/3! + x^5/5! - x^7/7! + ...
- tan(x)= x + x^3/3 + 2*x^5/15 + 17*x^7/315 +...
Tous les angles sont exprimés en radian. Conversion : 360 degré = 2π radian (6.283...), donc x degré = x × π / 180 radian.
Pour tan(x), il n'existe pas de développement simple, mais il existe des techniques pour le retrouver.
Voyez la fonction Tan de HaypoCALC dans son manuel.
[modifier] asin(x), acos(x) et atan(x)
- asin(x)= x +x^3/3*(1/2) +x^5/5*(1*3)/(2*4) +x^7/7*(1*3*5)/(2*4*6) -...
- acos(x)= pi/2 -x -x^3/3*(1/2) -x^5/5*(1*3)/(2*4) -x^7/7*(1*3*5)/(2*4*6) -...
- atan(x)= x -x^3/3 +x^5/5 -x^7/7 +...
Notes :
- acos(x) = pi/2 - asin(x)
- sin'(x)=cos(x)
[modifier] cosh(x), sinh(x) et tanh(x)
- cosh(x)= 1 +x^2/2! +x^4/4! +x^6/6! +x^8/8! +...
- sinh(x)= x +x^3/3! +x^5/5! +x^7/7! +...
Pour tanh(x), on utilise la propriété : tanh(x) = sinh(x) / cosh(x) car il n'existe pas de développement limité simple.
[modifier] acosh(x), asinh(x) et atanh(x)
- acosh(x)= ln(x + √(x^2-1)) = ?
- asinh(x)= x - x^3/3*(1/2) + x^5/5*(1*3)/(2*4) - x^7/7*(1*3*5)/(2*4*6) +...
- atanh(x)= x +x^3/3 +x^5/5 +x^7/7 +...
Note : asinh(x) = ln(x + √(x^2+1))
[modifier] Notes
- cos et cosh : cosh(x) = cos(i*x) avec i: nombre imaginaire tel que i^2=-1, ce qui donne :
cosh(x) = 1 - (i*x)^2/2! + (i*x)^4/4! - (i*x)^6/6! +... = 1 + x^2/2! + x^4/4! + x^6/6! +...
Note : i^2 = -1, i^4 = (i^2)^2 = (-1)^2 = 1, i^6 = (i^4)*(i^2) = -1, ...
0! = 1 (par convention) 1! = 1 2! = 1*2 = 2 3! = 2*3 = 2!*3 = 6 4! = 2*3*4 = 3!*4 = 24 5! = 4!*5 = 120 6! = 5!*6 = 720 ...
[modifier] Calcul avec un x quelconque
Toutes les formules ne sont applicables qu'avec un x qui tend vers 0. Comment faire pour avec x=10 ? Il suffit d'utiliser les propriétés des fonctions, et d'avoir un peu d'astuce :-) Je ne vais pas détailler toutes les fonctions, mais je vais vous donner ici quelques exemples (Ln et Exp).
[modifier] Calcul de Ln(x)
[modifier] Propriétés
- Ln(x^n) = n*Ln(x) avec n: nombre réel positif
- Ln(x*y) = Ln(x)+Ln(y)
- Ln(x/y) = Ln(x) - Ln(y)
[modifier] Algorithme pour obtenir 0<x<=1 à partir de x réel
- Ln(0) : indéfini car lim(Ln(x),x,0,+1) = -∞, et Lim(Ln(x),x,0,-1) = ∞. On exclu donc x=0
- Ln(-x) = Ln(x) +i*π (pour 0<x), i étant le nombre complexe tel que i^2=-1. On ramène x dans l'intervalle x=>0
- Ln(1/x ) = -Ln(x) pour x>1 car Ln(1)=0. On ramène x dans l'intervalle x=>1
- Ln(x*10n) = Ln(x) +n×Ln(10) avec 1<x<=10. On ramène x dans l'intervalle 1<=x<10. Cette transformation est facile pour nos grands nombres entiers, car n+1=Nombre de chiffre de x :-)
- Ln(x) = Ln(√(x)^2) = 2×Ln(√x) avec x>0. On ramène x dans l'intervalle 1<=x<A avec A<2 qu'on choisit arbitrairement. Plus A est proche de 1, moins il faudra de boucles pour calculer le développement limité car il nous faut un x-1 le plus proche possible de 1.
- Ln(1+x) = x - x^2/2 + x^3/3 - x^4/4 +... (pour x proche de zéro) : ça se programme facilement !
[modifier] Calcul de Exp(x)
[modifier] Propriétés
- Exp(x*y) = Exp(x)^y
- Exp(x)*Exp(y) = Exp(x+y)
[modifier] Algorithme pour obtenir x proche de zéro
- Exp(-x) = 1/Exp(x) (pour x>0). On ramène x dans l'intervalle 0<=x
- Exp(2*x) = Exp(x)^2. On ramène x dans l'intervalle 0<=x<A avec A<10.
- Exp(x) = 1 + x + x^2/2! + x^3/3! + x^4/4! +... (pour x proche de zéro). Ça se programme encore plus facilement que le développement limité de Ln(x) !!!
[modifier] Programme d'exemple (langage C)
Programme d'exemple en langage C pour les fonctions Cos, Sin, Tan, ArcCos, ArcSin, ArcTan, CosH, SinH, TanH, ArgCosH, ArgSinH, ArgTanH, Exp et Ln :
Télécharger le code source dl.c.

