{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# SageMath para físicos\n", "***\n", "Rogério T. C." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "## Aula IV.2" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Equações de Friedmann\n", "Baseado [neste exemplo](https://nbviewer.jupyter.org/github/sagemanifolds/SageManifolds/blob/master/Worksheets/v1.3/SM_Friedmann_equations.ipynb)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%display latex\n", "reset()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "**Princípio cosmológico**\n", "\n", "* Observações sugerem que nosso universo é espacialmente homogêneo e isotrópico.\n", "\n", "* Homogeneidade implica em invariância na curvatura em translações (vetores de Killing).\n", "\n", "- Isotropia significa invariância por rotações (vetores de Killing)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Em relatividade geral, isso se traduz na afirmação de que o universo pode ser folheado em fatias do tipo-espaço espaço, de modo que cada fatia tridimensional seja maximalmente simétrica (Topologicamente $\\mathbb{R} \\times \\Sigma$, com $\\Sigma$ maximalmente simétrico). " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "A métrica de um espaço-tempo do tipo $\\mathbb{R} \\times \\Sigma$ pode ser escrita como\n", "\n", "$$\\begin{equation}\n", "ds^2=-dt^2+a^2(t)\\left(\\frac{dr^2}{1-kr^2}+r^2d\\Omega^2\\right).\n", "\\end{equation}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Que é a famosa métrica de Friedmann-Robertson-Walker (FRW)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Vamos usar a equação de Einstein para encontrar uma equação dinâmica para o fator de escala $a(t)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Declarações iniciais" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Declarando um espaço-tempo de 4 dimensões com estrutura Lorenziana." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}FRW\n", "\\end{math}" ], "text/plain": [ "4-dimensional Lorentzian manifold FRW" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "4-dimensional Lorentzian manifold FRW\n" ] } ], "source": [ "frw = Manifold(4, 'FRW', structure='Lorentzian')\n", "show(frw)\n", "print(frw)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Declarando as cartas (coordenadas) do espaço-tempo" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(FRW,(t, r, {\\theta}, {\\phi})\\right)\n", "\\end{math}" ], "text/plain": [ "Chart (FRW, (t, r, th, ph))" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ch. = frw.chart(r't r:[0,+oo) th:[0,pi]:\\theta ph:[0,2*pi):\\phi')\n", "Ch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Precisaremos de variaveis simbólicas para constange gravitacional $G$, a constante cosmológica $\\Lambda$ e o parâmetro de curvatura $k$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(G, \\Lambda, k\\right)\n", "\\end{math}" ], "text/plain": [ "(G, Lambda, k)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "var('G, Lambda, k', domain='real')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Além de um campo escalar $a$ para o fator de escala." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "a = frw.scalar_field(function('a')(t), name='a')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} a:& FRW & \\longrightarrow & \\mathbb{R} \\\\ & \\left(t, r, {\\theta}, {\\phi}\\right) & \\longmapsto & a\\left(t\\right) \\end{array}\n", "\\end{math}" ], "text/plain": [ "a: FRW --> R\n", " (t, r, th, ph) |--> a(t)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tensores fundamentais" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos agora declarar a métrica de FRW e iniciar suas componentes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$ds^2=-dt^2+a^2(t)\\frac{dr^2}{1-kr^2}+a^2(t)r^2 d\\theta^2+a^2(t)r^2\\sin^2\\theta d\\phi^2$$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lorentzian metric g on the 4-dimensional Lorentzian manifold FRW\n" ] } ], "source": [ "g = frw.metric()\n", "print(g)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}g = -\\mathrm{d} t\\otimes \\mathrm{d} t + \\left( -\\frac{a\\left(t\\right)^{2}}{k r^{2} - 1} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + r^{2} a\\left(t\\right)^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + r^{2} a\\left(t\\right)^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}\n", "\\end{math}" ], "text/plain": [ "g = -dt*dt - a(t)^2/(k*r^2 - 1) dr*dr + r^2*a(t)^2 dth*dth + r^2*a(t)^2*sin(th)^2 dph*dph" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g[0,0] = -1\n", "g[1,1] = a*a/(1 - k*r^2)\n", "g[2,2] = a*a*r^2\n", "g[3,3] = a*a*(r*sin(th))^2\n", "g.display()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{rrrr}\n", "-1 & 0 & 0 & 0 \\\\\n", "0 & -\\frac{a\\left(t\\right)^{2}}{k r^{2} - 1} & 0 & 0 \\\\\n", "0 & 0 & r^{2} a\\left(t\\right)^{2} & 0 \\\\\n", "0 & 0 & 0 & r^{2} a\\left(t\\right)^{2} \\sin\\left({\\theta}\\right)^{2}\n", "\\end{array}\\right)\n", "\\end{math}" ], "text/plain": [ "[ -1 0 0 0]\n", "[ 0 -a(t)^2/(k*r^2 - 1) 0 0]\n", "[ 0 0 r^2*a(t)^2 0]\n", "[ 0 0 0 r^2*a(t)^2*sin(th)^2]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g[:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Conexão de Levi-Civita" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Levi-Civita connection nabla_g associated with the Lorentzian metric g on the 4-dimensional Lorentzian manifold FRW\n" ] } ], "source": [ "nabla = g.connection()\n", "print(nabla)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\nabla_{g}\n", "\\end{math}" ], "text/plain": [ "Levi-Civita connection nabla_g associated with the Lorentzian metric g on the 4-dimensional Lorentzian manifold FRW" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nabla" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Símbolos de Christoffel" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{lcl} \\Gamma_{ \\phantom{\\, t} \\, r \\, r }^{ \\, t \\phantom{\\, r} \\phantom{\\, r} } & = & -\\frac{a\\left(t\\right) \\frac{\\partial\\,a}{\\partial t}}{k r^{2} - 1} \\\\ \\Gamma_{ \\phantom{\\, t} \\, {\\theta} \\, {\\theta} }^{ \\, t \\phantom{\\, {\\theta}} \\phantom{\\, {\\theta}} } & = & r^{2} a\\left(t\\right) \\frac{\\partial\\,a}{\\partial t} \\\\ \\Gamma_{ \\phantom{\\, t} \\, {\\phi} \\, {\\phi} }^{ \\, t \\phantom{\\, {\\phi}} \\phantom{\\, {\\phi}} } & = & r^{2} a\\left(t\\right) \\sin\\left({\\theta}\\right)^{2} \\frac{\\partial\\,a}{\\partial t} \\\\ \\Gamma_{ \\phantom{\\, r} \\, t \\, r }^{ \\, r \\phantom{\\, t} \\phantom{\\, r} } & = & \\frac{\\frac{\\partial\\,a}{\\partial t}}{a\\left(t\\right)} \\\\ \\Gamma_{ \\phantom{\\, r} \\, r \\, r }^{ \\, r \\phantom{\\, r} \\phantom{\\, r} } & = & -\\frac{k r}{k r^{2} - 1} \\\\ \\Gamma_{ \\phantom{\\, r} \\, {\\theta} \\, {\\theta} }^{ \\, r \\phantom{\\, {\\theta}} \\phantom{\\, {\\theta}} } & = & k r^{3} - r \\\\ \\Gamma_{ \\phantom{\\, r} \\, {\\phi} \\, {\\phi} }^{ \\, r \\phantom{\\, {\\phi}} \\phantom{\\, {\\phi}} } & = & {\\left(k r^{3} - r\\right)} \\sin\\left({\\theta}\\right)^{2} \\\\ \\Gamma_{ \\phantom{\\, {\\theta}} \\, t \\, {\\theta} }^{ \\, {\\theta} \\phantom{\\, t} \\phantom{\\, {\\theta}} } & = & \\frac{\\frac{\\partial\\,a}{\\partial t}}{a\\left(t\\right)} \\\\ \\Gamma_{ \\phantom{\\, {\\theta}} \\, r \\, {\\theta} }^{ \\, {\\theta} \\phantom{\\, r} \\phantom{\\, {\\theta}} } & = & \\frac{1}{r} \\\\ \\Gamma_{ \\phantom{\\, {\\theta}} \\, {\\phi} \\, {\\phi} }^{ \\, {\\theta} \\phantom{\\, {\\phi}} \\phantom{\\, {\\phi}} } & = & -\\cos\\left({\\theta}\\right) \\sin\\left({\\theta}\\right) \\\\ \\Gamma_{ \\phantom{\\, {\\phi}} \\, t \\, {\\phi} }^{ \\, {\\phi} \\phantom{\\, t} \\phantom{\\, {\\phi}} } & = & \\frac{\\frac{\\partial\\,a}{\\partial t}}{a\\left(t\\right)} \\\\ \\Gamma_{ \\phantom{\\, {\\phi}} \\, r \\, {\\phi} }^{ \\, {\\phi} \\phantom{\\, r} \\phantom{\\, {\\phi}} } & = & \\frac{1}{r} \\\\ \\Gamma_{ \\phantom{\\, {\\phi}} \\, {\\theta} \\, {\\phi} }^{ \\, {\\phi} \\phantom{\\, {\\theta}} \\phantom{\\, {\\phi}} } & = & \\frac{\\cos\\left({\\theta}\\right)}{\\sin\\left({\\theta}\\right)} \\end{array}\n", "\\end{math}" ], "text/plain": [ "Gam^t_r,r = -a(t)*d(a)/dt/(k*r^2 - 1) \n", "Gam^t_th,th = r^2*a(t)*d(a)/dt \n", "Gam^t_ph,ph = r^2*a(t)*sin(th)^2*d(a)/dt \n", "Gam^r_t,r = d(a)/dt/a(t) \n", "Gam^r_r,r = -k*r/(k*r^2 - 1) \n", "Gam^r_th,th = k*r^3 - r \n", "Gam^r_ph,ph = (k*r^3 - r)*sin(th)^2 \n", "Gam^th_t,th = d(a)/dt/a(t) \n", "Gam^th_r,th = 1/r \n", "Gam^th_ph,ph = -cos(th)*sin(th) \n", "Gam^ph_t,ph = d(a)/dt/a(t) \n", "Gam^ph_r,ph = 1/r \n", "Gam^ph_th,ph = cos(th)/sin(th) " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.christoffel_symbols_display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tensor de Ricci" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mathrm{Ric}\\left(g\\right) = -\\frac{3 \\, \\frac{\\partial^2\\,a}{\\partial t ^ 2}}{a\\left(t\\right)} \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( -\\frac{2 \\, \\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} + a\\left(t\\right) \\frac{\\partial^2\\,a}{\\partial t ^ 2} + 2 \\, k}{k r^{2} - 1} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + \\left( 2 \\, r^{2} \\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} + r^{2} a\\left(t\\right) \\frac{\\partial^2\\,a}{\\partial t ^ 2} + 2 \\, k r^{2} \\right) \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + {\\left(2 \\, r^{2} \\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} + r^{2} a\\left(t\\right) \\frac{\\partial^2\\,a}{\\partial t ^ 2} + 2 \\, k r^{2}\\right)} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}\n", "\\end{math}" ], "text/plain": [ "Ric(g) = -3*d^2(a)/dt^2/a(t) dt*dt - (2*(d(a)/dt)^2 + a(t)*d^2(a)/dt^2 + 2*k)/(k*r^2 - 1) dr*dr + (2*r^2*(d(a)/dt)^2 + r^2*a(t)*d^2(a)/dt^2 + 2*k*r^2) dth*dth + (2*r^2*(d(a)/dt)^2 + r^2*a(t)*d^2(a)/dt^2 + 2*k*r^2)*sin(th)^2 dph*dph" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ricci = nabla.ricci()\n", "Ricci.display()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{lcl} \\mathrm{Ric}\\left(g\\right)_{ \\, t \\, t }^{ \\phantom{\\, t}\\phantom{\\, t} } & = & -\\frac{3 \\, \\frac{\\partial^2\\,a}{\\partial t ^ 2}}{a\\left(t\\right)} \\\\ \\mathrm{Ric}\\left(g\\right)_{ \\, r \\, r }^{ \\phantom{\\, r}\\phantom{\\, r} } & = & -\\frac{2 \\, \\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} + a\\left(t\\right) \\frac{\\partial^2\\,a}{\\partial t ^ 2} + 2 \\, k}{k r^{2} - 1} \\\\ \\mathrm{Ric}\\left(g\\right)_{ \\, {\\theta} \\, {\\theta} }^{ \\phantom{\\, {\\theta}}\\phantom{\\, {\\theta}} } & = & 2 \\, r^{2} \\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} + r^{2} a\\left(t\\right) \\frac{\\partial^2\\,a}{\\partial t ^ 2} + 2 \\, k r^{2} \\\\ \\mathrm{Ric}\\left(g\\right)_{ \\, {\\phi} \\, {\\phi} }^{ \\phantom{\\, {\\phi}}\\phantom{\\, {\\phi}} } & = & {\\left(2 \\, r^{2} \\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} + r^{2} a\\left(t\\right) \\frac{\\partial^2\\,a}{\\partial t ^ 2} + 2 \\, k r^{2}\\right)} \\sin\\left({\\theta}\\right)^{2} \\end{array}\n", "\\end{math}" ], "text/plain": [ "Ric(g)_t,t = -3*d^2(a)/dt^2/a(t) \n", "Ric(g)_r,r = -(2*(d(a)/dt)^2 + a(t)*d^2(a)/dt^2 + 2*k)/(k*r^2 - 1) \n", "Ric(g)_th,th = 2*r^2*(d(a)/dt)^2 + r^2*a(t)*d^2(a)/dt^2 + 2*k*r^2 \n", "Ric(g)_ph,ph = (2*r^2*(d(a)/dt)^2 + r^2*a(t)*d^2(a)/dt^2 + 2*k*r^2)*sin(th)^2 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ricci.display_comp()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Escalar de Ricci" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} \\mathrm{r}\\left(g\\right):& FRW & \\longrightarrow & \\mathbb{R} \\\\ & \\left(t, r, {\\theta}, {\\phi}\\right) & \\longmapsto & \\frac{6 \\, {\\left(\\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} + a\\left(t\\right) \\frac{\\partial^2\\,a}{\\partial t ^ 2} + k\\right)}}{a\\left(t\\right)^{2}} \\end{array}\n", "\\end{math}" ], "text/plain": [ "r(g): FRW --> R\n", " (t, r, th, ph) |--> 6*((d(a)/dt)^2 + a(t)*d^2(a)/dt^2 + k)/a(t)^2" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ricci_scalar = g.ricci_scalar()\n", "Ricci_scalar.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tensor energia momento" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Introduziremos o tensor energia-momento de fluido perfeito. Para isso precisaremos de um campos escalar para a pressão $p(t)$, um campo escalar para a densidade de energia $\\rho(t)$ e um tensor covariante do tipo tempo (1-forma)." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "rho = frw.scalar_field(function('rho')(t), name='rho', latex_name=r'\\rho')\n", "p = frw.scalar_field(function('p')(t), name='p')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\rho\n", "\\end{math}" ], "text/plain": [ "Scalar field rho on the 4-dimensional Lorentzian manifold FRW" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Scalar field rho on the 4-dimensional Lorentzian manifold FRW\n" ] } ], "source": [ "show(rho)\n", "print(rho)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vetor" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vector field u on the 4-dimensional Lorentzian manifold FRW\n" ] }, { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}u = \\frac{\\partial}{\\partial t }\n", "\\end{math}" ], "text/plain": [ "u = d/dt" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u = frw.vector_field('u')\n", "u[0] = 1\n", "print(u)\n", "u.display()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}-1\n", "\\end{math}" ], "text/plain": [ "-1" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(u,u).expr()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$g(u,u) \\Leftrightarrow g_{\\mu\\nu}u^\\mu u^\\nu$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`u.dot(u)` é equivalente a `g(u,u)`." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}-1\n", "\\end{math}" ], "text/plain": [ "-1" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u.dot(u).expr()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "u_form = u.down(g,0) #1-forma dual a u (baixar índice)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form on the 4-dimensional Lorentzian manifold FRW\n" ] }, { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}-\\mathrm{d} t\n", "\\end{math}" ], "text/plain": [ "-dt" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(u_form)\n", "u_form.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tensor energia momento\n", "$$T_{\\mu\\nu} = (p+\\rho)u_\\mu u_\\nu+pg_{\\mu\\nu}$$\n", "ou\n", "$$T = (p+\\rho)u \\otimes u+pg$$" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "T = (rho+p)*(u_form*u_form) + p*g\n", "T.set_name('T')" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Field of symmetric bilinear forms T on the 4-dimensional Lorentzian manifold FRW\n" ] }, { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}T = \\rho\\left(t\\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( -\\frac{a\\left(t\\right)^{2} p\\left(t\\right)}{k r^{2} - 1} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + r^{2} a\\left(t\\right)^{2} p\\left(t\\right) \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + r^{2} a\\left(t\\right)^{2} p\\left(t\\right) \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}\n", "\\end{math}" ], "text/plain": [ "T = rho(t) dt*dt - a(t)^2*p(t)/(k*r^2 - 1) dr*dr + r^2*a(t)^2*p(t) dth*dth + r^2*a(t)^2*p(t)*sin(th)^2 dph*dph" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(T)\n", "T.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Equação de Einstein\n", "$$R_{\\mu\\nu} - \\frac{1}{2}Rg_{\\mu\\nu} + \\Lambda g_{\\mu\\nu} = 8\\pi G T_{\\mu\\nu}$$\n", "ou\n", "$$\\text{Ric}(g) - \\frac{1}{2}\\text{r}(g)g+\\Lambda g = 8\\pi G T$$" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "Ein = Ricci - Ricci_scalar/2*g + Lambda*g - (8*pi*G)*T" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "Ein.set_name('Ein')" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{lcl} Ein_{ \\, t \\, t }^{ \\phantom{\\, t}\\phantom{\\, t} } & = & -\\frac{8 \\, \\pi G a\\left(t\\right)^{2} \\rho\\left(t\\right) + \\Lambda a\\left(t\\right)^{2} - 3 \\, \\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} - 3 \\, k}{a\\left(t\\right)^{2}} \\\\ Ein_{ \\, r \\, r }^{ \\phantom{\\, r}\\phantom{\\, r} } & = & \\frac{8 \\, \\pi G a\\left(t\\right)^{2} p\\left(t\\right) - \\Lambda a\\left(t\\right)^{2} + \\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} + 2 \\, a\\left(t\\right) \\frac{\\partial^2\\,a}{\\partial t ^ 2} + k}{k r^{2} - 1} \\\\ Ein_{ \\, {\\theta} \\, {\\theta} }^{ \\phantom{\\, {\\theta}}\\phantom{\\, {\\theta}} } & = & -8 \\, \\pi G r^{2} a\\left(t\\right)^{2} p\\left(t\\right) + \\Lambda r^{2} a\\left(t\\right)^{2} - r^{2} \\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} - 2 \\, r^{2} a\\left(t\\right) \\frac{\\partial^2\\,a}{\\partial t ^ 2} - k r^{2} \\\\ Ein_{ \\, {\\phi} \\, {\\phi} }^{ \\phantom{\\, {\\phi}}\\phantom{\\, {\\phi}} } & = & -{\\left(8 \\, \\pi G r^{2} a\\left(t\\right)^{2} p\\left(t\\right) - \\Lambda r^{2} a\\left(t\\right)^{2} + r^{2} \\left(\\frac{\\partial\\,a}{\\partial t}\\right)^{2} + 2 \\, r^{2} a\\left(t\\right) \\frac{\\partial^2\\,a}{\\partial t ^ 2} + k r^{2}\\right)} \\sin\\left({\\theta}\\right)^{2} \\end{array}\n", "\\end{math}" ], "text/plain": [ "Ein_t,t = -(8*pi*G*a(t)^2*rho(t) + Lambda*a(t)^2 - 3*(d(a)/dt)^2 - 3*k)/a(t)^2 \n", "Ein_r,r = (8*pi*G*a(t)^2*p(t) - Lambda*a(t)^2 + (d(a)/dt)^2 + 2*a(t)*d^2(a)/dt^2 + k)/(k*r^2 - 1) \n", "Ein_th,th = -8*pi*G*r^2*a(t)^2*p(t) + Lambda*r^2*a(t)^2 - r^2*(d(a)/dt)^2 - 2*r^2*a(t)*d^2(a)/dt^2 - k*r^2 \n", "Ein_ph,ph = -(8*pi*G*r^2*a(t)^2*p(t) - Lambda*r^2*a(t)^2 + r^2*(d(a)/dt)^2 + 2*r^2*a(t)*d^2(a)/dt^2 + k*r^2)*sin(th)^2 " ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ein.display_comp()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Primeira equação de Friedman" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}-8 \\, \\pi G \\rho\\left(t\\right) - \\Lambda + \\frac{3 \\, \\frac{\\partial}{\\partial t}a\\left(t\\right)^{2}}{a\\left(t\\right)^{2}} + \\frac{3 \\, k}{a\\left(t\\right)^{2}} = 0\n", "\\end{math}" ], "text/plain": [ "-8*pi*G*rho(t) - Lambda + 3*diff(a(t), t)^2/a(t)^2 + 3*k/a(t)^2 == 0" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ein[0,0].expr().expand()==0" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left[-8 \\, \\pi G \\rho\\left(t\\right) - \\Lambda + \\frac{3 \\, \\frac{\\partial}{\\partial t}a\\left(t\\right)^{2}}{a\\left(t\\right)^{2}} + \\frac{3 \\, k}{a\\left(t\\right)^{2}} = 0\\right]\n", "\\end{math}" ], "text/plain": [ "[-8*pi*G*rho(t) - Lambda + 3*diff(a(t), t)^2/a(t)^2 + 3*k/a(t)^2 == 0]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eqs = [Ein[0,0].expr().expand()==0];eqs" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "eqs[0] += 8*pi*G*rho.expr()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}-\\Lambda + \\frac{3 \\, \\frac{\\partial}{\\partial t}a\\left(t\\right)^{2}}{a\\left(t\\right)^{2}} + \\frac{3 \\, k}{a\\left(t\\right)^{2}} = 8 \\, \\pi G \\rho\\left(t\\right)\n", "\\end{math}" ], "text/plain": [ "-Lambda + 3*diff(a(t), t)^2/a(t)^2 + 3*k/a(t)^2 == 8*pi*G*rho(t)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eqs[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Segunda Forma da equação de Einstein\n", "$$R_{\\mu\\nu} - \\Lambda g_{\\mu\\nu} = 8\\pi G \\left(T_{\\mu\\nu}-\\frac{1}{2}T g_{\\mu\\nu}\\right)$$\n", "ou\n", "$$\\text{Ric}(g) - \\Lambda g = 8\\pi G \\left(T-\\frac{1}{2}tr(T)g\\right)$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Taço de T" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\begin{array}{llcl} tr(T):& FRW & \\longrightarrow & \\mathbb{R} \\\\ & \\left(t, r, {\\theta}, {\\phi}\\right) & \\longmapsto & 3 \\, p\\left(t\\right) - \\rho\\left(t\\right) \\end{array}\n", "\\end{math}" ], "text/plain": [ "tr(T): FRW --> R\n", " (t, r, th, ph) |--> 3*p(t) - rho(t)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tr_T = T.up(g,0).trace()\n", "tr_T.set_name('tr(T)')\n", "tr_T.display()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "Ein2 = Ricci - Lambda*g - (8*pi*G)*(T - tr_T/2*g)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Segunda equação de Friedmann" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}-12 \\, \\pi G p\\left(t\\right) - 4 \\, \\pi G \\rho\\left(t\\right) + \\Lambda - \\frac{3 \\, \\frac{\\partial^{2}}{(\\partial t)^{2}}a\\left(t\\right)}{a\\left(t\\right)} = 0\n", "\\end{math}" ], "text/plain": [ "-12*pi*G*p(t) - 4*pi*G*rho(t) + Lambda - 3*diff(a(t), t, t)/a(t) == 0" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq2 = Ein2[0,0].expr().expand() == 0; eq2" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\Lambda - \\frac{3 \\, \\frac{\\partial^{2}}{(\\partial t)^{2}}a\\left(t\\right)}{a\\left(t\\right)} = 12 \\, \\pi G p\\left(t\\right) + 4 \\, \\pi G \\rho\\left(t\\right)\n", "\\end{math}" ], "text/plain": [ "Lambda - 3*diff(a(t), t, t)/a(t) == 12*pi*G*p(t) + 4*pi*G*rho(t)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq2+(4*pi*G*(rho+3*p)).expr().expand()" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "eqs.append(eq2+(4*pi*G*(rho+3*p)).expr().expand())" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}-\\Lambda + \\frac{3 \\, \\frac{\\partial}{\\partial t}a\\left(t\\right)^{2}}{a\\left(t\\right)^{2}} + \\frac{3 \\, k}{a\\left(t\\right)^{2}} = 8 \\, \\pi G \\rho\\left(t\\right)\n", "\\end{math}" ], "text/plain": [ "-Lambda + 3*diff(a(t), t)^2/a(t)^2 + 3*k/a(t)^2 == 8*pi*G*rho(t)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\Lambda - \\frac{3 \\, \\frac{\\partial^{2}}{(\\partial t)^{2}}a\\left(t\\right)}{a\\left(t\\right)} = 12 \\, \\pi G p\\left(t\\right) + 4 \\, \\pi G \\rho\\left(t\\right)\n", "\\end{math}" ], "text/plain": [ "Lambda - 3*diff(a(t), t, t)/a(t) == 12*pi*G*p(t) + 4*pi*G*rho(t)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for eq in eqs:\n", " show(eq)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Conservação e equação de estado" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\nabla_{g} T\n", "\\end{math}" ], "text/plain": [ "Tensor field nabla_g(T) of type (0,3) on the 4-dimensional Lorentzian manifold FRW" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Tensor field nabla_g(T) of type (0,3) on the 4-dimensional Lorentzian manifold FRW\n" ] } ], "source": [ "nt0 = nabla(T)\n", "show(nt0)\n", "print(nt0)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mbox{Tensor field of type (2,0) on the 4-dimensional Lorentzian manifold FRW}\n", "\\end{math}" ], "text/plain": [ "Tensor field of type (2,0) on the 4-dimensional Lorentzian manifold FRW" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T.up(g)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (2,1) on the 4-dimensional Lorentzian manifold FRW\n" ] }, { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mbox{Tensor field of type (2,1) on the 4-dimensional Lorentzian manifold FRW}\n", "\\end{math}" ], "text/plain": [ "Tensor field of type (2,1) on the 4-dimensional Lorentzian manifold FRW" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nT = nabla(T.up(g))\n", "print(nT)\n", "nT" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mbox{Vector field on the 4-dimensional Lorentzian manifold FRW}\n", "\\end{math}" ], "text/plain": [ "Vector field on the 4-dimensional Lorentzian manifold FRW" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cons_T0 = nT.trace(1,2)\n", "show(cons_T0)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( \\frac{3 \\, {\\left(p\\left(t\\right) + \\rho\\left(t\\right)\\right)} \\frac{\\partial\\,a}{\\partial t} + a\\left(t\\right) \\frac{\\partial\\,\\rho}{\\partial t}}{a\\left(t\\right)} \\right) \\frac{\\partial}{\\partial t }\n", "\\end{math}" ], "text/plain": [ "(3*(p(t) + rho(t))*d(a)/dt + a(t)*d(rho)/dt)/a(t) d/dt" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cons_T0.display()" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\frac{3 \\, {\\left(p\\left(t\\right) + \\rho\\left(t\\right)\\right)} \\frac{\\partial\\,a}{\\partial t} + a\\left(t\\right) \\frac{\\partial\\,\\rho}{\\partial t}}{a\\left(t\\right)}\n", "\\end{math}" ], "text/plain": [ "(3*(p(t) + rho(t))*d(a)/dt + a(t)*d(rho)/dt)/a(t)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cons_T0[0]" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\frac{3 \\, {\\left(p\\left(t\\right) + \\rho\\left(t\\right)\\right)} \\frac{\\partial}{\\partial t}a\\left(t\\right) + a\\left(t\\right) \\frac{\\partial}{\\partial t}\\rho\\left(t\\right)}{a\\left(t\\right)} = 0\n", "\\end{math}" ], "text/plain": [ "(3*(p(t) + rho(t))*diff(a(t), t) + a(t)*diff(rho(t), t))/a(t) == 0" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "con_T = cons_T0[0].expr()==0;con_T" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}3 \\, {\\left(p\\left(t\\right) + \\rho\\left(t\\right)\\right)} \\frac{\\partial}{\\partial t}a\\left(t\\right) + a\\left(t\\right) \\frac{\\partial}{\\partial t}\\rho\\left(t\\right) = 0\n", "\\end{math}" ], "text/plain": [ "3*(p(t) + rho(t))*diff(a(t), t) + a(t)*diff(rho(t), t) == 0" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "con_T = con_T*a.expr();con_T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Equação de estado" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "om = var('omega')" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}p\\left(t\\right) = \\omega \\rho\\left(t\\right)\n", "\\end{math}" ], "text/plain": [ "p(t) == omega*rho(t)" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq_est = p.expr() == om*rho.expr();eq_est" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}3 \\, {\\left(\\omega \\rho\\left(t\\right) + \\rho\\left(t\\right)\\right)} \\frac{\\partial}{\\partial t}a\\left(t\\right) + a\\left(t\\right) \\frac{\\partial}{\\partial t}\\rho\\left(t\\right) = 0\n", "\\end{math}" ], "text/plain": [ "3*(omega*rho(t) + rho(t))*diff(a(t), t) + a(t)*diff(rho(t), t) == 0" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dom_eq = con_T.subs(eq_est); dom_eq" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\frac{\\frac{\\partial}{\\partial t}\\rho\\left(t\\right)}{\\rho\\left(t\\right)} = -\\frac{3 \\, {\\left(\\omega + 1\\right)} \\frac{\\partial}{\\partial t}a\\left(t\\right)}{a\\left(t\\right)}\n", "\\end{math}" ], "text/plain": [ "diff(rho(t), t)/rho(t) == -3*(omega + 1)*diff(a(t), t)/a(t)" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dom_eq2 = solve(dom_eq,diff(rho.expr(),t))[0]/rho.expr();dom_eq2" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\log\\left(\\rho\\left(t\\right)\\right) = -3 \\, {\\left(\\omega + 1\\right)} \\log\\left(a\\left(t\\right)\\right) + c_{1}\n", "\\end{math}" ], "text/plain": [ "log(rho(t)) == -3*(omega + 1)*log(a(t)) + c1" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dom_eq3 = integral(dom_eq2,t);dom_eq3" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/latex": [ "\\begin{math}\n", "\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\rho\\left(t\\right) = a\\left(t\\right)^{-3 \\, \\omega - 3} e^{c_{1}}\n", "\\end{math}" ], "text/plain": [ "rho(t) == a(t)^(-3*omega - 3)*e^c1" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(dom_eq3,rho.expr())[0].canonicalize_radical()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tipos de matéria e dinâmica do fator de escala..." ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 9.2", "language": "sage", "name": "sagemath" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }