série harmonique

Utilisation de Xcas

Modérateur : xcasadmin

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

série harmonique

Message par alb » lun. janv. 04, 2010 9:22 pm

Annule et remplace les deux messages précédents.

win32-0.8.4 du 16/12/09-recurs:1000

Pour une séance en terminale S (la démonstration par récurrence et les suites viennent d'être étudiées) dont le but est de montrer la divergence de la suite de terme général u(n)=somme(1/k,k,1,n), j'aimerais conjecturer le résultat à partir de 3 méthodes differentes:
1)
S(f,p,n):={
si p==n alors f(n)
sinon f(p)+S(f,p+1,n)
fsi
}
:;
puis u(n):=S(x->1/x,1,n)
mais evalf(u(378)) renvoie une valeur approchée
et pour les valeurs supérieures à 379 : crash
2)
S(f,p,n):={
local A;
A:=0;
for(k:=p;k<=n;k++)
A:=A+f(k);
return A;
}
:;
puis u(n):=S(x->1/x,1,n)
mais evalf(u(718)) renvoie une valeur approchée
et evalf(u(?)) pour ? de 719 à 726 renvoie oo
et evalf(u(?)) pour ? sup à 727 renvoie undef
3)
u(n):=somme(1/k,k,1,n) qui renvoie les mêmes résultats qu'en 2)

Pour répondre aux questions des élèves:
1)ces résultats sont-ils justifiés ?
2)si oui, comment leur expliquer simplement les différences entre les versions 1) et 2) ?
3)peut-on imaginer une méthode pour suggérer la divergence de la suite ?

PS : l’exercice consiste pour prouver la divergence à montrer que u(2^n) est minoré par n/2.

Meilleurs voeux pour 2010,
luc briel.

parisse
Messages : 5894
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: série harmonique

Message par parisse » mar. janv. 05, 2010 11:59 am

Le crash du 1/ est normal, car la pile utilisée pour réaliser les appels récursifs à une taille limite qui est alors dépassée, c'est pour ça que par défaut le nombre de récursions autorisés est petit. Je ne sais pas changer la taille de la pile, donc il m'est impossible d'augmenter le nombre d'appels récursifs.
Pour le 2/, si on ne fait pas evalf on s'aperçoit que xcas renvoie une fraction d'entiers (u(718) est exact). Ensuite evalf va utiliser la précision par défaut pour calculer le numérateur et le dénominateur, puis faire le quotient des 2 flottants obtenus. Or pour u(718) le numérateur et le dénominateur ne dépassent pas la valeur limite des flottants machines, alors que pour u(719), le numérateur dépasse la valeur limite (et est converti en infini) mais pas le dénominateur (qui est converti en un réel) donc le quotient est évalué numériquement en infini. Un peu plus loin, ce sont les numérateurs et dénominateurs qui dépassent la valeur limite des flottants, ils sont donc convertis en inf/inf qui est évalué en undef.
On peut contourner le problème en utilisant des flottants multiprécision par exemple
evalf(u(719),20)
Concernant l'observation expérimentale de la divergence, peut-etre que après avoir calculé par exemple evalf(u(2^13),20), faire
evalf(u(2^(k+1))-u(2^k),20)
pour des valeurs de k inférieures à 12 (et une comparaison avec ln(2) si vous avez déjà introduit le ln) pourrait être parlant.

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

Re: série harmonique

Message par alb » mar. janv. 05, 2010 9:37 pm

Merci pour les réponses que les élèves comprendront facilement
Je pense aussi à une approche graphique du genre:
S(f,p,n):={
local A,L;
A:=0;
L:=[];
for(k:=p;k<=n;k++)
{A:=A+f(k);
L:=L,point(k,A)};
return L;
}
:;
puis S(x->1/x,1,300) qui suggère la courbe de ln,puis:
S(f,p,n):={
local A,L;
A:=0;
L:=[];
for(k:=p;k<=n;k++)
{A:=A+f(k);
L:=L,point(k,A)};
return L,plot(ln(x),x=p..n,1);
}
:;
puis S(x->1/x,1,300) qui suggère que la différence entre u(n) et ln(n) est constante,constante dont on cherchera une valeur approchée. Puis pour continuer utiliser des suites adjacentes pour encadrer cette constante.
Comment est nommée la constante d'Euler ?
Peut-on supprimer mes deux messages tronqués précédents ?

parisse
Messages : 5894
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: série harmonique

Message par parisse » mer. janv. 06, 2010 2:43 pm

Pour le plot du ln, je vous suggere de rajouter une couleur
plot(ln(x),x=p..n,couleur=rouge);
La constante d'Euler s'appelle euler_gamma, je vais la rajouter dans les constantes.
On doit pouvoir supprimer les messages en cliquant sur une croix quelque part...
a+

Répondre