{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e5e44fb3",
   "metadata": {},
   "source": [
    "## Ejemplo 4.1: Un sobre cerrado"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71cd75b7",
   "metadata": {},
   "source": [
    "$\\newcommand{\\ket}[1]{|{#1}\\rangle}\\newcommand{\\bra}[1]{\\langle{#1}|}\\DeclareMathOperator{\\Tr}{Tr}$En un sobre se introduce aleatoriamente un disco de color blanco o negro con una cierta probabilidad. El sobre se cierra a continuación sin conocer cuál es su contenido:\n",
    "\n",
    "<img src=\"figs/envelope-experiment.svg\" alt=\"envelope-experiment\" style=\"width: 80px;\"/>\n",
    "\n",
    "Como inicialmente no conocemos qué hay dentro del sobre, este experimento se puede modelar como una variable aleatoria $X$ de acuerdo a una Bernoulli con parametro $p$. Ahora, imaginemos que abrimos el sobre, observamos su contenido y lo volvemos a cerrar. La primera vez que hacemos este proceso podemos observar 'blanco' o 'negro' de forma aleatoria."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "e51496e6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "p = 0.2500\n",
      "rhoX =\n",
      "\n",
      "   0.7500        0\n",
      "        0   0.2500\n",
      "\n",
      "p0 = 0.7500\n",
      "p1 = 0.2500\n"
     ]
    }
   ],
   "source": [
    "Pi0 = [1, 0; 0, 0];\n",
    "Pi1 = [0, 0; 0, 1];\n",
    "\n",
    "p = 0.25\n",
    "rhoX = [1-p, 0; 0, p]\n",
    "\n",
    "p0 = trace(Pi0 * rhoX)\n",
    "p1 = trace(Pi1 * rhoX)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "82ee29fa",
   "metadata": {},
   "source": [
    "Sin embargo, una vez realizada esta observación (o medida) el contenido del sobre ya es conocido, y por mucho que lo cerremos y lo volvamos a abrir varias veces, su contenido ya no cambiará. De esta forma, después de la primera observación, la variable aleatoria $X$ pasa ser determinista al estar en un estado definido."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "6693906a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "rhoXprime_0 =\n",
      "\n",
      "   1   0\n",
      "   0   0\n",
      "\n",
      "rhoXprime_1 =\n",
      "\n",
      "   0   0\n",
      "   0   1\n",
      "\n"
     ]
    }
   ],
   "source": [
    "rhoXprime_0 = Pi0 * rhoX * Pi0' / trace(Pi0 * rhoX)\n",
    "rhoXprime_1 = Pi1 * rhoX * Pi1' / trace(Pi1 * rhoX)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "04c52a7e",
   "metadata": {},
   "source": [
    "Por otra parte, si realizamos la medida (abrimos el sobre) pero sin observar su resultado, el valor de  \n",
    "$X$ seguiría siendo desconocido y por tanto aleatorio. La nueva matriz de densidad de probabilidad tras la medida pasaría a ser en este caso:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "5b8486fb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "rhoXprime =\n",
      "\n",
      "   0.7500        0\n",
      "        0   0.2500\n",
      "\n"
     ]
    }
   ],
   "source": [
    "rhoXprime = Pi0 * rhoX * Pi0 + Pi1 * rhoX * Pi1'"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3271a5ba",
   "metadata": {},
   "source": [
    "Concluimos que el proceso de medida (sin observar el contenido del sobre) no ha afectado al estado, ya que $\\rho_X'=\\rho_X$.\n",
    "A pesar de que esto último puede parecer intuitivo, veremos que en el caso de aplicar una medida a un estado cuántico, ésta puede afectar al estado incluso si no observamos su resultado."
   ]
  }
 ],
 "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
}
