11: Add some ideas to task 4, fix minor typos
This commit is contained in:
@ -195,7 +195,7 @@
|
|||||||
" the approximations ℏ = 1, 𝑚 = 0.5.\n",
|
" the approximations ℏ = 1, 𝑚 = 0.5.\n",
|
||||||
" \n",
|
" \n",
|
||||||
" Args:\n",
|
" Args:\n",
|
||||||
" x: array of evenly spaced space value vectors x\n",
|
" x: array of evenly spaced space values x\n",
|
||||||
" V: function that takes in a location x and returns a scalar potential value\n",
|
" V: function that takes in a location x and returns a scalar potential value\n",
|
||||||
"\n",
|
"\n",
|
||||||
" Returns:\n",
|
" Returns:\n",
|
||||||
@ -456,7 +456,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 4,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"deletable": false,
|
"deletable": false,
|
||||||
"nbgrader": {
|
"nbgrader": {
|
||||||
@ -471,10 +471,54 @@
|
|||||||
"task": false
|
"task": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [
|
||||||
|
{
|
||||||
|
"ename": "SyntaxError",
|
||||||
|
"evalue": "invalid syntax (1568846030.py, line 24)",
|
||||||
|
"output_type": "error",
|
||||||
|
"traceback": [
|
||||||
|
"\u001b[0;36m File \u001b[0;32m\"/tmp/ipykernel_2225683/1568846030.py\"\u001b[0;36m, line \u001b[0;32m24\u001b[0m\n\u001b[0;31m α =\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"def SEQDyn(x, t, V, f):\n",
|
"def SEQDyn(x, t, V, f):\n",
|
||||||
" # YOUR CODE HERE"
|
" \"\"\"\n",
|
||||||
|
" Numerically solves the time-dependent Schrödinger equation over\n",
|
||||||
|
" the gives input parameters, in a potential given by V, using\n",
|
||||||
|
" the approximations ℏ = 1, 𝑚 = 0.5, using the Crank-Nicolson approach\n",
|
||||||
|
" \n",
|
||||||
|
" Args:\n",
|
||||||
|
" x: array of evenly spaced space values x\n",
|
||||||
|
" t: array of evenly spaced time values t\n",
|
||||||
|
" V: function that takes a location x and returns a scalar potential value\n",
|
||||||
|
" f: function that takes a location x and returns initial values to w for\n",
|
||||||
|
" the Crank-Nicolson approach\n",
|
||||||
|
"\n",
|
||||||
|
" Returns:\n",
|
||||||
|
" A tuple of eigenfunctions \\Psi of the time-dependent SE.\n",
|
||||||
|
" \"\"\"\n",
|
||||||
|
" \n",
|
||||||
|
" n = len(x)\n",
|
||||||
|
" h = x[1] - x[0]\n",
|
||||||
|
" m = len(t)\n",
|
||||||
|
" k = t[1] - t[0]\n",
|
||||||
|
" \n",
|
||||||
|
" # Setup the Crank-Nicholson parameters\n",
|
||||||
|
" α =\n",
|
||||||
|
" λ1 = α**2*k/h**2\n",
|
||||||
|
" λ2 = 1\n",
|
||||||
|
" \n",
|
||||||
|
" A = -λ1/2*( np.eye(m - 2, m - 2, -1) + np.eye(m - 2, m - 2, 1) ) - (1 + λ1 + λ2*V)*np.eye(m - 2)\n",
|
||||||
|
" B = +λ1/2*( np.eye(m - 2, m - 2, -1) + np.eye(m - 2, m - 2, 1) ) - (1 + λ1 + λ2*V)*np.eye(m - 2)\n",
|
||||||
|
"\n",
|
||||||
|
" # TODO: Finish SEQDyn: implement algorithm, return the right things.\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"V = lambda x: 0.25*x**2\n",
|
||||||
|
"f = lambda x: np.exp(-x**2)/2.5\n",
|
||||||
|
"x = np.linspace(-5, 5, 100)\n",
|
||||||
|
"t = np.linspace(0, 50, 1000)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -606,7 +650,7 @@
|
|||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "Python 3 (ipykernel)",
|
"display_name": "Python 3",
|
||||||
"language": "python",
|
"language": "python",
|
||||||
"name": "python3"
|
"name": "python3"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user