{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e5e44fb3",
   "metadata": {},
   "source": [
    "## Ejercicio 5.1: Marginalizando tres estados compuestos importantes"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71cd75b7",
   "metadata": {},
   "source": [
    "Obtenga $\\rho^A = \\text{Tr}_{B} \\left[ \\delta^{AB} \\right]$ y $\\sigma^B = \\text{Tr}_{A} \\left[ \\delta^{AB} \\right]$ para los siguientes estados."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "672898a7",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "# Definimos las funciones auxiliares traceA y traceB:\n",
    "\n",
    "def traceA(delta): # traces out part A of a bipartite system\n",
    "    sigma = np.array([[delta[0, 0] + delta[2, 2], delta[0, 1] + delta[2, 3]],\n",
    "                      [delta[1, 0] + delta[3, 2], delta[1, 1] + delta[3, 3]]])\n",
    "    return sigma\n",
    "\n",
    "def traceB(delta): # traces out part B of a bipartite system\n",
    "    rho = np.array([[delta[0, 0] + delta[1, 1], delta[0, 2] + delta[1, 3]],\n",
    "                    [delta[2, 0] + delta[3, 1], delta[2, 2] + delta[3, 3]]])\n",
    "    return rho"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "86e87a91",
   "metadata": {},
   "source": [
    "### 1. Estado máximamente mezclado\n",
    "   \\begin{align*}\n",
    "   \\delta^{AB} = \\dfrac{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*}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e51496e6",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7625c52a",
   "metadata": {},
   "source": [
    "### 2. Estado con correlación máxima\n",
    "   \\begin{align*}\n",
    "   \\delta^{AB} = \\dfrac{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*}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "746f0b09",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "971bc395",
   "metadata": {},
   "source": [
    "### 3. Estado con máximo entrelazamiento\n",
    "   \\begin{align*}\n",
    "   \\delta^{AB} = \\dfrac{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*}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c14c2ac3",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1330d4a6",
   "metadata": {},
   "source": [
    "Compare y explique los resultados obtenidos."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "66b31795",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Raw Cell Format",
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "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.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
