{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "flush-saint",
   "metadata": {},
   "source": [
    "# Calculate $\\mathbf{K}(z)$ matrices  \n",
    " \n",
    "$$\n",
    "K(z) = K_2 b(z)^2 +K_1 b(z) + K_0\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "neither-maryland",
   "metadata": {},
   "source": [
    "## Definitions and declarations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "muslim-hollow",
   "metadata": {},
   "outputs": [],
   "source": [
    "%display latex\n",
    "maxima_calculus('algebraic: true;')\n",
    "def LE(str):\n",
    "    return(LatexExpr(r''+ str))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "divided-muslim",
   "metadata": {},
   "source": [
    "### Racah W-coefficient\n",
    "  \n",
    "calculate W(j1,j2,J,j3,J12,J23,jtestmin='False'))  \n",
    "> if j3 is a rational number  \n",
    ">> use the builtin racah() function\n",
    "\n",
    "> else  \n",
    ">>    use the algebraic algorithm  \n",
    "    return an algebraic expression  \n",
    "    test the algebraic expression:  \n",
    ">>>        if jtestmin is a rational number  \n",
    ">>            substitute in the algebraic expression for W  \n",
    "                jR = jtestmin, jtestmin+1/2, ... 11/2  \n",
    "            and compare to racah()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "weird-diameter",
   "metadata": {},
   "outputs": [],
   "source": [
    "def W(j1,j2,J,j3,J12,J23,jtestmin='False'):\n",
    "    if j3 in QQ:\n",
    "        return(Wnum(j1,j2,J,j3,J12,J23))\n",
    "    Walgval=Walg(j1,j2,J,j3,J12,J23)\n",
    "    if jtestmin not in QQ:\n",
    "        return(Walgval)\n",
    "    for nn in range(2*jtestmin,12):\n",
    "        jRval = nn/2\n",
    "        Wnumval = Wnum(j1,j2,J.subs(jR=jRval),j3.subs(jR=jRval),J12,J23.subs(jR=jRval))\n",
    "        Walgnumval=Walgval.subs(jR=jRval)\n",
    "        if  Walgnumval not in QQ:\n",
    "            Walgnumval=Walgnumval.canonicalize_radical()\n",
    "        if Walgnumval != Wnumval:\n",
    "            print('RACAH DISCREPANCY','jR=',jRval,'Wnum=',Wnumval,'Walgnum=',\\\n",
    "                  Walgnumval,'Walg=',Walgval)\n",
    "        return(Walgval)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "loose-brain",
   "metadata": {},
   "outputs": [],
   "source": [
    "def Wnum(j1,j2,J,j3,J12,J23):\n",
    "    Wnumval = racah(j1,j2,J,j3,J12,J23)\n",
    "    if Wnumval not in QQ:\n",
    "        Wnumval=Wnumval.canonicalize_radical()\n",
    "    return(Wnumval)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "toxic-festival",
   "metadata": {},
   "outputs": [],
   "source": [
    "def 𝚫sq(a,b,c):\n",
    "    val = factorial(a+b-c)*factorial(a-b+c)*factorial(-a+b+c)/factorial(a+b+c+1)\n",
    "    return val\n",
    "def Walg(j1,j2,J,j3,J12,J23):\n",
    "#    jR=var('jR',latex_name=\"j_{R}\")\n",
    "    assume(jR > 2)\n",
    "    a=j1\n",
    "    b=j2\n",
    "    c=J\n",
    "    d=j3\n",
    "    e=J12\n",
    "    f=J23\n",
    "    𝞪1 = a+b+e\n",
    "    𝞪2 = c+d+e\n",
    "    𝞪3 = a+c+f\n",
    "    𝞪4 = b+d+f\n",
    "    𝞫1 = a+b+c+d\n",
    "    𝞫2 = a+d+e+f\n",
    "    𝞫3 = b+c+e+f\n",
    "    max𝞪 = max([𝞪1,𝞪2,𝞪3,𝞪4])\n",
    "    min𝞫 = min([𝞫1,𝞫2,𝞫3])\n",
    "    w=0\n",
    "    zrange=min𝞫 - max𝞪 + 1\n",
    "    for zm in range(0,zrange):\n",
    "        z=zm+max𝞪\n",
    "        s = (-1)^(zm)*factorial(z+1)\n",
    "        s = s/(factorial(z-𝞪1)*factorial(z-𝞪2)*factorial(z-𝞪3)*factorial(z-𝞪4))\n",
    "        s= s/(factorial(𝞫1-z)*factorial(𝞫2-z)*factorial(𝞫3-z))\n",
    "        w+=s\n",
    "    d = 𝚫sq(a,b,e)*𝚫sq(c,d,e)*𝚫sq(a,c,f)*𝚫sq(b,d,f)\n",
    "    d = d.full_simplify()\n",
    "    Wval = w* sqrt(d)\n",
    "    Wval = (((-1)^(𝞫1+max𝞪)*Wval).full_simplify()).subs((-1)^(4*jR)==1)\n",
    "    Wval = Wval.canonicalize_radical()\n",
    "    return(Wval)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "operating-indicator",
   "metadata": {},
   "outputs": [],
   "source": [
    "def recoupling(j1,j2,J,j3,J12,J23,jtestmin='FALSE'):\n",
    "    Wval= W(j1,j2,J,j3,J12,J23,jtestmin)\n",
    "    recouplingval= sqrt((2*J12+1)*(2*J23+1))*Wval\n",
    "#    recouplingval= recouplingval.canonicalize_radical()\n",
    "    return(recouplingval)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "separated-separate",
   "metadata": {},
   "source": [
    "### Construct the matrices K_2, K_1, K_0\n",
    "\n",
    "N, J12list, J23list, jL, jtestmin  global variables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "delayed-civilization",
   "metadata": {},
   "outputs": [],
   "source": [
    "def constr_K_matrices():\n",
    "    U = Matrix(SR,N,N)\n",
    "    for ii in range(N):\n",
    "        J12 = J12list[ii]\n",
    "        for jj in range(N):\n",
    "            J23 = J23list[jj]\n",
    "            U[ii,jj] = recoupling(1,1,jR,jL,J12,J23,jtestmin)\n",
    "    C12 = diagonal_matrix(SR, N, map(lambda x: x*(x+1)/2,J12list))\n",
    "    C23diag = diagonal_matrix(SR, N, map(lambda x: x*(x+1)/2,J23list))\n",
    "    C23 = U * C23diag * U.transpose()\n",
    "    Gam = C12-2\n",
    "    stard = 2*(C23- jR*(jR+1)/2)\n",
    "    stardpG = stard+Gam\n",
    "    K_2 = Gam^2-Gam\n",
    "    K_1 = (stardpG*Gam+Gam*stardpG).canonicalize_radical()\n",
    "    K_0 = (stardpG^2+Gam).canonicalize_radical()\n",
    "    K_1 = K_1.subs(jR=jRsub).canonicalize_radical()\n",
    "    K_0 = K_0.subs(jR=jRsub).canonicalize_radical()\n",
    "    return(K_2,K_1,K_0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "passive-symposium",
   "metadata": {},
   "outputs": [],
   "source": [
    "epsb=var('epsb',latex_name=\"\\\\epsilon\")\n",
    "alpha=var('alpha',latex_name=\"\\\\alpha\")\n",
    "sigma=var('sigma',latex_name=\"\\\\sigma\")\n",
    "j = var('j')\n",
    "odes={}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "still-budget",
   "metadata": {},
   "source": [
    "## $\\mathbf{ode}$ $\\mathbf{2}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "established-pension",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rr}\n",
       "6 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right) \\qquad K_1 = \\left(\\begin{array}{rr}\n",
       "0 & -3 \\, \\sqrt{2} \\\\\n",
       "-3 \\, \\sqrt{2} & 0\n",
       "\\end{array}\\right) \\epsilon_{b} \\qquad K_0 = \\left(\\begin{array}{rr}\n",
       "0 & 0 \\\\\n",
       "0 & 1\n",
       "\\end{array}\\right) \\epsilon_{b}^{2}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rr}\n",
       "6 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right) \\qquad K_1 = \\left(\\begin{array}{rr}\n",
       "0 & -3 \\, \\sqrt{2} \\\\\n",
       "-3 \\, \\sqrt{2} & 0\n",
       "\\end{array}\\right) \\epsilon_{b} \\qquad K_0 = \\left(\\begin{array}{rr}\n",
       "0 & 0 \\\\\n",
       "0 & 1\n",
       "\\end{array}\\right) \\epsilon_{b}^{2}$$"
      ],
      "text/plain": [
       "K_2 = [6 0]\n",
       "[0 2] \\qquad K_1 = [         0 -3*sqrt(2)]\n",
       "[-3*sqrt(2)          0] \\epsilon_{b} \\qquad K_0 = [0 0]\n",
       "[0 1] \\epsilon_{b}^{2}"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\alpha}  =  0 \\qquad {\\sigma}  =  \\frac{1}{2} \\, \\sqrt{2} {\\epsilon}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\alpha}  =  0 \\qquad {\\sigma}  =  \\frac{1}{2} \\, \\sqrt{2} {\\epsilon}$$"
      ],
      "text/plain": [
       "alpha  =  0 \\qquad sigma  =  1/2*sqrt(2)*epsb"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rr}\n",
       "6 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right) \\qquad K_1 =  \\left(\\begin{array}{rr}\n",
       "0 & -6 \\\\\n",
       "-6 & 0\n",
       "\\end{array}\\right) {\\sigma} \\qquad K_0 =  \\left(\\begin{array}{rr}\n",
       "0 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right) {\\sigma}^{2}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rr}\n",
       "6 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right) \\qquad K_1 =  \\left(\\begin{array}{rr}\n",
       "0 & -6 \\\\\n",
       "-6 & 0\n",
       "\\end{array}\\right) {\\sigma} \\qquad K_0 =  \\left(\\begin{array}{rr}\n",
       "0 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right) {\\sigma}^{2}$$"
      ],
      "text/plain": [
       "K_2 = [6 0]\n",
       "[0 2] \\qquad K_1 =  [ 0 -6]\n",
       "[-6  0] sigma \\qquad K_0 =  [0 0]\n",
       "[0 2] sigma^2"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}w_1 =  \\left(\\begin{array}{r}\n",
       "0 \\\\\n",
       "1\n",
       "\\end{array}\\right) \\qquad w_0 =  \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right) {\\sigma} \\qquad \\mathrm{True}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}w_1 =  \\left(\\begin{array}{r}\n",
       "0 \\\\\n",
       "1\n",
       "\\end{array}\\right) \\qquad w_0 =  \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right) {\\sigma} \\qquad \\mathrm{True}$$"
      ],
      "text/plain": [
       "w_1 =  [0]\n",
       "[1] \\qquad w_0 =  [1]\n",
       "[0] sigma \\qquad True"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "N=2\n",
    "J12list = [0,1]\n",
    "J23list = [1/2,3/2]\n",
    "jR=1/2\n",
    "jL = 1/2\n",
    "jtestmin=1/2\n",
    "jRsub=j\n",
    "(K_2,K_1,K_0) = constr_K_matrices()\n",
    "pretty_print(LE('K_2 ='),K_2,LE('\\\\qquad K_1 ='),K_1,LE('\\\\epsilon_{b}'),\\\n",
    "             LE('\\\\qquad K_0 ='),K_0,LE('\\\\epsilon_{b}^{2}'))\n",
    "#\n",
    "print(\"\\n\")\n",
    "alphaexp = 0\n",
    "sigmaexp = epsb/sqrt(2)\n",
    "K2mat = K_2\n",
    "K1mat = K_1*sqrt(2)\n",
    "K0mat = K_0*2\n",
    "w1mat = Matrix([[0],[1]])\n",
    "w0mat = Matrix([[1],[0]])\n",
    "w0coeff = sigma/sqrt(2)\n",
    "F= var('F')\n",
    "Kmat= (K2mat*F^2+K1mat*sigma*F+K0mat*sigma^2).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "wvec = (w1mat*F + w0mat*sigma).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "#wvec = w1mat*F + w0mat*w0coeff\n",
    "diff = w1mat *(2*epsb^2*F-2*F^3)+ Kmat*wvec\n",
    "#diff = diff.canonicalize_radical()\n",
    "#diff = diff.simplify_full()\n",
    "#pretty_print(diff)\n",
    "wconf = (diff == 0)\n",
    "pretty_print(alpha,LE(' = '),alphaexp,LE('\\\\qquad'),sigma,LE(' = '),sigmaexp)\n",
    "print(\"\\n\")\n",
    "pretty_print(LE('K_2 ='),K2mat,LE('\\\\qquad K_1 = '),K1mat,\\\n",
    "             sigma,LE('\\\\qquad K_0 = '),K0mat,sigma^2)\n",
    "print(\"\\n\")\n",
    "#\n",
    "#\n",
    "print(\"\\n\")\n",
    "pretty_print(LE('w_1 = '),w1mat,LE('\\\\qquad w_0 = '),w0mat,sigma,LE('\\\\qquad'),wconf)\n",
    "#\n",
    "ode={}\n",
    "ode['K2mat']=K2mat\n",
    "ode['K1mat']=K1mat\n",
    "ode['K0mat']=K0mat\n",
    "ode['alphaexp']=alphaexp\n",
    "ode['sigmaexp']=sigmaexp\n",
    "ode['w1mat']=w1mat\n",
    "ode['w0mat']=w0mat\n",
    "ode['gauged']=True\n",
    "odes['2'] = ode"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "automotive-hungary",
   "metadata": {},
   "source": [
    "## $\\mathbf{ode}$ $\\mathbf{3}_j$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "wound-dancing",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rrr}\n",
       "6 & 0 & 0 \\\\\n",
       "0 & 2 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rrr}\n",
       "6 & 0 & 0 \\\\\n",
       "0 & 2 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "K_2 = [6 0 0]\n",
       "[0 2 0]\n",
       "[0 0 0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_1 = \\left(\\begin{array}{rrr}\n",
       "0 & -\\sqrt{3} \\sqrt{2} \\sqrt{2 \\, j + 1} \\sqrt{2 \\, j - 1} & 0 \\\\\n",
       "-\\sqrt{3} \\sqrt{2} \\sqrt{2 \\, j + 1} \\sqrt{2 \\, j - 1} & 0 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right) \\epsilon_{b}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_1 = \\left(\\begin{array}{rrr}\n",
       "0 & -\\sqrt{3} \\sqrt{2} \\sqrt{2 \\, j + 1} \\sqrt{2 \\, j - 1} & 0 \\\\\n",
       "-\\sqrt{3} \\sqrt{2} \\sqrt{2 \\, j + 1} \\sqrt{2 \\, j - 1} & 0 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right) \\epsilon_{b}$$"
      ],
      "text/plain": [
       "K_1 = [                                           0 -sqrt(3)*sqrt(2)*sqrt(2*j + 1)*sqrt(2*j - 1)                                            0]\n",
       "[-sqrt(3)*sqrt(2)*sqrt(2*j + 1)*sqrt(2*j - 1)                                            0                                            0]\n",
       "[                                           0                                            0                                            0] \\epsilon_{b}"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_0 = \\left(\\begin{array}{rrr}\n",
       "\\frac{8}{3} \\, j^{2} - \\frac{8}{3} & 0 & \\frac{2}{3} \\, \\sqrt{2} \\sqrt{2 \\, j + 1} \\sqrt{2 \\, j - 1} \\sqrt{j + 1} \\sqrt{j - 1} \\\\\n",
       "0 & 4 \\, j^{2} - 3 & 0 \\\\\n",
       "\\frac{2}{3} \\, \\sqrt{2} \\sqrt{2 \\, j + 1} \\sqrt{2 \\, j - 1} \\sqrt{j + 1} \\sqrt{j - 1} & 0 & \\frac{4}{3} \\, j^{2} - \\frac{1}{3}\n",
       "\\end{array}\\right) \\epsilon_{b}^{2}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_0 = \\left(\\begin{array}{rrr}\n",
       "\\frac{8}{3} \\, j^{2} - \\frac{8}{3} & 0 & \\frac{2}{3} \\, \\sqrt{2} \\sqrt{2 \\, j + 1} \\sqrt{2 \\, j - 1} \\sqrt{j + 1} \\sqrt{j - 1} \\\\\n",
       "0 & 4 \\, j^{2} - 3 & 0 \\\\\n",
       "\\frac{2}{3} \\, \\sqrt{2} \\sqrt{2 \\, j + 1} \\sqrt{2 \\, j - 1} \\sqrt{j + 1} \\sqrt{j - 1} & 0 & \\frac{4}{3} \\, j^{2} - \\frac{1}{3}\n",
       "\\end{array}\\right) \\epsilon_{b}^{2}$$"
      ],
      "text/plain": [
       "K_0 = [                                                  8/3*j^2 - 8/3                                                               0 2/3*sqrt(2)*sqrt(2*j + 1)*sqrt(2*j - 1)*sqrt(j + 1)*sqrt(j - 1)]\n",
       "[                                                              0                                                       4*j^2 - 3                                                               0]\n",
       "[2/3*sqrt(2)*sqrt(2*j + 1)*sqrt(2*j - 1)*sqrt(j + 1)*sqrt(j - 1)                                                               0                                                   4/3*j^2 - 1/3] \\epsilon_{b}^{2}"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\alpha}  =  2 \\, \\sqrt{2} \\sqrt{\\frac{j^{2} - 1}{4 \\, j^{2} - 1}} \\qquad {\\sigma}  =  \\frac{1}{2} \\, \\sqrt{\\frac{2}{3}} \\sqrt{4 \\, j^{2} - 1} {\\epsilon}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\alpha}  =  2 \\, \\sqrt{2} \\sqrt{\\frac{j^{2} - 1}{4 \\, j^{2} - 1}} \\qquad {\\sigma}  =  \\frac{1}{2} \\, \\sqrt{\\frac{2}{3}} \\sqrt{4 \\, j^{2} - 1} {\\epsilon}$$"
      ],
      "text/plain": [
       "alpha  =  2*sqrt(2)*sqrt((j^2 - 1)/(4*j^2 - 1)) \\qquad sigma  =  1/2*sqrt(2/3)*sqrt(4*j^2 - 1)*epsb"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rrr}\n",
       "6 & 0 & 0 \\\\\n",
       "0 & 2 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right) \\qquad K_1 =  \\left(\\begin{array}{rrr}\n",
       "0 & -6 & 0 \\\\\n",
       "-6 & 0 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right) {\\sigma} \\qquad K_0 =  \\left(\\begin{array}{rrr}\n",
       "2 \\, {\\alpha}^{2} & 0 & 2 \\, {\\alpha} \\\\\n",
       "0 & 2 \\, {\\alpha}^{2} + 2 & 0 \\\\\n",
       "2 \\, {\\alpha} & 0 & 2\n",
       "\\end{array}\\right) {\\sigma}^{2} \\qquad \\mathrm{True}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rrr}\n",
       "6 & 0 & 0 \\\\\n",
       "0 & 2 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right) \\qquad K_1 =  \\left(\\begin{array}{rrr}\n",
       "0 & -6 & 0 \\\\\n",
       "-6 & 0 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right) {\\sigma} \\qquad K_0 =  \\left(\\begin{array}{rrr}\n",
       "2 \\, {\\alpha}^{2} & 0 & 2 \\, {\\alpha} \\\\\n",
       "0 & 2 \\, {\\alpha}^{2} + 2 & 0 \\\\\n",
       "2 \\, {\\alpha} & 0 & 2\n",
       "\\end{array}\\right) {\\sigma}^{2} \\qquad \\mathrm{True}$$"
      ],
      "text/plain": [
       "K_2 = [6 0 0]\n",
       "[0 2 0]\n",
       "[0 0 0] \\qquad K_1 =  [ 0 -6  0]\n",
       "[-6  0  0]\n",
       "[ 0  0  0] sigma \\qquad K_0 =  [    2*alpha^2             0       2*alpha]\n",
       "[            0 2*alpha^2 + 2             0]\n",
       "[      2*alpha             0             2] sigma^2 \\qquad True"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}w_1 =  \\left(\\begin{array}{r}\n",
       "0 \\\\\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right) \\qquad w_0 =  \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0 \\\\\n",
       "-{\\alpha}\n",
       "\\end{array}\\right) {\\sigma} \\qquad \\mathrm{True}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}w_1 =  \\left(\\begin{array}{r}\n",
       "0 \\\\\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right) \\qquad w_0 =  \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0 \\\\\n",
       "-{\\alpha}\n",
       "\\end{array}\\right) {\\sigma} \\qquad \\mathrm{True}$$"
      ],
      "text/plain": [
       "w_1 =  [0]\n",
       "[1]\n",
       "[0] \\qquad w_0 =  [     1]\n",
       "[     0]\n",
       "[-alpha] sigma \\qquad True"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "jR=var('jR',latex_name=\"j_{R}\")\n",
    "N=3\n",
    "J12list = [0,1,2]\n",
    "J23list = [jR-1,jR,jR+1]\n",
    "jL = jR\n",
    "jtestmin=1\n",
    "jRsub = j-1/2\n",
    "(K_2,K_1,K_0) = constr_K_matrices()\n",
    "pretty_print(LE('K_2 ='),K_2)\n",
    "print(\"\\n\")\n",
    "pretty_print(LE('K_1 ='),K_1,LE('\\\\epsilon_{b}'))\n",
    "print(\"\\n\")\n",
    "pretty_print(LE('K_0 ='),K_0,LE('\\\\epsilon_{b}^{2}'))\n",
    "print(\"\\n\\n\")\n",
    "#\n",
    "alphaexp = sqrt(2)* sqrt((j^2-1)/(j^2-1/4))\n",
    "sigmaexp = sqrt(2/3)*sqrt(j^2-1/4)*epsb\n",
    "#\n",
    "K2mat = K_2\n",
    "K1mat = -6*Matrix([[0,1,0],[1,0,0],[0,0,0]])\n",
    "K0mat = 2*Matrix([[alpha^2,0,alpha],[0,alpha^2+1,0],[alpha,0,1]])\n",
    "#\n",
    "K1test = (sigma*K1mat).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "K1test = K1test.canonicalize_radical()\n",
    "K1eps = (K_1*epsb).canonicalize_radical()\n",
    "conf1 = (K_1*epsb == K1test)\n",
    "K0test = (sigma^2*K0mat).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "K0test = K0test.canonicalize_radical()\n",
    "K0eps = (K_0*epsb^2).canonicalize_radical()\n",
    "conf0 = (K0eps == K0test)\n",
    "F= var('F')\n",
    "K = K_2 *F^2 + K_1*epsb*F +K_0*epsb^2\n",
    "Kmat = (K2mat*F^2+K1mat*sigma*F+K0mat*sigma^2).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "diff = (K-Kmat).canonicalize_radical()\n",
    "conf = (diff == 0)\n",
    "#\n",
    "pretty_print(alpha,LE(' = '),alphaexp,LE('\\\\qquad'),sigma,LE(' = '),sigmaexp)\n",
    "print(\"\\n\")\n",
    "pretty_print(LE('K_2 ='),K2mat,LE('\\\\qquad K_1 = '),K1mat,sigma,LE('\\\\qquad K_0 = '),\\\n",
    "             K0mat,sigma^2,LE('\\\\qquad'),conf0 and conf1 and conf)\n",
    "print(\"\\n\")\n",
    "#\n",
    "w1mat = Matrix([[0],[1],[0]])\n",
    "w0mat = Matrix([[1],[0],[-alpha]])\n",
    "wvec = (w1mat*F + w0mat*sigma).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "diff = w1mat *(2*epsb^2*F-2*F^3)+ K*wvec\n",
    "diff = diff.canonicalize_radical()\n",
    "#diff = diff.simplify_full()\n",
    "#pretty_print(diff)\n",
    "wconf = (diff == 0)\n",
    "pretty_print(LE('w_1 = '),w1mat,LE('\\\\qquad w_0 = '),w0mat,sigma,LE('\\\\qquad'),wconf)\n",
    "#\n",
    "#\n",
    "ode={}\n",
    "ode['K2mat']=K2mat\n",
    "ode['K1mat']=K1mat\n",
    "ode['K0mat']=K0mat\n",
    "ode['alphaexp']=alphaexp\n",
    "ode['sigmaexp']=sigmaexp\n",
    "ode['w1mat']=w1mat\n",
    "ode['w0mat']=w0mat\n",
    "ode['gauged']=True\n",
    "odes['3j'] = ode"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "unlimited-democrat",
   "metadata": {},
   "source": [
    "## $\\mathbf{ode}$ $\\mathbf{2}_j$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "duplicate-panic",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rr}\n",
       "2 & 0 \\\\\n",
       "0 & 0\n",
       "\\end{array}\\right) \\qquad K_1 = \\left(\\begin{array}{rr}\n",
       "-2 \\, j & 0 \\\\\n",
       "0 & 2 \\, j\n",
       "\\end{array}\\right) \\epsilon_{b} \\qquad K_0 = \\left(\\begin{array}{rr}\n",
       "2 \\, j^{2} - 2 & 2 \\, \\sqrt{j + 1} \\sqrt{j - 1} j \\\\\n",
       "2 \\, \\sqrt{j + 1} \\sqrt{j - 1} j & 2 \\, j^{2}\n",
       "\\end{array}\\right) \\epsilon_{b}^{2}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rr}\n",
       "2 & 0 \\\\\n",
       "0 & 0\n",
       "\\end{array}\\right) \\qquad K_1 = \\left(\\begin{array}{rr}\n",
       "-2 \\, j & 0 \\\\\n",
       "0 & 2 \\, j\n",
       "\\end{array}\\right) \\epsilon_{b} \\qquad K_0 = \\left(\\begin{array}{rr}\n",
       "2 \\, j^{2} - 2 & 2 \\, \\sqrt{j + 1} \\sqrt{j - 1} j \\\\\n",
       "2 \\, \\sqrt{j + 1} \\sqrt{j - 1} j & 2 \\, j^{2}\n",
       "\\end{array}\\right) \\epsilon_{b}^{2}$$"
      ],
      "text/plain": [
       "K_2 = [2 0]\n",
       "[0 0] \\qquad K_1 = [-2*j    0]\n",
       "[   0  2*j] \\epsilon_{b} \\qquad K_0 = [                  2*j^2 - 2 2*sqrt(j + 1)*sqrt(j - 1)*j]\n",
       "[2*sqrt(j + 1)*sqrt(j - 1)*j                       2*j^2] \\epsilon_{b}^{2}"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\alpha}  =  \\sqrt{-\\frac{1}{j^{2}} + 1} \\qquad {\\sigma}  =  {\\epsilon} j\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\alpha}  =  \\sqrt{-\\frac{1}{j^{2}} + 1} \\qquad {\\sigma}  =  {\\epsilon} j$$"
      ],
      "text/plain": [
       "alpha  =  sqrt(-1/j^2 + 1) \\qquad sigma  =  epsb*j"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rr}\n",
       "2 & 0 \\\\\n",
       "0 & 0\n",
       "\\end{array}\\right) \\qquad K_1 =  \\left(\\begin{array}{rr}\n",
       "-2 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right) {\\sigma} \\qquad K_0 =  \\left(\\begin{array}{rr}\n",
       "2 \\, {\\alpha}^{2} & 2 \\, {\\alpha} \\\\\n",
       "2 \\, {\\alpha} & 2\n",
       "\\end{array}\\right) {\\sigma}^{2} \\qquad \\mathrm{True}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{rr}\n",
       "2 & 0 \\\\\n",
       "0 & 0\n",
       "\\end{array}\\right) \\qquad K_1 =  \\left(\\begin{array}{rr}\n",
       "-2 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right) {\\sigma} \\qquad K_0 =  \\left(\\begin{array}{rr}\n",
       "2 \\, {\\alpha}^{2} & 2 \\, {\\alpha} \\\\\n",
       "2 \\, {\\alpha} & 2\n",
       "\\end{array}\\right) {\\sigma}^{2} \\qquad \\mathrm{True}$$"
      ],
      "text/plain": [
       "K_2 = [2 0]\n",
       "[0 0] \\qquad K_1 =  [-2  0]\n",
       "[ 0  2] sigma \\qquad K_0 =  [2*alpha^2   2*alpha]\n",
       "[  2*alpha         2] sigma^2 \\qquad True"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}w_1 =  \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right) \\qquad w_0 =  \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "-{\\alpha}\n",
       "\\end{array}\\right) {\\sigma} \\qquad \\mathrm{True}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}w_1 =  \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right) \\qquad w_0 =  \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "-{\\alpha}\n",
       "\\end{array}\\right) {\\sigma} \\qquad \\mathrm{True}$$"
      ],
      "text/plain": [
       "w_1 =  [1]\n",
       "[0] \\qquad w_0 =  [     1]\n",
       "[-alpha] sigma \\qquad True"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "jR=var('jR',latex_name=\"j_{R}\")\n",
    "j = var('j')\n",
    "N=2\n",
    "J12list = [1,2]\n",
    "J23list = [jR,jR+1]\n",
    "jL = jR+1\n",
    "jtestmin=1/2\n",
    "jRsub=j-1\n",
    "(K_2,K_1,K_0) = constr_K_matrices()\n",
    "pretty_print(LE('K_2 ='),K_2,LE('\\\\qquad K_1 ='),K_1,LE('\\\\epsilon_{b}'),\\\n",
    "             LE('\\\\qquad K_0 ='),K_0,LE('\\\\epsilon_{b}^{2}'))\n",
    "print(\"\\n\\n\")\n",
    "#\n",
    "alphaexp =  sqrt(1-1/j^2)\n",
    "sigmaexp = j*epsb\n",
    "K2mat=K_2\n",
    "K1mat = 2*Matrix([[-1,0],[0,1]])\n",
    "K0mat = 2*Matrix([[alpha^2,alpha],[alpha,1]])\n",
    "#\n",
    "K1test = (sigma*K1mat).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "K1test = K1test.canonicalize_radical()\n",
    "K1eps = (K_1*epsb).canonicalize_radical()\n",
    "conf1 = (K_1*epsb == K1test)\n",
    "K0test = (sigma^2*K0mat).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "K0test = K0test.canonicalize_radical()\n",
    "K0eps = (K_0*epsb^2).canonicalize_radical()\n",
    "conf0 = (K0eps == K0test)\n",
    "#\n",
    "K = K_2 *F^2 + K_1*epsb*F +K_0*epsb^2\n",
    "Kmat = (K2mat*F^2+K1mat*sigma*F+K0mat*sigma^2).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "diff = (K-Kmat).canonicalize_radical()\n",
    "conf = (diff == 0)\n",
    "#\n",
    "pretty_print(alpha,LE(' = '),alphaexp,LE('\\\\qquad'),sigma,LE(' = '),sigmaexp)\n",
    "print(\"\\n\")\n",
    "pretty_print(LE('K_2 ='),K2mat,LE('\\\\qquad K_1 = '),K1mat,sigma,LE('\\\\qquad K_0 = '),\\\n",
    "             K0mat,sigma^2,LE('\\\\qquad'),conf1 and conf0 and conf)\n",
    "print(\"\\n\")\n",
    "#\n",
    "#\n",
    "w1mat = Matrix([[1],[0]])\n",
    "w0mat = Matrix([[1],[-alpha]])\n",
    "Kmat= K_2*F^2+K_1*epsb*F+K_0*epsb^2\n",
    "wvec = (w1mat*F + w0mat*sigma).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "diff = w1mat *(2*epsb^2*F-2*F^3)+ Kmat*wvec\n",
    "diff = diff.canonicalize_radical()\n",
    "#diff = diff.simplify_full()\n",
    "#pretty_print(diff)\n",
    "wconf = (diff == 0)\n",
    "pretty_print(LE('w_1 = '),w1mat,LE('\\\\qquad w_0 = '),w0mat,sigma,LE('\\\\qquad'),wconf)\n",
    "#\n",
    "ode={}\n",
    "ode['K2mat']=K2mat\n",
    "ode['K1mat']=K1mat\n",
    "ode['K0mat']=K0mat\n",
    "ode['alphaexp']=alphaexp\n",
    "ode['sigmaexp']=sigmaexp\n",
    "ode['w1mat']=w1mat\n",
    "ode['w0mat']=w0mat\n",
    "ode['gauged']=True\n",
    "odes['2j'] = ode"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "improved-empire",
   "metadata": {},
   "source": [
    "## $\\mathbf{ode}$ $\\mathbf{1}_j$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "modern-relaxation",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{r}\n",
       "0\n",
       "\\end{array}\\right) \\qquad K_1 = \\left(\\begin{array}{r}\n",
       "4 \\, j\n",
       "\\end{array}\\right) \\epsilon_{b} \\qquad K_0 = \\left(\\begin{array}{r}\n",
       "4 \\, j^{2} + 1\n",
       "\\end{array}\\right) \\epsilon_{b}^{2}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{r}\n",
       "0\n",
       "\\end{array}\\right) \\qquad K_1 = \\left(\\begin{array}{r}\n",
       "4 \\, j\n",
       "\\end{array}\\right) \\epsilon_{b} \\qquad K_0 = \\left(\\begin{array}{r}\n",
       "4 \\, j^{2} + 1\n",
       "\\end{array}\\right) \\epsilon_{b}^{2}$$"
      ],
      "text/plain": [
       "K_2 = [0] \\qquad K_1 = [4*j] \\epsilon_{b} \\qquad K_0 = [4*j^2 + 1] \\epsilon_{b}^{2}"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\alpha}  =  \\frac{1}{2} \\, \\sqrt{\\frac{1}{j^{2}} + 4} \\qquad {\\sigma}  =  {\\epsilon} j\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\alpha}  =  \\frac{1}{2} \\, \\sqrt{\\frac{1}{j^{2}} + 4} \\qquad {\\sigma}  =  {\\epsilon} j$$"
      ],
      "text/plain": [
       "alpha  =  1/2*sqrt(1/j^2 + 4) \\qquad sigma  =  epsb*j"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{r}\n",
       "0\n",
       "\\end{array}\\right) \\quad K_1 =  \\left(\\begin{array}{r}\n",
       "4\n",
       "\\end{array}\\right) {\\sigma} \\qquad K_0 =  \\left(\\begin{array}{r}\n",
       "4 \\, {\\alpha}^{2}\n",
       "\\end{array}\\right) {\\sigma}^{2} \\qquad \\mathrm{True}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}K_2 = \\left(\\begin{array}{r}\n",
       "0\n",
       "\\end{array}\\right) \\quad K_1 =  \\left(\\begin{array}{r}\n",
       "4\n",
       "\\end{array}\\right) {\\sigma} \\qquad K_0 =  \\left(\\begin{array}{r}\n",
       "4 \\, {\\alpha}^{2}\n",
       "\\end{array}\\right) {\\sigma}^{2} \\qquad \\mathrm{True}$$"
      ],
      "text/plain": [
       "K_2 = [0] \\quad K_1 =  [4] sigma \\qquad K_0 =  [4*alpha^2] sigma^2 \\qquad True"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "jR=var('jR',latex_name=\"j_{R}\")\n",
    "j = var('j')\n",
    "N=1\n",
    "J12list = [2]\n",
    "J23list = [jR+1]\n",
    "jL=jR+2\n",
    "jtestmin=1/2\n",
    "jRsub=j-3/2\n",
    "(K_2,K_1,K_0) = constr_K_matrices()\n",
    "pretty_print(LE('K_2 ='),K_2,LE('\\\\qquad K_1 ='),K_1,LE('\\\\epsilon_{b}'),\\\n",
    "             LE('\\\\qquad K_0 ='),K_0,LE('\\\\epsilon_{b}^{2}'))\n",
    "print(\"\\n\")\n",
    "#\n",
    "sigmaexp = j*epsb\n",
    "alphaexp = sqrt(1+1/(4*j^2))\n",
    "K2mat = K_2\n",
    "K1mat = 4 *Matrix([1])\n",
    "K0mat = 4*Matrix([alpha^2])\n",
    "#\n",
    "K1test = (sigma*K1mat).subs(sigma=sigmaexp,alpha=alphaexp)\n",
    "K1test = K1test.canonicalize_radical()\n",
    "K1eps = (K_1*epsb).canonicalize_radical()\n",
    "conf1 = (K_1*epsb == K1test)\n",
    "K0test = (sigma^2*K0mat).subs(sigma=sigmaexp,alpha=alphaexp)\n",
    "K0test = K0test.canonicalize_radical()\n",
    "K0eps = (K_0*epsb^2).canonicalize_radical()\n",
    "conf0 = (K0eps == K0test)\n",
    "#\n",
    "K = K_2 *F^2 + K_1*epsb*F +K_0*epsb^2\n",
    "Kmat = (K2mat*F^2+K1mat*sigma*F+K0mat*sigma^2).subs(alpha=alphaexp,sigma=sigmaexp)\n",
    "diff = (K-Kmat).canonicalize_radical()\n",
    "conf = (diff == 0)\n",
    "#\n",
    "pretty_print(alpha,LE(' = '),alphaexp,LE('\\\\qquad'),sigma,LE(' = '),sigmaexp)\n",
    "print(\"\\n\")\n",
    "pretty_print(LE('K_2 ='),K2mat,LE('\\\\quad K_1 = '),K1mat,sigma,LE('\\\\qquad K_0 = '),\\\n",
    "             K0mat,sigma^2,LE('\\\\qquad'),conf0 and conf1 and conf)\n",
    "#\n",
    "ode={}\n",
    "ode['K2mat']=K2mat\n",
    "ode['K1mat']=K1mat\n",
    "ode['K0mat']=K0mat\n",
    "ode['alphaexp']=alphaexp\n",
    "ode['sigmaexp']=sigmaexp\n",
    "ode['gauged']=False\n",
    "odes['1j'] = ode"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "level-recognition",
   "metadata": {},
   "outputs": [],
   "source": [
    "save(odes,'odes')  # load with odes=load('odes')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "swedish-national",
   "metadata": {},
   "outputs": [],
   "source": [
    "odes =load('odes')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "f47baad1-c62e-4404-ac0a-21d3e92768b1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mathbf{ODE}\\;\\;  2\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mathbf{ODE}\\;\\;  2$$"
      ],
      "text/plain": [
       "\\mathbf{ODE}\\;\\;  '2'"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K2mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "6 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K2mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "6 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K2mat' ' = ' [6 0]\n",
       "[0 2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "0 & -6 \\\\\n",
       "-6 & 0\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "0 & -6 \\\\\n",
       "-6 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K1mat' ' = ' [ 0 -6]\n",
       "[-6  0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "0 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "0 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K0mat' ' = ' [0 0]\n",
       "[0 2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|alphaexp| \\phantom{\\verb!x!}\\verb|=| 0\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|alphaexp| \\phantom{\\verb!x!}\\verb|=| 0$$"
      ],
      "text/plain": [
       "'alphaexp' ' = ' 0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|sigmaexp| \\phantom{\\verb!x!}\\verb|=| \\frac{1}{2} \\, \\sqrt{2} {\\epsilon}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|sigmaexp| \\phantom{\\verb!x!}\\verb|=| \\frac{1}{2} \\, \\sqrt{2} {\\epsilon}$$"
      ],
      "text/plain": [
       "'sigmaexp' ' = ' 1/2*sqrt(2)*epsb"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "0 \\\\\n",
       "1\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "0 \\\\\n",
       "1\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'w1mat' ' = ' [0]\n",
       "[1]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'w0mat' ' = ' [1]\n",
       "[0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|gauged| \\phantom{\\verb!x!}\\verb|=| \\mathrm{True}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|gauged| \\phantom{\\verb!x!}\\verb|=| \\mathrm{True}$$"
      ],
      "text/plain": [
       "'gauged' ' = ' True"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mathbf{ODE}\\;\\;  \\verb|3j|\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mathbf{ODE}\\;\\;  \\verb|3j|$$"
      ],
      "text/plain": [
       "\\mathbf{ODE}\\;\\;  '3j'"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K2mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rrr}\n",
       "6 & 0 & 0 \\\\\n",
       "0 & 2 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K2mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rrr}\n",
       "6 & 0 & 0 \\\\\n",
       "0 & 2 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K2mat' ' = ' [6 0 0]\n",
       "[0 2 0]\n",
       "[0 0 0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rrr}\n",
       "0 & -6 & 0 \\\\\n",
       "-6 & 0 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rrr}\n",
       "0 & -6 & 0 \\\\\n",
       "-6 & 0 & 0 \\\\\n",
       "0 & 0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K1mat' ' = ' [ 0 -6  0]\n",
       "[-6  0  0]\n",
       "[ 0  0  0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rrr}\n",
       "2 \\, {\\alpha}^{2} & 0 & 2 \\, {\\alpha} \\\\\n",
       "0 & 2 \\, {\\alpha}^{2} + 2 & 0 \\\\\n",
       "2 \\, {\\alpha} & 0 & 2\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rrr}\n",
       "2 \\, {\\alpha}^{2} & 0 & 2 \\, {\\alpha} \\\\\n",
       "0 & 2 \\, {\\alpha}^{2} + 2 & 0 \\\\\n",
       "2 \\, {\\alpha} & 0 & 2\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K0mat' ' = ' [    2*alpha^2             0       2*alpha]\n",
       "[            0 2*alpha^2 + 2             0]\n",
       "[      2*alpha             0             2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|alphaexp| \\phantom{\\verb!x!}\\verb|=| 2 \\, \\sqrt{2} \\sqrt{\\frac{j^{2} - 1}{4 \\, j^{2} - 1}}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|alphaexp| \\phantom{\\verb!x!}\\verb|=| 2 \\, \\sqrt{2} \\sqrt{\\frac{j^{2} - 1}{4 \\, j^{2} - 1}}$$"
      ],
      "text/plain": [
       "'alphaexp' ' = ' 2*sqrt(2)*sqrt((j^2 - 1)/(4*j^2 - 1))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|sigmaexp| \\phantom{\\verb!x!}\\verb|=| \\frac{1}{2} \\, \\sqrt{\\frac{2}{3}} \\sqrt{4 \\, j^{2} - 1} {\\epsilon}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|sigmaexp| \\phantom{\\verb!x!}\\verb|=| \\frac{1}{2} \\, \\sqrt{\\frac{2}{3}} \\sqrt{4 \\, j^{2} - 1} {\\epsilon}$$"
      ],
      "text/plain": [
       "'sigmaexp' ' = ' 1/2*sqrt(2/3)*sqrt(4*j^2 - 1)*epsb"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "0 \\\\\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "0 \\\\\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'w1mat' ' = ' [0]\n",
       "[1]\n",
       "[0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0 \\\\\n",
       "-{\\alpha}\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0 \\\\\n",
       "-{\\alpha}\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'w0mat' ' = ' [     1]\n",
       "[     0]\n",
       "[-alpha]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|gauged| \\phantom{\\verb!x!}\\verb|=| \\mathrm{True}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|gauged| \\phantom{\\verb!x!}\\verb|=| \\mathrm{True}$$"
      ],
      "text/plain": [
       "'gauged' ' = ' True"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mathbf{ODE}\\;\\;  \\verb|2j|\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mathbf{ODE}\\;\\;  \\verb|2j|$$"
      ],
      "text/plain": [
       "\\mathbf{ODE}\\;\\;  '2j'"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K2mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "2 & 0 \\\\\n",
       "0 & 0\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K2mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "2 & 0 \\\\\n",
       "0 & 0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K2mat' ' = ' [2 0]\n",
       "[0 0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "-2 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "-2 & 0 \\\\\n",
       "0 & 2\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K1mat' ' = ' [-2  0]\n",
       "[ 0  2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "2 \\, {\\alpha}^{2} & 2 \\, {\\alpha} \\\\\n",
       "2 \\, {\\alpha} & 2\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{rr}\n",
       "2 \\, {\\alpha}^{2} & 2 \\, {\\alpha} \\\\\n",
       "2 \\, {\\alpha} & 2\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K0mat' ' = ' [2*alpha^2   2*alpha]\n",
       "[  2*alpha         2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|alphaexp| \\phantom{\\verb!x!}\\verb|=| \\sqrt{-\\frac{1}{j^{2}} + 1}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|alphaexp| \\phantom{\\verb!x!}\\verb|=| \\sqrt{-\\frac{1}{j^{2}} + 1}$$"
      ],
      "text/plain": [
       "'alphaexp' ' = ' sqrt(-1/j^2 + 1)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|sigmaexp| \\phantom{\\verb!x!}\\verb|=| {\\epsilon} j\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|sigmaexp| \\phantom{\\verb!x!}\\verb|=| {\\epsilon} j$$"
      ],
      "text/plain": [
       "'sigmaexp' ' = ' epsb*j"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'w1mat' ' = ' [1]\n",
       "[0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "-{\\alpha}\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|w0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "1 \\\\\n",
       "-{\\alpha}\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'w0mat' ' = ' [     1]\n",
       "[-alpha]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|gauged| \\phantom{\\verb!x!}\\verb|=| \\mathrm{True}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|gauged| \\phantom{\\verb!x!}\\verb|=| \\mathrm{True}$$"
      ],
      "text/plain": [
       "'gauged' ' = ' True"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mathbf{ODE}\\;\\;  \\verb|1j|\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\mathbf{ODE}\\;\\;  \\verb|1j|$$"
      ],
      "text/plain": [
       "\\mathbf{ODE}\\;\\;  '1j'"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K2mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "0\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K2mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "0\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K2mat' ' = ' [0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "4\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K1mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "4\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K1mat' ' = ' [4]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "4 \\, {\\alpha}^{2}\n",
       "\\end{array}\\right)\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|K0mat| \\phantom{\\verb!x!}\\verb|=| \\left(\\begin{array}{r}\n",
       "4 \\, {\\alpha}^{2}\n",
       "\\end{array}\\right)$$"
      ],
      "text/plain": [
       "'K0mat' ' = ' [4*alpha^2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|alphaexp| \\phantom{\\verb!x!}\\verb|=| \\frac{1}{2} \\, \\sqrt{\\frac{1}{j^{2}} + 4}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|alphaexp| \\phantom{\\verb!x!}\\verb|=| \\frac{1}{2} \\, \\sqrt{\\frac{1}{j^{2}} + 4}$$"
      ],
      "text/plain": [
       "'alphaexp' ' = ' 1/2*sqrt(1/j^2 + 4)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|sigmaexp| \\phantom{\\verb!x!}\\verb|=| {\\epsilon} j\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|sigmaexp| \\phantom{\\verb!x!}\\verb|=| {\\epsilon} j$$"
      ],
      "text/plain": [
       "'sigmaexp' ' = ' epsb*j"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<html>\\[\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|gauged| \\phantom{\\verb!x!}\\verb|=| \\mathrm{False}\\]</html>"
      ],
      "text/latex": [
       "$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\verb|gauged| \\phantom{\\verb!x!}\\verb|=| \\mathrm{False}$$"
      ],
      "text/plain": [
       "'gauged' ' = ' False"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for ode_key in ['2','3j','2j','1j']:\n",
    "    print('\\n')\n",
    "    pretty_print(LE(r\"\\mathbf{ODE}\\;\\; \"),ode_key)\n",
    "    for (key,value) in odes[ode_key].items():\n",
    "        pretty_print(key,' = ',value)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "occupational-pittsburgh",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "#pretty_print(odes['2'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "intensive-hygiene",
   "metadata": {},
   "outputs": [],
   "source": [
    "#pretty_print(odes['3j'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "shaped-module",
   "metadata": {},
   "outputs": [],
   "source": [
    "#pretty_print(odes['2j'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "developmental-reward",
   "metadata": {},
   "outputs": [],
   "source": [
    "#pretty_print(odes['1j'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7f066693-214e-421a-b171-0bd487551adc",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "SageMath 9.4",
   "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.9.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
