Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Algorithme TVI

Posté par
mimimathy62
12-06-14 à 12:24

Bonjour,

J'ai établi un algorithme me permettant d'afficher les valeurs extrêmes d'un encadrement de c d'amplitude inférieur a 10^-n pour une fonction strictement croissante.
Ici ma fonction est F1(x) = pow(x,5) - 5*x+2

Sauf que mon algorithme m'annonce "interrompu ligne 23 : dépassement de la capacité autorisée pour les boucles"
Où est le soucis ?

Posté par
mimimathy62
re : Algorithme TVI 12-06-14 à 12:25

file:///C:/Users/sandra/Documents/dichoto.html

Posté par
hekla
re : Algorithme TVI 12-06-14 à 12:29

Bonjour

le fichier est sur votre ordinateur , peut-être quelque hacker y aura accès !

Posté par
mathafou Moderateur
re : Algorithme TVI 12-06-14 à 12:36

Bonjour,

tu penses vraiment qu'un lien vers ton propre disque dur ( C: ) pourrait marcher ailleurs que chez toi ??? j'espère pour toi que non !! (que personne de l'extérieur n'a accès à ton disque dur)

il semblerait que ton algo soit en Algobox, tu peux exporter en fichier texte puis copier coller le texte ici même sans aucun lien externe (interdit de toute façon)
si tu es en mode editeur dans Algobox, c'est même encore plus simple : tu copies colles directement !

généralement ce genre d'erreur est dû au fait que tu t'es grossièrement trompé dans la condition du tant que (conduisant à une boucle sans fin)

Posté par
mimimathy62
re : Algorithme TVI 12-06-14 à 12:50

Oui désolé je n'ai pas fait attention.
J'ai réussi a trouver mon problème, c'est juste que j'avais pas utilisé la fonction pow pour mettre 10^(-n).
Par contre lorsque je tape la fonction sur ma calculatrice, j'obtiens une solution comprise entre 0,40 et 0,41
Or quand je teste mon algo ici sur [0,1] avec n=-2 j'obtiens une solution comprise entre 0,99 et 1


1   VARIABLES
2     a EST_DU_TYPE NOMBRE
3     b EST_DU_TYPE NOMBRE
4     k EST_DU_TYPE NOMBRE
5     m EST_DU_TYPE NOMBRE
6     n EST_DU_TYPE NOMBRE
7   DEBUT_ALGORITHME
8     LIRE a
9     LIRE b
10    LIRE n
11    LIRE k
12    TANT_QUE ((b-a)>pow(10,n)) FAIRE
13      DEBUT_TANT_QUE
14      m PREND_LA_VALEUR ((a+b)/2)
15      SI (F1(m)<k) ALORS
16        DEBUT_SI
17        a PREND_LA_VALEUR m
18        FIN_SI
19        SINON
20          DEBUT_SINON
21          b PREND_LA_VALEUR m
22          FIN_SINON
23      FIN_TANT_QUE
24    AFFICHER a
25    AFFICHER b
26  FIN_ALGORITHME

Fonction numérique utilisée :
F1(x)=pow(x,5)-5*x+2

Posté par
mathafou Moderateur
re : Algorithme TVI 12-06-14 à 13:11

cet algorithme ne fonctionne que pour trouver une solution de f(x) = 0 dans un intervalle [a; b] à la condition expresse que f(a)*f(b) soit négative et la fonction monotone dans cet intervalle

je ne comprends pas ton "k" ??
tu cherches à résoudre f(x) = k ?
c'est à dire en fait à résoudre f(x) - k = 0
tu dois donc obligatoirement t'assurer au préalable que (f(a)-k)(f(b)-k) < 0
(par le choix des valeurs de a, b, k)

ou plus précisément compte tenu de ton test sur k que
f(a) < k et f(b) > k et a < b, et la fonction monotone dans [a; b]
(ta fonction n'est pas monotone sur )
sinon ça ne marchera pas : la solution est en dehors de l'intervalle [a; b], ou ton test à l'envers ou résultat erratique car fonction non monotone)

Posté par
mathafou Moderateur
re : Algorithme TVI 12-06-14 à 13:27

Apparemment tu fournis k = 0 (et on se demande bien à quoi sert ce k si c'est pour résoudre f(x) = 0 !!) et [a; b] = [0; 1]

or f(0) = 2 et f(1) = -2
la condition f(a) < k et f(b) > k n'est donc pas satisfaite au départ

en fait ton test sur k est à l'envers : la fonction est décroissante et pas croissante dans [0; 1]

un algorithme général se fiche complètement de ce sens en utilisant les conditions "même signe" (quel qu'il soit) f(a)*f(m) > 0 ou "signe opposé" f(m)*f(b) < 0

remplacer le test SI (F1(m)par
SI ((F1(m)-k)*(F1(a)-k) > 0) ALORS
(pour résoudre f(x) = k)

ou
SI (F1(m)*F1(a) > 0) ALORS
(pour résoudre f(x) = 0)

Posté par
mimimathy62
re : Algorithme TVI 12-06-14 à 13:32

Oui j'ai essayé donc un autre algorithme :
e étant ma précision

1   VARIABLES
2     a EST_DU_TYPE NOMBRE
3     b EST_DU_TYPE NOMBRE
4     m EST_DU_TYPE NOMBRE
5     e EST_DU_TYPE NOMBRE
6   DEBUT_ALGORITHME
7     LIRE a
8     LIRE b
9     TANT_QUE ((b-a)>e) FAIRE
10      DEBUT_TANT_QUE
11      m PREND_LA_VALEUR ((a+b)/2)
12      SI ((F1(a)*F1(m))<=0) ALORS
13        DEBUT_SI
14        b PREND_LA_VALEUR m
15        FIN_SI
16        SINON
17          DEBUT_SINON
18          a PREND_LA_VALEUR m
19          FIN_SINON
20      FIN_TANT_QUE
21    AFFICHER a
22    AFFICHER "< solution <"
23    AFFICHER b
24    
25    
26  FIN_ALGORITHME

Fonction numérique utilisée :
F1(x)=pow(x,5)-5*x+2

Ici en lançant a=0 b=1 et e =0,001, Algorithme interrompu ligne 9 suite à une erreur dans son exécution (un problème avec e ?)

Posté par
mimimathy62
re : Algorithme TVI 12-06-14 à 13:41

J'ai rajouté 'Lire e' mais le problème reste le meme

1   VARIABLES
2     a EST_DU_TYPE NOMBRE
3     b EST_DU_TYPE NOMBRE
4     m EST_DU_TYPE NOMBRE
5     e EST_DU_TYPE NOMBRE
6   DEBUT_ALGORITHME
7     LIRE a
8     LIRE b
9     LIRE e
10    TANT_QUE (((b-a)>e)) FAIRE
11      DEBUT_TANT_QUE
12      m PREND_LA_VALEUR ((a+b)/2)
13      SI ((F1(a)*F1(m))<=0) ALORS
14        DEBUT_SI
15        b PREND_LA_VALEUR m
16        FIN_SI
17        SINON
18          DEBUT_SINON
19          a PREND_LA_VALEUR m
20          FIN_SINON
21      FIN_TANT_QUE
22    AFFICHER a
23    AFFICHER "< solution <"
24    AFFICHER b
25    
26    
27  FIN_ALGORITHME

Fonction numérique utilisée :
F1(x)=pow(x,5)-5*x+2

Posté par
mathafou Moderateur
re : Algorithme TVI 12-06-14 à 13:44

comment as tu fait pour mettre e = 0,001 ???
il n'y a aucune affectation de quelque valeur que ce soit à e dans ton algo
ni "Lire e" ni "e prend la valeur" !!

par ailleurs 0,001 "en français hexagonal" se traduit par 0.001 en informatique (en particulier sur Algobox)

Posté par
mathafou Moderateur
re : Algorithme TVI 12-06-14 à 13:45

ah si, tiens le "lire e" est réapparu entre temps

il reste le 0,001 qui doit être tapé obligatioiremant sous la forme 0.001

Posté par
mimimathy62
re : Algorithme TVI 12-06-14 à 13:46

le soucis était donc la, la confusion entre la virgule et le point
Merci



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 1741 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 !