Algorithmique
Algorithmique
Bonjour, j'ai un dm à faire en maths mais je ne parviens à réaliser que la moitié de l'exercice. En effet pour la question trois je n'arrives pas à comprendre l'étape surlignée de l'algorithme "Si (F1 (a)*F1 (c)<0) Alors". De même je ne comprend pas le le tableau, comment le compléter etc. Merci de m'éclairer
-
- Messages : 10401
- Enregistré le : lun. 30 août 2010 11:15
Re: Algorithmique
Bonjour,
ton algorithme propose la recherche d'une solution pour l'équation \(f(x)=0\).
Ainsi si on part de l'intervalle \((a\,;\,b]\) où l'on sait qu'il existe une unique solution \(\alpha\) pour \(f(x)=0\), alors on prend le milieu de l'intervalle \(c=\frac{a+b}{2}\) et on calcule le produit \(f(a)\times f(c)\).
- Si celui-ci est négatif, alors cela signifie que \(f(a)\) et \(f(c)\) sont de signes contraires, donc que la fonction change de signe entre ces deux bornes et donc la solution \(\alpha\) appartient à cet intervalle donc on travaille désormais dans cet intervalle et on affecte à \(a\) la valeur \(a\) et à \(b\) la valeur \(c=\frac{a+b}{2}\)
- Si celui-ci est positif, cela signifie que la fonction est de signe constant sur cet intervalle, donc elle ne s'annule pas sur celui-ci et donc elle s'annule sur l'autre moitié de l'intervalle. Ainsi on travaille ensuite sur cette deuxième moitié qui contient la solution \(\alpha\). On affecte donc à \(a\) la valeur \(c=\frac{a+b}{2}\) et à \(b\) la valeur \(b\).
On recommence ensuite la procédure mais tu remarqueras qu'à chaque "tour", l'intervalle est réduit de moitié, on arrivera donc à entourer la solution \(\alpha\) avec une précision aussi fine que souhaitée (l'amplitude de l'intervalle).
Est-ce plus clair ?
ton algorithme propose la recherche d'une solution pour l'équation \(f(x)=0\).
Ainsi si on part de l'intervalle \((a\,;\,b]\) où l'on sait qu'il existe une unique solution \(\alpha\) pour \(f(x)=0\), alors on prend le milieu de l'intervalle \(c=\frac{a+b}{2}\) et on calcule le produit \(f(a)\times f(c)\).
- Si celui-ci est négatif, alors cela signifie que \(f(a)\) et \(f(c)\) sont de signes contraires, donc que la fonction change de signe entre ces deux bornes et donc la solution \(\alpha\) appartient à cet intervalle donc on travaille désormais dans cet intervalle et on affecte à \(a\) la valeur \(a\) et à \(b\) la valeur \(c=\frac{a+b}{2}\)
- Si celui-ci est positif, cela signifie que la fonction est de signe constant sur cet intervalle, donc elle ne s'annule pas sur celui-ci et donc elle s'annule sur l'autre moitié de l'intervalle. Ainsi on travaille ensuite sur cette deuxième moitié qui contient la solution \(\alpha\). On affecte donc à \(a\) la valeur \(c=\frac{a+b}{2}\) et à \(b\) la valeur \(b\).
On recommence ensuite la procédure mais tu remarqueras qu'à chaque "tour", l'intervalle est réduit de moitié, on arrivera donc à entourer la solution \(\alpha\) avec une précision aussi fine que souhaitée (l'amplitude de l'intervalle).
Est-ce plus clair ?
Re: Algorithmique
Bonsoir,
En effet c'est plus clair merci pour la qualité de vos explications.
Cependant quand je suis les étapes de l'algorithme j'obtiens comme résultat du produit f (a) x f (c) ceci : -0.375. Or pour expliquer comment l'exécution de l'algorithme conduit aux sorties a=0.5 et b=1 j'aurais du obtenir un résultat positif ? Je suis à nouveau perplexe...
En effet c'est plus clair merci pour la qualité de vos explications.
Cependant quand je suis les étapes de l'algorithme j'obtiens comme résultat du produit f (a) x f (c) ceci : -0.375. Or pour expliquer comment l'exécution de l'algorithme conduit aux sorties a=0.5 et b=1 j'aurais du obtenir un résultat positif ? Je suis à nouveau perplexe...
-
- Messages : 6351
- Enregistré le : mer. 5 sept. 2007 12:10
Re: Algorithmique
Bonjour Jean,
a = 0, donc f(0) = 1
c = 0,5 donc f(0,5) = -0,375
Donc f(a) x f(c) = -0.375 donc f(a) x f(c) < 0, alors d'après ton algorithme, b prend la valeur de c = (a+b)/2 = 0,5 et la valeur de a ne change pas.
Donc b = 0,5 et a = 0.
Ce résultat n'est pas logique avec la question, donc il y a, semble-t-il, une erreur dans l'énoncé ...
SoSMath.
a = 0, donc f(0) = 1
c = 0,5 donc f(0,5) = -0,375
Donc f(a) x f(c) = -0.375 donc f(a) x f(c) < 0, alors d'après ton algorithme, b prend la valeur de c = (a+b)/2 = 0,5 et la valeur de a ne change pas.
Donc b = 0,5 et a = 0.
Ce résultat n'est pas logique avec la question, donc il y a, semble-t-il, une erreur dans l'énoncé ...
SoSMath.
Re: Algorithmique
Bonsoir. En effet il y avait une erreur corrigée par ma prof. Concernant l'algorithme, comment est il possible de déterminer une valeur approchée de alpha avec celui ci ? Merci
-
- Messages : 6351
- Enregistré le : mer. 5 sept. 2007 12:10
Re: Algorithmique
Bonjour Jean-Baptiste,
Dans ton algorithme, au début, alpha est dans l'intervalle [a ; b].
A chaque boucle tu divises par 2 la longueur (qui est égale à b-a) de l'intervalle [a ; b] en gardant alpha dans l'intervalle.
Dans ton exercice, au début a = 0 et b = 1 avec alpha dans [0 ; 1]
Après une boucle, a = 0 et b = 0,5 avec alpha dans [0 ; 0,5].
Si tu continues la longueur de ton intervalle va encore être diviser par 2 ... et ainsi de suite jusqu'à obtenir une longueur b-a soit inférieure à la précision demandée.
SoSMath.
Dans ton algorithme, au début, alpha est dans l'intervalle [a ; b].
A chaque boucle tu divises par 2 la longueur (qui est égale à b-a) de l'intervalle [a ; b] en gardant alpha dans l'intervalle.
Dans ton exercice, au début a = 0 et b = 1 avec alpha dans [0 ; 1]
Après une boucle, a = 0 et b = 0,5 avec alpha dans [0 ; 0,5].
Si tu continues la longueur de ton intervalle va encore être diviser par 2 ... et ainsi de suite jusqu'à obtenir une longueur b-a soit inférieure à la précision demandée.
SoSMath.