Dichotomie un algorithme

Publié le 27 nov. 2013 il y a 10A par Anonyme - Fin › 1 déc. 2013 dans 10A
5

Sujet du devoir

Ecrire un algorithme qui donne les solutions approches a 10^-5 des equations x^n+x-1=0 dans l'intervalle [0; 1] pour n =1 a n = 10 au pas de 1 . On utilisera pour cela l'algorithme de dichotomie en donnant à chaque solution, le nombre d'iterations qu'il a fallu pour determiner la solution approchée.

Où j'en suis dans mon devoir

Bonjour , je n'arrive vraiment pas a faire des algorithmes j'ai quelques difficultes ... pouvez vous m'aider pour faire mon exercice . Je sais le traduire en languagealgobox par exemple merci d'avance



7 commentaires pour ce devoir


Little Bear 7334
Little Bear 7334
Posté le 27 nov. 2013
Bonsoir,
Pour créer un algorithme, il faut écrire toutes les étapes comme si vous vouliez résoudre le problème à la main , pas à pas.

Quelles est la première des choses à faire?
Anonyme
Posté le 28 nov. 2013
calculer le discriminant de l'equations ?
Little Bear 7334
Little Bear 7334
Posté le 28 nov. 2013
Vous devez connaitre le discriminant pour une équation du second degré.
Quant n>2, vous allez avoir du mal à déterminer le discriminant.
même si des formules existent pour n=3 et n=4, à ma connaissance il n'en existe pas pour n>4.

Quant on fait un algorithme, il faut commencer par lister les variables dont on aura besoin. La liste ne sera définitive qu'à la fin de l’écriture de l'algorithme.
Puis il faut initialiser ces variables.

Essayez de faire cette liste de variables et de trouver les valeurs de départ.

Savez vous ce qu'est un algorithme de dichotomie?
Anonyme
Posté le 30 nov. 2013
Non je ne sais pas ce que sais enfin je ne sais pas a quoi sa sert plutot ...
Il y aura les variables x , n ( allant de 1 a 10 ), et comment fait on pour mettre dans un algorithme quec'est au pas de 1 ?
Little Bear 7334
Little Bear 7334
Posté le 30 nov. 2013
Effectivement si vous ne savez pas ce qu’est un algorithme de dichotomie, cela va être difficile dans faire un.

Un algorithme de dichotomie sert à trouver une valeur pour laquelle une équation est égale à une autre en calculant un nombre importante de fois l’équation avec différentes valeurs. Plus simplement, le programme calcule pour trouver quant l’équation est égale ici à zéro.

On va faire un exemple simple pour comprendre.
Voici l’énoncé : y=3x-1 , avec y=0 quant 0< x < 2

Il faut commencer par calculer les valeurs de y aux bornes fournies : x=0 et x=2
Quant x=0 alors y=3*0-1=-1, y=-1
Quant x=2 alors y=3*2-1=5, y=5
Comme y est un coup positif, un coup négatif, il y a des chances qu’il existe une valeur de x pour que y=0.
Cette étape peut être faite à la main.

Ensuite entre en scène la dichotomie.
Le programme doit retenir les valeurs des bornes x=0=A ; y=-1=C et x=2=B ; y=5=D
Puis il prend la valeur de x entre les deux bornes, au milieu.
A=0 et B=2 => le programme calcule le milieu x=(A+B)/2=(0+2)/2=1
et calcule y pour cette nouvelle valeur
y=3*1-1 =2 donc y=2, le programme compare la valeur de y avec la valeur voulue
Ici y doit être égal à 0 comme y=2, le programme continue
Il regarde le signe de la valeur de y (y=2) donc positif , comme D (=5) était positif cela signifie que la valeur de x cherchée se trouve entre A et x donc le programme remplace B par la valeur de x et D par la valeur de y
On a donc A=0, C=-1, B=1 et D=2
Et le programme recommence.
x=(A+B)/2=(0+1)/2=0.5 => y=3*0.5-1=0.5
Comme y est différent de 0, on continue
Comme y est du même signe de D, B=x=0.5 et D=y=0.5
On a donc A=0, C=-1, B=0.5 et D=0.5
x=(A+B)/2=(0+0.5)/2=0.25 => y=3*0.25-1=-0.25
Comme y est différent de 0, on continue
Comme y est du même signe de C, A=x=0.25 et C=y=-0.25
On a donc A=0.25, C=-0.25, B=0.5 et D=0.5
x=(A+B)/2=(0.25+0.5)/2=0.375 => y=3*0.375-1=0.125
Comme y est différent de 0, on continue
Comme y est du même signe de D, B=x=0.375 et D=y=0.125
On a donc A=0.25, C=-0.25, B=0.375 et D=0.125
x=(A+B)/2=(0.25+0.375)/2=0.3125 => y=3*0.375-1=-0.0625
Comme y est différent de 0, on continue
Comme y est du même signe de C, A=x=0.3125 et C=y=-0.0625
On a donc A=0.3125, C=-0.0625, B=0.375 et D=0.125
x=(A+B)/2=(0.3125+0.375)/2=0.34375 => y=3*0.34375-1=0.03125
Comme y est différent de 0, on continue.
Enfin, y ne sera jamais exactement égal à 0 ; c’est pour cela que l’on demande de vérifier par rapport à la valeur de 10^-5. Le test sur y n’est pas égal à zéro ( : si y=0) mais la valeur absolue de y inferieur à 10^-5.
Le programme continue ainsi jusqu’à ce que |y|<10^-5.
Certes pour cet exemple, on n’a pas besoin d’un programme pour trouver la réponse mais c’était pour comprendre.
J’espère que le fonctionnement et l’utilité d’un programme de dichotomie est compris.

Les différences par rapport à l’exercice sont :
1) il y a la variable n comprise entre 1 et 10
2) l’équation est différente ; 10 fois suivant la valeur n
3) il faut compter le nombre de fois que le programme fait la boucle pour chaque équation.

La liste des variables :
n de 1 à 10, au début n=1
x, y pour les valeurs à calculer, au début pas de valeur précise
A, B, C, et D pour les bornes d’étude, au début A=0 et B=2, C et D sont calculés au début.
i pour compter le nombre d’itérations, au début i=0.

Ensuite
Pour n=1, il faut faire les étapes de la dichotomie pour trouver la valeur de x cherchée et l’afficher ainsi que la valeur de i .
Puis le programme doit passer à n=2 en remettant i à 0, recommencer la dichotomie.
Ainsi de suite jusqu’à n=10.

Avez-vous compris ?
Pouvez-vous maintenant écrire cet algorithme ?
Little Bear 7334
Little Bear 7334
Posté le 30 nov. 2013
Attention correction :

Pardon
B doit être égal à 1 au début.
Little Bear 7334
Little Bear 7334
Posté le 30 nov. 2013
Je viens de réaliser l'algorithme sur algobox.
Au début, il faut que "y" soit différent de 0; j'ai fixé y=1 au début.

Ils ont besoin d'aide !

Il faut être inscrit pour aider

Crée un compte gratuit pour aider

Je m'inscrisOU

J'ai déjà un compte

Je me connecte