{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e5e44fb3",
   "metadata": {},
   "source": [
    "## Ejemplo 5.4: Varios estados compuestos importantes"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71cd75b7",
   "metadata": {},
   "source": [
    "Definimos varios estados compuestos importantes que usaremos durante el curso:\n",
    "\n",
    "1. Estado máximamente mezclado:\n",
    "\\begin{align*}        \n",
    "  \\delta &= \\frac{1}{4} \\left[\\begin{smallmatrix}\n",
    "                 1 & 0 & 0 & 0\\\\\n",
    "                 0 & 1 & 0 & 0\\\\\n",
    "                 0 & 0 & 1 & 0\\\\\n",
    "                 0 & 0 & 0 & 1 \\end{smallmatrix}\\right]\n",
    "\\end{align*}\n",
    "Los sub-sistemas que componen este estado son independientes entre sí, ya que\n",
    "\\begin{align*}        \n",
    "  \\delta &= \\frac{1}{2} \\left[\\begin{matrix}\n",
    "                 1 & 0\\\\\n",
    "                 0 & 1 \\end{matrix}\\right]\n",
    "                 \\otimes\n",
    "           \\frac{1}{2} \\left[\\begin{matrix}\n",
    "                 1 & 0\\\\\n",
    "                 0 & 1 \\end{matrix}\\right]\n",
    "\\end{align*}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "e51496e6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "delta_1 =\n",
      "\n",
      "   0.2500        0        0        0\n",
      "        0   0.2500        0        0\n",
      "        0        0   0.2500        0\n",
      "        0        0        0   0.2500\n",
      "\n",
      "rho =\n",
      "\n",
      "   0.5000        0\n",
      "        0   0.5000\n",
      "\n",
      "sigma =\n",
      "\n",
      "   0.5000        0\n",
      "        0   0.5000\n",
      "\n",
      "delta_1 =\n",
      "\n",
      "   0.2500        0        0        0\n",
      "        0   0.2500        0        0\n",
      "        0        0   0.2500        0\n",
      "        0        0        0   0.2500\n",
      "\n"
     ]
    }
   ],
   "source": [
    "delta_1 = [[1/4, 0, 0, 0]; [0, 1/4, 0, 0]; [0, 0, 1/4, 0]; [0, 0, 0, 1/4]]\n",
    "\n",
    "% Pero también:\n",
    "rho    = [[1/2, 0]; [0, 1/2]]\n",
    "sigma  = [[1/2, 0]; [0, 1/2]]\n",
    "delta_1 = kron(rho, sigma)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7625c52a",
   "metadata": {},
   "source": [
    "2. Estado con correlación máxima: \n",
    "          \\begin{align*}        \n",
    "              \\delta &= \\frac{1}{2} \\left[\\begin{smallmatrix}\n",
    "                 1 & 0 & 0 & 0\\\\\n",
    "                 0 & 0 & 0 & 0\\\\\n",
    "                 0 & 0 & 0 & 0\\\\\n",
    "                 0 & 0 & 0 & 1 \\end{smallmatrix}\\right]\n",
    "          \\end{align*}\n",
    "Los sub-sistemas que componen este estado presentan una cierta correlación, pero no están entrelazados entre sí. Esto se puede ver con la siguiente descomposición:\n",
    "\\begin{align*}        \n",
    " \\delta &=  \\frac{1}{2} \\left[\\begin{matrix}\n",
    "                 1 & 0\\\\ 0 & 0 \\end{matrix}\\right]\n",
    "            \\otimes \\left[\\begin{matrix}\n",
    "                 1 & 0\\\\ 0 & 0 \\end{matrix}\\right]        \n",
    "        +  \\frac{1}{2} \\left[\\begin{matrix}\n",
    "                 0 & 0\\\\ 0 & 1 \\end{matrix}\\right]\n",
    "            \\otimes \\left[\\begin{matrix}\n",
    "                 0 & 0\\\\ 0 & 1 \\end{matrix}\\right]\n",
    "          \\end{align*}\n",
    "por lo que se trata de un estado separable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "746f0b09",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "delta_2 =\n",
      "\n",
      "   0.5000        0        0        0\n",
      "        0        0        0        0\n",
      "        0        0        0        0\n",
      "        0        0        0   0.5000\n",
      "\n",
      "Pi0 =\n",
      "\n",
      "   1   0\n",
      "   0   0\n",
      "\n",
      "Pi1 =\n",
      "\n",
      "   0   0\n",
      "   0   1\n",
      "\n",
      "delta_2 =\n",
      "\n",
      "   0.5000        0        0        0\n",
      "        0        0        0        0\n",
      "        0        0        0        0\n",
      "        0        0        0   0.5000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "delta_2 = [[1/2, 0, 0, 0]; [0, 0, 0, 0]; [0, 0, 0, 0]; [0, 0, 0, 1/2]]\n",
    "\n",
    "% Pero tambien:\n",
    "Pi0    = [[1, 0]; [0, 0]]\n",
    "Pi1    = [[0, 0]; [0, 1]]\n",
    "delta_2 = 1/2*kron(Pi0,Pi0) + 1/2*kron(Pi1,Pi1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "971bc395",
   "metadata": {},
   "source": [
    "3. Estado máximamente entrelazado:\n",
    "           \\begin{align*}        \n",
    "              \\delta &= \\frac{1}{2} \\left[\\begin{smallmatrix}\n",
    "                 1 & 0 & 0 & 1\\\\\n",
    "                 0 & 0 & 0 & 0\\\\\n",
    "                 0 & 0 & 0 & 0\\\\\n",
    "                 1 & 0 & 0 & 1 \\end{smallmatrix}\\right]\n",
    "           \\end{align*}\n",
    "Este estado se corresponde a un estado puro, ya que\n",
    "           \\begin{align*}        \n",
    "              \\delta &= \\ket{\\psi}\\bra{\\psi}\n",
    "           \\end{align*}\n",
    "           donde $\\ket{\\psi} = \\frac{1}{\\sqrt{2}} \\bigl(\\ket{0} \\otimes \\ket{0} + \\ket{1} \\otimes \\ket{1} \\bigr)$,\n",
    "           y no se puede descomponer como un estado independiente o mixto. Por tanto concluimos que éste es un estado entrelazado."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "c14c2ac3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "delta_3 =\n",
      "\n",
      "   0.5000        0        0   0.5000\n",
      "        0        0        0        0\n",
      "        0        0        0        0\n",
      "   0.5000        0        0   0.5000\n",
      "\n",
      "ket0 =\n",
      "\n",
      "   1\n",
      "   0\n",
      "\n",
      "ket1 =\n",
      "\n",
      "   0\n",
      "   1\n",
      "\n",
      "ket_psi =\n",
      "\n",
      "   0.7071\n",
      "        0\n",
      "        0\n",
      "   0.7071\n",
      "\n",
      "delta_3 =\n",
      "\n",
      "   0.5000        0        0   0.5000\n",
      "        0        0        0        0\n",
      "        0        0        0        0\n",
      "   0.5000        0        0   0.5000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "delta_3 = [[1/2, 0, 0, 1/2]; [0, 0, 0, 0]; [0, 0, 0, 0]; [1/2, 0, 0, 1/2]]\n",
    "\n",
    "% Pero también:\n",
    "ket0 = [1; 0]\n",
    "ket1 = [0; 1]\n",
    "ket_psi = 1/sqrt(2) * (kron(ket0,ket0) + kron(ket1,ket1))\n",
    "delta_3 = ket_psi*ket_psi'"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Raw Cell Format",
  "kernelspec": {
   "display_name": "Octave",
   "language": "octave",
   "name": "octave"
  },
  "language_info": {
   "file_extension": ".m",
   "help_links": [
    {
     "text": "GNU Octave",
     "url": "https://www.gnu.org/software/octave/support.html"
    },
    {
     "text": "Octave Kernel",
     "url": "https://github.com/Calysto/octave_kernel"
    },
    {
     "text": "MetaKernel Magics",
     "url": "https://metakernel.readthedocs.io/en/latest/source/README.html"
    }
   ],
   "mimetype": "text/x-octave",
   "name": "octave",
   "version": "8.2.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
