par JJa » 24 Juil 2009, 15:16
Bonjour,
On peut trouver des formules, sous forme de séries, qui donnent les solutions avec autant de précision que l'on veut.
En effet, on sait que les racines de l'équation sont d'autant plus proches de x = -(k+(1/2))*pi que k est grand.
(ceci résultant du fait que les racines sont voisines de celles de l'équation cos(x)=0 pour x<<0 puisque l'exponentielle est d'autant plus proche de zéro que k est grand),
Il suffit alors de faire des développements en série au voisinage de ces valeurs, c'est à dire de rechercher les racines sous la forme :
x = -(k+(1/2))*pi + t , avec t petit
L'équation cos(x) = exp(x) devient :
u*sin(t) = exp(t) avec u = constante :
avec u = ((-1)^k)*exp(-(k+(1/2))*pi )
ce qui simplifie beaucoup le problème car on est ramené à un développement au voisinage de zéro, quelle que soit la racine considérée (cette racine dépendant de k).
Le développement en série de Taylor, mais limitée au premier ordre, donne une première approximation :
t = u/(1-u) avec u = ((-1)^k)*exp(-(k+(1/2))*pi )
Les valeurs approximatives des racines sont alors obtenues par :
x = -(k+(1/2))*pi + u/(1-u) avec u = ((-1)^k)*exp(-(k+(1/2))*pi )
Néanmoins, la racine correspondant à k=0 reste encore peu précise. La précision s'améliore très rapidement pour k=1 puis k=2, etc.
Bien entendu, il est possible d'obtenir beaucoup mieux en ne se limitant pas à la première approximation.
Voici une formule qui donne toutes les racines (hormis la racine triviale x=0), avec une très grande précision (sauf pour k=0 où la précision reste un peu moins bonne) :
x = -(k+(1/2))*pi + t -(sin(t)-u*exp(t))/(cos(t)-u*exp(t))
avec u = ((-1)^k)*exp(-(k+(1/2))*pi ) et t = u/(1-u)
Pour k=0 on obtient : x = -1,292790.. ; cos(x) = 0,2744387.. ; exp(x ) = 0,274503..
Pour k=1 on obtient : x = -4,721292758847684.. ; cos(x) = 0,008903660818918.. ; exp(x ) = 0,00890366081892..
et pour les racines suivantes, k=2, k=3, etc... c'est encore mieux : l'égalité du cos et de l'exponentielle est obtenue sur tous les chiffres significatifs.