O dimensionamento variável é essencial ao solucionar alguns problemas de PDE numericamente?


14

Na simulação de semicondutores, é comum que as equações sejam dimensionadas para que tenham valores normalizados. Por exemplo, em casos extremos, a densidade de elétrons nos semicondutores pode variar acima de 18 ordens de grandeza, e o campo elétrico pode mudar de forma bem definida, acima de 6 (ou mais) ordens de grandeza.

No entanto, os jornais nunca realmente dão uma razão para fazer isso. Pessoalmente, estou feliz em lidar com equações em unidades reais, existe alguma vantagem numérica para fazer isso, é impossível de outra maneira? Pensei com dupla precisão que haveria dígitos suficientes para lidar com essas flutuações.


Ambas as respostas são muito úteis, muito obrigado!


1
"pode ​​variar acima de 18 ordens de magnitude" - e se você considerar quantos dígitos são retidos em dupla precisão, verá se "com precisão dupla haveria dígitos suficientes para lidar com essas flutuações" é realmente verdade ...
JM

1
E o verdadeiro problema começa quando você alimenta esses números em um algoritmo numérico: Pegue o quadrado, e de repente você tem 36 ordens de magnitude diferença ...
Christian Clason

Respostas:


9

A resolução de uma PDE (linear) consiste em discretizar a equação para produzir um sistema linear, que é resolvido por um solucionador linear cuja convergência (taxa) depende do número de condição da matriz. O dimensionamento das variáveis ​​geralmente reduz esse número de condição, melhorando a convergência. (Isso basicamente significa aplicar um pré-condicionador diagonal, consulte Precisão e estabilidade de algoritmos numéricos de Nicholas Higham .)

A solução de PDEs não lineares exige um método para resolver equações não lineares, como o método de Newton, onde o dimensionamento também pode influenciar a convergência.

Como normalizar tudo geralmente requer muito pouco esforço, é quase sempre uma boa ideia.


Tenho certeza que @ArnoldNeumaier tem mais a dizer sobre esse assunto.
Christian Clason

O número da condição das matrizes que estou usando (variáveis ​​não dimensionadas) é ~ 1,25 . Isso parece razoável? Isso é calculado usando o método de 2 normas ( docs.scipy.org/doc/numpy/reference/generated/… ).
Boyfarrell 26/05

@ boy, se não houver mais nada multiplicando o 1,25, então esse é um número de condição aceitável, especialmente se você se lembrar que matrizes unitárias têm . κ2=1
JM

1
@ boyfarrell: Eu trabalho rotineiramente com números de condição tão grandes quanto 10 ^ 7, com resultados aceitáveis. Entretanto, eu não aceitaria números de condição muito maiores que 10 ^ 9.
Jvriesem

9

-εΔvocê+você=0 0 em Ω,você=1 em Ω.

Dito isto, não há dimensionamento de variáveis ​​ou domínios que remova essa dificuldade.

vocêα

-α2Δvocê=fα em αΩ
αvocê1
-Δvocê=f em Ω.
vocêα(x): =você1(x/α)αα

4
E os parâmetros restantes devem ser essenciais para determinar o comportamento qualitativo da solução - é por isso que o número de Reynolds é tão importante na dinâmica de fluidos. Esse processo é chamado de não dimensionalização .
Christian Clason

é claro, encontrar tais equivalências parâmetro é essencialmente o problema de encontrar grupos de simetria do PDE, um problema que é difícil em geral
lurscher

2

Lidar com números de ponto flutuante pode ser um truque no que diz respeito à subtração de números pequenos de números maiores, assim como a muitos outros aspectos. Eu recomendaria ler as postagens de John D. Cooks sobre eles, como

Anatomia de um número de ponto flutuante

bem como da Oracle

O que todo cientista da computação deve saber sobre a aritmética de ponto flutuante

Também certos algoritmos numéricos para minimização ou maximização requerem normalização para estabilidade numérica.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.