Supposons que nous ayons une fonction $ u $ définie dans une boule de manière discrète: nous ne connaissons que les valeurs de $ u $ aux nœuds $ (i, j, k) $ de la grille sphérique, où $ i $ est une coordonnée de rayon, $ j $ est une coordonnée pour langle $ \ varphi $, $ k $ est une coordonnée pour langle $ \ psi $ .
Considérons une fonction vectorielle $$ \ nabla u_ {i, j, k} = \ left (\ frac {\ partial u} {\ partial r} _ {i, j, k}, \ frac {1} {r_i \ sin \ psi_k} \ frac {\ partial u} {\ partial \ varphi} _ {i, j, k}, \ frac {1} {r_i} \ frac {\ partial u} {\ partial \ psi} _ {i, j, k} \ right) – $$ gradient de $ u $.
Jai besoin de connaître les valeurs de $ \ nabla u_ {i, j, k} $ sur laxe z en coordonnées cartésiennes, ce qui correspond à $ \ psi = 0 $ – axe en coordonnées sphériques, mais nous ne pouvons pas utiliser la formule ci-dessus, car dans le cas où $ \ psi = 0 $ le deuxième terme vire à linfini.
En fait, nous pouvons trouver les valeurs de $ \ frac {\ partial u} {\ partial z} $ avec laide de la formule de la dérivée numérique, mais nous avons un problème avec la recherche de $ \ frac {\ partial u} {\ partial x} $, $ \ frac {\ partial u} {\ partial y} $, car la grille nest pas rectangulaire. Pourriez-vous maider avec ce truc et me dire quoi faire?
Commentaires
- Navez-vous pas pu calculer la dérivée numérique dans $ (r, \ varphi, \ psi) $ système de coordonnées? Cela devrait vous donner un vecteur que vous pouvez ensuite projeter sur les axes $ x $ – $ y $ – et $ z $ -pour vous donner les composants $ x $ – $ y $ – et $ z $ du dégradé
- Non, nous ne pouvons pas calculer la dérivée numérique, car pour $ \ psi = 0 $ $ \ varphi $ -angle nest pas défini et nous avons une singularité dans la formule.
- Il y a probablement une solution en utilisant des quaternions, mais cest un peu difficile de comprendre à quoi cela ressemble exactement. votre nomencalture. Leffet que vous essayez de combattre est couramment appelé " gimbal-lock "
- Jai trouvé une variante pour traiter correctement ce problème: ici, nous pouvons utiliser la méthode des moindres carrés pour la reconstruction de gradient, mais je nai pas trouvé dexplication exacte, comment lutiliser
- Peut-être ' est le cas – pour $ u $$ moyennement bien comporté – que $ \ lim _ {\ psi \ to 0} \ frac {1} {\ sin \ psi} \ frac {\ partial u} {\ partial \ phi} = 0 $. Mais je ne ' t pense que la composante médiane de votre vecteur a un sens, donc si vous ' branchez-la dans une équation différentielle polaire coordonnées, léquation différentielle peut également ne donner aucun poids à la coordonnée médiane.
Réponse
Il y a 3 façons de éviter cette situation, mais avant utilisation il faut vérifier si cette méthode convient en raison dune erreur de calcul:
1) Méthode de la cellule Green-Gauss: ici la définition du gradient est utilisée:
$$ \ nabla u_i \ approx \ frac {1} {V_ {i}} \ int \ limits _ {\ partial V_i} ud \ overline {S} \ approx \ sum \ limits_ {k = 1} ^ {n} {u_ {f_k} S_k \ overline {n} _k}, $$ où $ k $ – nombre de voisins de la cellule $ V_ {i} $
2) Méthode des moindres carrés: lerreur
$$ \ sum \ limits_ {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 $$ doit être minimisé, donc nous obtenons les composants de $ \ nabla u_i $
3) Méthode dinterpolation. La valeur du gradient est interpolée à partir des valeurs de la fonction vectorielle du gradient.