Devo calcolare il seguente integrale: Dove è una matrice (una particella cinetica e energia potenziale espressa in una base), è una matrice che dipende da (una particella molte- body Green's) e l'integrale del contorno è un semicerchio sinistro. L'integrando ha i poli sull'asse reale negativo ed è costoso da valutare. Qual è il modo più efficace per calcolare tale integrale?f ( E ) = T r
Ecco la mia ricerca finora:
1) Uso l'integrazione gaussiana, il mio percorso di integrazione è un rettangolo. Ho fissato il lato sinistro e destro (cioè la larghezza) e ho giocato con l'altezza (sopra e sotto l'asse reale) in modo tale che per il dato ordine di integrazione ottengo la massima precisione. Ad esempio per l'ordine 20, se l'altezza è troppo grande, la precisione diminuisce (ovviamente), ma se è troppo piccola, diminuisce anche (la mia teoria è che ha bisogno di sempre più punti attorno ai poli man mano che l'altezza scende 0). Ho optato per un'altezza ottimale 0,5 per la mia funzione.
2) Quindi ho impostato il lato destro del rettangolo su E0, in genere E0 = 0, ma potrebbe essere E0 = -0.2 o qualcosa di simile.
3) Comincio a spostare il lato sinistro del rettangolo a sinistra e per ogni passaggio eseguo la convergenza dell'ordine di integrazione per assicurarmi che il mio integrale sia completamente convergente per ogni rettangolo. Aumentando la larghezza, alla fine ottengo un valore convergente nel limite del semicerchio sinistro infinito.
Il calcolo è molto lento e anche non molto preciso per larghezze elevate. Un miglioramento consiste nel dividere semplicemente la lunga larghezza in "elementi" e utilizzare l'integrazione gaussiana su ciascun elemento (proprio come in FE).
Un'altra opzione sarebbe quella di integrare un piccolo cerchio attorno a ciascun polo e riassumerlo. I problemi:
a) Come trovare numericamente i poli della funzione ? Dovrebbe essere robusto. L'unica cosa che so è che si trovano sull'asse reale negativo. Per alcuni di loro (ma non tutti) conosco anche un'ipotesi iniziale abbastanza buona. Esiste un metodo che funziona per qualsiasi funzione analitica ? O dipende dalla forma effettiva di f ( E ) ?f ( E )
b) Una volta che conosciamo i poli, quale schema numerico è il migliore per integrare il piccolo cerchio attorno ad esso? Dovrei usare l'integrazione gaussiana in un cerchio? O dovrei usare una distribuzione uniforme dei punti?
Un'altra opzione potrebbe essere che una volta che conosco i poli grazie a a), potrebbe esserci un modo semi-analitico per ottenere i Residui senza la necessità della complessa integrazione. Ma per ora sarei felice di ottimizzare solo l'integrazione del profilo.