APPROSSIMAZIONE NUMERICA PER LA RADICE QUADRATA
Salve a tutti, questo è il primo argomento che lancio, spero di scriverlo bene.
Ora, devo integrare per via numerica la funzione sqrt(x) tra 0 e 1. Posso scegliere quale metodo usare tra trapezi, Cavalieri-Simpson o un qualsiasi altro metodo della "famiglia" di Newton-Cotes. Caratteristica comune a questi metodi è che aumentando il numero di intervalli considerati, la precisione del calcolo aumenta, e in particolare:
1) Per il metodo dei trapezi, raddoppiando il numero di punti l'errore si riduce di un fattore 4
2) Per il metodo di Cavalieri-Simpson, raddoppiando il numero di punti l'errore si riduce di un fattore 16
Questo è vero in generale, e si può verificare (io l'ho fatto con matlab). Per la funzione sqrt(x), tuttavia, accade qualcosa di strano: qualsiasi sia il metodo scelto, raddoppiando il numero di punti l'errore si riduce sempre di un misterioso fattore circa pari a 2.828... ("circa pari" perché tale rapporto tende a stabilizzarsi mano a mano che vengono considerati raddoppi di punti sempre maggiori; passando da 1024 a 2048 punti, ad esempio il rapporto è stabile fino all'ottava cifra, 2.82842712...) Questo è quello che mi dice matlab. Ho creduto fosse un errore nel programma, ma dopo aver provato anche a mano il risultato non cambia. Conoscete il perché di questo comportamento? So che l'errore va con la derivata k-esima (k dipende dal metodo) della funzione nell'intervallo di integrazione (e qui forse c'è un problema perché la derivata tende a infinito), ma la costanza del rapporto tra gli errori è comunque davvero sospetta... idee?
Ora, devo integrare per via numerica la funzione sqrt(x) tra 0 e 1. Posso scegliere quale metodo usare tra trapezi, Cavalieri-Simpson o un qualsiasi altro metodo della "famiglia" di Newton-Cotes. Caratteristica comune a questi metodi è che aumentando il numero di intervalli considerati, la precisione del calcolo aumenta, e in particolare:
1) Per il metodo dei trapezi, raddoppiando il numero di punti l'errore si riduce di un fattore 4
2) Per il metodo di Cavalieri-Simpson, raddoppiando il numero di punti l'errore si riduce di un fattore 16
Questo è vero in generale, e si può verificare (io l'ho fatto con matlab). Per la funzione sqrt(x), tuttavia, accade qualcosa di strano: qualsiasi sia il metodo scelto, raddoppiando il numero di punti l'errore si riduce sempre di un misterioso fattore circa pari a 2.828... ("circa pari" perché tale rapporto tende a stabilizzarsi mano a mano che vengono considerati raddoppi di punti sempre maggiori; passando da 1024 a 2048 punti, ad esempio il rapporto è stabile fino all'ottava cifra, 2.82842712...) Questo è quello che mi dice matlab. Ho creduto fosse un errore nel programma, ma dopo aver provato anche a mano il risultato non cambia. Conoscete il perché di questo comportamento? So che l'errore va con la derivata k-esima (k dipende dal metodo) della funzione nell'intervallo di integrazione (e qui forse c'è un problema perché la derivata tende a infinito), ma la costanza del rapporto tra gli errori è comunque davvero sospetta... idee?
Risposte
Cosa succede se scegli un intervallo di integrazione in cui la funzione è \(C^\infty\)?
Eh ma il problema è proprio questo, in x=0 la funzione non è derivabile... Che però in generale non dovrebbe essere un problema! Tant'è che il valore dell'integrale comunque converge, ma non "velocemente" come mi aspetterei...!!!
Perché non rispondi alla domanda invece?
Se f è una funzione derivabile infinite volte nell'intervallo d'integrazione... Vuol anche dire che tale funzione è continua, e dunque l'integrale definito esiste. Non saprei che altro aggiungere, perdona ma non riesco a capire dove vuoi arrivare...!!
Quello che volevo dire è: se integri la radice quadrata col tuo metodo in un intervallo \([\varepsilon,1]\) la convergenza è quella giusta?
Sì, la convergenza è quella giusta. Per epsilon MOLTO prossimi allo 0 il rapporto che dicevo non converge, probabilmente arriverebbe a 4 o 16 ugualmente (non so se è opportuno per questo forum, ma ti restituisco una stringa di risultati per Cavalieri-Simpson, intervallo [0.000001,1] e numero di nodi via via crescente n=2 4 8 16 32... fino a 2^22, e questi sono i risultati del rapporto tra gli errori consecutivi)
2.84175110096571
2.84770343572216
2.85581504286812
2.86727789749736
2.88357647315419
2.90680671459951
2.93997741329581
2.98736720740537
3.05477946437103
3.14872998420202
3.26991837969370
3.38034124682205
3.28235450259298
2.56203159993445
1.57647761407385
1.12579277443422
1.01934877552624
1.00217335327266
1.00018349855219
1.00005126335695
I risultati divergono ma poi sembrano convergere a 1, ma è quasi certamente perché l'errore si riduce così tanto da raggiungere la precisione di macchina e gli ultimi risultati sono quasi congruenti nella rappresentazione di macchina..!! Ma il risultato sicuramente converge per [0,1]:
2.82810302797626
2.82836904639982
2.82841682180427
2.82842530181878
2.82842680238670
2.82842706773981
2.82842711453011
2.82842712250476
2.82842712331201
2.84175110096571
2.84770343572216
2.85581504286812
2.86727789749736
2.88357647315419
2.90680671459951
2.93997741329581
2.98736720740537
3.05477946437103
3.14872998420202
3.26991837969370
3.38034124682205
3.28235450259298
2.56203159993445
1.57647761407385
1.12579277443422
1.01934877552624
1.00217335327266
1.00018349855219
1.00005126335695
I risultati divergono ma poi sembrano convergere a 1, ma è quasi certamente perché l'errore si riduce così tanto da raggiungere la precisione di macchina e gli ultimi risultati sono quasi congruenti nella rappresentazione di macchina..!! Ma il risultato sicuramente converge per [0,1]:
2.82810302797626
2.82836904639982
2.82841682180427
2.82842530181878
2.82842680238670
2.82842706773981
2.82842711453011
2.82842712250476
2.82842712331201
La convergenza che ti aspetti è dimostrata solo nel caso in cui la funzione sia sufficientemente regolare, in questo caso \(C^4\), e la radice quadrata non ha questa regolarità in \([0,1]\), quindi non c'è garanzia che il metodo converga bene.