Angenommen, wir haben eine Funktion $ u $, die in einer Kugel diskret definiert ist: Wir kennen nur die Werte von $ u $ in den Knoten $ (i, j, k) $ des sphärischen Gitters, wobei $ i $ eine Radiuskoordinate ist, $ j $ eine Koordinate für den Winkel $ \ varphi $ ist, $ k $ eine Koordinate für den Winkel $ \ psi $ ist .
Betrachten Sie eine Vektorfunktion $$ \ nabla u_ {i, j, k} = \ left (\ frac {\ partielle u} {\ partielle r} _ {i, j, k}, \ frac {1} {r_i \ sin \ psi_k} \ frac {\ partielles u} {\ partielles \ varphi} _ {i, j, k}, \ frac {1} {r_i} \ frac {\ partielles u} {\ partiell \ psi} _ {i, j, k} \ rechts) – $$ Gradient von $ u $.
Ich muss die Werte von $ \ nabla u_ {i, j, k} $ kennen auf der z-Achse in kartesischen Koordinaten, was $ \ psi = 0 $ entspricht – Achse in sphärischen Koordinaten, aber wir können die obige Formel nicht verwenden, da im Fall von $ \ psi = 0 $ der zweite Term unendlich wird.
Eigentlich können wir die Werte von $ \ frac {\ partielles u} {\ partielles z} $ mit Hilfe der Formel der numerischen Ableitung finden, aber wir haben ein Problem beim Finden von $ \ frac {\ partielles u} {\ partielles x} $, $ \ frac {\ partielles u} {\ partielles y} $, da das Gitter nicht rechteckig ist. Könnten Sie mir bei diesem Zeug helfen und mir raten, was zu tun ist?
Kommentare
- Können Sie die numerische Ableitung in $ (r, nicht berechnen? \ varphi, \ psi) $ Koordinatensystem? Dies sollte Ihnen einen Vektor geben, den Sie dann auf die $ x $ – $ y $ – und $ z $ -Achsen projizieren können, um die $ x $ – $ y $ – und $ z $ -Komponenten des Gradienten
- Nein, wir können keine numerische Ableitung berechnen, da für $ \ psi = 0 $ $ \ varphi $ -Winkel nicht definiert ist und wir eine Singularität in der Formel haben.
- Es gibt wahrscheinlich eine Lösung mit Quaternionen, aber es ist ein bisschen schwierig herauszufinden, wie genau das aussieht. Ihre Nomencalture. Der Effekt, den Sie bekämpfen möchten, wird allgemein als " Gimbal-Lock
- Ich habe eine Variante gefunden, um mit diesem Zeug richtig umzugehen: Hier können wir die Methode der kleinsten Quadrate für die Gradientenrekonstruktion verwenden, aber ich habe keine genaue Erklärung gefunden, wie man sie verwendet
- Vielleicht ist es ' der Fall – für mäßig gut benommenes $ u $$ -, dass $ \ lim _ {\ psi \ bis 0} \ frac {1} {\ sin \ psi} \ frac {\ partielles u} {\ partielles \ phi} = 0 $. Aber ich ' glaube nicht, dass die mittlere Komponente Ihres Vektors eine Bedeutung hat. Wenn Sie also ' dies in eine Differentialgleichung in polar einfügen Koordinaten Die Differentialgleichung gibt der mittleren Koordinate möglicherweise auch kein Gewicht.
Antwort
Es gibt drei Möglichkeiten Vermeiden Sie diese Situation, aber vor der Verwendung muss geprüft werden, ob dieser Weg aufgrund eines Rechenfehlers geeignet ist:
1) Green-Gauss-Zellenmethode: Hier wird die Definition des Gradienten verwendet:
$$ \ nabla u_i \ approx \ frac {1} {V_ {i}} \ int \ Grenzen _ {\ partielle V_i} ud \ overline {S} \ ungefähr \ sum \ Grenzen_ {k = 1} ^ {n} {u_ {f_k} S_k \ overline {n} _k}, $$ wobei $ k $ – Anzahl der Nachbarn der Zelle $ V_ {i} $
2) Methode der kleinsten Quadrate: der Fehler
$$ \ sum \ limit_ {k = 1} ^ {n} {\ frac {1} {d_ {ik}} E_ {i, k} ^ {2}}, E_ {i, k} = \ nabla u_i \ cdot \ Delta r_ {i, k} + u_i-u_k $$ muss minimiert werden, daher erhalten wir die Komponenten von $ \ nabla u_i $
3) Interpolationsmethode. Der Wert des Gradienten wird aus den Werten der Gradientenvektorfunktion interpoliert.