{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# p08: Eigenvalues of harmonic oscillator $-u'' + x^2 u$ on $R$" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "%config InlineBackend.figure_format='svg'\n", "from numpy import pi,arange,linspace,sin,zeros,diag,sort\n", "from scipy.linalg import toeplitz\n", "from numpy.linalg import eig" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "N = 6\n", " 4.614729169954715e-01\n", " 7.494134621050520e+00\n", " 7.720916053006559e+00\n", " 2.883248377834012e+01\n", "N = 12\n", " 9.781372812986032e-01\n", " 3.171605320647183e+00\n", " 4.455935291166786e+00\n", " 8.924529058119932e+00\n", "N = 18\n", " 9.999700014993065e-01\n", " 3.000644066795828e+00\n", " 4.992595324407711e+00\n", " 7.039571897981498e+00\n", "N = 24\n", " 9.999999976290365e-01\n", " 3.000000098410870e+00\n", " 4.999997965273278e+00\n", " 7.000024998156537e+00\n", "N = 30\n", " 9.999999999999706e-01\n", " 3.000000000000749e+00\n", " 4.999999999975585e+00\n", " 7.000000000508598e+00\n", "N = 36\n", " 1.000000000000004e+00\n", " 2.999999999999993e+00\n", " 4.999999999999999e+00\n", " 6.999999999999990e+00\n" ] } ], "source": [ "L = 8.0\n", "for N in range(6,37,6):\n", " h = 2.0*pi/N; x = h*linspace(1,N,N); x = L*(x-pi)/pi\n", " col = zeros(N)\n", " col[0] = -pi**2/(3.0*h**2) - 1.0/6.0\n", " col[1:] = -0.5*(-1.0)**arange(1,N)/sin(0.5*h*arange(1,N))**2\n", " D2 = (pi/L)**2 * toeplitz(col)\n", " evals,evecs = eig(-D2 + diag(x**2))\n", " eigenvalues = sort(evals)\n", " print(\"N = %d\" % N)\n", " for e in eigenvalues[0:4]:\n", " print(\"%24.15e\" % e)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.9" } }, "nbformat": 4, "nbformat_minor": 1 }