Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Algorithme

Posté par
Heliot
04-11-19 à 21:15

Bonsoir, merci pour votre aide

La fonction h est la fonction définie par h(x)=x^3-x^2+2x-1

x<----- 0
y<----- h(0)
Tant que h(x)<0
x<---x+0,1
y<---h(x)
Fin tant que

a) Quel est le but de cet algorithme? Trouver la valeur de x

Quelle valeur de x affiche t'il? 0,1

b) Si la ligne "donner à x la valeur x+0,1 était remplacée par "donner à x la valeur x+0,001" quelle serait la valeur affichée?  0,101

Est ce exact ? Merci

Posté par
mathafou Moderateur
re : Algorithme 04-11-19 à 21:46

bonjour,

tout faux

a) Quel est le but de cet algorithme? Trouver la valeur de x

non. il y a une boucle qui n'est pas exécutée une seule fois mais "tant que ..."

donc c'est "trouver la valeur de x pour laquelle .... "

et donc par conséquent les réponses suivantes sont fausses aussi.

Posté par
Heliot
re : Algorithme 04-11-19 à 22:00

Trouver la valeur de x pour laquelle h(x) <0  ?

Posté par
Heliot
re : Algorithme 04-11-19 à 22:02

a) x =-1

Posté par
Heliot
re : Algorithme 04-11-19 à 22:06

b) 0,0019

Posté par
mathafou Moderateur
re : Algorithme 04-11-19 à 23:05

non.
il s'agit de trouver la plus petite valeur de x, par pas de 0.1, avec h(x) qui n'est plus < 0 (donc qui est ≥ 0 !!)

c'est à dire qu'il s'agit de chercher une approximation à 0,1 près de la solution de h(x) = 0 :
quand on s'arrête on a h(x) ≥ 0 et h(x-0.1) <0 (pour la valeur précédente de x)
donc la vraie solution de h(x) serait réellement entre ces deux valeurs de x

tes valeurs sont fausses toutes les deux

comme c'est très ch... de calculer h(x) à la main une par une pour chaque valeur de x successive, tu peux mettre ça dans un tableur ou le programmer sur machine (Algobox, calculette, Python etc)

on obtient alors :
x = 0, h(x) = -1 < 0 on effectue la boucle
x = 0.1, h(x) = -0.809 < 0 on effectue la boucle
x = 0.2, h(x) = -0.632 < 0 on effectue la boucle
x = 0.3, h(x) = -0.463 < 0 on effectue la boucle
x = 0.4, h(x) = -0.296 < 0 on effectue la boucle
x = 0.5, h(x) = -0.125 < 0 on effectue la boucle
x = 0.6, h(x) = 0.056 >= 0 on sort de la boucle

et la conclusion :
la plus petite racine positive de h(x) = 0 est 0.5 < x1 < 0.6

pareil pour la question suivante où on obtient une approximation à 0.001 près
il est hors de question de faire défiler 600 valeurs de h(x) à la main en partant de x = 0 !
modifier intelligemment le pas et la valeur de départ de x pour réduire le nombre de boucles à effectuer petit à petit.

Posté par
Heliot
re : Algorithme 05-11-19 à 10:01

Bonjour, merci Mathafou, j'ai compris 🙂

Posté par
flight
re : Algorithme 05-11-19 à 10:30

salut

je trouve l'ago proposé mal fait ou peu surchargé

à 0,01 près (une precision encor meilleure , mais bon... il vaut mieux garder celle exigée dans l'énoncé )


x = 0
While x ^ 3 - x ^ 2 + 2 * x - 1 < 0
x = x + 0.01
Wend
MsgBox  x & chr(10) & Round(x ^ 3 - x ^ 2 + 2 * x - 1, 2)   'retourne l'abscisse et l'ordonnée du point d'intersection de f  avec O,x

Posté par
mathafou Moderateur
re : Algorithme 05-11-19 à 10:52

on est d'accord que la variable y est peu utile (surtout qu'on n'en fait rien du tout !!)

le problème avec la précisions de 0.01 d'emblée est que si on veut le faire "à la main" il faudrait faire défiler une soixantaine de boucles, pas top.

je suggérais de faire comme suit :

avec une précision de 0.1 (6 passages dans la boucle)
on sait alors que la valeur cherchée est entre 0.5 et 0.6

on refait alors avec la précision de 0.01 en partant de 0.5
ce qui va nécessiter moins de 10 passages

puis on refait avec une précision de 0.001 (demandé question d'après) en partant du résultat précédent (moins 0.01, la valeur précédente de x)
ce qui fera encore au plus une dizaine de boucles
et ce aussi loin qu'on veut

exercice : automatiser le procédé en mettant tout le programme dans une boucle dans laquelle on diviserait la précision par 10 à chaque fois.
obtenir la solution à 10-6 près
il n'y aura que au plus 10 fois 6 calculs de h(x) effectués au lieu de un million environ



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 !