{
 "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": 6
    },
    {
     "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 = 1000\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": 3
    },
    {
     "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": 14
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# DYSKUSJA BLEDOW\n",
      "\n",
      "eigvals_a, eigvecs_a = EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)\n",
      "\n",
      "print eigvals_a\n",
      "\n",
      "N_max = 500\n",
      "\n",
      "N_list = range(100, N_max, 50)\n",
      "measures = 5\n",
      "\n",
      "# blad wzgledny:\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",
      "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)\n",
      "    \n",
      "pl.xlabel(\"$N_{}^2$\", {\"fontsize\": \"xx-large\"})\n",
      "pl.ylabel(\"$l_n$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "pl.xlim(None, N_max)\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, \".-\")\n",
      "    \n",
      "pl.xlabel(\"$t$\", {\"fontsize\": \"xx-large\"})\n",
      "pl.ylabel(\"$l_n$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "#pl.xlim(None,1000)\n",
      "pl.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "'alg.eigsh(...)' time: 2.95s\n",
        "[ 0.27191604  1.08766414  2.44724419  4.35065603]\n",
        "'alg.eigsh(...)' time: 0.10s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.11s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.15s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.16s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.14s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.19s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.28s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.38s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.31s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.35s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.37s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.30s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.60s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.51s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.55s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.53s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.66s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.62s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.93s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.93s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.95s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.19s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.08s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.82s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.82s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.35s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.38s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 0.92s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.26s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.38s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.84s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 2.15s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 2.14s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.70s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 2.17s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.66s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 2.01s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 2.60s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 2.33s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 2.06s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 1.91s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 2.46s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 4.60s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 4.09s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 3.45s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 2.87s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 3.17s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "'alg.eigsh(...)' time: 3.53s"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\ngm279nGkvIwT1VXUNLup92mnwd+XhpBgXGFh1EREciYqBj+Ph5jaaqLqas9N7TQR2tZOOH7EBoeR\nHNOPoQMK/AeTAAAJ60lEQVQGMG50pq61F5FezWsKArudwcdLSD9+HHfI2bti1oZHciYqGsNmI66m\nmqi6mnO/6TcS2tpOuOFLTHAYSdGxDEtLY2xWJml6GpaIeIk+cxXTtcTW1DC8pISodl9imn1JCg5m\naHgit2UOZ1Ba/461CxER6Rq95gxi177DmtsXEbkBXjPF1AtiiohYyq0eO326MIuIiPQhKggREemU\nCkJERDqlghARkU6pIEREpFMqCBER6ZQKQkREOqWCEBGRTqkgRESkUyoIERHplApCREQ6pYIQEZFO\nqSBERKRTKggREemUCkJERDqlghARkU6pIEREpFMqiC7kcDjMjnBdlLNr9YacvSEjKKfVWKYgVq1a\nRUZGBkOHDuWll14yO85N6S1/aZSza/WGnL0hIyin1ViiIDweD08//TSrVq1i7969vPvuu+zbt8/s\nWCIiXs0SBbF161aGDBnCwIED8ff35+GHH2bp0qVmxxIR8Wo2wzAMs0P85S9/YfXq1fzud78D4I9/\n/COffPIJr776KgA2m83MeCIivdatHOL9ujDHTbtWAVigw0REvI4lppiSk5MpLS3t+PfS0lJSUlJM\nTCQiIpYoiHHjxnHw4EFKSkpoaWnhz3/+M/fdd5/ZsUREvJolppj8/Pz49a9/zcyZM/F4PDz++ONk\nZmaaHUtExKtZ4gxi4cKF/PM//zMBAQEcOnSIH/7whzidTvLz8xk2bBgzZsygpqam4/0vvPACQ4cO\nJSMjgzVr1vRozoSEBLKysjpeW7RoESkpKeTk5JCTk8PKlStNz1laWsq0adMYOXIko0aN4j/+4z8A\nLDWmV8potfFsampiwoQJjBkzhhEjRvDDH/4QsNZYXi2n1cbzPI/HQ05ODgUFBYD1xvNKOa04ngMH\nDmT06NHk5ORw++23A104noYFbNiwwdi+fbsxatSojte+//3vGy+99JJhGIbx4osvGj/4wQ8MwzCM\nPXv2GNnZ2UZLS4tx9OhRY/DgwYbH4zEt56JFi4xXXnnlsveambOiosIoLi42DMMw6uvrjWHDhhl7\n9+611JheKaMVx7OhocEwDMNobW01JkyYYBQVFVlqLK+W04rjaRiG8corrxjz5s0zCgoKDMOw5n/v\n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\nRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x981afac>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0xa01f2ec>"
       ]
      }
     ],
     "prompt_number": 16
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# WYKRES ZALEZNOSCI 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",
      "#ax2.plot((eigvals), \"o-\")\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, eigvecs[:,i] + eigvals[i], color = \"green\")\n",
      "#plt.savefig(\"num_har_E.png\")\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.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "300\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nXuo4WF/IgF5ulJWNZ5VP5MNOOaz7nXM+ntdr+1/btk24PpFXxs5ckUeJV4uYGVMsHlMmntmw31F3\n6h3DwvL5+fq8Xpp7KbqsNh9+J4PvaCKWiHzXOtZbQkSneiqW6sr38tlnn9Xs7Kz+/u//Xtddd53G\nx8fXDAU9d/ng3HcM/U9N6jOlvCn1WYtl1pBo68Dl4XlS2ZPmXKnoLpZh3VlheYdlC66UMpbaa2ub\nzZvLlneoB2XWlEzaN3pM0E6K/ve92NI2WttEWHc6r2t6y773ltR4QVp4XkoaUsKQHn9YbZcPjh07\npkOHDummm26SJJ08eVIHDhxY9/5Xq1W5rqt0Oq0///M/13333addu3at+jM9d6Zg+/+Wrvvwdaqp\npqqqUkKqeJXwtGCnI4TWtNZxect8Ipbo9j8RuGie56nSrIRH3K1TpyP0lY7g52pzilvxtiPt5Ufo\nQ/G8rl9hm75kn7Lx7BV9ehVYjSEp4087L+F16k49bIOtZyKC+mx1Vo8/fFf77/ePhHfv3q2RkREd\nPnw4XHfq1CkdPXq04+/bv3+/+vv7lUwmJUn/8R//oT/90z9dMxBIPXimYKWbLVpvIFp+6rF1vtOy\n1g/ANMx1hYdOy4PrlNl4tmung3BlCjqFudqc5mvzkcG59Vp6pF5rXz5fm5dt2eEAnYvn2r63K55+\nX7bctuxuvy0AfCuNfbfeeqseeughFYtF3Xnnnbrvvvsu6HWnpqZ0991365Of/OS6tr9iIn7MjGlL\naou2pLZc9Gt4nqdqs7pioAjmz5fP6/fTv29b3npjS92pK2NnwpDQOmXszOrz/s9k7Ex4E1NQJmNJ\npeyUTIM/IbGZPM9T022q2qxGbmIq1UsqNUody4XGyutbf3auNifXcyMDeVhPLNXz8byG88OrbpeL\n5xjMgatEpVIJj/aPHDmiW265RcePH9eNN9646pmCffv2qVAoyPM8PfDAA/rEJz6hZrOpxx57TDff\nfPOqv/OKCQWXg2EYi4OvndJQduiSXqvpNlVulMOQEEyleik67w8QU8WpyHwwVZtVVRoVVZqVsF5t\nVmVbdiQkdAoOwbJkLKm4FZdt2rItO6xHyuXLl81bpiXTMGUapixjqR4uMzssa9nOMAy5nivP8+TJ\nu6h6022q4TTUcBuResPx5/36Suvrbj18/9YzBe95MJmGGT4ulYlnwtAXhLq2ZXZWQ5mhFdcH4S+f\n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\n1mMAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x9648f6c>"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "x = np.linspace(x_min, x_max, N)\n",
      "eigvals, eigvecs = EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)\n",
      "\n",
      "# WYKRES FUNKCJI FALOWEJ:\n",
      "\n",
      "fig, ax1 = pl.subplots()\n",
      "ax2 = ax1.twinx()\n",
      "\n",
      "#ax1.set_figure(figsize = (10, 6))\n",
      "\n",
      "\n",
      "for idx in range(N_eigvals)[0:4]:\n",
      "    \n",
      "    psi = eigvecs[:,idx]\n",
      "    ax2.plot(x, psi + eigvals[idx], label = \"$\\psi_{%d}(x)$\" % idx)\n",
      "    \n",
      "#pl.legend(bbox_to_anchor=(1.16, 0.7))\n",
      "ax1.set_ylabel(\"$\\psi_n(x)$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "ax1.set_yticks([])\n",
      "ax2.set_xlabel(\"$x$\", {\"fontsize\": \"xx-large\"})\n",
      "ax2.set_xlim(x_min, x_max)\n",
      "#pl.ylim(-shift, shift * N_eigvals)\n",
      "ax2.set_xticklabels([x_min, x_max], [\"$x_{min}$\", \"$x_{max}$\"], size = 15)\n",
      "\n",
      "ax2.set_yticks(eigvals)\n",
      "ax2.set_yticklabels([\"$n = %d$\" % i for i in range(0,len(eigvals))])\n",
      "\n",
      "#plt.savefig(\"num_harr_psi3.png\")\n",
      "pl.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nMayIiEh4/weyQHdhaun66gAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0xcdd396c>"
       ]
      }
     ],
     "prompt_number": 92
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "x = np.linspace(x_min, x_max, N)\n",
      "eigvals, eigvecs = EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)\n",
      "\n",
      "\n",
      "# WYKRES FUNKCJI FALOWEJ:\n",
      "\n",
      "pl.figure(figsize = (10, 6))\n",
      "\n",
      "shift = 0.3\n",
      "\n",
      "for idx in range(N_eigvals)[0:3]:\n",
      "    \n",
      "    psi = eigvecs[:,idx]\n",
      "    pl.plot(x, psi + idx * shift, label = \"$\\psi_{%d}(x)$\" % idx)\n",
      "    \n",
      "pl.legend(bbox_to_anchor=(1.16, 0.7))\n",
      "pl.xlabel(\"$x$\", {\"fontsize\": \"xx-large\"})\n",
      "pl.ylabel(\"$\\psi_n(x)$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "pl.xlim(x_min, x_max)\n",
      "#pl.ylim(-shift, shift * N_eigvals)\n",
      "pl.xticks([x_min, 0.0, x_max], [\"$x_{min}$\", \"$0.0$\", \"$x_{max}$\"], size = 15)\n",
      "pl.yticks([])\n",
      "#plt.savefig(\"num_harr_psi3.png\")\n",
      "pl.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAsIAAAGBCAYAAABsNteGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcjXX/x/H3LMYwBoORsZN9CdlTSEUM2SMpWtCGyp2f\n4i7dubVxt3JTKipLWQbZsqQo+zaWse87Y6yzL9fvj+9NKTHruc451+v5eJzHOc65znV9DuPM+3zP\n9/p8fSzLsgQAAAA4jK/dBQAAAAB2IAgDAADAkQjCAAAAcCSCMAAAAByJIAwAAABH8re7AFfw8fGx\nuwQAAIB0o6mXazgiCEv8QAHIfsOHD9fw4cPtLgOAl2EAz3WYGgEAAABHIggDAADAkQjCAJBJzZs3\nt7sEAEAW+DhhiWUfHx/mCAMAAI9AbnEdRoQBAADgSI7pGgEgG1iWtGGDtHq1tGmTtGePdO6cuT8o\nSCpbVqpdW2rWTLr7bsmftxivceiQtHCh+fffvVuKjpZSU82/e6lSUo0aUtOmUpMmUv78dlcLAOnC\n1AgAt7Zzp/T559KMGVLevFLz5lLdulKVKlKRIpKvr3T5sglLGzZIS5dKx49LvXpJAwdKYWF2vwJk\nRkqK9N130qefSvv3S61bS3fdZf7dQ0PNB50rV6TDh6XISGnFCvPv36KF+bdv21bKlcvuVwF4HHKL\n6xCEAfy9lSuld94x4aZPH+mRR6Rq1aT09LjcvVsaM0b69lvpmWekoUPN6CE8w/z50j/+YQLvoEFS\neHj6RvgvXTIfmL76SjpyRBo8WHrySSlPnpyvGfAS5BbXIQgD+KuoKGnIEGnbNhNge/aUAgMzt68T\nJ6RXXpFWrTKhuEmT7K0V2evCBen556W1a6WPPzajwJlt7r9mjfT229LGjeb60UfNtwcAborc4jq8\nIwH4XXy8CcDNmpnpD7t2SU8/nfkQLEnFi0uTJ5tQ1bmz9N57Zk4x3M/OnVLDhlKBAtLWrVKbNpkP\nwZLUqJE0Z440fbr0ySdmWkVkZPbVCwBZRBAGYCxfLt1xh3TwoBkJfvllKXfu7Nt/u3ZmisW0aear\n8uTk7Ns3sm7hQvMBaMgQaexYMxc8uzRubEaH+/aVHnhAevNNKSkp+/YPAJnE1AjA6RITTfiZMcPM\n6X3ooZw9Xmys1KWLlC+fNGUKJ1O5g9mzpX79zHXjxjl7rOPHTSA+ftxMlalRI2ePB3ggcovrMCIM\nONnu3ebr66tn/ed0CJbMCXOzZ0txcebkO0aG7RURYULwggU5H4IlqUQJad48003k3nulL75gqgwA\n2zAiDDjVlCkmjIwYYUbosjIXNDMSE6VOnaTChaVJk1x/fEjLlkk9ephpEXfe6frjR0VJDz8s1akj\n/fe/5lsCAOQWF2JEGHCa1FTTxeGf/zRBqF8/e0Jo7tzmJKqdO00Yh2vt3GlG5L/7zp4QLJlWfOvW\nSQEBUv360o4d9tQBwLEIwoCTnD9v+sFu3mwCyB132FtP3rzS3LnShAnS1Kn21uIkZ8+axS7ee890\nB7FT3rxmesSQIWaqxJw59tYDwFGYGgE4RVSU1L69CUDvv+9eyx9v3Srdd5/pXMHJUzkrNVV68EGz\nMuA779hdzfXWrzfTZfr0kYYNo+cwHIvc4jq8ywBOMGeOaY01bJj0wQfuFYIlMzL9/vtmvmhsrN3V\neLe33zbzs91xOkr9+uabikWLpK5dzfLNAJCDGBEGvFlamgk8n38uzZwpNWhgd0U317u3uZ440c4q\nvNcvv0jdu5t+ziVK2F3N30tM/H11uzlzpPLl7a4IcClyi+swIgx4qytXzKjawoVmlM3dQ7Bk+hiv\nXWsW3UD2unBBeuwx6auv3DsES+ZEys8/NydyNm5sTuoEgBzAiDDgjQ4cMPOBGzQwq4Rl5wpxOW39\nerMKXWSkdNttdlfjPZ580vwc/Pe/dleSMcuXm+4WQ4aYdn+02YMDkFtchyAMeJurvWH/+U/z9bIn\nBofXXpN27TLTOTyxfnezYIH5Wdi6VQoOtruajDt0yHywq1NHGjdOCgy0uyIgR5FbXIepEYC3sCzp\nww+lRx81UwteeMFzQ+Qbb0h79jBFIjtcvGimGHzxhWeGYEkqW1ZatcqcSNmsmXTihN0VAfASjAgD\n3iAuzqwOt2OHWTK3bFm7K8q6deukDh1M27eCBe2uxnMNGCDFx5s5t57OsqSRI830jhkzzPLggBci\nt7gOQRjwdIcOSR07StWrS599ZhYo8Bb9+pl5rR9/bHclnmnLFqlVK/NhonBhu6vJPnPnSk89ZVru\nXe00AngRcovrEIQBT7Z0qdSzp/eeSHTunFmG98cfpdq17a7Gs6SlSXffbU6Se/ppu6vJfjt3mnnD\nbdpIo0a5X29sIAvILa7DHGHAE1mWNHq0aYc1dar04oveF4IlM4o5YoT03HMm2CH9Jk40q8g9+aTd\nleSMqlVNq71du6QHHpBOnrS7IgAeiCAMeJqYGDMVYto0EwTuvdfuinLWU0+ZQDdpkt2VeI6YGNN5\nY+xY716mOCREmj/fnEBXt675hgQAMoCpEYAnWbXK9FTt1El65x3P6g+cFRs3Sm3bmk4Sntr5wJUG\nDpSSkjyvZ3BW/PST+YbkySdN1xGmSsCDkVtchyAMeILUVHNi0AcfSBMmmAUnnObxx6UyZaS33rK7\nEve2d69ZjS0qSipa1O5qXOv0aTNnPilJmjLF/VfQA/4GucV1CMKAu9u/35wZ7+MjTZ4slSpld0X2\nOHLELKiwdSsB52a6dJHuvNNMjXCi1FTzbcnHH0v/+Y9ZXMYb58/Dq5FbXIcgDLirtDSzitbrr0tD\nh5qvu715vmd6vPqqGfX78ku7K3FPq1ZJ3bubE8i8qY1eZmzaZL5FqFTJ/D9y2ug4PBq5xXUc/lsV\ncFP790stW5oTxH79VXrpJUKwZNrELVhgRoVxPcuS/vEPM3XE6SFYMqPiGzdKlStLd9xhuqsQLAD8\nCb9ZAXcSHy8NHy41aGCC8G+/SVWq2F2V+yhQQBo2THrlFbsrcT8zZ5oVBnv2tLsS95E7t/T229Ls\n2Wa6xP33m9FyAPgfgjDgLhYskGrUkLZtkzZvlgYP5sz3G+nXTzpwQFq+3O5K3EdqqvTPf0rvviv5\n+dldjftp1MiMDj/0kFlk5LXXpNhYu6sC4AYIwoDdNmwwCwIMHCiNGWNG9kqXtrsq95Urlxk1HzaM\nr7qvmjLFLD7SsqXdlbgvf3/zf2zrVunw4d/nDicn210ZABsRhAG77NkjPfywWSa2SxfT7urBB+2u\nyjN07y5dvCgtXGh3JfZLTpbefNPMDaY7wq0VL266r8yZI82aZZbw/u47Vi4EHIogDLjapk1mUYwm\nTcwJPXv3mq/7c+WyuzLP4edngt+wYQSYr7823yB4+wqD2a1ePWnxYjMqPHq0VLOmWZY6KcnuygC4\nEEEYcIW0NGnRIum++8wIcL16pjPEkCGc4Z9ZHTqYThqzZtldiX2SkswHAhYZybz77jNLlX/0keks\nUb689N570oULdlcGwAXoIwzkpGPHzCjTl19K+fNLgwZJ3bpJAQF2V+YdFi2SXn7ZnGDoxJPExo0z\nHREWLbK7Eu+xZYs0apQ0b55Z1vvpp6VmzZh2Apcit7gOQRjIbjEx0g8/mHmHa9aY4PvUU1Lduvwy\nzW6WJTVtKvXpYxZPcJKEBKliRXNyZYMGdlfjfaKjpW+/lb74wrQ17NlT6tzZdHbh/zFyGLnFdQjC\nQHY4eFD68UfzNf3atebr1s6dpY4dmfqQ01asMEtQ797trHnWH38sLVliPnQh51iWtH69NG2a+f+d\nK5f5v92unfkA4qSfObgMucV1CMJARlmWdPSoGe1dtkxaulS6csU06+/YUWrdWgoKsrtKZ2nZ0nTe\n6NvX7kpcIy5OqlBBmj9fqlPH7mqcw7LMya4zZ5rpKPv3S/fcY/7v33OPWcGOYIxsQG5xHYIwcDNp\nadKRI6a12caN0rp1ZnTIsqSGDaUWLczoL1+X2mvtWqlrV9OBI3duu6vJeaNGSatXm0AG+0RHm4Vd\nli41q0AeOiTVqmXeG2rXlqpXl6pW5VshZBi5xXUIwsCVKybsHj36+/XevWYp1j17pJAQ88vszjvN\nV6H160ulShF83U27dlKrVtILL9hdSc66ckW6/XbzbUSNGnZXgz+6dMkskLN2rVm4IyrKvIeEhZlQ\nXL68aXVXpszvl9BQ3kvwF+QW1yEIw3NZlllaNjHRLJd65cr113+8ff68dO6cGcG5eh0dLZ05Y1pQ\nlSp1/aVCBalKFXMJDrb7lSI9Nm+WwsOlffu8ewTu7bdNyJo61e5KkB4pKWZJ8Kgocy7B4cPXX2Jj\npSJFTCAODb3+dv785v0nXz5zuXr76nXu3OYSEODMrilejNziOs4Jwp06/X7Hn1/yzf6ckW1duS9P\nqTOjz01LM784kpNvfPnjYykppo9s7txmTm6+fNdf//F2wYLmF0zhwub66u3QUKlQIUZkvEXnztJd\nd5k2dd7o4kXzIW3lSvMhDZ4vLs58KD971lz+ePvyZXO5csVcrt6+ep2YaD7IJyaa97CAgBtf/P3N\ne6Wfn7nO6MXH58bvkem9LyPbZvX5N7vfg/jMnEkQdhHnBOEZM/58Z/r/nJFtXbkvT6kzo9vmymUu\n/v6/377R5eqbO3DV9u3mxKV9+8yHIG/z5pvmBK2vv7a7Erib1FQTim90SU42gwyZuaSm/nXAQkr/\nfRnZNqvPv9n9Hsana1eCsIs4Jwh7/8sEIJnlq++4Q3r1VbsryV4xMVKlSqZbSYUKdlcDIAeRW1yH\nIAzAu+zebVpZ7d0rFShgdzXZZ+hQ6fRpacIEuysBkMPILa5DEAbgfXr3lsqWlYYPt7mQbBIdLVWu\nbHrYliljdzUAchi5xXUIwgC8z4EDptXdnj3mZEhP98orprvA2LF2VwLABcgtrkMQBuCd+vY13UFG\njrS7kqw5edL0oN22TSpRwu5qALgAucV1CMIAvNORI2b54Z07paJF7a4m8154wbQIHD3a7koAuAi5\nxXUIwgC8V//+po+qp4bIw4fNioaeHuYBZAi5xXUIwgC818mTZhnibduk4sXtribjnnrKLM87YoTd\nlQBwIXKL6xCEAXi3QYPMogKffGJ3JRmzZ49ZJW/vXikkxO5qALgQucV1CMIAvNuZM1LVqtLmzVLp\n0nZXk349epiT5IYOtbsSAC5GbnEdgjAA7/faa9K5c9L48XZXkj7btv2+VHRwsN3VAHAxcovrEIQB\neL+ryxOvWyeVL293NbfWpo3UsqX04ot2VwLABuQW1/G1uwAAyHGFCpkOEq+/bnclt7Z0qZkf/Nxz\ndlcCAF6PEWEAznDlilmmOCLCrDrnjlJTpbp1pWHDpC5d7K4GgE3ILa7DiDAAZ8iXz7Qhe/llyV1/\nwXz7rZQ3r9S5s92VAIAjEIQBOMfjj0uxsdKMGXZX8ldxcWYkeNQoycfH7moAwBEIwgCcw89P+s9/\npMGDpYQEu6u53gcfSA0bmt7BAACXYI4wAOfp0EFq3Fj6v/+zuxLj6lLKGzZI5crZXQ0Am5FbXIcg\nDMB59u2TGjUyi2yUKmV3NVKnTlLt2p7R1QJAjiO3uA5TIwA4T4UKpp3agAF2VyItXChFRprpGgAA\nlyIIA3CmIUOkqChp7lz7aoiLM4H844+lwED76gAAh2JqBADnWr5c6t1b2r7dnqWMBw2Sjh+Xpk1z\n/bEBuC1yi+sQhAE421NPmW4Sn33m2uOuWmX6BW/bJhUp4tpjA3Br5BbXYWoEAGf74AOzrPEPP7ju\nmPHx0hNPSJ9+SggGABsxIgwAK1dK3bqZk9ZCQ3P+eM8+K124IE2dmvPHAuBxyC2uw4gwANxzj1l1\n7vHHpdTUnD3WlClmBHrcuJw9DgDglhgRBgBJSk6WWrY0C22MHJkzx9i5U2ra1AThWrVy5hgAPB65\nxXUYEQYAScqVS/r+ezNiO2NG9u8/Jkbq2FF6+21CMAC4CUaEAeCPNm2SWrWS5syR7rore/aZkGBG\nmxs0kEaNyp59AvBa5BbXIQgDwJ8tWiT16mWu69TJ2r4SEkybtOBgM9rsyxdxAG6O3OI6vCMDwJ89\n+KD03/+akeEVKzK/n8uXpQ4dpKAg6ZtvCMEA4GZ4VwaAG+nUyYzgdukiffGFlNHRmQMHzNSK0qXN\nfnLlypk6AQCZRhAGgL9z//3Szz+bRTe6d5eOHbv1c1JTzWhygwZS377S+PGSv3+OlwoAyDiCMADc\nTLVq0rp1UsWKptvDwIFm4Y0/jxCfPWuWaa5WzSyUsXKl1L+/5ONjT90AgFviZDkASK+jR03YnTzZ\nrAxXsaIUGCgdP26CcMuW0jPPSC1aEIABZBq5xXUIwgCQGSdOSIcPm64QxYtL5cpJAQF2VwXAC5Bb\nXIcgDAAA4EbILa7DHGEAAAA4EkEYAAAAjkQQBgAAgCMRhAEAAOBIBGEAAAA4EkEYAAAAjkQQBgAA\ngCMRhAEAAOBIBGEAAAA4EkEYAAAAjkQQBgAAgCMRhAEAAOBIBGEAAAA4EkEYAAAAjkQQBgAAgCMR\nhAEAAOBIBGEAAAA4EkEYAAAAjkQQBgAAgCP5210AAAAAMq5QoUI6f/683WW4tZCQEMXExPzt4z6W\nZVkurMcWPj4+csDLBAAAXiC9uYV8c2u3+jtiagQAAAAciSAMAAAARyIIAwAAwJEIwgAAAHAkgjAA\nAAAciSAMAAAARyIIAwAAwK0cPHjwpo+fPHlScXFxWT4OQRgAAABu48CBA1qzZs1NtwkNDdV7772X\n5WMRhAEAAOA2xo8fr0ceeeSm2/j7+ys8PFxff/11lo5FEAYAAIBLzJw586aPR0ZGqmTJkunaV/36\n9bV06dIs1UMQBgAAgEvcaknoefPmqUWLFuneX2hoqPbt25fpegjCAAAAyHHR0dEqWrToTbdZv369\nqlWrlu591qpVSxs3bsx0TQRhAAAAL+Xjk/VLZsXExGjatGnq1q2bJGnt2rVq1KiRZs2apf79+9/w\nOXFxcfL5w0Hnzp2r+fPna8iQIZo8ebIee+wx7dq169rjISEhOnbsWKZrJAgDAAB4KcvK+iWzNmzY\noFatWmnv3r2SpKSkJAUEBKht27bKnz//DZ+Tmpp67faRI0dUrVo1hYeHa8mSJQoPD1e3bt1UunTp\na9vkyZNHSUlJma7RP9PPBAAAAP5Gy5YtNXbsWHXp0kWSro30Xrp0SfXq1dO7776rokWL6o477lDd\nunUlmW4QV10NvKdPn1ZwcLAKFiyotm3bXneMixcvqlChQpmukRFhAAAA5IioqCjVqVNHJ0+eVMmS\nJZWcnKyIiAgdPHhQ9957rx577DH95z//ubZ9sWLFdOXKFUnSrl27FBkZqQULFqhp06aSzMl0f3Ty\n5ElVqFAh0/URhAEAAJAj+vfvrzVr1mjixIk6d+6cIiIi1KtXLx08eFBhYWHy9/dXTEzMte2bNWum\ndevWSZIWL16sefPmybIsJSQkKCIi4i8n223ZskVNmjTJdH1MjQAAAECOqFy5st58801Nnz5drVq1\nunZ/Wlqa/Pz8JOm6k+M6deqkUaNGqUWLFhowYMBN952QkKD8+fMrMDAw0/UxIgwAAIAcY1mWfH2v\nj5yVK1fW6dOnr4XZqwoWLKgiRYooOjr6lvudNm2a+vXrl6XafKxbdTb2Aj4+Prds4AwAAOAO0ptb\nPDnfnDt3Tl9++aUKFCigmjVrqnHjxtcesyxLEyZMUJ8+ff72+UePHtWmTZvUvn37mx7nVn9HBGEA\nAAA34oQg7Cq3+jtiagQAAAAciSAMAAAARyIIAwAAwJEIwgAAAHAkgjAAAAAciSAMAAAARyIIAwAA\nwJEIwgAAAHAkgjAAAAAciSAMAAAARyIIAwAAwK0cPHjwpo+fPHlScXFxWT4OQRgAAABu48CBA1qz\nZs1NtwkNDdV7772X5WMRhAEAAOA2xo8fr0ceeeSm2/j7+ys8PFxff/11lo5FEAYAAIBLzJw586aP\nR0ZGqmTJkunaV/369bV06dIs1UMQBgAAgEtYlnXTx+fNm6cWLVqke3+hoaHat29fpushCAMAACDH\nRUdHq2jRojfdZv369apWrVq691mrVi1t3Lgx0zX5Z/qZAAAAcGs+b/pkeR/WGzcfxf07MTExWrx4\nsSIiIvTdd99p7dq1euCBBzRr1iwtX75cn3zyyV+eExcXJx+f32ueO3eu/Pz8tHLlStWsWVOLFi3S\n0KFDVaVKFUlSSEiI9uzZk7kXJoIwAACA18psiM0OGzZsUKtWra51d0hKSlJAQIDatm37t6O4qamp\n124fOXJE1apVU4UKFfT6669ryJAhKlCggEqXLn1tmzx58igpKSnTNTI1AgAAANmuZcuWmjp1qrp0\n6SJJ10Z6L126pHr16mnWrFl6++23r3uOv//vY7SlS5dWhQoVdPr0aQUHB6tgwYJq27at8ubNe22b\nixcvqlChQpmukRFhAG7BsixFnY3Sr0d+1e5zu3XwwkGdizsnS5b8fPxUukBplQspp7phdXVP6XsU\nkifE7pIBALcQFRWl8PBwnTx5UiVLllRycrIiIiLUp08fHT58WNu2bbtu+2LFiunKlSvKly+fdu3a\npcTERG3atElNmzaVZE6ma9u27bXtT548qapVq2a6PoIwANukWWn69civmrxtsiJ2RihfQD41LdNU\n1UOr665Sdyk0b6h8fHyUkpaiIxePaP/5/Rqzfowei3hMjUo20hO1n1CXal3k78tbGQC4o/79+2vK\nlCnasmWL7rzzTkVERKh3795/u32zZs20bt06tWjRQosXL9bly5cVFhamhIQERUREqESJEtdtv2XL\nFj399NOZro/fHgBcLi45ThO3TNQHaz5QHv88erTmo1rXZ53KFiybrufHJsVq3p55GrN+jF5b9poG\nNxmsp+98mkAMAG6mcuXKevPNNzV9+nS1atXqltt36tRJo0aNUosWLTRgwICbbpuQkKD8+fMrMDAw\n0/UxRxiAyySlJumjNR+p3EfltOTAEk1sP1GRz0Tq/+7+v3SHYEkKCghStxrdtOKJFfqm4zf6fsf3\nqv95fa07vi7nigcAZIplWfL1/WvkvFFP4YIFC6pIkSKKjo6+5X6nTZumfv36Zak2gjCAHGdZlr7b\n/p2qjqmqxQcWa9njyxTRLUJNSje5rk1OZjQp3UTLHl+mfzT+h9pPa68hS4coJS0lmyoHAGSVj4+P\nOnfufN19V65c0cyZM7Vx40Zt3779uscGDhyoiIiIm+7z6NGjCgkJUeXKlbNWm3WrJT68gI+Pzy1X\nMgGQM/bH7FffeX0VEx+j0S1Hq0W59K8YlFFnY8/q0VmPKjE1UdM6T1NYcFiOHQsAckp6cwv55tZu\n9XfEiDCAHJGSlqL3f3tfDSc0VJsKbbS+z/ocDcGSFBoUqoWPLtS9Ze9VgwkNtOPMjhw9HgDAszEi\nDCDbHTh/QI/OelRBuYL0WbvPVD6kvMtrmLx1sl5e/LJmd5utxqUau/z4AJBZjAhnH0aEAbjUlG1T\n1HBCQz1c7WEtfmyxLSFYkh6941FNbD9R7ae118+HfralBgCAe2NEGEC2uJx4Wc8veF7rjq/T1M5T\nVSesjt0lSZJ+OviTus3opvk95qtBiQZ2lwMAt8SIcPZhRBhAjtsVvUsNJjRQLr9c2th3o9uEYElq\nUa6FvnzoS7Wb2k7bTm+79RMAAI7hFkH44MGDmjRpUoafN3LkSCUlJeVARQDSK2JnhO756h4NajxI\nXzz0hYICguwu6S/aVW6nD1t9qPAp4Tp5+aTd5QAA3ESWgvD27ds1f/78LBVw7tw5DRs2TD179szw\nc7t06aJnnnkmS8cHkDmpaaka+tNQDVw0UPN7zNfTd2Z+iUtXeKTmI3r6zqfV4bsOik+Ot7scAIAb\nyFIQ/vXXX9WwYcMsFTBkyBC98sor8vPzy/BzK1WqpOrVq+vrr7/OUg0AMiYmPkbhU8K16ugqbei7\nwWPm3v6z6T91e8jtemLOE8yrAwBkLQifOXNGRYoUyfTzd+7cqUOHDql27dqZ3kffvn01evRopaSw\nkhTgCltObVG9z+qpRtEaWvLYEhUNKmp3Senm4+OjL9t/qX0x+/TJuk/sLgcAYLMsBeGsLo36ySef\nqHfv3lnaR3BwsOrUqaM5c+ZkaT8Abu3brd/qgW8e0Mj7RmpUy1Hy9/W3u6QMC/QP1Pddv9eIFSO0\n9thau8sBANgo00H41KlTKl68eJYO/uOPP6px46w3ur/77rs1e/bsLO8HwI0lpyZr4KKBGv7zcP30\n+E/qXqO73SVlSfmQ8vqs3WfqNqObzsWds7scAMCfHDx48KaPnzx5UnFxcVk+TrqC8PTp0zVy5EiF\nh4df69Lw22+/6e6775YkDRo0SD169MjQgQ8dOqTz58+rfPkbN9v/6KOP9Pbbb6tr167auXOn/v3v\nf2vEiBEaNGjQX7atV6+e1qxZk6HjA0ifU1dO6b6v79P+mP3a0HeDat5W0+6SskWHKh3UoUoHPTv/\nWeYLA4AbOXDgwC1zXWhoqN57770sH+uWQfjo0aM6fvy4Bg8erOXLl2vHjh2SpN27d6ty5cqSpLJl\nyyoyMjJDBz5y5IiKFr3x3MKPP/5YDz74oF599VW1bNlSzZs31xNPPKHExER9++23f9m+SJEiOnDg\nAPOEgWy26ugq1fusnlqUa6G5j8xVwcCCdpeUrd6+721tP7NdU7dPtbsUAMD/jB8/Xo888shNt/H3\n91d4eHiWGybcMggvWrRIPXv21LJly+Tv76+qVatK0nUjKM8//7yqVauWoQOfOXNGBQve+JdqSkrK\ntZB97Ngx1alTR8WLF1e/fv20cuXKv2xfqFAhWZal8+fPZ6gGADdmWZbGrBujDtM6aFzbcRrefLh8\nfdyi7Xi2ypMrj77p+I1eXPSijl06Znc5AOD1Zs6cedPHIyMjVbJkyXTtq379+lq6dGmW6rnlb7Y+\nffqoSJEimjRpkjp16qTAwEDFx8crKOj3pvmpqam66667MnTgtLQ0+fre+PAvv/zytdsrVqxQ8+bN\nJUklS5b9Z2lyAAAgAElEQVRUpUqV/voi/refrJ68B0CKT45X7zm9NX7jeK16apXaVmprd0k5qm7x\nuurfoL+enPMkUyQAIIfd6n123rx5atGiRbr3Fxoaqn379mW6nnQN8aSlpWn+/Pl66KGHJEkbNmxQ\n/fr1rz3+ww8/qHPnzhk6cGhoqGJiYm66TWJiotauXatmzZrddLuYmBj5+fllqZUbAOng+YO668u7\nlJKWotVPrVaFQhXsLsklXr3nVV1MvKj/bviv3aUAgNeKjo7+22mxV61fvz5Dswxq1aqljRs3Zrqm\ndAXh6OhoXb58+VphGzduvBaEY2JidPz4cZUuXTpDBy5RooTOnfvr2drJycn66aefJElr1qyRZVnX\njnXu3LkbLsV87tw53XbbbRk6PoDrzd8zX42+aKTetXrr247fuuVSyTnF39dfE9tP1Bs/v8EUCQDe\nxccn65dMiomJ0bRp09StWzdJ0tq1a9WoUSPNmjVL/fv3v+Fz4uLirvuGf+7cuZo/f76GDBmiyZMn\n67HHHtOuXbuuPR4SEqJjxzL/vp2uIFykSBFVrFhRe/bskSQlJCQoICBAx44d00cffaTnnnsuwweu\nVKmSAgICdOLEievu/+yzz9SmTRvFx8dr7ty5KlKkiPz9Ta/SMWPGqF27dn/Z1+bNm7O8wh3gVEmp\nSRq0eJCenf+sZj48UwMbDXTkNKOqoVX1XP3n1H/hjd+cAcAjWVbWL5m0YcMGtWrVSnv37pUkJSUl\nKSAgQG3btlX+/Plv+JzU1NRrt48cOaJq1aopPDxcS5YsUXh4uLp163bd4GuePHmudTTLjHR1w/f1\n9dXChQv11ltv6dixY1q9erU++OADBQcHa/jw4dd+ae7Zs0crV67U5s2b9cADDyglJUXTp0/XtGnT\nbrjfli1basWKFere/feepM2aNVOnTp00cuRIderUSUFBQRo0aJDy5MmjLl26qFChQn/Zz8qVK9W+\nffvMvH7A0fbF7FP3Gd1VIn8Jbe63WYXzFra7JFu9everqj2utiJ2Rqhj1Y52lwMAHq1ly5YaO3as\nunTpIun3c7kuXbqkMmXKKCIiQlu3blW7du105513StK1wU9J1wLv6dOnFRwcrIIFC6pt2+vPW7l4\n8eINs2F6pXtZqPLly+urr75SVFSUihYteu1F/dH+/fvVuHFjff755/r0008lSW+99ZZiY2OvO7nu\nql69eunjjz++LgjXqFFDU6ZMufbnJk2a3LSuhIQEbdq06drxAKTP1G1TNWDRAL3e9HW90OAFR44C\n/1mgf6DGtx2vnhE9dV/5+5Q/941HLAAA6RMVFaXw8HCdPHlSJUuWVHJysiIiInTlyhXVrl1b999/\nv/r163ct+xUrVkxXrlxRvnz5tGvXLiUmJmrTpk1q2rSpJHMy3R/D8MmTJ691NMuMDPdDWrt2rRo0\naHDDx1q3bq0lS5aoZ8+ekkzrszx58twwBEtS8+bNFR8ff23KRWZMmjRJffr0Ue7cuTO9D8BJYuJj\n1GNmDw3/ZbgW91ys/g37E4L/oFnZZnqwwoN6bdlrdpcCAB6vf//+WrNmjSZOnKhz584pIiJCvXr1\n0ssvv6wGDRro6NGjKleu3LXtmzVrpnXr1kmSFi9erHnz5smyLCUkJCgiIuIvJ9tt2bLlloOmN2Vl\n0Ouvv37Tx9u2bWvt3r3bsizLGjlypDVhwgRrzpw5f7v9oUOHrIcffthKTU3NaCnWiRMnrM6dO1sp\nKSk33S4TLxPwSj/s/sEqPrq4NXDhQCs2KdbuctzWubhzVtH3i1pbTm6xuxQADpTe3OJJ+eb777+/\n4f0jRoywYmN//310/vx5a+jQoenaZ3x8vPXSSy/ddJtb/R1leET4j3M3buTChQvXev3mzZtXCQkJ\nCgwM/Nvty5Qpo3/84x8aM2ZMRkvR+++/r3HjxsnPzy/DzwWc5Hz8eT0550kNWDhAUzpN0YcPfqi8\nufLaXZbbKpSnkP7V/F/qv7A/vYUBIIssy7rh2hFz587VgAEDdPz48Wv3FSxYUEWKFFF0dPQt9ztt\n2jT169cvS7X5WA54l/fx8eGXGRzJsix9s/Ub/d/S/1Onqp30zn3vKDh3sN1leYTUtFQ1mNBAgxoP\nUo+aPewuB4CDpDe3eHK+iYiI0MiRI1WwYEE1b95cQ4cOvfaYZVmaMGGC+vTp87fPP3r0qDZt2nTL\nZgm3+jsiCANeKupslJ6b/5wuJ13WuPBxql+i/q2fhOusPrpaXad31a4XdilfQD67ywHgEE4Iwq5y\nq7+jDE+NAODeouOiNXDRQDWb2Eydq3bWuqfXEYIzqXGpxrqv/H0asWKE3aUAAHIAQRjwEnHJcXp7\n5duq8mkVpVlp2vHcDvVv2F9+vsyhz4p3739XX2z+QnvOZb67DQDAPRGEAQ8XnxyvT9d9qsqfVtam\nU5u0+qnV+qT1JyoadPP13JE+xfIV05AmQ/TSjy/ZXQoAIJsRhAEPdSnxkt799V2V/7i8lh5YqpkP\nz9T0rtNVsXBFu0vzOv0b9teec3u0ZP8Su0sBAGQjgjDgYfae26tBiwep/EflFXk6Uot7Ltbs7rPV\noMSNF7pB1gX4Bei9+9/ToMWDlJqWanc5AIBsQhAGPEByarJm75qtVt+2UpMvm8jf11/r+qzTlM5T\nVPO2mnaX5wgdqnRQSJ4QTdwy0e5SAADZhPZpgJtKs9L025HfNGX7FM2ImqFKhSvpmbrPqGv1rgr0\n//tFapBzNpzYoIemPqQ9/ffQTg1AjklvbilUqJDOnz/vgoo8V0hIiGJiYv72cYIw4EYSUhL086Gf\nNW/PPP2w5wcFBwTr0ZqPqnuN7ioXUu7WO0COeyziMZUrWE7/uvdfdpcCwEuRW1yHIAzYKDUtVZGn\nI/XLoV+0/NBy/XzoZ9UqVkttK7ZV20ptVb1odbtLxJ8cvXhUtcfXVuQzkSqZv6Td5QDwQuQW1yEI\nAy5iWZaOXDyiTSc3afOpzVp/Yr1WH12tEvlLqGmZpmpWppla3t5ShfIUsrtU3MKwn4bp6KWjmtRh\nkt2lAPBC5BbXIQgD2Sw5NVmHLx7WnnN7tDt6t/bEmOstp7Yo0D9Qd4bdqTphdVQ3rK6alGqi0KBQ\nu0tGBl1OvKzKn1bWD4/8oLrF69pdDgAvQ25xHYIwkA4paSmKiY/Rubhz5jreXJ+JPaPjl4/r2KVj\n1y5nY8+qRP4SqlS4krkUMte1itVSsXzF7H4pyCafb/xck7dN1vJey+Xj42N3OQC8CLnFdRwThDef\n3HzdfX9+2ZasDD2emX1wnJw9TmpaqpLTkpWcmqyUtJSb3r56nZSapNikWMUlxyk2OVaxSbGKTf7f\nn/93+1LiJcUmxapgYEEVzltYhfMUVqE8hVQ4b2EVyVtEJYNLqmT+3y9hwWHy9/X/y2uAd0lNS1Xt\n8bX11r1vqUOVDnaXAy9lWZbSrDSlWWlKtVJ/v52Wet19f/7z1fuu7ecP76E3ew/+42MZvT+9z8Gt\n1QmrQxB2Ecf8tu49u/df7vvzKI6PfDL0eGb2wXFy7jj+vv7y9/VXLt9cyuWX64a3/X39lcsvl3L5\n5lKgf6AC/AIUlCtIeXPlVVBA0F9uBwUEKTggWAUCC8jXh7bb+J2fr59GtxytFxa8oDYV2yjAL8Du\nkmCjuOQ4nY09qzOxZ3Q27qwuJFzQ5cTLupxkLpcSL/3+58TLik+JV2JKopJSk5SYmnjd7aTUJCWm\nJCoxNVEpaSnykY/8fP3k6+MrPx9z7evj+5f7brTNH98n//geerP34PQ8J6v7AtyFY0aEHfAyAdig\nzeQ2anV7Kw1sNNDuUpBDLiZc1IHzB3T44mEdvnBYRy4d0eELh3X00lGdvnJaZ+POKs1KU2jeUIUG\nhSo0b6hC8oQoOCBYwbmDzXVAsPLnzn/tz3ly5VFuv9wK8AtQbv/cf3s7l28upt44ELnFdQjCAJAF\nUWej1Hxic+16YRcdPzxcYkqiIk9HavPJzYqKjlLU2SjtPLtTFxIuqHxIeZUpWEZlCvzvUrCMSuUv\npWL5iik0KFRBuYIIrMg25BbXIQgDQBY9N/855fbPrQ9afWB3KciAwxcO65fDv2jd8XVad3yddpzd\noYqFKurOsDtVPbS6qoVWU7XQaipVoBRTo+BS5BbXIQgDQBadiT2jamOqadVTq1SpcCW7y8HfuJhw\nUYv3L9bSg0u17MAyXU66rOZlm6tRiUZqUKKB6oTVUd5cee0uEyC3uBBBGACywXu/vafVx1YroluE\n3aXgD05fOa05u+coYleEfjvym5qUbqKW5VvqvvL3qUbRGoz0wi2RW1yHIAwA2SAhJUFVx1TVV+2/\nUvOyze0ux9Hik+M1Z/ccTdwyUWuOrdGDFR5Uxyod1bpia+XPnd/u8oBbIre4DkEYALLJ9zu+1zu/\nvqP1fdbLz9fP7nIcZ9vpbRq7Yay+3/G96obVVe/avdWxSkflyZXH7tKADCG3uA7fCQFANularasC\n/QP1zdZv7C7FMdKsNM3fM18PfPOAWn3bSmH5wrSl3xYtfmyxetTsQQgGcFOMCANANlp7bK06f99Z\nu1/YraCAILvL8VopaSmasm2KRq4cqby58uqlRi+pW41uLGwCr0BucR2CMABks0dnPaqKhSpqePPh\ndpfidVLTUvXdju/05i9v6rag2zS8+XDdW/ZeevjCq5BbXIcgDADZ7MjFI6ozvo62PrNVJfKXsLsc\nr2BZlhbsXaBXlryikDwherP5m7qv3H0EYHglcovrEIQBIAcM/WmoDl84rG87fWt3KR4v6myUXvrx\nJR2+cFijW45Wm4ptCMDwauQW1+FkOQDIAa/d/ZpWHF6hFYdX2F2Kx7qYcFEDFg5Qs4nN1KZCG217\ndpvCK4UTggFkG4IwAOSAoIAgjW45Wi8seEEpaSl2l+NxInZGqPrY6kpISdDO53dqYKOByuWXy+6y\nAHgZpkYAQA6xLEsPfPOA2lVqp4GNBtpdjkc4cfmE+i/sr+1ntuvzdp+raZmmdpcEuBy5xXUYEQaA\nHOLj46NPWn+iEStH6NSVU3aX49Ysy9LkrZNVe1xtVQutpshnIgnBAHIcI8IAkMMGLxms07GnNanD\nJLtLcUvn48/ruQXPKfJUpCZ3mqw6YXXsLgmwFbnFdRgRBoAc9s+m/9SyA8v065Ff7S7F7fx86GfV\nHl9bRfIW0Ya+GwjBAFyKEWEAcIHpO6brjZ/f0OZ+m5XbP7fd5dguJS1Fw34apm+2fqMJ7SaodcXW\ndpcEuA1yi+sQhAHABSzLUofvOqh2sdp6s/mbdpdjq9NXTqvbjG4K9A/UNx2/UWhQqN0lAW6F3OI6\nTI0AABfw8fHRmDZjNHb9WG0/s93ucmyz5tga1fu8npqWaar5PeYTggHYihFhAHChcRvGaeKWifrt\nyd/k5+tndzkuY1mWxm8cr9eXv64vHvpC7Sq3s7skwG2RW1yHIAwALpRmpeneSfeqY5WOerHRi3aX\n4xLxyfF6bsFz2nBig2Y9PEsVC1e0uyTArZFbXIepEQDgQr4+vprQboJGrBihqLNRdpeT4w5dOKS7\nv7pbCSkJWvPUGkIwALdCEAYAF6tYuKJG3jdSj856VIkpiXaXk2MW71+sRhMa6bE7HtOUTlMUFBBk\nd0kAcB2mRgCADSzLUsfvOqpS4Up674H37C4nW6VZaXrn13f06bpPNbXzVDUr28zukgCPQm5xHYIw\nANjkbOxZ1R5fW992/Fb3lrvX7nKyxaXES+o1u5dOXTmlGV1nqET+EnaXBHgccovrMDUCAGwSGhSq\nLx76Qo/PflxnYs/YXU6WRZ2NUv3P6yssX5h+7vUzIRiA2yMIA4CNHqzwoB6v9bi6z+iulLQUu8vJ\ntOk7pqvZxGZ67e7XNDZ8LKvnAfAITI0AAJulpqWq9eTWqhNWR+/e/67d5WRISlqKXl32qmZEzdCs\nh2epTlgdu0sCPB65xXX87S4AAJzOz9dPUzpPUb3P6qn2bbX1SM1H7C4pXU5dOaXuM7ort39ubeiz\nQYXzFra7JADIEKZGAIAbKJK3iOY+MlcDFw3UisMr7C7nllYcXqG6n9VV87LNtaDHAkIwAI/E1AgA\ncCNL9i9Rz4ie+qX3L6pSpIrd5fyFZVkavXq0Rq0apUkdJqlVhVZ2lwR4HXKL6xCEAcDNTNwyUW/8\n/IaW91qu8iHl7S7nmpj4GD0992kdv3xc07tOV+kCpe0uCfBK5BbXYWoEALiZ3rV7a0iTIWoxqYUO\nXThkdzmSpGUHlqnWuFoqU7CMVvReQQgG4BU4WQ4A3NCz9Z9VmpWmeyfdq0WPLlLlIpVtqSMhJUFD\nfxqq77Z/p6/af6UHbn/AljoAICcQhAHATT3f4HnlyZVHTSc21fSu09W0TFOXHn/d8XV6eu7Tqli4\noiKfieSEOABehznCAODmlh5Yqh4ze2jkfSP1VJ2n5OPjk6PHu5BwQa8te00RuyI06oFR6lGzR44f\nE8DvyC2uwxxhAHBz95e/X7/0/kUfr/1YD894WOfjz+fIcVLSUjRh0wRVH1tdaVaaop6L0qN3PEoI\nBuC1CMIA4AGqhlbVuj7rVDy4uGr+t6a+ifxGaVZatuw7NS1V03dMV83/1tTkbZMV0S1C49qOU0ie\nkGzZPwC4K6ZGAICHWXV0lV768SVZlqWh9wxV20pt5efrl+H9nIs7p8nbJuvDNR8qLDhMw+4Zpgcr\nPMgIMGAzcovrEIQBwAOlWWmavmO6Plz7oU5cPqFetXrpwQoPqkGJBvL3vfF50JZlaV/MPv1y+BfN\n3T1XKw6vUOuKrTWgwQA1LtXYxa8AwN8ht7gOQRgAPNzGExv1fdT3Wrx/sfbH7FeFQhVUPqS8CgQW\nkGVZikuO06ELh7T//H4F+geqWZlmanl7S3Ws0lHBuYPtLh/An5BbXIcgDABe5Hz8ee0/v18Hzh/Q\n5cTLkqRA/0CVLVhW5ULKKSxfGFMfADdHbnEdgjAAAIAbIbe4Dl0jAAAA4EgEYQAAADgSQRgAAACO\nRBAGAACAIxGEAQAA4EgEYQAAADgSQRgAAACORBAGAACAIxGEAQAA4EgEYQAAADgSQRgAAACORBAG\nAACAIxGEAQAA4EgEYQAAADgSQRgAAACORBAGAACAIxGEAQAA4EgEYQAAADgSQRgAAACORBAGAACA\nIxGEAQAA4EgEYQAAADgSQRgAAACORBAGAACAIxGEAQAA4EgEYQAAADgSQRgAAACORBAGAACAIxGE\nAQAA4EgEYQAAADgSQRgAAACORBAGAACAIxGEAQAA4EgEYQAAADgSQRgAAACORBAGAACAIxGEAQAA\n4EgEYQAAADgSQRgAAACORBAGAACAIxGEAQAA4EgEYQAAADgSQRgAAACORBAGAACAIxGEAQAA4EgE\nYQAAADiSv90FAIAnSEiQdu2SDh+WTpyQoqOlxEQpOVnKm1cKDpaKFpXKlZNuv10qVszuigEAt+Jj\nWZZldxE5zcfHRw54mQCy0dmz0tKl0vLl0q+/SgcPmoBbvrxUvLhUpIiUO7eUK5cUFyddviydPm22\n27vX3F+vntS8udS6tVS1quTjY/erAuAJyC2uQxAGgP+JjpZmzpSmT5c2bDAh9t57pXvukapXN8E3\nPSxLOnpUWrfOhOmFC00I7tRJ6t1buuOOnHwVADwducV1CMIAHM2yTGD99FNp3jzpwQelrl3Ndd68\n2XeMqChp6lRp0iQzheLpp6VevbLvGAC8B7nFdQjCABzJskzwfest6dw56fnnpSeekEJCcva4qanS\nTz9JY8ZIq1eb4z7/vFS4cM4eF4DnILe4DkEYgKNcDcDDh5tQ+vrrUocOkq8NPXR27pRGj5YiIqT+\n/aVBg8xJdwCcjdziOgRhAI6xebP04otSTIz0r39J7dvbE4D/7OBBE8iXLJGGDZP69TMn2wFwJnKL\n67jBrwAAyFlnzkhPPWW6N/ToIW3ZInXs6B4hWDIt1775RvrxR2nOHKluXem33+yuCgC8n5v8GgCA\n7GdZ0tdfSzVrSgUKSLt3m9FWPz+7K7uxWrWkxYvNqHC3bia8R0fbXRUAeC+CMACvdPCg1KqV9MEH\n0oIF0n/+Y8Kwu/PxkR5+2HSZyJ/ftG2bOtWEegBA9iIIA/AqlmU6MtSvL91/v2mNVreu3VVlXP78\nJsTPny+NGGFaup09a3dVAOBdCMIAvMapU1KbNqZX76pV0uDBnn/SWb160saNZlW7O+4wHSYAANmD\nIAzAK8yeLdWubUaCf/tNqlTJ7oqyT2Cg9O67ZtW7V16R+vY1yzoDALKG9mkAPFpcnDRwoLRsmfTt\nt9Jdd9ldUc66dEl69lnT+WLaNHMiIADvQm5xHUaEAXisXbukBg2k+HgTDL09BEtm7vC335qR4RYt\npPHjOZEOADKLEWEAHmnqVGnAAOntt02bMR8fuytyvd27TZu1ChWkzz/P+eWhAbgGucV1GBEG4FES\nEqTnnvt9Jbann3ZmCJakypWlNWuksDDpzjtNhwwAQPoRhAF4jAMHpCZNTBuxDRvMyXFOFxgoffKJ\nNHq01Lat9NFHTJUAgPQiCAPwCBERUqNGUu/e0vffe8biGK7UqZMZHf7mG6lzZ+nCBbsrAgD3RxAG\n4NaSk6VBg6SXXpJ++EHq39+5UyFupXx50zquRAkzVWL9ersrAgD3RhAG4LaOHZOaNZP27JE2bZIa\nNrS7IveXO7eZKvHee1J4uLnNVAkAuDGCMAC3tHixWRzjoYekOXOkQoXsrsizdOkirV4tTZxolme+\neNHuigDA/RCEAbiV1FRp+HDpiSfMghFDhki+vFNlyu23m6kSxYqZqRIbN9pdEQC4F/oIA3AbZ89K\nPXtKiYmmT3BYmN0VeY/p06Xnn5feeMO0n2OeNeC+yC2uwzgLALewapVUt64ZuVy6lBCc3bp2NX/H\nEyaYRTiYKgEABGEANrMs6cMPpY4dpbFjzUpx/v52V+WdKlQw84aLFDEfOjZtsrsiALAXUyMA2Ob8\nealPH+nQIfPVfblydlfkHN99J73wgvTmm9KzzzJVAnAn5BbXYUQYgC1++02qU0cqXlz69VdCsKt1\n62amSnz+udS9u3Tpkt0VAYDrEYQBuFRqqvSvf5nVzz75RPr4Y7NMMFyvYkUzVaJQITNVYssWuysC\nANdiagQAlzl61HSF8Pc3SwEXL253Rbhq6lRpwABpxAipb1+mSgB2Ire4DiPCAFxi+nSpXj2pdWuz\nWAYh2L088oiZrjJ2rNSjh3T5st0VAUDOIwgDyFHR0WY+6j//Kc2daxbI8POzuyrcSKVK0po1Uv78\nUq1a0vLldlcEADmLIAwgx8yeLd1xh1SqlLR5s9Swod0V4Vby5JHGjzfztx97zCzCceWK3VUBQM4g\nCAPIdtHRZi7wK6+YKRGjRpmABc8RHi5t3y7FxUk1a0o//WR3RQCQ/QjCALJNWpr0xRdS9epSaKgU\nGSk1aWJ3VcisggWlr76SxoyRevWSnnrKLIMNAN6CIAwgW2zbJjVtKn32mbRokfTBB1LevHZXhezQ\npo0ZHc6f33zIGTfOtMEDAE9H+zQAWXLxomm5NWmS6Q/cpw8nw3mzyEgzbzgx0XSYqF/f7ooA70Nu\ncR1GhAFkSnKy+cq8cmXp3DkzIvzMM4Rgb1erlrRihVme+aGHzJSJI0fsrgoAMocgDCBDLMt0g6hR\nw1z/+KP05ZfSbbfZXRlcxdfXBODdu6XSpc1S2YMHS+fP210ZAGQMQRhAuliW9MMP5qvwN96QPvrI\nLIxRq5bdlcEu+fNLb71lvg24cMF8O/DWW+Y2AHgC5ggDuKm0NGnePOnNN6WUFGn4cKl9ezMqCPzR\n7t3SyJHS/PnSs89KL74oFS5sd1WA5yG3uA5BGMANxcZKX39tRn6DgqRhwwjASJ8DB6R33pFmzDDL\nNffvb0aLAaQPucV1+JUG4Dr790uvviqVLWumPnz2mbRhg9SxIyEY6VO+vPm52bbN9CK+5x6pdWtp\nwQLargFwL4wIA1BcnDRzpjnpbccOsyrc889Lt99ud2XwBgkJ0rRpZtnms2elxx83J9tVrGh3ZYB7\nIre4DkEYcKiEBDPiO326mQPcqJFZOeyhh6SAALurg7eKjDQ9pydPNkG4WzepUyepRAm7KwPcB7nF\ndQjCgIOcPSstWWK+op4/X7rjDqlrV6lzZykszO7q4CTJyWYFwhkzzAexSpVMIG7d2qxe5+Njd4WA\nfcgtrkMQBrxYfLy0fr0Jvz/+aM7qv/deqVUrqUMHwi/cQ1KS9PPPUkSE+TlNSJAeeMBc7r9fKlbM\n7goB1yK3uA5BGPASlmVW+Fq3Tlq1yly2bzeja/fdZ8LvXXcx7SE7/fzzz2revLndZXid/fvNtJ0l\nS6Tly6WQEDN1p1EjqXFj07uan2N4M3KL6xCEAQ9jWdLJkyYs7Npl5lxu3WouQUHSnXdKTZqY0Fuv\nnpQ3r90Ve6/hw4dr+PDhdpfh1dLSpD17pNWrpTVrzGXPHqlCBalmTbPCYc2aUpUqUpkyBGR4B3KL\n6/jbXQCA6125YoLuiRPmcvKkdPy46c26b5+5zpfPBIFKlczoWKdOZr5vkSJ2Vw9kL19fE3KrVJGe\neMLcFx9vPgRu22YuY8aYcHz8uJnuU768uZQrZ07CK1bM3B8WZv6P0AYQwFUEYSALLMustpacbC7x\n8aYV2c0uly5J589LMTHm+o+3o6PNfooXN5ewsN9vN25swu/tt0vBwXa/csA+efJIdeqYyx8lJ0tH\nj5oPi/v3SwcPSj/9JJ06ZT5QnjolXbwohYaaQBwSYvocFyx4/e0CBcwx8ua9/vLH+3Lnlvz9pVy5\nCNaAJ3PM1AgAAABP4YB45hYcMSLMDxMAAAD+jC90AAAA4EgEYQAAADgSQRgAAACORBAGAACAI3nk\nyXIxMTGaMGGC0tLSlJCQoMqVK+vQoUOKjo7W6NGj7S4PgJeIjY3V4MGDVblyZe3du1dNmjRR9+7d\nsyUwFQIAAAYKSURBVLwtAOcgs7g3jwzCn332mQYPHixfX1/ddtttGjdunG677TYtWLDA7tIAeJHB\ngwerUqVKGjBggFJTU1W1alXVqFFDNWrUyNK2AJyDzOLePK6PcGpqqrZs2aK6devq7NmzKlu2rC5e\nvCh//4xn+tatW2vhwoU5UCUATxcXF6fQ0FDt2LFDZcuWlSQNHDhQQUFBGjlyZKa3BeAc2ZlZkDM8\nbo6wn5+f6tatK0lasWKFGjZsmOkfKEIwgL+ze/duxcfHq0yZMtfuK1WqlFasWJGlbQE4R3ZmFuQM\njwvCf7RixQo1adLk2p/Xrl1rYzUAvMnp06eVO3fu61amDAoK0smTJ7O0LQBnIrO4J4/7WPL999/r\n3//+tzZu3KgffvhBw4cPlyRFRESoUqVKWr16tX744QdVrVpV+fLl0/z589WjRw/FxcVp+vTp+uKL\nL3T06FEtW7ZMV65c0YsvvqhVq1Zp3rx5qlatmoKDg7VgwQK98847CgkJsffFArBNTEyMAgMDr7sv\nICBAly5dytK2AJwjOzKLv7+/Zs+erTNnzigtLU179+7V6NGjZVmWpk2bdu3+pKQklS9fXl27drX3\nRXsYjxsRLlmypGrWrKn3339fX331lZYvX66xY8fKz89P1atXV2JiogoVKiRJ6tixo4KCgpSamqq2\nbdsqJiZGcXFxOnbsmMqUKaOkpCRJUlJSkgoVKiTLstS+fXvlzZtXR48etfNlArBZcHDwX+6Li4v7\nS+DN6LYAnCOrmSU+Pl779u3T119/rb59++q2227T7bffLkmKjIxU27Zt1ahRI506dUrh4eGqX7++\nnS/XI3nciPBdd92lu+6669qfmzVrdt3jzZs310cffaRJkyZJknbs2KEPPvhAqampunTpkvLnz697\n7rlHTzzxhP71r3/d8Dlbt25VtWrVXPSKALijsLAwxcbGXndfbGysSpcunaVtAThHVjNLcHCw3n//\nfbVr106StGbNGj3yyCOSpNq1a0uSfv31VzVv3pwONZnkcSPCt5KWlqYLFy4of/78iouLU0BAgHx9\nfbVixQq1aNFCK1euVFJSkk6dOqXo6GjFxcVd95z9+/erdOnSWrNmjd0vBYCNatWqpTx58uj48ePX\n7tu7d68aNGiQpW0B4Kr0ZJbz58+rWrVqsixLa9asUcGCBXXw4EFt3rxZJ06c0PLly9WgQQPt2bOH\n8xIyweuC8KFDh9SwYUNJ0vb/b+f+QXnrAziOf1wMrCxuFhmsiJlrQEoZbnemlM1gYjUYlIGy3E1Z\nXWWRX7FYWEwy2JRsmPyLOnd4pqeeun6G5zye83rN59TnbO9O377n5xkZGUmSNDU1paGhIY2NjXl7\ne0tnZ2dubm7S2tr6t3eKokhbW1uen59L+wagfM3NzZmamsru7m6S5Pn5ObVaLbOzs0mSra2trK6u\nvutZgH/yp2b58uVLpqenc3h4mJ2dnfT29qZWq6Wrqyv7+/vZ29vLwMBAarVaLi4u0tHRUebnfEqf\n7h5hgH/L3d1d5ufn09/fn8vLy4yMjOTHjx9JkoWFhVxdXWVnZ+ePzwLw3ySEAQCopP/d0QgAAHgP\nIQwAQCUJYQAAKkkIAwBQSUIYAIBKEsIAAFSSEAYAoJKEMAAAldRU9gCAz2Z9fT2Pj485OzvL8vJy\nfv36laIocn9/n7W1tbLnAfBO/ggD1GFjYyPj4+NZWlrK6OhohoeHMzMzk5eXl2xvb5c9D4A6CGGA\nOry9vaWnpydJcn19nb6+vnz9+jVzc3M5Pj4ueR0A9WgoiqIoewTAZ/Tt27eMjY1lcXGx7CkAfIA/\nwgAf8PLyktPT0wwNDZU9BYAPEsIA7/T6+pqjo6MkycnJSYqiyODgYJLk9vY2W1tbZc4DoE5CGOCd\nfv78mYmJiTw9PWVvby/t7e1pavrr8p3Nzc1MTk6WvBCAejgjDPBO5+fnWVlZSXd3d8bHx3NwcJCH\nh4e0tLTk+/fv6e3tLXsiAHUQwgAAVJKjEQAAVJIQBgCgkoQwAACVJIQBAKgkIQwAQCUJYQAAKkkI\nAwBQSUIYAIBKEsIAAFTSb14Romzj+akWAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0xcd808ec>"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "pl.figure(figsize = (10, 6))\n",
      "x = np.linspace(-3.0, 9.0, 300)\n",
      "pl.ylim(0.0,2.0)\n",
      "#pl.xlim(0.0, 200.0)\n",
      "pl.plot(x, (1.0 - np.exp(-x)) ** 2)\n",
      "#plt.plot(np.exp(-2.0 * x) - 2.0 * np.exp(-x))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 10,
       "text": [
        "[<matplotlib.lines.Line2D at 0xbcd582c>]"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n13333aeLL75YF110kZKSkvS9733PdFmeU1paWnODXXJycr02LI/q7/TBgwerd+/eZx2rVq3SvHnz\nNGvWrJpz+Rfb2er6/E5fezFnzhw1b95ct956q8FK3Y8RS3RUVFRo+PDhevrpp9Wahx7W2+rVq9Wp\nUydlZGTwZ10DHT9+XFu3btWdd96prVu3KiEhoV7jFlg+/vhj/epXv1JhYaEOHDigiooK/eEPfzBd\nlqeFQqF6/Z0S8S6/hlqzZs05f/3DDz/Uvn37lJ6eLslqhffv31+bN29Wp06dolmCp9X1+Z20ZMkS\n5eTkaN26dQ5V5F312UMNkVVVVWnYsGEaNWqUhg4darocT9m4caNWrVqlnJwcHT16VF9//bVGjx5d\ns8UM6paamqrU1FRdeeWVkqThw4cTqBpgy5Yt+ud//md16NBBknTTTTdp48aNuu222wxX5i3Jycn6\n/PPP1blzZ3322Wf1yiqO9KJ79eql0tJS7du3T/v27VNqaqq2bt1KmGqA3NxcPfHEE1q5cqVatmxp\nuhzXq88eaqhbOBzW+PHj1aNHD02fPt10OZ4zd+5cFRUVad++fVq+fLmuu+46wlQ9de7cWWlpadqz\nZ48kae3aterZs6fhqryjW7duys/P15EjRxQOh7V27Vr16NHDdFmek52drRdeeEGS9MILL9TrH5VR\n7VDVF+OYhps6daoqKys1ePBgSdLAgQP129/+1nBV7lXXHmqonw0bNmjZsmXq06ePMjIyJFm3Yv/g\nBz8wXJk38Wdew/z617/WbbfdpsrKypptYlA/6enpGj16tAYMGKCYmBj169dPEydONF2Wq40cOVLr\n169XWVmZ0tLS9Mgjj+j+++/XzTffrN///vc12yacj+P7UAEAAPgNt58AAAA0EYEKAACgiQhUAAAA\nTUSgAgAAaCICFQAAQBMRqAAAAJro/wERsQL8ycUTjwAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0xbcd506c>"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# WYKRES GESTOSCI PRAWDOPODOBIENSTWA:\n",
      "\n",
      "pl.figure(figsize = (10, 6))\n",
      "\n",
      "#shift2 = shift**2\n",
      "shift2 = 0.012\n",
      "\n",
      "for idx in range(N_eigvals)[0:4]:\n",
      "    \n",
      "    psi = eigvecs[:,idx]\n",
      "    pl.plot(x, psi**2 + idx * shift2, label = \"$P_{%d}(x)$\" % idx)\n",
      "    \n",
      "pl.legend(bbox_to_anchor=(1.16, 0.7))\n",
      "pl.xlabel(\"$x$\", {\"fontsize\": \"xx-large\"})\n",
      "pl.ylabel(\"$P_i(x)$\", {\"fontsize\": \"xx-large\", \"rotation\": \"horizontal\"})\n",
      "#pl.xlim(x_min, x_max)\n",
      "#pl.ylim(-shift2, shift2 * N_eigvals)\n",
      "pl.xticks([x_min, 0.0, x_max], [\"$x_{min}$\", \"$0.0$\", \"$x_{max}$\"], size = 15)\n",
      "pl.yticks([])\n",
      "#pl.savefig(\"num_harr_P3.png\")\n",
      "pl.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "ename": "ValueError",
       "evalue": "x and y must have same first dimension",
       "output_type": "pyerr",
       "traceback": [
        "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
        "\u001b[1;32m<ipython-input-11-73ec2a18dac3>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      9\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     10\u001b[0m     \u001b[0mpsi\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0meigvecs\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0midx\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m     \u001b[0mpl\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpsi\u001b[0m\u001b[1;33m**\u001b[0m\u001b[1;36m2\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0midx\u001b[0m \u001b[1;33m*\u001b[0m \u001b[0mshift2\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlabel\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"$P_{%d}(x)$\"\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0midx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     12\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     13\u001b[0m \u001b[0mpl\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlegend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbbox_to_anchor\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1.16\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0.7\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m/usr/lib/pymodules/python2.7/matplotlib/pyplot.pyc\u001b[0m in \u001b[0;36mplot\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m   2465\u001b[0m         \u001b[0max\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhold\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mhold\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2466\u001b[0m     \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2467\u001b[1;33m         \u001b[0mret\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0max\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   2468\u001b[0m         \u001b[0mdraw_if_interactive\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2469\u001b[0m     \u001b[1;32mfinally\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m/usr/lib/pymodules/python2.7/matplotlib/axes.pyc\u001b[0m in \u001b[0;36mplot\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m   3891\u001b[0m         \u001b[0mlines\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[0;32m   3892\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3893\u001b[1;33m         \u001b[1;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\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   3894\u001b[0m             \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mline\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   3895\u001b[0m             \u001b[0mlines\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mline\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m/usr/lib/pymodules/python2.7/matplotlib/axes.pyc\u001b[0m in \u001b[0;36m_grab_next_args\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m    320\u001b[0m                 \u001b[1;32mreturn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    321\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mremaining\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[1;36m3\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 322\u001b[1;33m                 \u001b[1;32mfor\u001b[0m \u001b[0mseg\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_plot_args\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mremaining\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\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    323\u001b[0m                     \u001b[1;32myield\u001b[0m \u001b[0mseg\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    324\u001b[0m                 \u001b[1;32mreturn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m/usr/lib/pymodules/python2.7/matplotlib/axes.pyc\u001b[0m in \u001b[0;36m_plot_args\u001b[1;34m(self, tup, kwargs)\u001b[0m\n\u001b[0;32m    298\u001b[0m             \u001b[0mx\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0marange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mfloat\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    299\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 300\u001b[1;33m         \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_xy_from_xy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    301\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    302\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcommand\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'plot'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;32m/usr/lib/pymodules/python2.7/matplotlib/axes.pyc\u001b[0m in \u001b[0;36m_xy_from_xy\u001b[1;34m(self, x, y)\u001b[0m\n\u001b[0;32m    238\u001b[0m         \u001b[0my\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0matleast_1d\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    239\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 240\u001b[1;33m             \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"x and y must have same first dimension\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    241\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m2\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mndim\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    242\u001b[0m             \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"x and y can be no greater than 2-D\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;31mValueError\u001b[0m: x and y must have same first dimension"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n59lhMvt3uddeey02b948HaNxHZP9u9fb2zv+mxG8V272mMz+DQ4Oxr/+9a/YsGFDrF69On79619P\n95hcw2T2r6OjIz799NNYsmRJtLS0xK9+9avpHpMpmGqzpCVz1juvmBn/yT588MEH8frrr8dHH310\nEydisiazd88991y89NJLUSqVoigK75abRSazf6Ojo3Ho0KF4//3348KFC7Fu3bp48MEHo6GhYRom\npJLJ7N+LL74Yq1atinK5HJ999lk88sgjcfjw4bjjjjumYUJuxFSaJS2svPNqbpvM/kVEHDlyJDo6\nOqKvr6/iLVSmz2T27uOPP4729vaI+OpB2j179kR1dfUVr09h+k1m/+rq6mLRokUxb968mDdvXjz8\n8MNx+PBhYTULTGb/9u3bFz//+c8jImLZsmVx7733xvHjx2P16tXTOiv/mSk3S8oTYEVRjI6OFvfd\nd19x8uTJ4osvvrjuw+v79+/38PMsMpn9++tf/1osW7as2L9//wxNydVMZu8u98Mf/rD4/e9/P40T\nUslk9u/YsWPFt771reLSpUvFv//976K5ubn49NNPZ2hiLjeZ/fvxj39cdHV1FUVRFH//+9+Lmpqa\n4p///OdMjMvXnDx5clIPr/8nzZJ2x8o7r+a2yezfCy+8EGfPnh1/Tqe6ujoGBgZmcmxicnvH7DWZ\n/WtsbIxNmzbFypUr47bbbouOjo5YsWLFDE9OxOT27/nnn48tW7ZES0tLfPnll/Hyyy/HwoULZ3hy\nnnzyyfjwww9jZGQk6urqoru7O0ZHRyPixpqlVBQetgAAyJD2rwIBAG51wgoAIImwAgBIIqwAAJII\nKwCAJMIKACDJ/wCmruOzjR1NoAAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0xbcd5c2c>"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "g = lambda x: x**2\n",
      "x = 1\n",
      "result = %timeit -o g(x)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": []
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "aaa = 1\n",
      "b = print aaa"
     ],
     "language": "python",
     "metadata": {},
     "outputs": []
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%timeit EigenvalEigenvecProblem5"
     ],
     "language": "python",
     "metadata": {},
     "outputs": []
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%timeit EigenvalEigenvecProblem5(N, x_min, x_max, N_eigvals, potential, *args_potential)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": []
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "print eigvals\n",
      "print [\"n = %d\" % i for i in range(0,eigvals)]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": []
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}