In effetti non mi sembra che calcoli il metodo della bisezione.
Prima di tutto: ovviamente devi rispettare delle condizioni iniziali relative alla monotonicita' della funzione nell'intervallo considerato. Penso siamo d'accordo su questo, giusto?
Alcune cose:
Codice:
while(funzione1<app||funzione1<-app){
In questo pezzo di codice avresti voluto controllare se il valore di funzione1 e' zero (a meno dell'approssimazione). Corretto? In realta' le cose non vanno proprio cosi'.
In linguaggio naturale: se il valore assoluto di funzione1 e' minore di app, allora ho trovato il valore che mi serve.
Oltretutto a te serve la condizione opposta: se il valore assoluto di funzione1 e' maggiore di app, allora resta nel ciclo e fai qualche altro tentativo.
Codice:
if(funzione1*funzione2>0){
x=estrinf;
estrsup=estrsup;
}
else{
estrinf=estrinf;
x=estrsup;
}
Questo pezzo di codice funziona solo se la funzione e' monotona non decrescente