{
 "metadata": {
  "name": ""
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy as np\n",
      "import scipy.sparse as sp\n",
      "import scipy.sparse.linalg as alg\n",
      "import math\n",
      "from time import time\n",
      "\n",
      "import pylab as pl\n",
      "\n",
      "%pylab inline --no-import-all"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Populating the interactive namespace from numpy and matplotlib\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# x - bezwymiarowa siatka polozen\n",
      "\n",
      "# Stale 'rho' zadeklerowane dla ponizszych typow potencjalow to bezwymiarowe zmienne\n",
      "# z bezwymiarowego rownania Schrodingera.\n",
      "\n",
      "def rho_infWell():\n",
      "    return 1.0\n",
      "def infWell(x):\n",
      "    # potencjal nieskonczonej studni:\n",
      "    # v(x) = 0\n",
      "    return np.zeros_like(x)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# rozmiar macierzy pieciodiagonalnej:\n",
      "N = 1400\n",
      "    \n",
      "# konce bezwymiarowego przedzialu obustronnie domknietego [x_min,x_max]:\n",
      "x_min = -3.0\n",
      "x_max = 3.0\n",
      "\n",
      "# ilosc wartosci wlasnych i wektorow wlasnych, ktore chcemy wyznaczyc:\n",
      "N_eigvals = 4\n",
      "\n",
      "# wybor potencjalu:\n",
      "potential = infWell\n",
      "# opcjonalne argumenty wybranego potencjalu:\n",
      "args_potential = ()\n",
      "\n",
      "# wybor parametru rho (odpowiedni dla danego potencjalu):\n",
      "#rho = rho_Konwent\n",
      "rho = rho_infWell\n",
      "# opcjonalne argumety wejsciowe funkcji zwracajacej wartosc bezwymiarowej zmiennej rho\n",
      "args_rho = ()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 86
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential):\n",
      "    \n",
      "    \"\"\"\n",
      "    funkcja 'EigenvalEigenvecProblem5' rozwiazuje algebraiczne zagadnienie wlasne \n",
      "    wykorzystujac pieciopunktowa metode centralnych roznic skonczonych do przyblizenia \n",
      "    drugiej pochodnej.\n",
      "    \"\"\"\n",
      "    \n",
      "    # dyskretna siatka polozen, gdzie N - ilosc punktow siatki:\n",
      "    x = np.linspace(x_min, x_max, N)\n",
      "    \n",
      "    # krok dyskretnej siatki:\n",
      "    dx = (x_max - x_min) / (N - 1)\n",
      "    \n",
      "    # elementy na glownej diagonali macierzy pentadiagonalnej:\n",
      "    diagonal = 30.0 * np.ones(N) + 12.0 * dx * dx * rho(*args_rho) * potential(x, *args_potential)\n",
      "    # elementy na pierwszych diagonalach macierzy pentadiagonalnej:\n",
      "    diag_edge1 = -16.0 * np.ones(N - 1)\n",
      "    # elementy na drugich diagonalach macierzy pentadiagonalnej:\n",
      "    diag_edge2 = 1.0 * np.ones(N - 2)\n",
      "    # tablica niezerowych element\u00f3w macierzy pentadiagonalnej:\n",
      "    pentadiagonal = np.array([diag_edge2, diag_edge1, diagonal, diag_edge1, diag_edge2])\n",
      "    \n",
      "    # numery diagonali, gdzie 0 oznacza diagonale glowna, \n",
      "    # -1 -pierwsza diagonale dolna, 1 -pierwsza diagonale gorna,\n",
      "    # -2 -druga diagonale dolna, 2 - druga diagonale gorna:\n",
      "    offsets = [-2, -1, 0, 1, 2]\n",
      "    # macierz trojdiagonalna (hamiltonian) zapisana w postaci macierzy rzadkiej:\n",
      "    hamilton = sp.diags(pentadiagonal, offsets)\n",
      "        \n",
      "    start = time()\n",
      "    \n",
      "    # wyznaczenie N_eigvals wartosci wlasnych i odpowiadajacych im wektorow wlasnych\n",
      "    eigvals, eigvecs = alg.eigsh(hamilton, k = N_eigvals, which = \"SM\", tol = 1.0E-4)\n",
      "    # argument \"SM\" oznacza, \u017ce wyznaczone zostanie N_eigvals najmniejszych wartosci\n",
      "    # wlasnych i odpowiadajacych im wektorow wlasnych, a argument \"tol\" oznacza wzgledna \n",
      "    # dokladnosc, z jaka wyznaczone zostana wartosci wlasne\n",
      "    \n",
      "    # !UWAGA! Argument 'eigvecs' stanowi macierz o 'N' wierszach i 'k' kolumnach,\n",
      "    # wiec i-ty wektor wlasny ma 'i' kolumn o dlugosci 'N'.\n",
      "    \n",
      "    #print \"'alg.eigsh(...)' time: %.2fs\" % (time() - start)\n",
      "    \n",
      "    eigvals = eigvals / (12.0 * dx * dx * rho(*args_rho))\n",
      "    \n",
      "    return eigvals, eigvecs"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 87
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "eigvals_a, eigvecs_a = EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)\n",
      "print eigvals_a"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "[ 0.27343388  1.0937355   2.46090488  4.374942  ]\n"
       ]
      }
     ],
     "prompt_number": 88
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# DYSKUSJA BLEDOW\n",
      "N = 1300\n",
      "eigvals_a, eigvecs_a = EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)\n",
      "\n",
      "N_max = 1000\n",
      "\n",
      "N_list = range(100, N_max + 50, 50)\n",
      "measures = 5\n",
      "\n",
      "time_list = []\n",
      "digits_list = []\n",
      "\n",
      "for N in N_list:\n",
      "    eigvals_num, eigvecs_num = EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)\n",
      "    \n",
      "    time_start = time()\n",
      "    for m in xrange(measures):\n",
      "        EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)\n",
      "    exec_time = (time() - time_start) / measures\n",
      "    \n",
      "    time_list.append( exec_time )\n",
      "    digits = [-math.log10( abs( (e_num - e_a) / e_a ) )\n",
      "                  for e_num, e_a in zip(eigvals_num, eigvals_a) ]\n",
      "    digits_list.append(digits)\n",
      "    \n",
      "    print \"%d/%d/%.2f\" % (N, N_max,exec_time)\n",
      "    \n",
      "for idx in xrange(N_eigvals):\n",
      "    \n",
      "    digit_data = [digit[idx] for digit in digits_list]\n",
      "    pl.plot(N_list, digit_data, \".-\", label = \"$\\widetilde{E}_{%d}$\" % (idx+1))\n",
      "    \n",
      "pl.grid()\n",
      "pl.legend(loc = \"lower right\")\n",
      "pl.xlabel(\"$N$\", {\"fontsize\": \"xx-large\"})\n",
      "pl.ylabel(\"$l_n$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "pl.savefig(\"well_num_l_N.png\")\n",
      "pl.show()\n",
      "\n",
      "for idx in xrange(N_eigvals):\n",
      "    \n",
      "    digit_data = [digit[idx] for digit in digits_list]\n",
      "    pl.plot(time_list, digit_data, \".-\", label = \"$\\widetilde{E}_{%d}$\" % (idx+1))\n",
      "\n",
      "pl.grid()\n",
      "pl.legend(loc = \"lower right\")\n",
      "#pl.legend(bbox_to_anchor=(1.16, 0.7))    \n",
      "pl.xlabel(\"$t$\", {\"fontsize\": \"xx-large\"})\n",
      "pl.ylabel(\"$l_n$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "pl.savefig(\"well_num_l_t.png\")\n",
      "pl.show()\n",
      "\n",
      "pl.grid()\n",
      "pl.plot(N_list, [t**0.33 for t in time_list], \".-\") \n",
      "pl.xlabel(\"$N$\", {\"fontsize\": \"xx-large\"})\n",
      "pl.ylabel(\"$t^3$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "pl.savefig(\"well_num_t_N.png\")\n",
      "pl.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "100/1000/0.10\n",
        "150/1000/0.24"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "200/1000/0.45"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "250/1000/0.68"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "300/1000/1.04"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "350/1000/1.62"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "400/1000/1.98"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "450/1000/3.04"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "500/1000/3.50"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "550/1000/4.34"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "600/1000/5.23"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "650/1000/6.32"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "700/1000/7.82"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "750/1000/11.67"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "800/1000/13.84"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "850/1000/14.54"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "900/1000/15.43"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "950/1000/18.89"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "1000/1000/21.23"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nuQzdXiRYFJmZmfj7+zNo0KCHFo6oqChGjhzJjh078hUOvTL2XzfmpIdMGRmZjFm4BJ/d31Lz1k2a\nf72Ngy4euiscethW/ySZjGOqTJs2wYABhd/pm2IZSikOHjxI+/btAahUqRIVKlRg2bJlBAQE0Lp1\nazIyMgoXzsTMOmyllGL48OG4ubkxadKkB84TFxfH888/z4YNG2jatKk54wkTe3PZR3xVozwWdW0I\nvJbG/ImTCAsLkyvChS5ZWxdumMlUy4iKimLTpk3cvXuXnTt3ApCWlkZISAgeHh5YWlrqasTFrMNW\nR44coWPHjnh6emJhYQFAUFAQcXFxAIwePZoRI0awfft26tevD4ClpSU//fRT3tAybKVra774ivU3\n47hax45nLySy7I1J8rhXobnSsN/4448/CA4OZu7cR5/GXuqu8+jQoQM5OTmPnOeTTz7hk08+MVMi\nYUrf7DnMssjDnGnegm7nU9g9eDi2NjW0jiVEqaGn4mf2nkdpVZrHgh/n5C+/02vBPIbdS6JmegZH\nvZ9g4/w5DywcetxOoM9cksk4esxUHFJTU/nqq68IDw/n119/1TqOdqfqipIv7tI1Xlu3irBWPrQq\nV47/2jWg47y+WscSolSqVq0aU6ZMYcqUKVpHAeTeVqIQUtPSGffOe+xxd6FJ7EVebeLDwOe6ax1L\niEcqS/sNXTzDXI/K0i+BHnQJWkiSjQ2WGRn43LrH/oaOVE9L5aUKNkwd+dLjFyCEDpSl/UapvM6j\ntNLjuKupMiXZ2BDp6s4Jr1ZsbuVBvyu3OTlyTKEKhx63E+gzl2Qyjh4zlQXS8xCPdOh4JJfr2APg\nfPUy2118aPPssxqnEkJoTYatxAPdup3K6PfeY18rb9pERZJiVYW1z/SXC/xEiVWW9hvS83iIsvRL\noIU3l3/EZtsqWN+6ycS6Lgz276l1JCGKrCztN6TnUYLocdy1oJl27j9Gh3eXsN7Rmmcu3eDHMeNN\nXjj0uJ1An7kkk3H0mKkskJ6H4Mq1JF5d9SFhrX3omJrOlqe64PzvOlrHEkLomAxblXFTl37Itnq1\ncLqcyOtuT/Bcj39pHUmIYlGW9hul7t5WQj/+37f7ef9CJNec7AhITGbxlNe1jiSEKEGk52Eiehx3\nfVCmmPgr9J4/j1dzUql/M4XwXn1ZPGWsppn0QI+5JJNx9JipLJDiUUZkZ2Uz9q136HD8ILeqVGKL\n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\nAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0xc28c5ec>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\neQT+lssL0zAAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0xe0cb80c>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nrlHhcIAXxzSVyT4v5lIme5TJHSocIiJSKepxiIjUAOpxiIiIa1Q4HODFMU1lss+LuZTJHmVyhwqH\nA3JyctwtcowkAAAKTUlEQVSOUIEy2efFXMpkjzK5w6+FY9GiRURHRxMVFcWECRNO+5xRo0YRFRVF\nXFwc2dnZ/ox33oqKityOUIEy2efFXMpkjzK5w2+F49ixY4wcOZJFixaxadMm5s6dy5dfflnuOenp\n6WzZsoW8vDxee+01hg0b5q94IiJik98Kx7p164iMjKRp06bUrVuXfv368d5775V7TlpaGikpKQAk\nJiZSVFTEzp07/RXxvOXn57sdoQJlss+LuZTJHmVyifGT+fPnmwceeKDseM6cOWbkyJHlntOzZ0+z\natWqsuOuXbua9evXl3sOoA996EMf+jiPD6fUwU+CgoJsPc+ccp/xqV936udFRMS//DZUFR4eTkFB\nQdlxQUEBERERZ31OYWEh4eHh/oooIiI2+K1wtG/fnry8PPLz8ykuLubtt98mOTm53HOSk5N54403\nAMjKyiIkJISwsDB/RRQRERv8NlRVp04dpk6dym233caxY8cYPHgwMTExzJw5E4DU1FR69OhBeno6\nkZGRXHLJJcyaNctf8URExC7HuiUOGTRokAkNDTWtWrUqe2z37t2mW7duJioqytxyyy1mz549ZZ8b\nN26ciYyMNC1atDAfffRRlWTatm2bSUpKMrGxsaZly5Zm8uTJruc6fPiwue6660xcXJyJiYkxTzzx\nhOuZSh09etTEx8ebnj17eiLT1VdfbVq3bm3i4+NNhw4dPJHJGGP27Nlj+vbta6Kjo01MTIzJyspy\nNddXX31l4uPjyz4uu+wyM3nyZNfP1bhx40xsbKxp1aqV6d+/vzly5IjrmSZNmmRatWplWrZsaSZN\nmmSM8f/vlFPvlevXrzetWrUykZGRZtSoUbZe23OFY8WKFWbjxo3lTsZjjz1mJkyYYIwxZvz48ebx\nxx83xhjzxRdfmLi4OFNcXGy2bt1qmjdvbo4dO+Z4pu+++85kZ2cbY4zZv3+/ufbaa82mTZtcz3Xw\n4EFjjDElJSUmMTHRZGZmup7JGGNefvllc88995hevXoZY9z/+TVt2tTs3r273GNuZzLGmAEDBpi/\n/e1vxhjrZ1hUVOSJXMYYc+zYMdO4cWOzbds2VzNt3brVNGvWzBw5csQYY8zdd99tZs+e7Wqm3Nxc\n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\n",
       "text": [
        "<matplotlib.figure.Figure at 0xcc9950c>"
       ]
      }
     ],
     "prompt_number": 89
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "pl.plot(N_list, [t**0.33 for t in time_list])\n",
      "#pl.plot(N_list, [d**3 for d in digit_data])\n",
      "#pl.plot(time_list, [d**6 for d in digit_data])"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 80,
       "text": [
        "[<matplotlib.lines.Line2D at 0xc53b44c>]"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nAAAhISGwWCwoLCxsucRERNR0woadO3eKZ5991vp869atYsGCBXWOmThxokhJSbE+HzlypEhPT69z\nDAA++OCDDz7u4GEvbrBBo9HYetlK9vnt/9zvXyciotZlcxhHq9XCbDZbn5vNZuh0OpvH5OfnQ6vV\n2jkmERE1h82yHzRoELKyspCbm4uKigrs2LEDoaGhdY4JDQ3Fli1bAACpqano0qULPDw8Wi4xERE1\nmc1hHDc3N6xZswZjx45FdXU1IiIi4Ofnh/Xr1wMAIiMjMX78eMTHx8Pb2xsdOnTApk2bWiU4ERE1\ngT0G/ufOnSt69uwpAgICrN8rLi4Wo0aNEj4+PmL06NHi6tWr1teio6OFt7e36N+/v9i3b589ItST\nl5cnjEaj0Ov1wt/fX6xatUrxXOXl5WLIkCHCYDAIPz8/8cYbbyieqVZVVZUIDAwUEydOdIhM9913\nnxgwYIAIDAwUgwcPdohMQghx9epVERYWJnx9fYWfn59ITU1VNNf3338vAgMDrY+7775brFq1SvGf\nVXR0tNDr9SIgIECEh4eLGzduKJ5p5cqVIiAgQPj7+4uVK1cKIVr/d8peXZmeni4CAgKEt7e3iIqK\natS57VL2R44cEadOnarzF3j99ddFTEyMEEKI9957TyxcuFAIIcR3330nDAaDqKioEDk5OaJv376i\nurraHjHquHz5ssjIyBBCCFFaWir69esnzp07p3iua9euCSGEqKysFCEhISI5OVnxTEII8cEHH4gZ\nM2aISZMmCSGU//fr3bu3KC4urvM9pTMJIcTs2bPFxo0bhRDy39BisThELiGEqK6uFp6eniIvL0/R\nTDk5OaJPnz7ixo0bQgghnnrqKfHpp58qmunMmTMiICBAlJeXi6qqKjFq1CiRnZ3d6pma25U1NTVC\nCCEGDx4sTpw4IYQQYty4cSIhIaHBc9ttXk9OTk6dv0D//v3FlStXhBCyePv37y+EkP9Tvffee9bj\nxo4dK44fP26vGLc1efJkceDAAYfJde3aNTFo0CBx9uxZxTOZzWYxcuRIcejQIeuVvdKZevfuLYqK\niup8T+lMFotF9OnTp973lc5Va9++fWLYsGGKZyouLhb9+vUTJSUlorKyUkycOFHs379f0Uw7d+4U\nERER1ufvvPOOiImJUSRTc7vy0qVLwtfX1/r97du3i8jIyAbP22Jr4xQWFlo/qPXw8LDeaHXp0qU6\nM3p0Oh0KCgpaKgYAIDc3FxkZGQgJCVE8V01NDQIDA+Hh4YERI0bA399f8Uyvvvoq3n//fbRpc/PX\nQelMGo0Go0aNwqBBg/DRRx85RKacnBz06NEDc+fORXBwMJ577jlcu3ZN8Vy1YmNjER4eDkDZn1W3\nbt3w2muv4d5778U999yDLl26YPTo0YpmCggIQHJyMkpKSnD9+nXEx8cjPz/fIf7tmprh99/XarWN\nytYqC6FpNBqbc/YbO5//TpSVlSEsLAyrVq1Cp06dFM/Vpk0bnD59Gvn5+Thy5AgOHz6saKYvv/wS\nPXv2RFBQ0G3vh1Di55SSkoKMjAwkJCRg7dq1SE5OVjxTVVUVTp06hRdeeAGnTp1Chw4d8N577yme\nCwAqKirwxRdfYNq0abc8Z2tm+uGHH7By5Urk5ubi0qVLKCsrw7Zt2xTN5Ovri4ULF2LMmDEYN24c\nAgMD0bZtW0Uz3e4cLXWeFit7Dw8PXLlyBQBw+fJl9OzZE0DrzsuvrKxEWFgYZs2ahSlTpjhMLgDo\n3LkzJkyYgK+//lrRTMeOHUNcXBz69OmD8PBwHDp0CLNmzVL859SrVy8AQI8ePTB16lSkpaUpnkmn\n00Gn02Hw4MEAgCeffBKnTp2Cp6en4r9TCQkJeOCBB9CjRw8Ayv6ep6enY+jQoejevTvc3NzwxBNP\n4Pjx44r/nObNm4f09HQkJSWha9eu6Nevn+K/U0DT/q10Oh20Wi3y8/ObnK3Fyj40NBSbN28GAGze\nvNlatqGhoYiNjUVFRQVycnKQlZWFIUOG2P38QghERERAr9fjlVdecYhcRUVFsFgsAIDy8nIcOHAA\nQUFBimaKjo6G2WxGTk4OYmNj8dhjj2Hr1q2KZrp+/TpKS0sBANeuXcP+/fsxYMAAxX+nPD094eXl\nhczMTADAwYMH4e/vj0mTJimaCwC2b99uHcKpPbdSmXx9fZGamory8nIIIXDw4EHo9XrFf04//fQT\nACAvLw+7d+/GjBkzFP+dqj1XUzJ4enri7rvvxokTJyCEwNatW61/xiZ7fOAwffp00atXL9GuXTuh\n0+nEJ598IoqLi8XIkSNvOZ3o3XffFX379hX9+/cXiYmJ9ohQT3JystBoNMJgMFinpSUkJCia69tv\nvxVBQUHCYDCIAQMGiGXLlgkhhOI/q1omk8k6G0fJTBcvXhQGg0EYDAbh7+8voqOjFc9U6/Tp02LQ\noEFi4MCBYurUqcJisSieq6ysTHTv3l38+uuv1u8pnSkmJsY69XL27NmioqJC8UzDhw8Xer1eGAwG\ncejQISEYZ1d8AAAARUlEQVRE6/+c7NWVtVMv+/btK1566aVGnVsjBBeuISJydardqYqISE1Y9kRE\nKsCyJyJSAZY9EZEKsOyJiFSAZU9EpAL/D/Q4UByL0eCWAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0xc1bc9cc>"
       ]
      }
     ],
     "prompt_number": 80
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "[t**0.33 for t in time_list]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 68,
       "text": [
        "[0.48293653667916897,\n",
        " 0.6129524319088655,\n",
        " 0.742903306755413,\n",
        " 0.8967820034733134,\n",
        " 1.0016895457807649,\n",
        " 1.1618861101436642,\n",
        " 1.247052417601803,\n",
        " 1.3546850151228131,\n",
        " 1.5419529592200871,\n",
        " 1.599741542499141,\n",
        " 1.786968195070769,\n",
        " 1.8580062767880399,\n",
        " 1.9790126204986755,\n",
        " 2.156988242825199,\n",
        " 2.2272812347952087,\n",
        " 2.273331332593955,\n",
        " 2.472131658338682,\n",
        " 2.5980248443122833]"
       ]
      }
     ],
     "prompt_number": 68
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "[t**0.5 for t in time_list]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 44,
       "text": [
        "[0.32490793538076085,\n",
        " 0.4883541449494232,\n",
        " 0.6722710440205036,\n",
        " 0.817733197330273,\n",
        " 1.0675732386030918,\n",
        " 1.1840048903673575,\n",
        " 1.3485974903163105,\n",
        " 1.5992730277298248]"
       ]
      }
     ],
     "prompt_number": 44
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# WYKRES WARTOSCI ENERGII DLA KOLEJNYCH POZIOMOW ENERGETYCZNYCH:\n",
      "\n",
      "N_eigvals = 4\n",
      "\n",
      "eigvals, eigvecs = EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)\n",
      "\n",
      "fig, ax1 = pl.subplots(figsize = (8, 5))\n",
      "ax1.set_yticklabels([])\n",
      "ax1.set_ylabel(\"$\\psi_n$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "\n",
      "ax2 = ax1.twinx()\n",
      "\n",
      "num_x = len(eigvecs)\n",
      "dx = (x_max - x_min) / (num_x - 1) \n",
      "x_list = [x_min + i * dx for i in xrange(num_x)]\n",
      "print len(x_list)\n",
      "h_list = [potential(x_i) for x_i in x_list]\n",
      "ax2.plot(x_list, h_list, color = \"black\")\n",
      "\n",
      "#\"FUNKCJE FALOWE x5!\"\n",
      "for i in xrange(N_eigvals):\n",
      "    ax2.plot([x_min, x_max], [eigvals[i],eigvals[i]], color = \"orange\")\n",
      "    ax2.plot(x_list, 5.0*eigvecs[:,i] + eigvals[i], color = \"green\")\n",
      "\n",
      "ax2.set_xticks([x_min, x_max])\n",
      "ax2.set_xticklabels([\"$x_{min}$\", \"$x_{max}$\"])\n",
      "ax2.set_xlim(x_min, x_max)\n",
      "ax2.set_yticks(eigvals)\n",
      "ax2.set_yticklabels([\"$n = %d$\" % i for i in range(1,len(eigvals)+1)])\n",
      "ax2.set_ylim(None, eigvals[-1] + 1)\n",
      "\n",
      "pl.savefig(\"well_num_all.png\")\n",
      "pl.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "ename": "KeyboardInterrupt",
       "evalue": "",
       "output_type": "pyerr",
       "traceback": [
        "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
        "\u001b[1;32m<ipython-input-5-b26a0615cadd>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[0mN_eigvals\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m4\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0meigvals\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0meigvecs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mEigenvalEigenvecProblem5\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mN\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mx_min\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mx_max\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mN_eigvals\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpotential\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs_potential\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      6\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      7\u001b[0m \u001b[0mfig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0max1\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpl\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfigsize\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;36m8\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m<ipython-input-4-412d5ad0f512>\u001b[0m in \u001b[0;36mEigenvalEigenvecProblem5\u001b[1;34m(N, x_min, x_max, N_eigvals, potential, *args_potential)\u001b[0m\n\u001b[0;32m     32\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     33\u001b[0m     \u001b[1;31m# wyznaczenie N_eigvals wartosci wlasnych i odpowiadajacych im wektorow wlasnych\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 34\u001b[1;33m     \u001b[0meigvals\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0meigvecs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0meigsh\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mhamilton\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mk\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mN_eigvals\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mwhich\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"SM\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtol\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m1.0E-4\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     35\u001b[0m     \u001b[1;31m# argument \"SM\" oznacza, \u017ce wyznaczone zostanie N_eigvals najmniejszych wartosci\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     36\u001b[0m     \u001b[1;31m# wlasnych i odpowiadajacych im wektorow wlasnych, a argument \"tol\" oznacza wzgledna\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/scipy/sparse/linalg/eigen/arpack/arpack.pyc\u001b[0m in \u001b[0;36meigsh\u001b[1;34m(A, k, M, sigma, which, v0, ncv, maxiter, tol, return_eigenvectors, Minv, OPinv, mode)\u001b[0m\n\u001b[0;32m   1570\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1571\u001b[0m     \u001b[1;32mwhile\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mparams\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconverged\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1572\u001b[1;33m         \u001b[0mparams\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miterate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1573\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1574\u001b[0m     \u001b[1;32mreturn\u001b[0m \u001b[0mparams\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mextract\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mreturn_eigenvectors\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/scipy/sparse/linalg/eigen/arpack/arpack.pyc\u001b[0m in \u001b[0;36miterate\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    540\u001b[0m             \u001b[1;31m# compute y = Op*x\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    541\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmode\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 542\u001b[1;33m                 \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mworkd\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0myslice\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mOP\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mworkd\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mxslice\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    543\u001b[0m             \u001b[1;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmode\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m2\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    544\u001b[0m                 \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mworkd\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mxslice\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mOPb\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mworkd\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mxslice\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/scipy/sparse/base.pyc\u001b[0m in \u001b[0;36mdot\u001b[1;34m(self, other)\u001b[0m\n\u001b[0;32m    244\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    245\u001b[0m         \"\"\"\n\u001b[1;32m--> 246\u001b[1;33m         \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m \u001b[1;33m*\u001b[0m \u001b[0mother\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    247\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    248\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0m__eq__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mother\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/scipy/sparse/base.pyc\u001b[0m in \u001b[0;36m__mul__\u001b[1;34m(self, other)\u001b[0m\n\u001b[0;32m    294\u001b[0m             \u001b[1;31m# Fast path for the most common case\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    295\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mother\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mN\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 296\u001b[1;33m                 \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_mul_vector\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mother\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    297\u001b[0m             \u001b[1;32melif\u001b[0m \u001b[0mother\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mN\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    298\u001b[0m                 \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_mul_vector\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mother\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mM\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/scipy/sparse/dia.pyc\u001b[0m in \u001b[0;36m_mul_vector\u001b[1;34m(self, other)\u001b[0m\n\u001b[0;32m    178\u001b[0m         \u001b[0mM\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mN\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    179\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 180\u001b[1;33m         \u001b[0mdia_matvec\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mM\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mN\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moffsets\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mL\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moffsets\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    181\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    182\u001b[0m         \u001b[1;32mreturn\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# WYKRES FUNKCJI FALOWEJ:\n",
      "\n",
      "x = np.linspace(x_min, x_max, N)\n",
      "eigvals, eigvecs = EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)\n",
      "\n",
      "fig, ax1 = pl.subplots(figsize = (8, 5))\n",
      "ax2 = ax1.twinx()\n",
      "\n",
      "for idx in range(N_eigvals)[0:4]:\n",
      "    \n",
      "    psi = 9.0 * eigvecs[:,idx]\n",
      "    ax2.plot(x, psi + eigvals[idx], label = \"$\\psi_{%d}(x)$\" % idx, color = \"red\")\n",
      "    \n",
      "ax1.set_ylabel(\"$\\psi_n(x)$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "ax1.set_yticks([])\n",
      "ax1.set_xticks([])\n",
      "ax1.set_xlabel(\"$x$\", {\"fontsize\": \"xx-large\"})\n",
      "\n",
      "ax2.set_xlim(x_min, x_max)\n",
      "ax2.set_xticklabels([x_min, x_max], [\"$x_{min}$\", \"$x_{max}$\"], size = 15)\n",
      "ax2.set_yticks(eigvals)\n",
      "ax2.set_yticklabels([\"$n = %d$\" % i for i in range(1,len(eigvals)+1)])\n",
      "\n",
      "pl.savefig(\"well_num_psi.png\")\n",
      "pl.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nlqZNXY9ln1f16Hzu68vAUllp2LDqzzk/X9lmblXNgan4ccPgnILSUu7pUvGxso+VfSwqYkCorBQU\nVP05ZykbGho14mvZvHn5MFfdv8sGiLIhwll0SUIsZJe+T0FDxFMZBjvT3NzyHWt1j5V9rKiofMde\nWanu8xWPraqOtao+7gwzNT1W/FjDhgxJTZpUXZxhqqpSNjhodEjqGbv0fQoaIiIi9ZBd+j7dwEJE\nRERMo6AhIiIiplHQEBEREdMoaIiIiIhpFDRERETENAoaIiIiYhoFDRERETGNgoaIiIiYRkFDRERE\nTKOgISIiIqZR0BARERHTKGiIiIiIaRQ0RERExDQKGiIiImIaBQ0RERExjYKGiIiImEZBQ0REREyj\noCEiIiKmUdAQERER0yhoiIiIiGkUNERERMQ0ChoiIiJiGgUNERERMY2ChoiIiJhGQUNERERMo6Ah\nIiIiplHQEBEREdMoaIiIiIhpFDRERETENAoaIiIiYhoFDRERETGNgoaIiIiYRkFDRERETKOgISIi\nIqZR0BARERHTKGiIiIiIaRQ0RERExDQKGiIiImKaRlZXwF18fHysroKIiIjX8YqgYRiG1VUQERHx\nSrp0IiIiIqZR0BARERHTKGiIiIiIaRQ0RERExDQKGiIiImIaBQ0RERExjVcsbxUR93r99deRl5eH\nvXv34qWXXsKnn34KwzCQmZmJ1157zerqiYgbaURDROrU3LlzMW7cODz33HO46667EBsbi8ceewyF\nhYVYtGiR1dUTETdT0BCROlVSUoLevXsDAFJTUxEZGYnOnTvjySefxKZNmyyunYi4m4+hbTNFxCSj\nRo3C2LFj8dvf/tbqqoiIRTSiISKmKCwsxI4dOxATE2N1VUTEQgoaIlJniouLsW7dOgDA9u3bYRgG\noqKiAADp6elYuHChldUTEQsoaIhInXn77bcxfvx45Ofn44svvkD79u3RqBEXt73xxhuYMGGCxTUU\nEXfTHA0RqTMHDx7EK6+8gtDQUIwbNw6rV69Gbm4umjVrhsmTJ6N///5WV1FE3ExBQ0REREyjSyci\nIiJiGgUNERERMY2ChoiIiJhGQUNERERMo6AhIiIiplHQEBEREdMoaIiIiIhpFDRERETENP8fXKl5\nRAsSvYAAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x9e6bbac>"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# WYKRES GESTOSCI PRAWDOPODOBIENSTWA: \n",
      "\n",
      "x = np.linspace(x_min, x_max, N)\n",
      "eigvals, eigvecs = EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)\n",
      "\n",
      "fig, ax1 = pl.subplots(figsize = (8, 5))\n",
      "ax2 = ax1.twinx()\n",
      "\n",
      "for idx in range(N_eigvals)[0:4]:\n",
      "    \n",
      "    psi = 9.0 * eigvecs[:,idx]\n",
      "    ax2.plot(x, psi ** 2 + eigvals[idx], label = \"$P_{%d}(x)$\" % idx, color = \"red\")\n",
      "    \n",
      "ax1.set_ylabel(\"$P_n(x)$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "ax1.set_yticks([])\n",
      "ax1.set_xticks([])\n",
      "ax1.set_xlabel(\"$x$\", {\"fontsize\": \"xx-large\"})\n",
      "\n",
      "ax2.set_xlim(x_min, x_max)\n",
      "ax2.set_xticklabels([x_min, x_max], [\"$x_{min}$\", \"$x_{max}$\"], size = 15)\n",
      "ax2.set_yticks(eigvals)\n",
      "ax2.set_yticklabels([\"$n = %d$\" % i for i in range(1,len(eigvals)+1)])\n",
      "\n",
      "plt.savefig(\"well_num_P.png\")\n",
      "pl.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAhoAAAE2CAYAAAAnPzv2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtwlNd9//HP6n6/ICEECGQuBixzt7FDRAC7Pwc7M8RT\nF3fcNgNNWrdN06QzjtNxpmSSODNOmQSP7YxTD6nHdS9xWxeXSTq0HdIGJC52jI25CGxu5iLuCF1Z\n3Va7vz++fnh2pZWQsI52hd6vmTPPanclnt3znHM+z3kuBCKRSEQAAAAOpCR6BQAAwO2LoAEAAJwh\naAAAAGcIGgAAwBmCBgAAcCYt0SswEgKBQKJXAQCAEZcMF5aOiaAhJceXDQDASEmWnWwOnQAAAGcI\nGgAAwBmCBgAAcIagAQAAnCFoAAAAZwgaAADAGYIGAABwhqABAACcIWgAAABnCBoAAMAZggYAAHCG\noAEAAJwhaAAAAGcIGgAAwBmCBgAAcIagAQAAnCFoAAAAZwgaAADAGYIGAABwhqABAACcIWgAAABn\nCBoAAMAZggYAAHCGoAEAAJxJS/QK4CZ6eqT6euncOenqVb+0tkpdXX6RpKwsKTvblgUF0oQJfqmo\nkPLzE/tZxqKuLun0aeniRenKFStXr0rBoL3W2WnLtDS/7rKzpXHjpLIyq7uyMmnKFHsNI6utzerv\n8mW//hoapI4Ov+66u6XMTKufrCwpJ0cqLbV68+qwosLqGCPr2jXp7NnY+mtq8uuvs1MKh2PrLzfX\nr7uyMmniRCuBQKI/zagViEQikUSvhGuBQEBJ/zGvX5cOHpT275cOHJBOnJBOnpTOnLFOa/Jkafx4\nK6WlFhoyM6WMDCuRiDWe9nZbNjdLly75pb5eysuT7rxTmjlTmjVLmj9fWrRImjSJRvRpXbtmdffB\nB1JdndXdiRMWMCoqrKPy6q601Dozr+4yMqRQyOrNq8Nr16xz9Orv3DkbsGbOtDJ7trRwoZVx4xL9\n6Ue3SEQ6f96vvw8/tLo7cUJqaZGmTrXv3mt/JSUWBjMzraSlWeDw6i8YtAHt8mUrFy7YsrLSr7+7\n7rK2N2+ebQu4deGwtbcPPrA6PHrUr79w2L73sjK//oqL/brLzJRSUixweOGjtTW2/s6ds8A5fbpf\nf3PnWturqpLS0xP9DfQrWcY+gkYihMPSoUNSba2Vffssdd91l7RggQWAO++UZsyQ7rhjePZkIxHr\n8I4fl44dkz76yBrlvn32+qJF0uLF0mc/a6Wk5NP/m7erri5p716ppkbavds6uMZGq7sFC2zwmDnT\nOqapU4dnTzYUsm3k+HErR45Y3e3fb0Fj4ULp3nul6mrpvvsYvAbS2mr1VlMj/eY3Vn+SH9yqqqzt\nzZhhATFlGI4wd3RIp0757a+uzurvyBEbCBctkpYssfpbtCipB6+Eu3TJ7zvfe892zIqL7XtbsMBC\nuFd/JSXDsxPV2mphxqu/Awdsuzl1Spozx/7tz3zG6m/OnOHZZoZBsox9BI2R0N1tnUpNjZWdO22v\ndvly6XOfk+65xxpHIjoXb2/u/fet0e7aJb3zju2FL1tmDWfZMhs0x+qsx/Xr0ttvW93V1trgNGuW\n1V91tQW0adMS07mEw7bntm+frdeuXdYJ3n23X3fV1VJ5+civW7JoaLA257W/I0eszS1fboPDokWJ\nmxrv7vZD49tvW/19/LEfGqurLfgXFo78uiWLM2f8uqupsVnCZcus77zvPgsXiZrVCwZtJvq996Q9\ne6z+mpulpUv9+rvvvoQd9kz42OetB0HDgfZ26/Rra61hvP22zUwsX+6Hi4kTR259hioUssFq1y7r\noHfutEASvf533500qX3YNTXZZ/c6tgMHbE/X++zV1cnd8be324zLzp32OXbtsinj6Pq7447bNzie\nP++3vZoaO8di6VL/8y9ZktznuzQ1+aFj1y7p3Xdthiy6/srKEr2WbkQiNmvg1d2OHTaYe599+XKb\nMUxNTfSa9u/CBZsx8/rPw4dj+48RDI4EjRHk/MuOnoqtqbHZgbvv9hvGsmWj+zh6JGJ7Wd4efU2N\nnUPg7VUsXz66p3svXYrd4z1+3PZCvPq7/347wW+0ij5U533GtDS/41u+3A7bjcbg4W2b0Z/t2jX/\nc33uc7ZtjuYTMbu6bI/Z+4y7dtk5I9GfsbJydNZff9vmihV++5s9e3R+Nk9bW+yM6Lvv2oxodP05\nCo4EjRE07F/2uXP+3uLOnXa+wz33+I1j6VI78fJ2duFCbOdw6pQNyF7Duf9+O2Eu2Xh7TDt32vrv\n3Gknfn32s379LV5sJ2jerqL3Gr06bG21evM6vwULknNw7umxGSZvpq33bNvy5XaOxe062ybZd9B7\ncM7I8Otu+XI7TyAZB+fOThtovfa3e7cNssuW+e1vtIamwersjB8co4P/MH0HLoNGY2Oj/uZv/kYb\nNmy4+XoQNG6isdFO+nn/fSu7d1un7B1/W7bMQkZm5vCu9Ghz7Zp/uKG21o5bLlrkh4758226fqQH\ngIsX/bp77z2rP69T/tznrP5u58NAg3X2rH+CXU2NXaX02c/ad7R4sQWP8vKRHQAiETsBb98+q7+9\ne+38ocmTrd68Mm3a7T0w3czNguO999rhhqKikV2vUMh2wt57zy8ffGAhyFu36mobZMeynh7rL6Pb\nX3q6Hzruu89mHG9hx81l0Hj55Ze1d+9evfbaazdfD4KGrEFcvGhnEx87Zo326FE7o//qVRskFy+2\ngXPpUpvKG+sD081ETxd6Z4Y3N1uHt2CBTR1Om+aXT3OPj85OOy5/7JjVm1cOHLDXFi+2MOjV39Sp\nw/c5b1dXrvgzBt7VLamp1hbmz7dzBqZNs5OEKys/3TkP169b0PHq7dgxu8R0/37bLhYv9svSpXYi\nNQZWXx97VduhQ3b4dt48K3feacF/2jQ78ftWD3tGInZOiVd/H33kLw8dskvn77nHb4NLlnA/n5vx\ngqMXOt57z36eOjW2/iorrUyc2O85K66CxrFjx3Ts2DG9+eabBA3P3EBAh772NTtJziutrf49Chob\nrfOaOdMq0LvXhNehJvOJR6NJQ4Ml9wMHbDD5+GO/ZGXZpWheKSqyzi893abwU1Ks3oJBK179Xbxo\noWbiRP/+ILNmWR3Om2eNcyzv7Q4X7+qkAwesDk+csHo7edIGmYICa0Ne/eXn+/WXnm6/Hwz6ddjU\nZHV38aIF/YoKv9685YIFt+9JjyMtHLb68urv5En7+dQpq4PSUgsiXikosHbnlUjEAqFXmpvt8OnF\nizZD6NXf7Nl+G5w3L7lPmh5NuroswB086Le/06etXLtm/d+4cdoeiWh7Z+eN+7t8f+/ePkGjtrZW\nmzdv1ooVKyRJdXV1Wr9+/ZBW5z/+4z+0ePFife973xtU0EjCg7DDLyhZA8jO9u++mJ/v3zWztDQ5\nj0ffbkpKpJUrrUSLRCyERJemJhuAQiG7BDActhMyc3KsDvPybCq/vNyuoWeGya1AwA5ZTJ4sPfJI\n7Gs9PTbz19DgL9varN68EgjYvT2ys60OCwv9+svPJwy6lpLi31vit3879rXubgsMjY02aF27Zjcq\nC4WsbkMhe19url+8+ps4cXSfKD1aZGTYTcLmzpV+7/diX+vosJ2Axkat/KSopUXq6tL39+7t86cC\nn7S1iooKLVmyRFu2bLnx2uHDh7Vt27a4q7Bu3ToVFRVp9+7dqq6uVjAYHPTqj4kZjWQ58xYAgJHS\n39i3evVq/fKXv1Rzc7Oeeuopvfrqq4P+m6+99ppSUlJ09epVbdmyRT/60Y/0mc98ZsDfYTceAIAx\nor29XVmfnFO1detWPfTQQ9qzZ4+WLl064IzG2rVrVVxcrC9/+cuSpFOnTunQoUM3DRkSQQMAgDGj\nrq7uxvkZ+fn5OnHihKqrqyVJVVVVqqqquunf6Ojo0E9+8hO9++67qqmp0fLlywd8P4dOAAC4DSXL\n2McZdAAAwBmCBgAAcIagAQAAnCFoAAAAZwgaAADAGYIGAABwhqABAACcIWgAAABnCBoAAMAZggYA\nAHCGoAEAAJwhaAAAAGcIGgAAwBmCBgAAcIagAQAAnCFoAAAAZwgaAADAGYIGAABwhqABAACcIWgA\nAABnCBoAAMAZggYAAHCGoAEAAJwhaAAAAGcIGgAAwBmCBgAAcIagAQAAnCFoAAAAZwgaAADAGYIG\nAABwhqABAACcIWgAAABnCBoAAMAZggYAAHCGoAEAAJwhaAAAAGcIGgAAwBmCBgAAcIagAQAAnCFo\nAAAAZwgaAADAGYIGAABwhqABAACcIWgAAABnCBoAAMAZggYAAHCGoAEAAJwhaAAAAGcIGgAAwBmC\nBgAAcIagAQAAnCFoAAAAZwgaAADAGYIGAABwhqABAACcIWgAAABnCBoAAMAZggYAAHCGoAEAAJwh\naAAAAGcIGgAAwBmCBgAAcIagAQAAnCFoAAAAZwgaAADAGYIGAABwhqABAACcIWgAAABnCBoAAMAZ\nggYAAHCGoAEAAJwhaAAAAGcIGgAAwBmCBgAAcIagAQAAnCFoAAAAZwgaAADAGYIGAABwhqABAACc\nIWgAAABnCBoAAMAZggYAAHCGoAEAAJwhaAAAAGcIGgAAwBmCBgAAcIagAQAAnCFoAAAAZwgaAADA\nGYIGAABwJimCxscff6zXX399yL/33HPPqaury8EaAQCA4ZDwoNHQ0KD169frS1/60pB/d82aNfqz\nP/szB2sFAACGQyASiUQG++bt27frpz/9qbZs2aLCwkKtWrVKgUBA7e3t+vjjj/Xggw/qBz/4gbKy\nsga9Ak8++aS+9rWvaeHChbf0ATZu3Kjx48dr7dq1/b4nEAhoCB9z9GttlS5e7FuuXZNaWux1b3n9\n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\nTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0xae03b8c>"
       ]
      }
     ],
     "prompt_number": 7
    }
   ],
   "metadata": {}
  }
 ]
}