Supongamos que tenemos una función $ u $ definida en una bola de forma discreta: conocemos solo los valores de $ u $ en los nodos $ (i, j, k) $ de la cuadrícula esférica, donde $ i $ es una coordenada de radio, $ j $ es una coordenada para el ángulo $ \ varphi $, $ k $ es una coordenada para el ángulo $ \ psi $ .
Considere una función vectorial $$ \ nabla u_ {i, j, k} = \ left (\ frac {\ partial u} {\ partial r} _ {i, j, k}, \ frac {1} {r_i \ sin \ psi_k} \ frac {\ parcial u} {\ parcial \ varphi} _ {i, j, k}, \ frac {1} {r_i} \ frac {\ parcial u} {\ parcial \ psi} _ {i, j, k} \ right) – $$ gradiente de $ u $.
Necesito saber los valores de $ \ nabla u_ {i, j, k} $ en el eje z en coordenadas cartesianas, que corresponde a $ \ psi = 0 $ – eje en coordenadas esféricas, pero no podemos usar la fórmula anterior, porque en el caso $ \ psi = 0 $ el segundo término se convierte en infinito.
En realidad, podemos encontrar los valores de $ \ frac {\ parcial u} {\ parcial z} $ con la ayuda de la fórmula de la derivada numérica, pero tenemos un problema para encontrar $ \ frac {\ parcial u} {\ parcial x} $, $ \ frac {\ parcial u} {\ parcial y} $, porque la cuadrícula no es rectangular. ¿Podrías ayudarme con esto y aconsejarme qué hacer?
Comentarios
- ¿No podrías calcular la derivada numérica en $ (r, \ varphi, \ psi) $ sistema de coordenadas? Esto debería darle un vector que luego puede proyectar en los ejes $ x $ – $ y $ – y $ z $ para obtener los componentes $ x $ – $ y $ – y $ z $ del gradiente
- No, no podemos calcular la derivada numérica, porque para $ \ psi = 0 $ $ \ varphi $ -angle no está definido y tenemos singularidad en la fórmula.
- Es probable que haya una solución usando cuaterniones, pero es un poco complicado averiguar cómo se ve exactamente como wrt. tu nomencaltura. El efecto contra el que intentas combatir se denomina comúnmente " gimbal-lock "
- Encontré una variante para lidiar con esto correctamente: aquí podemos usar el método de mínimos cuadrados para la reconstrucción del gradiente, pero no encontré una explicación exacta, cómo usarlo
- Quizás ' sea el caso, para $ u $$ moderadamente bien portados, que $ \ lim _ {\ psi \ to 0} \ frac {1} {\ sin \ psi} \ frac {\ parcial u} {\ parcial \ phi} = 0 $. Pero no ' no creo que el componente medio de su vector tenga significado, así que si ' vuelve a conectar esto en una ecuación diferencial en polar coordina la ecuación diferencial también podría no dar peso a la coordenada media.
Respuesta
Hay 3 formas de evitar esta situación, pero antes de su uso hay que comprobar si esta forma es adecuada debido a un error de cálculo:
1) Método de celda Green-Gauss: aquí se utiliza la definición de gradiente:
$$ \ nabla u_i \ approx \ frac {1} {V_ {i}} \ int \ limits _ {\ parcial V_i} ud \ overline {S} \ approx \ sum \ limits_ {k = 1} ^ {n} {u_ {f_k} S_k \ overline {n} _k}, $$ donde $ k $ – números de vecinos de la celda $ V_ {i} $
2) Método de mínimos cuadrados: el error
$$ \ 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 $$ deben minimizarse, de ahí obtenemos los componentes de $ \ nabla u_i $
3) Método de interpolación. El valor del gradiente se interpola a partir de los valores de la función vectorial de gradiente.