Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme sur algobox

Posté par
schnecke
24-11-14 à 21:37

Bonjour,

J'ai un DM à faire pour cette semaine et je bloque sur la dernière question.

Il faut que je programme dans algobox un algorithme qui détermine le rang n du premier terme Vn qui est situé à une distance inférieure à 10-9 de la limite L.

Info:

Vn=2Vn-1+3/Vn-1+1
V0=-2

J'ai trouvé dans une question précédente que L était égale à 1+13   /2

Je pensais utilisé la fonction "tant que" d'algobox avec Vn-9<10-9 mais je ne sais pas si c'est correct et je n'y parviens pas car je ne sais pas comment on écrit les puissances de 10 avec algobox.

Voici ce que j'ai essayé de faire mais je ne peux pas l'exécuter, il y a une erreur:


merci d'avance pour votre aide







Algorithme sur algobox

Posté par
mathafou Moderateur
re : Algorithme sur algobox 24-11-14 à 22:10

Bonjour,

il y a plusieurs erreurs
une première de syntaxe (parenthèse absente dans une expression, erreur semblable d'ailleurs à l'erreur d'écriture ici : les parenthèses c'est pas pour décorer)

le reste est des erreurs de principe : même si ton programme "tournait" il donnerait du n'importe quoi comme résultat, si tant est qu'il s'arrête de boucler un jour...

- on cherche n
alors "LIRE n" ???? tu connais déja la valeur de n que tu cherches ???

- tu calcules en fait les Vk (j'appelle l'indice volontairement k et pas n)
pour k = de n en n (avec n la valeur que tu as saisie)
si tu saisis n = 5 par exemple, tu calcules V5 puis V10 puis V15 etc
(aucune des valeurs intermédiaires n'est utilisée à quoi que ce soit)
la boucle "pour" est totalement inutile : tout doit être fait dans la seule boucle tant_que

- ton test sur "tant que" est faux
on teste "tant que ce n'est PAS fini", tant que la condition qu'on cherche à avoir est fausse.
dans le tant que on écrit donc la négation de la condition que l'on cherche à obtenir : que valeur absolue de Vn - L soit inférieure à 10-9.
la négation de cette condition est donc : tant que valeur absolue de Vn - L est supérieure ou égale à 10-9.
valeur absolue à moins de démontrer que la suite est strictement monotone et de faire attention au sens dans lequel on calcule cette différence (pour obtenir quelque chose de toujours >0)

- de plus on ne veut pas que ce soit inférieur à 10 mais à 10-9
(en algobox, les puissances s'écrivent avec la fonction pow())

Posté par
schnecke
algorithme avec algobox 24-11-14 à 22:52

Merci beaucoup pour votre réponse mathafou!

Alors j'ai modifié mon algorithme avec les instructions que vous m'avez donné. Mais il doit toujours être faux car lorsque je l'exécute il me dit: "interrompu ligne 13 : dépassement de la capacité autorisée pour les boucles***".


Je n'arrive pas a voir mon erreur et je ne comprends surtout rien aux algorithmes...



algorithme avec algobox

Posté par
jeveuxbientaider
re : Algorithme sur algobox 24-11-14 à 22:58

Bonjour,

En l'absence de mathafou, je vais reprendre sa première remarque :

Citation :
Citation :
il y a plusieurs erreurs
une première de syntaxe (parenthèse absente dans une expression, erreur semblable d'ailleurs à l'erreur d'écriture ici : les parenthèses c'est pas pour décorer)

le reste est des erreurs de principe : même si ton programme "tournait" il donnerait du n'importe quoi comme résultat, si tant est qu'il s'arrête de boucler un jour...

- on cherche n
   alors "LIRE n" ???? tu connais déja la valeur de n que tu cherches ???


Dans ton nouvel algo, la variable V??? ne change jamais !!!!! Ton algo va avoir du mal à trouver une sortie à ta boucle tant que !!!!

Et tu continues à saisir n !!!! qui est une ineptie !!!!

Tu as vraiment lu les remarques de mathafou ?

Posté par
schnecke
Algorithme sur algobox 24-11-14 à 23:37

Oui. Mais je ne comprends pas. Il faut donc que je rajoute une ligne avec Vn prend la valeur de (2*Vn-1+3)/(Vn-1+1)? Que faut il saisir alors?

Posté par
jeveuxbientaider
re : Algorithme sur algobox 24-11-14 à 23:48

NONONONONONON

Il suffit juste de prendre une variable V qui va prendre comme valeur

-2 au premier rang

puis

?????? au rang suivant ..... je mets des ???? parce que je n'ai toujours pas compris comment est définie la suite (Vn) .... manque cruel des parenthèses !!!!

Il n'y a rien à saisir puisque , ici , toutes les infos nécessaires à la résolution du problème sont connues de toi (pas forcément de nous)  !!! :
On connait la valeur du premier terme de la suite ...
On est sensé connaitre l'expression qui définit la suite
On cherche à partir de quel rang n la valeur de ..... est ....  10-9


Il y aurait un truc à saisir (p) si on te demandait  partir de quel rang la valeur de ..... est .... 10-p

Posté par
jeveuxbientaider
re : Algorithme sur algobox 24-11-14 à 23:50

pardon

Il n'y a rien à saisir puisque , ici , toutes les infos nécessaires à la résolution du problème sont connues de toi (pas forcément de nous)  !!! :
On connait la valeur du premier terme de la suite ...
On est sensé connaitre l'expression qui définit la suite
On cherche à partir de quel rang n la valeur de ..... est ....  10-9


Il y aurait un truc à saisir (p) si on te demandait  partir de quel rang la valeur de ..... est .... 10-p

Posté par
amateur
re : Algorithme sur algobox 25-11-14 à 12:35

Bonjour,

Pour une bonne utilisation des parenthèses voir ligne 14.

On peut remplacer la ligne 7 par lire n.

1   VARIABLES
2     n EST_DU_TYPE NOMBRE
3     v EST_DU_TYPE NOMBRE
4     p EST_DU_TYPE NOMBRE
5     old EST_DU_TYPE NOMBRE
6   DEBUT_ALGORITHME
7     n PREND_LA_VALEUR 5
8     p PREND_LA_VALEUR pow(10,-n)
9     old PREND_LA_VALEUR 100
10    v PREND_LA_VALEUR -2
11    TANT_QUE (abs(old-v)>p) FAIRE
12      DEBUT_TANT_QUE
13      old PREND_LA_VALEUR v
14      v PREND_LA_VALEUR (2*v+3)/(v+1)
15      AFFICHER v
16      FIN_TANT_QUE
17    AFFICHER "v="
18    AFFICHER v
19  FIN_ALGORITHME

Posté par
mathafou Moderateur
re : Algorithme sur algobox 25-11-14 à 13:01

Bonjour,

on ne demande pas la valeur de la limite à 10-m près
mais à partir de quel rang n est-on plus près de la limite que 10-m (et même l'énoncé précise ni 10-5 ni 10-m mais 10-9)

j'ai appelé ça m pour éviter des confusions
confusion entretenue en appelant "n" la précision alors que n serait d'après l'énoncé le rang de Vn

certes les variables on peut les appeler comme on veut
rebaptiser le rang n en "q", la suite Vn en "x", utiliser "n" pour n'importe quoi d'autre etc

mais ça rendra l'algorithme absolument illisible, même s'il fonctionne

TANT_QUE (abs(old-v)>p) FAIRE
là tu cherches non pas quand la suite sera à 10-n près de sa limite
mais quand deux termes successifs seront écartés de moins de 10-n
ce qui n'a rien à voir,
en particulier on pourrait parfaitement avoir une suite monotone qui converge si lentement que l'écart entre deux termes successifs soit énormément inférieur à l'écart entre ces termes et la limite.
on aurait alors deux termes successifs écartés de moins de 10-9 bien avant qu'ils ne soit aussi près que ça de la limite.

si la suite est alternativement < L et > L, on sait que la limite est entre deux termes successifs et donc que s'ils sont écartés de moins de 10-9, alors la limite est encore plus près d'eux ("entre" = au pire au milieu)

mais pour utiliser cette propriété, il faut la démontrer d'abord !
et si elle est fausse (si la suite est monotone) alors on ne peut pas utiliser ce critère et on doit obligatoirement comparer à la valeur exacte de la limite (en fait valeur elle même approchée à une précision meilleure que 10-9)

Posté par
Francchoix
????? 25-11-14 à 15:12

Que l'on écrive V_{n+1}=2V_n+\frac{3}{V_n}+1 ou   V_{n+1}=2V_n-+\frac{3}{V_n+1}, on obtient

une suite qui diverge vers -oo !!!

En plus, si on remplace +3 par -3;      (-1+\sqrt{13})/2 devient une limite possible , mais dès le rang 2 ou 4 on divise par 0!!! N'importe quoi!

Posté par
mathafou Moderateur
re : Algorithme sur algobox 25-11-14 à 15:37

il faut bien entendu être capable d'imaginer où les parenthèses qu'aurait absolument dû mettre schnecke on été "oubliées"
en effet schnecke SAIT le faire (il l'a fait, sauf oubli d'une seule parenthèse fermante, dans le programme Algobox !!)
ce qu'il n'a pas compris c'est qu'il faut obligatoirement quand on écrit tout en texte sur une seule ligne dans l'énoncé faire pareil que dans un programme ou sur une calculette :
ajouter obligatoirement des parenthèses !!
pour exprimer

V_{n} = \frac{2V_{n-1}+3}{V_{n-1}+1}
comme Vn = \red(2Vn-1 + 3\red)/\red(Vn-1+1\red)

ces parenthèses étant \red\text{ABSOLUMENT OBLIGATOIRES}

et alors la suite, en partant de V0 = -2, converge bien vers une limite L qui est la solution >0 de L = (2L+3)/(L+1)
Algorithme sur algobox

Posté par
mathafou Moderateur
re : Algorithme sur algobox 25-11-14 à 15:40

plus lisible (\dfrac et indices par X2 oubliés)

V_{n} = \dfrac{2V_{n-1}+3}{V_{n-1}+1}

comme Vn = \red(2Vn-1 + 3\red)/\red(Vn-1 +1 \red)



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1742 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !