Comment améliorer la précision d'une méthode aux différences finies pour trouver le système propre d'un ODE linéaire singulier


11

J'essaie de résoudre une équation du type:

(2x2f(x))ψ(x)=λψ(x)

a un pôle simple à 0 , pour les N valeurs propres et vecteurs propres les plus petits . Les conditions aux limites sont: ψ ( 0 ) = 0 et ψ ( R ) = 0 , et je ne regarde que la fonction sur ( 0 , R ] .f(x)0Nψ(0)=0ψ(R)=0(0,R]

Cependant, si je fais une méthode de différence finie très simple et uniformément espacée, la plus petite valeur propre est très inexacte "première valeur propre" devient la seconde, mais reste médiocre).

Qu'est-ce qui affecte la précision d'un tel schéma de différences finies? Je suppose que la singularité est à l'origine du problème et qu'une grille inégalement espacée améliorerait considérablement les choses. Mais peut-être qu'un schéma de différence d'ordre supérieur l'améliorerait davantage? Comment décidez-vous (ou est-ce simplement "essayez les deux et voyez")

note: mon schéma de différence finie est tridiagonal symétrique où les 3 diagonales sont:

(12Δ2,1Δ2f(x),12Δ2)

Δ


1Δ2f(x)

Réponses:


6

Si vous souhaitez augmenter la précision d'un schéma de différences finies, vous pouvez toujours essayer d'augmenter le degré de votre pochoir. Cependant, sur des points équidistants, cela peut conduire à des instabilités numériques. Pour éviter ces problèmes et toujours obtenir une grande précision, je suggère d'utiliser des méthodes spectrales .

Si votre problème a des pôles fixes, vous pouvez essayer de les contourner en divisant votre domaine et en résolvant deux problèmes couplés.

chebguif(x)

chebguiu(x)u(x)x=λu[1,1]

Utilisation de <code> chebgui </code> pour calculer les valeurs propres et les modes propres d'une équation différentielle simple du second ordre.

Mise à jour

Si vous voulez résoudre ce problème sans trop entrer dans Chebfun, tous les détails devraient être dans le chapitre 9 du livre de Nick Trefethen " Les méthodes spectrales dans Matlab ".


J'ai édité mon message d'origine pour qu'il soit clair que je ne regarde pas réellement le poteau, juste très près. Merci pour l'information, je vais devoir vérifier chebfun.
Andrew Spott,

3
Voté sans commentaire? S'il vous plaît, pour le bénéfice de tous, pourriez-vous indiquer comment cette réponse pourrait être améliorée?
Pedro

0

Δxf(x)ψ(x)f(x)f(xi)xi1xi+1f(x)φi(x)φi(x)xif(x)

Bien sûr, si vous faites déjà des éléments finis, vous pourriez aussi bien investir dans l'utilisation d'éléments d'ordre supérieur qui ne sont pas beaucoup plus difficiles en 1d non plus.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.