j'ai un probleme avec cette exercice svp....................
ecrire un programme sous matlab permettant de résoudre avec la méthode de la position fausse l'equation f(x)=sinx-0.750 on prendra a=0.800 et b=0.900 .
et merci bien
aure Le 25/03/2008 à 12:58 En fait, on cherche x dans [a,b] vérifiant f(x) = 0 , non ?
Cette méthode est une "amélioration" de la méthode de dichotomie : on a f : [a,b] -> R avec f(a)f(b)=0. Donc il existe x0 dans [a,b] tel que f(x0)=0.
Soit c dans [a,b]. Alors f s'annule sur [a,c] ou sur [c,b].
Si f s'annule sur [a,c], on recommence avec [a,c] à la place de [a,b].
Sinon f s'annule sur [c,b] et on recommence avec [c,b] à la place de [a,b].
Pour la méthode de dichotomie, on prend c = (a+b)/2.
Pour la méthode de la fausse position, on prend c = abscisse du point d'intersection de la droite qui joint les points (a,f(a)) et (b,f(b)) avec l'axe des abscisses.
On a donc un algo du type :
entrées : a,b,f, précision voulue eps
sortie : intervalle [a, b] de longueur < eps qui contient x0.
tant que b-a > eps
c = abscisse du point d'intersection de la droite qui joint les points (a,f(a)) et (b,f(b)) avec l'axe des abscisses
si f(a)f(c) <= 0
alors b = c
sinon a = c
fin si
fin tant que
rendre a,b
Ensuite il faut calculer explicitement l'expression de c puis traduire en language Matlab : une petite bouble while avec un if then else à l'intérieur...