 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Leleuco
Inscrit le: 22 Mar 2014 Messages: 5
|
Posté le: 22 Mar 2014 11:44 Sujet du message: Anomalie dans la série cosinus |
|
|
Code: |
> for x from 0 to 5 do
>print(evalf(sum((-1)^k*x^(2*k)/factorial(2*k), k = 0 .. 10)), evalf(cos(x)))
> end do;
0., 1.
0.5403023059, 0.5403023059
-0.4161468365, -0.4161468365
-0.9899924966, -0.9899924966
-0.6536436057, -0.6536436209
0.2836642141, 0.2836621855
|
la "sum" est le développement en série de cos(x),bien entendu .Maple donne 0 pour x=0,et cos(0) = 0 . (!).
Si vous donnez à x une valeur proche de zéro :
Code: |
> x := 0.1e-7; print(evalf(sum((-1)^k*x^(2*k)/factorial(2*k), k = 0 .. 10)), evalf(cos(x)));
1 10 e-8
1.000000000, 1.
|
Vous obtenez le bon résultat.
Si vous demandez la série : elle est correcte :
Code: |
> sum((-1)^k*x^(2*k)/factorial(2*k), k = 0 .. 5);
1-(1/2)*x^2+(1/24)*x^4-(1/720)*x^6+(1/40320)*x^8-(1/3628800)*x^10
eval(1-(1/2)*x^2+(1/24)*x^4-(1/720)*x^6+(1/40320)*x^8-(1/3628800)*x^10, [x = 0]);
1
|
Quelle est cette anomalie ? . Où est l'erreur ?
pour Maple ,la série cosinus classique donne pour cosinus(0) = 0 !! |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 23 Mar 2014 8:54 Sujet du message: |
|
|
Bonjour,
Effectivement l'anomalie vient du 0^0 correspondant à la première valeur 0 de k. Quand il calcule la somme, Maple doit considérer que 0^0 = 0.
La valeur est 1 en fait, car c'est la limite de exp(x ln(x)) quand x tend vers 0+.
Si on procède en remplaçant x par 0, le calcul semble bien se passer:
Code: |
> 0^0;
1
> sum((-1)^k*0^(2*k)/factorial(2*k), k = 0 .. 10);
1
|
D'où ma solution pour avoir la bonne valeur, je substitue chaque valeur de x dans une variable y:
Code: |
> for x from 0 to 5 do
>
> print(evalf(subs(y=x,sum((-1)^k*y^(2*k)/factorial(2*k), k = 0 .. 10))), evalf(cos(x)))
>
> end do;
1., 1.
0.5403023059, 0.5403023059
-0.4161468365, -0.4161468365
-0.9899924966, -0.9899924966
-0.6536436057, -0.6536436209
0.2836642141, 0.2836621855
|
A bientôt. |
|
Revenir en haut de page |
|
 |
prof_simplet
Inscrit le: 12 Sep 2006 Messages: 86
|
Posté le: 23 Mar 2014 11:07 Sujet du message: |
|
|
Bonjour, cette question a été maintes fois évoquée sur le forum mapleprimes.com, en voici une réponse en anglais.
Il vaut mieux utiliser add à la place de sum.
Citation: |
When you want to add a finite specific number of terms (rather than perform a symbolic sumation) you should use add instead of sum. Then you will get the correct answer. By using sum, you are causing the premature evaluation of 0^(2*k), which evaluates to zero (except apparently in Maple 1 , k being initially unknown. With add, the terms are not evaluated until the values of k are substituted, and then 0^0 evaluates to 1.
This issue has been discussed on Maple forums for decades.
|
Code: |
for x from 0 to 5 do
>
> print(evalf(add((-1)^k*x^(2*k)/factorial(2*k), k = 0 .. 10)), evalf(cos(x)))
>
> end do;
1., 1.
0.5403023059, 0.5403023059
-0.4161468365, -0.4161468365
-0.9899924966, -0.9899924966
-0.6536436057, -0.6536436209
0.2836642141, 0.2836621855
|
Voilà, la messe est dite! |
|
Revenir en haut de page |
|
 |
Leleuco
Inscrit le: 22 Mar 2014 Messages: 5
|
Posté le: 23 Mar 2014 11:21 Sujet du message: Anomalie dans la série cosinus |
|
|
Gênant. |
|
Revenir en haut de page |
|
 |
Leleuco
Inscrit le: 22 Mar 2014 Messages: 5
|
Posté le: 24 Mar 2014 12:21 Sujet du message: |
|
|
J'avoue que j'ai un peu de mal à avaler cette explication,car si vous remplacez x par une très petite valeur ,par ex : 0.0000001,On obtient un bon résultat.
for x from 10^(-10) to 5 do
print(evalf(sum((-1)^k*x^(2*k)/factorial(2*k), k = 0 .. 10)), evalf(cos(x)))
end do;
1.0000000, 1.
0.54030231, 0.54030231
-0.41614684, -0.41614684
-0.98999250, -0.98999250
-0.65364361, -0.65364362
> Rien à voir avec "you are causing the premature evaluation of 0^(2*k)" me semble) -t-il. |
|
Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com
Apprendre Maple - ©
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|