Să presupunem că avem o funcție $ u $ definită într-o minge într-un mod discret: cunoaștem doar valorile $ u $ în nodurile $ (i, j, k) $ ale grilei sferice, unde $ i $ este o coordonată de rază, $ j $ este o coordonată pentru unghiul $ \ varphi $, $ k $ este o coordonată pentru unghiul $ \ psi $ .

Luați în considerare o funcție vectorială $$ \ 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 $.

Trebuie să știu valorile $ \ nabla u_ {i, j, k} $ pe axa z în coordonate carteziene, care corespunde cu $ \ psi = 0 $ – axa în coordonate sferice, dar nu putem folosi formula de mai sus, deoarece în cazul în care $ \ psi = 0 $ al doilea termen se transformă în infinit.

De fapt, putem găsi valorile $ \ frac {\ partial u} {\ partial z} $ cu ajutorul formulei derivate numerice, dar avem o problemă cu găsirea $ \ frac {\ partial u} {\ partial x} $, $ \ frac {\ partial u} {\ partial y} $, deoarece grila nu este dreptunghiulară. M-ați putea ajuta cu aceste lucruri și m-ați sfătui să fac?

Comentarii

  • Nu ați putea calcula derivata numerică în $ (r, \ varphi, \ psi) $ sistem de coordonate? Acest lucru ar trebui să vă ofere un vector pe care îl puteți proiecta apoi pe $ x $ – $ y $ – și $ z $ -ax pentru a vă oferi $ x $ – $ y $ – și $ z $ -componenții gradientului
  • Nu, nu putem calcula derivata numerică, deoarece pentru $ \ psi = 0 $ $ \ varphi $ -angle nu este definit și avem singularitate în formulă.
  • Este probabil o soluție folosind cuaternion, dar este cam dificil să-ți dai seama cum arată exact asta. nomencaltura ta. Efectul pe care încercați să îl luptați este denumit în mod obișnuit " gimbal-lock "
  • Am găsit o variantă care să trateze corect aceste lucruri: aici putem folosi metoda celor mai mici pătrate pentru reconstrucția gradientului, dar nu am găsit explicații exacte, cum să le folosim
  • Poate că ' este cazul – pentru $ u $$ moderat bine purtat – că $ \ lim _ {\ psi \ to 0} \ frac {1} {\ sin \ psi} \ frac {\ partial u} {\ partial \ phi} = 0 $. Dar nu ' nu cred că componenta de mijloc a vectorului tău are sens, deci dacă ' re conectezi acest lucru la o ecuație diferențială în polar coordonatele ecuația diferențială ar putea, de asemenea, să nu dea greutate coordonatei de mijloc.

Răspuns

Există 3 moduri de a evitați această situație, dar înainte de utilizare trebuie să verificați dacă acest mod este potrivit datorită unei erori de calcul:

1) Metoda celulei Green-Gauss: aici este utilizată definiția gradientului:

$$ \ 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}, $$ unde $ k $ – numărul vecinilor celulei $ V_ {i} $

2) Metoda celor mai mici pătrate: eroarea

$$ \ 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 $$ trebuie să fie reduse la minimum, prin urmare obținem componentele $ \ nabla u_i $

3) Metoda de interpolare. Valoarea gradientului este interpolată din valorile funcției vector gradient.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *