salve a tutti,
devo costruire un programma che calcoli lo zero di un polinomio con il metodo di bisezione.
vi posto quello che ho fatto fin ora.
Codice PHP:
#include <iostream>#include<cmath>
using namespace std;
int main() {int a, b, c, d, estrinf, estrsup, app, funzione1, funzione2, med, x, y;cout<< "inserisci il coefficiente del termine di terzo grado"<<endl;cin>>a;cout<< "inserisci il coefficiente del temrine di secondo grado"<<endl;cin>>b;cout<< "inserisci il coefficiente del temrine di primo grado"<<endl;cin>>c;cout<< "inserisci il termine noto"<<endl;cin>>d;cout<< "inserisci l'estremo inferiore"<<endl;cin>>estrinf;cout<< "inserisci l'estremo superiore"<<endl;cin>>estrsup;cout<< "inserisci l'approssimazione"<<endl;cin>>app;if(estrinf>estrsup){ cout<< "gli estremi inseriti non sono corretti"<<endl;
}else{
med=(estrsup+estrinf)/2;x=med;y=estrinf;funzione1=a*pow(x,3)+b*pow(x,2)+c*x+d;funzione2=a*pow(y,3)+b*pow(y,2)+c*y+d;while(funzione1<app||funzione1<-app){if(funzione1*funzione2>0){ estrinf=x; estrsup=estrsup;}else{ estrinf=estrinf; estrsup=x;}}
cout<< "lo zero della funzione è : "<<x<<endl;}
return 0;}
questo programma "funziona" ma non correttamente;
verifica che gli estremi sono accettabili o meno , poi però non mi dà un valore corretto del risultato.
mi dà come risultato sempre il punto medio dell'intervallo!
sapreste darmi una mano ?
cosa manca, dove ho sbagliato?
Grazie a tutti!