Voila j'ai un exercice sur un algorithme de dichotomie et je n'arrive pas à comprendre l'algorithme en lui même et la question posé.
Énoncé:
f est la fonction définie sur un intervalle [a;b]. On suppose que l'équation f(x)= 0 admet une solution unique x0 dans l'intervalle [a;b].
On considère l'algorithme suivant:
Entrée:
Saisir
a,b:bornes de l'intervalle de définition
f:fonction étudiée
N:entier naturel, N (= ou > )1
Traitement:
Pour K de 1 jusqu'à N, m prend la valeur (a+b)/2
a prend la valeur de m
sinon
b prend la valeur de m
finSi
FinPour
Sortie
Afficher a,b
A) On applique cet algorithme aà la fonction f définie sur l'intervalle [0;1] par f(x)= x3+2x-2
Prendre N=4 et compléter le tableau suivant :
k | 1 | 2 | 3 | 4 | |
m | 0.5 | ||||
a | 0 | 1 | |||
b | 1 | 1 |
Bonsoir,
il faut savoir si la fonction est croissante ou décroissante sur l'intervalle
f(0) = -2
f(1) = 1
il existe une valeur unique x telle que f(x)=0 (c'est l'énoncé qui le dit)
si f(m) est négatif a=m
si f(m) est positif b=m
si f(m) est nulle x=m
exemple:
a=0 et b=1 m=0,5
f(0,5) = -0,875
comme f(m) est négatif on prend a=0,5
x [0,5;1]
...
k | 1 | 2 | 3 | 4 | |
m | 0,5 | 0,75 | |||
a | 0 | 0,5 | |||
b | 1 | 1 |
Waouh.. merci j'ai bien compris l'algorithme maintenant mais y'a encore un truc que je comprends pas bien ( désolée ).
- C'est comment est-ce qu'on calcul "a" et "b" ?
- Et c'est quoi la fonction de la variable N ?
Merci beaucoup de votre aide !!
Bonsoir,
on ne calcule pas "a" et "b)
la fonction est donnée
l'intervalle [a,b] est donné
N est donné
on calcule seulement m (moyenne de a et b) et f(m)
N est le nombre de fois où on va calculer la moyenne
dans l'exemple tu vas trouver x0 [0,75;0,8125]
a = 0,75 et b = 0,8125
la moyenne de a et b est m = 0,78125
x0 0,78125
0,78125 est une valeur approchée de la racine
en prenant N=10 on trouverait x 0,7705078125 qui est aussi une valeur approchée
plus N est grand plus x0 sera proche de la racine
avec N=50 je trouve x0 = 0,770916997059248
qui doit être une valeur très proche
Enfète on fait:
Pour N=1 0+1)/2 = 0.5 donc "m" = 0.5. On calcul f(m) et ca donne -0.875 comme c'est négarif a=0.5 .
Pour N=2 0.5+1)/2 = 0.75 donc m=0.75. On calcul f(0.75) et ca donne -0.157 comme c'est négatif a=0.75.
[...]
C'est ca ??
Mais comment t'as fais pour arrivé a N=50 t'as calculer tous les trucs 50fois ?
en fait j'ai fait un programme
mais je suis limité par la précision à 15 chiffres,
et si j'augmente N je trouve toujours la même chose,
ça veut pas dire que c'est la réponse exacte parce qu'il y a encore des chiffres derrière.
je peux augmenter la précision à 28 chiffres en faisant de sacrés acrobaties,
bien que le principe reste toujours le même:
x0 = 0,7709169970592481008251463693 (avec N=93)
je suppose que c'est un irrationnel et qu'il y a un nombre infini de chiffres mais j'en suis pas sûr.
en général on s'arrête à un nombre de chiffres qu'on a besoin,
là je me suis amusé et je ne peux guère faire mieux.
Enfète moi aussi j'ai essayer de faire le programme a la calculette (j'ai une TI-83 plus)
Et j'ai rentré dans "prgm" :
prompt A
Prompt B
Prompt N
For (K,1,N)
(a+b)/2
Mais je trouve pas la suite je sais pas comment faire parce que dans l'algorithme ils nous disent "si", "alors" et "sinon" et c'est pas des trucs exact comment on peut faire.. ?
Comment tu l'as tapé ton programme ?
je remercie daniel pour ses explication . Juste une precision quand f(a) prend la valeur f(m) f(b) reste la meme ou si f(b) prend la valeur f(m) alors f(a) reste la meme.
Ahh okay merci "Blizoss" !
Et merci beaucoup Daniel pour toutes tes espications et le temps que tu m'accordes !!
de rien
je connais pas la programmation sur calculatrice
alors je vais peut-être dire des bêtises
quand tu as calculé M , tu dois calculer f(m)
ensuite faire un test pour savoir si c'est positif ou négatif
dans le genre:
For (K,1,N)
(a+b)/2 -> M
M^3 + 2*M -2 --> Fm
if Fm < 0 then
M -> a
Else
M -> b
EndIf
EndFor
disp M
c'est peut-être les bonnes instructions mais ça te donne une idée
quand on change a, b ne change pas
quand on change b, a ne change pas
K | 1 | 2 | 3 | 4 | |
M | 0.5 | 0.75 | 0.875 | 1.625 | |
a | 0 | 0.5 | 0.75 | 0.75 | 0.75 |
b | 1 | 1 | 1 | 0.875 | 1.625 |
Bonsoir Manons,
tu t'es trompé dans la dernière colonne, tu as oublié de diviser par 2
M = 1,625/2 = 0,8125 donc b = 0,8125
on pourrait peut-être décaler toutes les valeurs de M d'un cran vers la gauche, (mais je suis pas sûr)
ça nous ferait une place pour le dernier calcul de M
M = (0,75 + 0,8125)/2 = 0,78125
et 0,75125 est plus proche de la racine que 0,8125
Bonjour , voila j'ai le même devoir maison & j'aimerais savoir si quelqu'un pourrait répondre à la question :
Quel est le rôle de cet algorithme ?
Expliquer la fontcion de la variable N.
Merci d'avance
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :