Bonjour, après plusieurs heures de travail, je n'arrive pas à faire un exercice avec un algorithme. Pouvez-vous m'aider ?
Voici l'énoncé :
Jérémy vient de de trouver l'algorithme suivant et cherche à comprendre son utilité :
Données : une fonction continue et deux réels a et b tels que a<b
Sortie: La valeur de a
Traitement:h prend la valeur 0.25
Tant que (b-a)xf(a)xf(a+h)>0
faire
a prend la valeur de a+h
Fin tant que
Retourner a
1) Tester cet algorithme avec : f(x)=x^3+x-3 a=0 et b=2
a) Recopier le tableau :
Il y a 6 colonnes à remplir avec ces 5 lignes :
a
b-a
f(a) (au centième)
f(a+h) (au centième)
signe de (b-a)xf(a)xf(a+h)
b) Interpréter le résultat obtenu
2) Donner la valeur retournée par le programme pour la fonction f(x)=sin(x^2+1) a=1.5 et b=3.5
Je n'arrive pas à appliquer cet algorithme sur ma calculette et je ne comprends pas quoi faire. Merci d'avance
Bonjour,
on ne te demande pas d'appliquer sur la calculatrice
mais à la main dans un tableau des valeurs successives de chaque variable au fur et à mesure de l'exécution pas à pas de l'algorithme !!
"1)Tester" n'est pas "à faire" mais l'annonce de ce qu l'on veut faire, le titre de la question
le faire c'est la question 1a, puis 1b
et quand on aura fait ces deux opérations là (qui se font à la main sur papier), cela répondra à l'objectif fixé par le titre "Tester"
ensuite la question 2 peut tout aussi bien se faire "papier-crayon" comme la question 1, en faisant faire chaque calcul numérique par la calculette "ordinaire" (même pas programmable) vu qu'il y a des sinus dedans
indépendamment de l'exo, on peut chercher effectivement aussi à le traduire sur calculette (ou Algobox ou ...)
ça répondra plus rapidement à la question 2, mais pas à la question 1
et si "ça ne marche pas" c'est un problème de traduction (syntaxe) sur la calculette
Alors si je comprends bien pour 1)a) la première colonne je vais obtenir a=0
b-a=2
f(a)=-3
f(a+h)=-2,734
Signe: positif ?
oui (on te demande "au centième", -2.73 suffit donc)
ensuite le signe est effectivement > 0
donc la boucle "tant que" dit qu'il faut "faire" la suite : a prend la valeur de a+h
qui est la première ligne de la colonne suivante, la nouvelle valeur de a
et on continue jusqu'à ce que le "tant que" réponde "non, on ne fait plus"
Alors pour la deuxième colonne j'aurai : a=0.25 (b-a)=1.75 f(a)=-2.73 f(a+h)=-2.38 signe positif
Troisième colonne j'aurai : a=0.5 (b-a)=1.5 f(a)=-2.38 f(a+h)=-1.83 signe positif
Quatrième colonne : a= 0.75 (b-a)= 1.25 f(a)= -1.83 f(a+h)= -1 signe positif
5ème colonne : a=1 (b-a)=1 f(a)=-1 f(a+h)=0.20 signe négatif
6ème colonne : a=1.25 (b-a)=0.75 f(a)=0.20 f(a+h)=1.88 signe positif
Par contre je ne trouve rien à la question : "Interpréter le résultat obtenu"
faux sur la dernière colonne :
5ème colonne signe négatif
donc c'est fini, il n'y a pas de 6ème colonne à calculer
ce que l'on ignorait au départ c'est pour ça qu'elle figure sur la feuille, "au cas où".
et même que "au cas où" il aurait fallu continuer à ajouter des colonnes, il ne faut pas prendre au pied de la lettre le nombre de colonnes de la feuille, il y a "autant de colonnes qu'il faut" et non pas 6)
le "tant que" dit qu'il ne faut plus "faire", et on sort au "fin tant que"
c'est à dire que l'opération suivante affiche la valeur actuelle de a, à savoir a = 1
interpréter le résultat, veut dire en fait comprendre ce qu'il se passe et pourquoi ces calculs
a prend la valeur a+h
cela veut dire qu'on va se déplacer horizontalement de la quantité h
(laissons tomber le signe de b-a pour l'instant)
et ce tant que les valeurs de f(a) et de f(a+h) sont de même signe
en d'autre terme on cherche le premier intervalle de largeur h=0.25 avec f(x) et f(x+h) de signe opposés
ce qui traduit qu'il existe une valeur comprise entre a et a+h qui annule f(x)
l'algorithme a pour but de chercher une approximation à 0.25 près d'une racine de f(x) = 0 entre a et b
maintenant à quoi sert de faire intervenir le signe de b-a ?
c'est une sécurité pour forcer l'algorithme à se terminer si f(x) n'a pas de racine entre a et b
en effet à force d'augmenter a de 0.25, il va finir par devenir > b rendant b-a < 0 et donc arrêtant la boucle même si f(x).f(x+h) est partout > 0
(même si tous les points de la courbe entre a et b ont une ordonnée f(x) de même signe)
donc au final ce que l'exécution à la main de cet algorithme nous dit c'est qu'il y a une racine de f(x) entre 1 et 1.25, qu'une valeur approchée d'une racine de f(x) entre 0 et 2 est 1 à 0.25 près
prendre une valeur plus petite pour h permettrait d'avoir une valeur de la racine de f(x) = 0 plus précise
au prix d'un nombre de boucles plus important, ce qui fait qu'on ne pourrait plus vraiment le faire à la main
on peut donc même sans effectuer réellement l'algorithme prédire ce qu'il donnera question 2
parce qu'on sait résoudre exactement sin(x²+1) = 0, algébriquement et donner sa "1ère solution" entre 1.5 et 3.5
Ah d'accord je croyais que je devais continuer les calculs suivant le nombre de colonnes. Merci
Merci pour votre explication. Cependant, je ne vois pas quelle est la réponse exacte pour 1)b) ?
Enfin je n'arrive pas à faire les calculs pour la question 2), puis-je avoir de l'aide ?
je l'ai donnée la réponse de la 1b
c'est :
le role de cet algorithme est de chercher une valeur approchée à 0.25 près d'une solution de f(x) = 0 entre 0 et 2
il trouve la valeur 1
justification : relire le post précédent expliquant pourquoi "le role de l'algorithme est .."
question 2 : je t'ai proposé de laisser tomber ces histoires d'algorithmes et de résoudre algébriquement
sin(x² + 1) = 0 = sin(k) k
donc de chercher la plus petite solution de x² + 1 = k qui soit entre 1.5 et 3.5
ça ne devrait pas être trop dur tout de même, en Terminale.
ensuite de trouver l'approximation à 0.25 près de cette solution
qui est ce que sortirait l'algorithme si on l'exécutait.
sans même l'exécuter réellement ni calculer de tableau
maintenant si tu aimes tu fais exactement pareil que la question 1a, en remplissant un tableau tout pareil, avec "le nombre de colonnes qu'il faut"...
ou tu le programmes sur calculette ou Algobox, ou en n'importe quel langage, C, JavaScript, php etc etc au choix et selon ce que tu sais faire.
D'accord pour la question 1)b) je viens de comprendre.
Pour la question 2) j'ai refais comme la question 1)a) et j'ai trouvé ces résultats :
1-a=1.5 (b-a)=2 f(a)=-0.11 f(a+h)=-0.80 signe positif
2-a=1.75 (b-a)=1.75 f(a)=-0.80 f(a+h)= -0.95 signe positif
3-a=2 (b-a)= 1.5 f(a)=-0.95 f(a+h)=-0.22 signe positif
4-a=2.25 (b-a)=1.25 f(a)=-0.22 f(a+h)=0.82 signe négatif
Est-ce bon ?
oui il retourne (affiche) la valeur actuelle de a qui est bien de 2.25
et qui est bien une approximation à 0.25 près de comme la résolution exacte de l'équation le donne, ainsi que le proposais
soit tu fais ton tableau comme tu as fait, sans oublier la conclusion, l'exécution de la dernière instruction de l'algorithme : "retourner a"
rien de plus
soit tu fais la résolution algébrique comme j'ai dit
chercher un peu pour trouver les valeurs exactes des solutions de x²+1 = k et la plus petite qui soit
1.5
pas bien dur tout de même de résoudre cette équation là "de tête" + calcul simple à la calculette pour diverses valeurs de k ...
soit tu fais même les deux en disant en conclusion que la valeur retournée par l'algorithme est en parfait accord avec la résolution théorique exacte.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :