सेजमथ में पर्टूबेशन सिद्धांत

Sep 22 2020

मैंने ऋषि का उपयोग करके बहुपत्नी को छांटने के बारे में प्रलेखन देखा है, लेकिन मैं इस बात पर अड़ा हुआ हूं कि मैं वास्तव में इसे अपने काम में कैसे लागू कर सकता हूं ...

मैं वर्तमान में खोजने की कोशिश कर रहा हूँ ... रिकेटी टेंसर एक हैरान मीट्रिक मीट्रिक के लिए। नि: शुल्क स्केलर की छोटी मात्रा को जोड़ना (इस मामले में, 2) गणना समय को बहुत बढ़ा देता है क्योंकि वर्तमान में ऋषि समाधान की गणना करने का प्रयास कर रहा है। समस्या यह है, मुझे सटीक समाधान की आवश्यकता नहीं है, केवल 'पहला आदेश' समाधान है। इन गणनाओं को हाथ से करते समय, उन शब्दों को फेंकना आसान है जिनकी आपको आवश्यकता नहीं है क्योंकि वे द्विघात क्रम या उच्चतर हैं, लेकिन मैं ऋषि का उपयोग करके ऐसा करने में सक्षम होना चाहता हूं ... मूल रूप से, मैं जानना चाहता हूं कि क्या मैं कर सकता हूं गणना के दौरान उच्च क्रम की शर्तों को फेंकने के लिए ऋषि को बताएं ताकि गणना का समय कम हो जाए।

पुनश्च: मैंने उपयोग करने के लिए प्रतीकात्मक छल्ले का उपयोग करने का प्रयास किया है $\mathcal{O}$ संकेतन और यह पूरी तरह से कार्यों पर काम करता है लेकिन यह काम नहीं करता है जब इसे लोरेंट्ज़ियन मीट्रिक के साथ विलय करने का प्रयास किया जाता है।

उदाहरण के लिए, यदि मेरे गड़बड़ी हैं $\psi$ तथा $\zeta$ मैं उन ऋषियों पर विचार नहीं करना चाहता जो समग्र हैं $\zeta$$\ psi $ या $ \ zeta ^ 2 $ या $ \ psi ^ 2 $ आदि।

जवाब

Jollywatt Sep 22 2020 at 10:14

आप एक छोटे पैरामीटर की शुरुआत करके इसे पूरा कर सकते हैं $\epsilon$और का उपयोग कर set_calc_order। यहाँ एक हैरान Schwartzchild मीट्रिक के लिए रिकसी स्केलर की गणना करने का एक उदाहरण है$\mathcal{O}(\epsilon^2)$।

पहले ऋषि में कई गुना सेट करें:

%display latex
M = Manifold(4, 'M', latex_name=r'\mathcal{M}', structure='Lorentzian')
chart.<t,r,th,ph> = M.chart(r"t r:(0,+oo) th:(0,pi):\theta ph:(0,2*pi):\phi")
m = var('m')
assume(m > 0)

एक प्रतीकात्मक infinitesimal पैरामीटर का परिचय दें:

eps = var('epsilon')

मैट्रिक (या स्केलर फ़ील्ड या जो भी आप चाहते हैं) का उपयोग करके परिभाषित करें eps:

g = M.metric()
g[0,0] = -(1-2*m/r) + eps
g[1,1] = 1/(1-2*m/r) + eps
g[2,2] = r^2
g[3,3] = (r*sin(th))^2
g.display()

$$\newcommand{\Bold}[1]{\mathbf{#1}}g = \left( \epsilon + \frac{2 \, m}{r} - 1 \right) \mathrm{d} t\otimes \mathrm{d} t + \left( \epsilon - \frac{1}{\frac{2 \, m}{r} - 1} \right) \mathrm{d} r\otimes \mathrm{d} r + r^{2} \mathrm{d} {\theta}\otimes \mathrm{d} {\theta} + r^{2} \sin\left({\theta}\right)^{2} \mathrm{d} {\phi}\otimes \mathrm{d} {\phi}$$

बिना छंटनी के पूर्ण रिक्की स्केलर है:

ricci = g.ricci_scalar()
ricci.expr().factor()

$$\newcommand{\Bold}[1]{\mathbf{#1}}\frac{2 \, {\left(4 \, \epsilon^{3} m^{2} r^{2} - 4 \, \epsilon^{3} m r^{3} + \epsilon^{3} r^{4} + 16 \, \epsilon^{2} m^{3} r - 28 \, \epsilon^{2} m^{2} r^{2} + 12 \, \epsilon^{2} m r^{3} - \epsilon^{2} r^{4} + 16 \, \epsilon m^{4} - 48 \, \epsilon m^{3} r + 32 \, \epsilon m^{2} r^{2} - 4 \, \epsilon m r^{3} - \epsilon r^{4} - 12 \, m^{4} + 12 \, m^{3} r + 2 \, m^{2} r^{2} - 4 \, m r^{3} + r^{4}\right)} \epsilon}{{\left(2 \, \epsilon m - \epsilon r - r\right)}^{2} {\left(\epsilon r + 2 \, m - r\right)}^{2} r^{2}}$$

का क्रम निर्धारित करें $\epsilon$के साथ set_calc_order। अब अभिकलन को काट दिया जाता है$\mathcal O(\epsilon^2)$ खुद ब खुद:

g.set_calc_order(eps, 2)

ricci = g.ricci_scalar()
ricci.expr().factor()

$$\newcommand{\Bold}[1]{\mathbf{#1}}-\frac{2 \, {\left(96 \, \epsilon m^{6} - 224 \, \epsilon m^{5} r + 192 \, \epsilon m^{4} r^{2} - 64 \, \epsilon m^{3} r^{3} + 6 \, \epsilon m r^{5} - \epsilon r^{6} + 24 \, m^{5} r - 36 \, m^{4} r^{2} + 8 \, m^{3} r^{3} + 10 \, m^{2} r^{4} - 6 \, m r^{5} + r^{6}\right)} \epsilon}{{\left(2 \, m - r\right)}^{3} r^{5}}$$