La mise à l'échelle variable est-elle essentielle lors de la résolution numérique de certains problèmes PDE?

15

Dans la simulation de semi-conducteur, il est courant que les équations soient mises à l'échelle afin qu'elles aient des valeurs normalisées. Par exemple, dans des cas extrêmes, la densité électronique dans les semi-conducteurs peut varier sur 18 ordres de grandeur, et le champ électrique peut changer de manière galbée, sur 6 (ou plus) ordres de grandeur.

Cependant, les journaux ne donnent jamais vraiment de raison de le faire. Personnellement, je suis content de traiter des équations en unités réelles, y a-t-il un avantage numérique à le faire, est-ce impossible autrement? J'ai pensé avec une double précision qu'il y aurait suffisamment de chiffres pour faire face à ces fluctuations.


Les deux réponses sont très utiles, merci beaucoup!

boyfarrell
la source
1
"peut varier sur 18 ordres de grandeur" - et si vous considérez combien de chiffres sont conservés en double précision, vous verrez si "avec une double précision il y aurait suffisamment de chiffres pour faire face à ces fluctuations" est en effet vrai ...
JM
1
Et le vrai problème commence lorsque vous introduisez ces nombres dans un algorithme numérique: prenez le carré, et tout à coup, vous avez une différence de 36 ordres de grandeur ...
Christian Clason

Réponses:

9

La résolution d'un PDE (linéaire) consiste à discrétiser l'équation pour donner un système linéaire, qui est ensuite résolu par un solveur linéaire dont la convergence (taux) dépend du nombre de condition de la matrice. La mise à l'échelle des variables réduit souvent ce nombre de conditions, améliorant ainsi la convergence. (Cela revient essentiellement à appliquer un préconditionneur diagonal, voir Nicholas Higham's Accuracy and Stability of Numerical Algorithms .)

La résolution des EDP non linéaires nécessite en outre une méthode pour résoudre des équations non linéaires telles que la méthode de Newton, où la mise à l'échelle peut également influencer la convergence.

Étant donné que tout normaliser nécessite généralement très peu d'efforts, c'est presque toujours une bonne idée.

Christian Clason
la source
Je suis sûr que @ArnoldNeumaier a plus à dire sur ce sujet.
Christian Clason
Le numéro de condition des matrices que j'utilise (variables non mises à l'échelle) est ~ 1,25 . Cela vous semble-t-il raisonnable? Ceci est calculé en utilisant la méthode à 2 normes ( docs.scipy.org/doc/numpy/reference/generated/… ).
boyfarrell
@boy, s'il n'y a rien d'autre multipliant le 1,25, alors c'est un nombre de condition correct, surtout si vous vous souvenez que les matrices unitaires ont . κ2=1
JM
1
@boyfarrell: Je travaille régulièrement avec des nombres de condition aussi grands que 10 ^ 7, avec des résultats acceptables. Cependant, je n'accepterais pas de nombres de conditions bien supérieurs à 10 ^ 9.
jvriesem
9

εΔu+u=0 on Ω,u=1 on Ω.

Cela dit, il n'y a pas de mise à l'échelle des variables ou des domaines qui supprime cette difficulté.

uα

α2Δu=fα on αΩ
αu1
Δu=f on Ω.
uα(x):=u1(x/α)α . Cela montre que la mise à l'échelle du paramètreαn'influence pas vraiment le comportement de la solution - un fait qui est assez évident ici, mais qui peut être assez difficile à voir dans d'autres cas. Vous pouvez construire des exemples assez complexes avec plus de paramètres de la même manière, par exemple, Navier-Stokes et sa non-dimensionnalisation dans la formulation du nombre de Reynolds.
Nico Schlömer
la source
4
Et les paramètres restants doivent alors être essentiels pour déterminer le comportement qualitatif de la solution - c'est pourquoi le nombre de Reynolds est si important dans la dynamique des fluides. Ce processus est appelé non- dimensionnalisation .
Christian Clason,
bien sûr, trouver de telles équivalences de paramètres est essentiellement le problème de trouver des groupes de symétrie de la PDE, un problème qui est difficile en général
lurscher
2

Le traitement des nombres à virgule flottante peut être délicat en ce qui concerne la soustraction de petits nombres de plus grands nombres, ainsi que de nombreux autres aspects. Je recommanderais de lire les articles de blog de John D. Cooks à leur sujet, tels que

Anatomie d'un nombre à virgule flottante

ainsi que d'Oracle

Ce que tout informaticien devrait savoir sur l'arithématique en virgule flottante

Certains algorithmes numériques pour la minimisation ou la maximisation nécessitent également une normalisation pour la stabilité numérique.

Phillip Nordwall
la source