View Single Post
Old 12-03-2015, 09:07   #2
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Cittā: Texas
Messaggi: 1722
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
__________________
In God we trust; all others bring data
sottovento č offline   Rispondi citando il messaggio o parte di esso