[Maple] Définir une suite récurrente

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
ze zoune
Membre Relatif
Messages: 166
Enregistré le: 01 Mai 2008, 17:19

[Maple] Définir une suite récurrente

par ze zoune » 03 Oct 2010, 19:44

Bonsoir à tous,

Mon problème est le suivant: Je dois résoudre un exercice sur le logiciel Maple. On me donne une suite définie sur par et . L'énonce stipule qu'il faut donner une valeur de à près.

J'ai donc penser construire le programme de cette façon:

-Définir ,
-Définir ,
-"Appeler" .

Mais je suis perdu, j'ai essayé de commencer par quelque chose du style:

s := 1;
for k from 1 to 100
do s := sin(k-1);
end do;

Mais j'avais le sentiment que ce ne serait pas bon et j'ai eu raison.

Pourriez vous m'aider ?
Merci !



Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21535
Enregistré le: 11 Nov 2009, 22:53

par Ben314 » 03 Oct 2010, 20:07

Salut,
Si tu avais écrit s:=sin(s), ben au moins ça marcherais...
(l'énoncé te dit que la k-ième valeur de la suite, c'est le sinus de la k-1 ième valeur, ce qui n'a évidement rien à voir avec sin(k) !!!)

Mais, c'est pas super malin du fait que
1) A la fin, si tu demande à Maple la valeur de s, ben y va te répondre
sin(sin(sin(....sin(1)...)))
vu que maple fait du calcul formel
donc, si tu veut une approximation, ben faut lui demander d'approximer (c'est la commande "evalf(..)") soit à la fin, soit à chaque étape.

2) Vu que Maple le permet, ça serait plus joli de programmer ça sous forme récursive, ça correspondrait bien mieux à l'énoncé que tu as :
U:=proc(n)
if n=0 then 1 else sin(U(n-1)) end if;
end proc;

Si tu demande ensuite U(100) il te dit sin(sin(...sin(1)...)) et pour avoir une approximation, tu tape evalf(U(100)).
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

ze zoune
Membre Relatif
Messages: 166
Enregistré le: 01 Mai 2008, 17:19

par ze zoune » 03 Oct 2010, 20:29

Merci de ta réponse !

Lorsque je tape ton programme, Maple m'affiche comme résultat:
Code: Tout sélectionner
U := proc (n) if n = 0 then 1 else sin(U(n-1)) end if end proc


Sinon j'ai tapé ça:

Code: Tout sélectionner
s := 1;
for k to 99
do s := evalf[5](sin(s));
end do:
s;


Je trouve comme valeur s=0,16967. Cela semble t il correct ?

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21535
Enregistré le: 11 Nov 2009, 22:53

par Ben314 » 03 Oct 2010, 21:02

Oui, il me semble que c'est ça.

Concernant mon "programme" (un bien grand mot pour deux lignes) il ne fait que définir une nouvelle fonction nommée U.
Ensuite, si tu veut l'utiliser, tu tape par exemple "U(100);" pour avoir la valeur (exacte) de U(100).

Bon, de toute façon, si tu n'a pas vu les procédure sous Maple, laisse tomber et continue avec des boucles.
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

ze zoune
Membre Relatif
Messages: 166
Enregistré le: 01 Mai 2008, 17:19

par ze zoune » 03 Oct 2010, 21:13

Ok merci beaucoup, je note les deux possibilités dans ce cas :) !

Avatar de l’utilisateur
Ericovitchi
Habitué(e)
Messages: 7853
Enregistré le: 18 Avr 2009, 14:24

par Ericovitchi » 04 Oct 2010, 13:13

Dans un tableur aussi, tu dis que la case du dessous = sin de la case courante et tu recopies vers le bas sur 100 cases.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 81 invités

cron

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite