Ich versuche eine Gleichung vom Typ zu lösen:
Wobei einen einfachen Pol bei 0 hat , für die kleinsten N Eigenwerte und Eigenvektoren. Die Randbedingungen sind: ψ ( 0 ) = 0 und ψ ( R ) = 0 , und ich betrachte nur die Funktion über ( 0 , R ] .
Wenn ich jedoch eine sehr einfache, gleichmäßig verteilte Finite-Differenzen-Methode mache, ist der kleinste Eigenwert sehr ungenau (manchmal gibt es einen "falschen" Eigenwert, der mehrere Größenordnungen negativer ist als der, von dem ich weiß, dass er dort sein sollte, der reale "erster Eigenwert" wird zum zweiten, ist aber immer noch schlecht).
Was beeinflusst die Genauigkeit eines solchen Finite-Differenzen-Schemas? Ich gehe davon aus, dass die Singularität das Problem verursacht und dass ein ungleichmäßig verteiltes Gitter die Dinge erheblich verbessern würde. Gibt es Papiere, die mich auf eine gute ungleichmäßige Finite-Differenzen-Methode hinweisen können? Aber vielleicht würde ein Differenzschema höherer Ordnung es mehr verbessern? Wie entscheidest du dich (oder ist es nur "versuche beides und sieh")
Anmerkung: Mein Finite-Differenzen-Schema ist symmetrisch tridiagonal, wobei die 3 Diagonalen sind:
Wobei der Gitterabstand ist. Und ich löse die Matrix mit einem direkten symmetrischen Löser (ich gehe davon aus, dass die Genauigkeit durch den Löser nicht drastisch beeinflusst wird, irre ich mich?)
quelle
Antworten:
Wenn Sie die Genauigkeit eines Finite-Differenzen-Schemas erhöhen möchten, können Sie jederzeit versuchen, den Grad Ihrer Schablone zu erhöhen. In äquidistanten Punkten kann dies jedoch zu numerischen Instabilitäten führen. Um diese Probleme zu vermeiden und dennoch eine hohe Genauigkeit zu erzielen, würde ich die Verwendung von Spektralmethoden vorschlagen .
Wenn Ihr Problem feste Pole hat, können Sie versuchen, diese zu umgehen, indem Sie Ihre Domain aufteilen und zwei gekoppelte Probleme lösen.
chebgui
chebgui
Aktualisieren
Wenn Sie dieses Problem lösen möchten, ohne sich zu sehr mit Chebfun zu befassen, finden Sie alle Details in Kapitel 9 von Nick Trefethens Buch " Spectral Methods in Matlab ".
quelle
Wenn Sie bereits finite Elemente ausführen, können Sie natürlich auch in Elemente höherer Ordnung investieren, die in 1d auch nicht viel schwieriger sind.
quelle