Progettista HW
Progettista HW - Genius - 2540 Punti
Rispondi Cita Salva
Holà!

C'è qualche buon anima che ha la pazienza di spiegarmi come calcolare gli zeri di una funzione? Principalmente sarei interessato ai seguenti tre metodi:

1. Metodo dicotomico
2. Metodo delle tangenti (di Netwon)
3. Metodo regula falsi (di Fibonacci)

Tutte le spiegazioni che ho su libri, dispense, foglietti sparsi, ecc., su tale argomento, non sono scritte in un "linguaggio umano comprensibile" e devo ammettere che, anche dopo aver compreso qualcosa sul metodo dicotomico, degli esercizi non me ne è mai venuto uno... Quei tre metodi sopraelencati sono intercambiabili? C'è ne è uno migliore dell'altro? (Sò ad esempio che il metodo dicotomico è semplice ma poco efficiente). Quando mi si dice di trovare gli zeri, che devo fare? Col metodo dicotomico, ad esempio, mi sembra mi si dica ti segare la funzione in due... ma come? Con una motosega?

Attendo con ansia risposte. Grazie in anticipo.
Cherubino
Cherubino - Mito - 11351 Punti
Rispondi Cita Salva
Ti posso parlare del metodo dicotomico.
Se avessi una lavagna sarebbe più semplice...

C'è un teorema dell'analisi che afferma che se una funzione continua è positiva, in un punto a, e negativa in un punto b (f(a)>0, f(b)<0), allora tra a e b si trova uno zero della funzione.

Supponi di avere una funzione continua, voler trovare uno zero di questa funzione.
La funzione è complicata, trascendente... non puoi trovarli in maniera analitica.
Allora provi a tracciare un primo grafico approssimativo della funzione (con le mani);

Troverai degli intervalli in cui la funzione passa da negativa a positiva (o viceversa);
per il teorema di prima, in quell'intervallo c'è (almeno) uno zero della funzione.

Il metodo dicotomico consiste in questo:
scegli un intervallo a,b sull'asse delle ascisse:
prendi a vicino allo zero e tale che f(a)>0
prendi b vicino allo zero e tale che f(b)<0

Ora prendi il punto intermedio c = |b-a|/2
se f(c)>0 allora lo zero si trova tra c e b, che diventa il nuovo intervallo a,b;
se f(c)<0 allora lo zero si trova tra a e c, che diventa il nuovo intervallo a,b;

Ora prosegui iterativamente, fino a restringere l'intervallo attorno allo zero alla precisione desiderata.
xico87
xico87 - Mito - 28236 Punti
Rispondi Cita Salva
per il metodo di newton, mi pare spiegato bene su wikipedia
http://it.wikipedia.org/wiki/Metodo_delle_tangenti

da quello che ho capito leggendo, si tratta di prendere un intervallo [a,b] tale che f(a)f(b) < 0 (è quello che ti ha detto Cherub in altri termini). essendo derivabile (penso per ipotesi, non ho letto tutto) in x_0 € [a,b], puoi trovare la retta che meglio approssima la funzione in tale punto, e poi trovare l'intersezione di tale retta con l'asse x. [edit: il resto era sbagliato, guarda sotto]
Progettista HW
Progettista HW - Genius - 2540 Punti
Rispondi Cita Salva
Ciao ragazzi, ho ragionato su quei procedimenti, ma non ho capito molto... come diceva Cherubino, per il Teorema di Bolzano, se una funzione continua assume segni opposti in un dato intervallo, allora esiste sempre una radice della funzione... ma di questo teorema io non sò che farmene... diciamo che mi sorgono molti dubbi. Per trovare gli zeri, devo dimostrare prima la continuità di una funzione e poi procedo con il resto? Quale intervallo prendo? Lo prendo a caso? Devo necessariamente creare il grafico a mano? (Se una funzione è troppo complessa mi pare difficile creare un grafico a mano). Esiste un metodo per trovare gli zeri di qualsiasi funzione? Perché il metodo di bisezione è relativamente semplice (si fa per dire) ma poco efficiente. (E' forse il Metodo della Tangenti?)

Forse io ho la mentalità più pragmatica che teorica... e quindi dei simboli f(x), intervallo [a,b] e simboli crittici vari mi fanno arrovogliare la mente...

Ho guardato il link di Wikipedia, proposto da Xico, ma... dall'occhio sinistro è entrato e dall'emisfero destro del cervello è uscito... (una mia variante del solito "da un'orecchia è entrato e dall'altra è uscito" ).

Vi chiedo quindi un favorone, se avete tempo. Vi posto una funzione che ho preso su internet. Come fareste a trovare gli zeri? (Col metodo delle tangenti)

[math]f(x) = e^x -x^2 -sen(x)-1[/math]
xico87
xico87 - Mito - 28236 Punti
Rispondi Cita Salva
per il metodo dicotomico non credo sia strettamente necessario abbozzare a funzione, basta solo avere un'idea vaga di dove si può avvicinare a 0 (ma nemmeno questo è necessario).

per il metodo di newton, vedi a occhio che f(x) è continua perchè composta da somma di funzioni contitnue, quindi procedi come segue: prendi un intervallo [a,b] t.c. f(a)f(b) < 0.
"Conviene tracciare la tangente nell'estremo dell'intervallo in cui la funzione e la sua derivata seconda hanno lo stesso segno" (da wiki). quindi ti calcoli anche le derivate seconde.

trovata la derivata prima, trovi la retta tangente in (a,f(a)) (ammesso che lì la sua derivata seconda abbia lo stesso segno di f(a)) e la intersechi con l'asse x. chiamo l'intersezione x1. a questo punto è un procedimento ricorsivo, devi ripetere l'operazione e modificare continuamente l'intervallo. prosegui finchè |x_(n+1)- x_n| < m, con m > 0 arbitrariamente piccolo (lascia perdere quello che avevo scritto oggi mentre ero assonnato :lol)
sai che mi piace molto poco fare conti, prova a farlo tu, poi puoi scannerizzare quello che fai e postare usando l'allegato o imageshack. purtroppo sono metodi laboriosi dal punto di vista del calcolo, anche se semplici da intuire

senti che perla di saggezza: la semplicità di calcolo è inversamente proporzionale al tempo di comprensione
:lol:lol:lol
Progettista HW
Progettista HW - Genius - 2540 Punti
Rispondi Cita Salva
xico87: per il metodo dicotomico non credo sia strettamente necessario abbozzare a funzione, basta solo avere un'idea vaga di dove si può avvicinare a 0 (ma nemmeno questo è necessario).

per il metodo di newton, vedi a occhio che f(x) è continua perchè composta da somma di funzioni contitnue, quindi procedi come segue: prendi un intervallo [a,b] t.c. f(a)f(b) < 0.
"Conviene tracciare la tangente nell'estremo dell'intervallo in cui la funzione e la sua derivata seconda hanno lo stesso segno" (da wiki). quindi ti calcoli anche le derivate seconde.

trovata la derivata prima, trovi la retta tangente in (a,f(a)) (ammesso che lì la sua derivata seconda abbia lo stesso segno di f(a)) e la intersechi con l'asse x. chiamo l'intersezione x1. a questo punto è un procedimento ricorsivo, devi ripetere l'operazione e modificare continuamente l'intervallo. prosegui finchè |x_(n+1)- x_n| < m, con m > 0 arbitrariamente piccolo (lascia perdere quello che avevo scritto oggi mentre ero assonnato :lol)

Si, ma ciò cambia di poco la mia situazione... io ancora non ho capito il motivo di tali metodi... vorrei essere capace di rispondere alla domanda: "Come Tizio, Caio e Sempronio sono arrivati a questi metodi?". In breve, quello che voglio sapere è il ragionamento svolto da Newton e dagli altri studiosi per giungere a scrivere i metodi che portano i loro nomi. Quasi tutti conoscono la formuletta per risolvere le equazioni di secondo grado, ma non tutti sanno come i matematici sono arrivati a tale formula (anche se in questo caso è abbastanza facile) ma ormai all'università non basta più studiare a memoria il procedimento, come si faceva spesso alle superiori (anche se la ricerca degli zeri, se non erro, dovrebbe essere un argomento che si affronta già alle superiori). Conoscendo i motivi, potrei capir meglio tutto l'algoritmo. Ora, quel che mi spaventa nella spiegazione di tali metodi, è la cripticità che è presente sui libri e nella maggior parte delle fonti che trattano l'argomento.

Quando si dice: "In una funzione continua, prendere un intervallo...", significa che la ricerca degli zeri può essere effettuata solo se la funzione è continua? E se non fosse continua, non posso trovare gli zeri oppure posso con uno dei tre metodi? L'intervallo lo prendo a caso? Ecco, adesso potete capire tutta la serie di dubbi che sta dentro la mia testaccia.

xico87: Sai che mi piace molto poco fare conti, prova a farlo tu, poi puoi scannerizzare quello che fai e postare usando l'allegato o imageshack. purtroppo sono metodi laboriosi dal punto di vista del calcolo, anche se semplici da intuire.

Ok, tra un po' proverò a fare qualche conto (sempre che ci riesca).

xico87: senti che perla di saggezza: la semplicità di calcolo è inversamente proporzionale al tempo di comprensione
:lol:lol:lol

:lol
xico87
xico87 - Mito - 28236 Punti
Rispondi Cita Salva
no gli algoritmi non vanno imparati a memoria, se fai ingegneria ancora meno. per carità, se ti impari a memoria le dimostrazioni magari non se ne accorge l'insegnante, ma getti solo via tempo inutilmente perchè non ti abitui al ragionamento. poi se devo essere sincero non saprei dimostrare la regola per la soluzione delle equazioni di secondo grado, dovrei darci un'occhiata :lol

c'è un proverbio che dice "quando l'acqua arriva alla gola si impara a nuotare". i metodi di approssimazione sono nati quando si è trovato il bisogno di esprimere in maniera approssimativa ma sufficientemente precisa gli zeri. io non vedo un bisogno di dimostrare quell'algoritmo, mi pare molto intuitivo. è un po' come l'ortonormalizzazione di una base vettoriale: basta capirla, essere coscienti di ciò che si fa. chi non la capisce la impara a memoria impiegando inzialmente meno tempo di chi si spreme le meningi, magari passa l'esame ma una volta finito non si ricorda più niente.
Progettista HW
Progettista HW - Genius - 2540 Punti
Rispondi Cita Salva
Appunto, io non vorrei imparare a memoria, perché sono consapevole che un ingegnere che impara a memoria le formule è un fesso. Il metodo delle tangenti non è molto intuitivo, secondo me. Sto quindi cercando qualcuno che mi possa spiegare il perché e il percome di questo metodo e l'algoritmo da svolgere passo passo, motivando... il mio libro non lo capisco... quel che odio dei libri di matematica è l'eccessiva e discorsiva spiegazione per problemi estremamente banali (che sono anche corredati da numerosi esempi) mentre quest'ultima è crittica per problemi più complessi (in cui non ci sono esempi... perché secondo me l'autore non si vuole spremere molto). Che posso fare per capirlo?

xico87 Poi, se devo essere sincero, non saprei dimostrare la regola per la soluzione delle equazioni di secondo grado, dovrei darci un'occhiata :lol

La formuletta per la soluzione di un'equazione quadratica si basa sul completamento del quadrato.

1. Prendiamo una generica equazione di secondo grado:

[math]ax^2+bx+c=0[/math]

2. E portiamo il termine noto al secondo membro:

[math]ax^2+bx=-c[/math]

3. Dividiamo tutto per il primo coefficiente, per lasciare l'incognita al quadrato sola soletta:

[math]x^2+\frac{b}{a}x=-\frac{c}{a}[/math]

4. Notiamo che
[math]x^2+\frac{b}{a}x[/math]
è una parte del quadrato del binomio
[math](x+\frac{b}{2a})^2[/math]
... completiamo la nostra equazione col terzo termine, sommandolo ad entrambi i membri:
[math]x^2+\frac{b}{a}x+(\frac{b}{2a})^2=(\frac{b}{2a})^2-\frac{c}{a}[/math]

5. Quindi componiamo il nostro quadrato di binomio al primo membro e svolgiamo la somma al secondo:

[math](x+\frac{b}{2a})^2=\frac{b^2-4ac}{4a^2}[/math]

6. Eliminiamo l'esponente al primo membro:

[math]x+\frac{b}{2a}=\sqrt{\frac{b^2-4ac}{4a^2}} \rightarrow[/math]

[math]\rightarrow x+\frac{b}{2a}=\frac{\sqrt{b^2-4ac}}{2a}[/math]

7. Isoliamo l'incognita:

[math]x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}[/math]

P.S: Se non si sentiamo, vi faccio tanti auguri.
xico87
xico87 - Mito - 28236 Punti
Rispondi Cita Salva
:O_o

geniale :lol

cmq per quanto riguarda il metodo delle tangenti, guarda il grafico dela funzione su wikipedia. essendo la derivata seconda in a maggiore di 0 e f(a) pure, la retta tangente va a toccare l'asse delle x prima della funzione. e se iteri l'operazione questo succede sempre (perchè f ha sempre derivata seconda > 0 dove è positiva), ma ti avvicini sempre di più allo 0 di f. non so in che altri termini spiegartelo, cmq non credo sia un metodo comodo per tutte le funzioni.

auguri anche a te se non ci sentiamo
Cherubino
Cherubino - Mito - 11351 Punti
Rispondi Cita Salva
Progettista HW: Per trovare gli zeri, devo dimostrare prima la continuità di una funzione e poi procedo con il resto? Quale intervallo prendo?
Lo prendo a caso?
Devo necessariamente creare il grafico a mano? (Se una funzione è troppo complessa mi pare difficile creare un grafico a mano).
Esiste un metodo per trovare gli zeri di qualsiasi funzione?
Perché il metodo di bisezione è relativamente semplice (si fa per dire) ma poco efficiente. (E' forse il Metodo della Tangenti?)

Rispondo a tutte le domande:
1- Se una funzione sia continua o no lo si dovrebbe vedere ad occhio; tipicamente, il problema di trovare gli zeri di una funzione ha senso per un ingegnere, se funzione è associata a qualcosa in natura (evento fisico, processo industriale...); tali funzioni sono tipicamente continue (o continue a tratti).

2- Un intervallo furbo: deve contenere lo zero della funzione.

3- No, prendilo che contenga lo zero della funzione; e agli estremi la funzione deve avere segni diversi;

4- Aiuta per scegliere bene l'intervallo: un'idea di dove sia lo zero devi pur averla altrimenti non riesci a scegliere i parametri iniziali dell'algoritmo; per "grafico a mano" intendo anche questo: guarda l'andamento generale, e con la calcolatrice prova a "campionare" la funzione per qualche valore di x, in modo da farti un'idea di dove sia positiva e negativa;

5- No.

6- Il nucleo dell'algoritmo di bisezione sarà lungo 3-4 righe (quelle che ho scritto), però servono più ripetizioni (iterazioni) dell'algoritmo, rispetto agli atri metodi, per determinare lo zero con la precisione desiderata.
Come guadagno Punti nel Forum? Leggi la guida completa
In evidenza
Classifica Mensile
Vincitori di novembre
Vincitori di novembre

Come partecipare? | Classifica Community

Community Live

Partecipa alla Community e scala la classifica

Vai al Forum | Invia appunti | Vai alla classifica

gio_1984

gio_1984 Tutor 24710 Punti

VIP
Registrati via email