Méthode de dichotomie
Résolu
LACHHABFADOUA
Messages postés
24
Statut
Membre
-
LACHHABFADOUA Messages postés 24 Statut Membre -
LACHHABFADOUA Messages postés 24 Statut Membre -
Bonjour, svp j'ai essaye d'écrire un code qui permet de résourdre les fonctions non liénaire(f(x)=0) en utilisant la méthode de dichotomie.ms malheureusement, il ne renvoie aucun valeur aprés l'exécution ,svp aide moi a résourde ce prb et merci d'avance.
#include <stdio.h>
#include <stdlib.h>
double f(double x){
double y;
y=(x*x*x)-(x*x)+x+1;// la fonction x^3-x^2+x+1
return y;}
void dichotomie(){
double a,b,x;
double E;// la précision epsilon
printf("\ndonner l'interval [ a b ] : ");
scanf("%lf %lf",&a,&b);
printf("donner E : ");
scanf("%lf",&E);
do
{
x=(b-a)/2;
if(f(a)*f(x)<0){
b=x;
}
if(f(b)*f(x)<0)
{
a=x;
}
} while(b-a > E);
printf(" %lf ",x);
}
int main(int argc, char *argv[])
{
dichotomie();
system("PAUSE");
return 0;
}
Configuration: Windows / Chrome 86.0.4240.198
A voir également:
- Méthode de dichotomie
- Votre appareil est hors connexion. essayez une autre méthode de connexion - Forum Réseaux sociaux
- Methode rar - Guide
- Mon pc portable reste "hors connexion"... ✓ - Forum Réseaux sociaux
- La méthode range de l'objet _global a échoué ✓ - Forum VB / VBA
- Quelle est la méthode la plus rapide pour supprimer une page dans word - Guide
2 réponses
bonjour,
"il ne renvoie aucun valeur": à quelle ligne penses-tu "retourner" une valeur?
quelle fonction devrait-elle retourner une valeur?
"il ne renvoie aucun valeur": à quelle ligne penses-tu "retourner" une valeur?
quelle fonction devrait-elle retourner une valeur?
Bonjour,
Le comportement de ta fonction dépend de l'intervalle que tu choisis. Il me semble qu'elle peut fonctionner dans certains cas à condition de remplacer la ligne 18 par
Le comportement de ta fonction dépend de l'intervalle que tu choisis. Il me semble qu'elle peut fonctionner dans certains cas à condition de remplacer la ligne 18 par
x = (a+b)/2;, mais dans d'autres elle va se mettre dans une boucle infinie. Par exemple si
f(a),
f((a+b)/2)et
f(b)ont le même signe.
En tout cas Merci pour votre réponse :)