griglia uniforme vs. non uniforme


16

Probabilmente è una domanda a livello di studente, ma non riesco proprio a farcela da solo. Perché è più preciso utilizzare griglie non uniformi nei metodi numerici? Sto pensando nel contesto di un metodo a differenza finita per il PDE della forma . E supponiamo che io sia interessato a una soluzione al punto x . Quindi, posso vedere che se approssimo la seconda derivata, ad esempio su una griglia uniforme usando un'approssimazione di tre punti, l'errore è il secondo ordine O ( h 2 )ut(X,t)=uXX(X,t)X*O(h2). Quindi posso costruire una griglia non uniforme tramite una mappatura e trovare coefficienti per i tre punti utilizzati per approssimare la derivata. Posso fare le espansioni di Taylor e ottenere di nuovo un limite affinché la derivata sia un secondo ordine , dove h è la distanza su una griglia uniforme da cui ho ottenuto la mappatura su una griglia non uniforme. Entrambe le stime contengono derivati ​​e non mi è chiaro perché la soluzione sarebbe più accurata su una griglia non uniforme in quanto dipende dall'entità dei derivati ​​corrispondenti nelle stime di errore? O(h2)h

Risposte:


19

La logica delle maglie non uniformi va così (tutte le equazioni intese come qualitative, vale a dire, in generale vere ma senza la pretesa di essere dimostrabili in tutte le circostanze e per tutte le equazioni o tutte le possibili discretizzazioni):

Quando si risolve un'equazione con, diciamo, elementi finiti lineari, in genere si ha una stima dell'errore del tipo oppure , equivalentemente ma in una forma più adatta a quanto segue: u - u h 2 L 2 ( Ω )C h 4 max

u-uhL2(Ω)Chmax22uL2(Ω),
Tuttavia, questo è sopravvalutato. In effetti, in molti casi si può dimostrare che l'errore è effettivamente della forma u - u h 2 L 2 ( Ω )C K T h 4 K2 u 2 L 2 ( K ) . Qui, K sono le celle della triangolazione T
u-uhL2(Ω)2Chmax42uL2(Ω)2.
u-uhL2(Ω)2CΣKThK42uL2(K)2.
KT. Ciò dimostra che per ridurre l'errore, non è effettivamente necessario ridurre la dimensione massima della mesh . Piuttosto, la strategia più efficace sarà quello di equilibrare la contributi errore cellwise h 4 K2 u 2 L 2 ( K ) - in altre parole, si dovrebbe scegliere h K α 2 u - 1 / 2 L 2 ( K ) . In altre parole, la dimensione della mesh locale hhmaxhK42uL2(K)2
hKα2uL2(K)-1/2.
dovrebbe essere piccolo dove la soluzione è ruvida (ha grandi derivati) e grande dove la soluzione è liscia, e la formula sopra fornisce una misura quantitativa per questa relazione.hK

1
Aggiungerei che l'anisotropia è rappresentata nel modo più efficiente con uno spazio anisotropico ansatz (cioè una maglia anisotropica). Poiché l'anisotropia potrebbe non essere allineata con alcune mesh grossolane iniziali, un algoritmo isotropico AMR potrebbe essere molto inefficiente. L'anisotropia causa alcuni problemi extra perché molti metodi non sono uniformemente stabili rispetto alle proporzioni.
Jed Brown

6

Dimostralo a te stesso con questo esempio. Qual è l'errore massimo quando si interpola sqrt (x) sull'intervallo [0,1] con interpolazione lineare a tratti su una mesh uniforme?

Qual è l'errore massimo quando si interpola su una mesh in cui l'ith di n punti è dato da (i / n) ^ s, e s è un parametro di classificazione della mesh scelto con cura?


hiohio

4

Il motivo tipico per cui una non uniforme può portare a una maggiore precisione è che il PDE da risolvere non ha la forma ut(X,t)=uXX(X,t)ut(X,t)=(D(X)uX(X,t))XD(X)D(X)

u(X,0)


potresti specificare quali sono le altre tecniche da utilizzare per esaminare più da vicino le regioni di discontinuità sui dati iniziali, ad esempio?
Kamil

@Kamil Ho due cose in mente qui. La prima cosa è calcolare la proiezione dei dati iniziali nella "rappresentazione utilizzata sulla griglia" con sufficiente precisione. (Questo in genere include cose come il sovracampionamento o semplici calcoli analitici alle discontinuità del salto.) So che questo è solo un buon stile e troppo semplice per menzionarlo, ma nella mia esperienza è spesso tutto ciò che è necessario per risolvere i problemi causati dalle singolarità in i dati di input.
Thomas Klimpel,

L'altra cosa a cui sto pensando è di modellare parte dei dati di input come condizioni al contorno. Tuttavia, i risparmi da questo sono spesso meno di un fattore due e le condizioni al contorno sono notoriamente difficili da ottenere giuste, almeno nella mia esperienza. Quindi direi che questo spesso non vale la pena di farlo perfettamente (o vale la pena solo se l'estensione corrispondente del problema in quella direzione è veramente piccola, o se vuoi davvero un'elevata precisione), e semplicemente selezionando approssimativamente il giusto le condizioni al contorno e il posizionamento del confine sufficientemente lontano spesso funzionano abbastanza bene.
Thomas Klimpel,

4

Kamil, la risoluzione dell'equazione differenziale è globale, l'interpolazione è locale. Nell'interpolazione polinomiale a tratti, l'accuratezza lontana dalla singolarità non sarà disturbata dalla singolarità. Sfortunatamente, questo non è affatto vero per risolvere un'equazione ellittica, come un problema di valore al limite a due punti. La singolarità inquinerà l'approssimazione a livello globale.

Ecco qualcosa da provare. Risolvi D (sqrt (x) Du) su [0,1] con Dirichlet bcs D omogeneo è l'operatore di differenziazione. Usa elementi finiti o differenze finite su una mesh uniforme a n punti. Confronta con una mesh in cui il punto ith è (1 / n) ^ 1.5. Si noti che l'errore peggiore per la mesh uniforme è lontano dalla singolarità e molto più grande rispetto alla mesh graduata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.