Oletetaan, että funktio $ u $ on määritelty pallossa erillisellä tavalla: tiedämme vain $ u $: n arvot pallomaisen ruudukon solmuissa $ (i, j, k) $, missä $ i $ on sädekoordinaatti, $ j $ on kulman $ \ varphi $ koordinaatti, $ k $ on kulman $ \ psi $ koordinaatti .
Harkitse vektorifunktiota $$ \ nabla u_ {i, j, k} = \ left (\ frac {\ partial u} {\ partituali} _ {i, j, k}, \ frac {1} {r_i \ sin \ psi_k} \ frac {\ partial u} {\ partituuli \ varphi} _ {i, j, k}, \ frac {1} {r_i} \ frac {\ osio u} {\ osittainen \ psi} _ {i, j, k} \ oikea) – $$ -gradientti $ u $.
Minun täytyy tietää arvot $ \ nabla u_ {i, j, k} $ z-akselilla suorakulmaisissa koordinaateissa, mikä vastaa $ \ psi = 0 $ – akselia pallomaisissa koordinaateissa, mutta emme voi käyttää yllä olevaa kaavaa, koska jos $ \ psi = 0 $, toinen termi muuttuu äärettömäksi. / p>
Voimme todellakin löytää $ \ frac {\ partial u} {\ partitu z} $: n arvot numeerisen johdannaisen kaavan avulla, mutta meillä on ongelmia $ \ frac {\: n löytämisessä osittainen u} {\ partial x} $, $ \ frac {\ partituali}, \ \ ruudukko ei ole suorakulmainen. Voisitko auttaa minua tässä asiassa ja neuvoa mitä tehdä?
Kommentit
- Etkö voinut laskea $ (r, \ varphi, \ psi) $ koordinaattijärjestelmä? Tämän pitäisi antaa vektori, jonka voit heijastaa $ x $ – $ y $ – ja $ z $ -akseleihin, jotta saat gradientin $ x $ – $ y $ – ja $ z $ -komponentit
- Ei, emme voi laskea numeerista johdannaista, koska arvolle $ \ psi = 0 $ $ \ varphi $ -anglea ei ole määritelty ja kaavassa on singulariteetti.
- On todennäköisesti ratkaisu käyttäen kvaternioneja, mutta sen tavallaan on hankalaa selvittää miltä se näyttää wrt: ltä. nimikkeellesi. Efektiä, jota yrität taistella, kutsutaan yleisesti nimellä " gimbal-lock "
- Löysin yhden vaihtoehdon käsitellä tätä asiaa oikein: tässä voimme käyttää pienimmän neliön menetelmää kaltevuuden rekonstruoinnissa, mutta en löytänyt tarkkaa selitystä siitä, miten sitä käytetään
- Ehkä se ' on tapaus – kohtalaisen hyvin käyttäytyvälle $ u $$ – että $ \ lim _ {\ psi \ – 0} \ frac {1} {\ sin \ psi} \ frac {\ osittainen u} {\ osittainen \ phi} = 0 $. Mutta en ' usko, että vektorisi keskikomponentilla on merkitystä, joten jos ' kytket tämän uudelleen polaariseen differentiaaliyhtälöön koordinaatit differentiaaliyhtälö ei myöskään voi antaa painoa keskikoordinaatille.
Vastaa
On 3 tapaa välttää tätä tilannetta, mutta ennen käyttöä on tarkistettava, onko tämä tapa sopiva laskuvirheen takia:
1) Green-Gauss-solumenetelmä: tässä käytetään gradientin määritelmää:
$$ \ nabla u_i \ approx \ frac {1} {V_ {i}} \ int \ limits _ {\ osittainen V_i} ud \ yliviiva {S} \ approx \ summa \ limits_ {k = 1} ^ {n} {u_ {f_k} S_k \ overline {n} _k}, $$ missä $ k $ – solun $ V_ naapureiden lukumäärä {i} $
2) Pienimmän neliösumman menetelmä: virhe
$$ \ 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 $$ on minimoitava, joten saamme komponentit $ \ nabla u_i $
3) Interpolointimenetelmä. Gradientin arvo interpoloidaan gradientti-vektorifunktion arvoista.