Czy skalowanie zmiennych jest niezbędne przy numerycznym rozwiązywaniu niektórych problemów PDE?

15

W symulacji półprzewodników często równania są skalowane, aby miały znormalizowane wartości. Na przykład w skrajnych przypadkach gęstość elektronów w półprzewodnikach może zmieniać się o ponad 18 rzędów wielkości, a pole elektryczne może zmieniać się kształtnie, o ponad 6 (lub więcej) rzędów wielkości.

Jednak dokumenty tak naprawdę nigdy nie dają powodu, aby to zrobić. Osobiście cieszę się z równań w jednostkach rzeczywistych, czy jest to jakaś przewaga liczbowa, czy inaczej jest to niemożliwe? Pomyślałem, że z podwójną precyzją będzie wystarczająco dużo cyfr, aby poradzić sobie z tymi wahaniami.


Obie odpowiedzi są bardzo przydatne, bardzo dziękuję!

boyfarrell
źródło
1
„może różnić się o ponad 18 rzędów wielkości” - a jeśli weźmie się pod uwagę liczbę cyfr zachowanych z podwójną precyzją, zobaczysz, czy „z podwójną precyzją byłoby wystarczająco dużo cyfr, aby poradzić sobie z tymi fluktuacjami” - rzeczywiście jest prawdą…
JM
1
I prawdziwy problem zaczyna się, gdy wprowadzisz te liczby do algorytmu numerycznego: weź kwadrat i nagle masz 36 rzędów różnicy wielkości ...
Christian Clason

Odpowiedzi:

9

Rozwiązanie (liniowego) PDE polega na dyskretyzacji równania w celu uzyskania układu liniowego, który jest następnie rozwiązywany przez liniowy solver, którego zbieżność (szybkość) zależy od liczby warunków macierzy. Skalowanie zmiennych często zmniejsza tę liczbę warunków, poprawiając w ten sposób zbieżność. (Zasadniczo sprowadza się to do zastosowania diagonalnego warunku wstępnego, patrz Dokładność i stabilność algorytmów numerycznych Nicholasa Highama .)

Rozwiązanie nieliniowych PDE wymaga ponadto metody rozwiązywania równań nieliniowych, takiej jak metoda Newtona, w której skalowanie może również wpływać na zbieżność.

Ponieważ normalizacja wszystkiego zwykle zajmuje bardzo mało wysiłku, prawie zawsze jest to dobry pomysł.

Christian Clason
źródło
Jestem pewien, że @ArnoldNeumaier ma więcej do powiedzenia na ten temat.
Christian Clason
Liczba warunków macierzy, których używam (zmienne nieskalowane) wynosi ~ 1,25 . Czy to wydaje się rozsądne? Oblicza się to przy użyciu metody 2-norm ( docs.scipy.org/doc/numpy/reference/generated/… ).
boyfarrell
@ boy, jeśli nic więcej nie pomnaża 1,25, to jest to dobry warunek, szczególnie jeśli przypomnisz sobie, że macierze jednostkowe mają . κ2=1
JM
1
@boyfarrell: Rutynowo pracuję z numerami warunków tak dużymi jak 10 ^ 7, z akceptowalnymi wynikami. Nie zaakceptowałbym jednak liczb warunków znacznie wyższych niż 10 ^ 9.
jvriesem,
9

-εΔu+u=0 na Ω,u=1 na Ω.

To powiedziawszy, nie ma skalowania zmiennych lub domen, które usuwa tę trudność.

uα

-α2)Δu=faα na αΩ
αu1
-Δu=fa na Ω.
uα(x): =u1(x/α) dla każdego α. Pokazuje to skalowanie parametruαtak naprawdę wcale nie wpływa na zachowanie rozwiązania - fakt, który jest tutaj dość oczywisty, ale może być trudny do zauważenia w innych przypadkach. W ten sam sposób można konstruować dość złożone przykłady z większą liczbą parametrów, np. Navier-Stokesa i jego niedymaryzacja do postaci liczb Reynoldsa.
Nico Schlömer
źródło
4
Pozostałe parametry muszą zatem być niezbędne do określenia jakościowego zachowania rozwiązania - dlatego liczba Reynoldsa jest tak ważna w dynamice płynów. Ten proces nazywa się niedimensalizacją .
Christian Clason
oczywiście znalezienie takich równoważników parametrów jest zasadniczo problemem znalezienia grup symetrii PDE, co jest ogólnie
trudnym problemem
2

Radzenie sobie z liczbami zmiennoprzecinkowymi może być trudne w odniesieniu do odejmowania małych liczb od większych liczb, a także w wielu innych aspektach. Polecam przeczytanie na nich postów na blogu Johna D. Cooksa, takich jak

Anatomia liczby zmiennoprzecinkowej

a także Oracle

Co każdy informatyk powinien wiedzieć o arytematyce zmiennoprzecinkowej

Również niektóre algorytmy numeryczne do minimalizacji lub maksymalizacji wymagają normalizacji dla stabilności numerycznej.

Phillip Nordwall
źródło