Final: Make integration bounds for hopping relative to system, clean up QREig test
This commit is contained in:
@ -606,7 +606,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 17,
|
||||
"execution_count": 20,
|
||||
"metadata": {
|
||||
"deletable": false,
|
||||
"nbgrader": {
|
||||
@ -644,10 +644,8 @@
|
||||
" # away from the atomic positions, which we already saw in the overlap\n",
|
||||
" # above. In fact, 99.7% of all probability mass is under the integral\n",
|
||||
" # for x radius of 3*sigma from the centers x_i.\n",
|
||||
" # TODO: Make integration bounds relative to n and a, and maybe sigma.\n",
|
||||
" infty = 5e1\n",
|
||||
" h = 1e-5\n",
|
||||
" x = np.arange(-infty, infty, h)\n",
|
||||
" h = 1e-6\n",
|
||||
" x = np.arange(positions[0] - 10*sigma, positions[-1] - 10*sigma, h)\n",
|
||||
" \n",
|
||||
" def V(x):\n",
|
||||
" ret = np.zeros(x.shape)\n",
|
||||
@ -668,7 +666,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 27,
|
||||
"execution_count": 21,
|
||||
"metadata": {
|
||||
"deletable": false,
|
||||
"nbgrader": {
|
||||
@ -689,72 +687,72 @@
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"For i = 0 ...\n",
|
||||
"\tt_{i,i+1} = -0.13849171527765194\n",
|
||||
"\tt_{i,i+2} = -3.0880816778755327e-06\n",
|
||||
"\tt_{i,i+3} = -1.8833562169250255e-15\n",
|
||||
"\tt_{i,i+1} = -0.1384916969413158\n",
|
||||
"\tt_{i,i+2} = -3.0880817716278278e-06\n",
|
||||
"\tt_{i,i+3} = -1.883355982770042e-15\n",
|
||||
"\n",
|
||||
"For i = 1 ...\n",
|
||||
"\tt_{i,i-1} = -0.13849171527765194\n",
|
||||
"\tt_{i,i+1} = -0.14871538196685558\n",
|
||||
"\tt_{i,i+2} = -3.1307050912510583e-06\n",
|
||||
"\tt_{i,i+3} = -1.9456306931892115e-15\n",
|
||||
"\tt_{i,i-1} = -0.1384916969413158\n",
|
||||
"\tt_{i,i+1} = -0.1487153634772844\n",
|
||||
"\tt_{i,i+2} = -3.130698794594546e-06\n",
|
||||
"\tt_{i,i+3} = -1.9456302197759757e-15\n",
|
||||
"\n",
|
||||
"For i = 2 ...\n",
|
||||
"\tt_{i,i-1} = -0.14871538196685555\n",
|
||||
"\tt_{i,i+1} = -0.1536327589565012\n",
|
||||
"\tt_{i,i-2} = -3.0880816778755327e-06\n",
|
||||
"\tt_{i,i+2} = -3.152251398227753e-06\n",
|
||||
"\tt_{i,i+3} = -1.976347912754562e-15\n",
|
||||
"\tt_{i,i-1} = -0.1487153634772844\n",
|
||||
"\tt_{i,i+1} = -0.1536327215743931\n",
|
||||
"\tt_{i,i-2} = -3.0880817716278278e-06\n",
|
||||
"\tt_{i,i+2} = -3.1522451552639614e-06\n",
|
||||
"\tt_{i,i+3} = -1.976347680690269e-15\n",
|
||||
"\n",
|
||||
"For i = 3 ...\n",
|
||||
"\tt_{i,i-1} = -0.1536327589565012\n",
|
||||
"\tt_{i,i+1} = -0.15605828154196247\n",
|
||||
"\tt_{i,i-2} = -3.1307050912510583e-06\n",
|
||||
"\tt_{i,i+2} = -3.1616580016478533e-06\n",
|
||||
"\tt_{i,i-3} = -1.8833562169250255e-15\n",
|
||||
"\tt_{i,i+3} = -1.98575211950378e-15\n",
|
||||
"\tt_{i,i-1} = -0.1536327215743931\n",
|
||||
"\tt_{i,i+1} = -0.15605826321748156\n",
|
||||
"\tt_{i,i-2} = -3.130698794594546e-06\n",
|
||||
"\tt_{i,i+2} = -3.1616580970991677e-06\n",
|
||||
"\tt_{i,i-3} = -1.883355982770042e-15\n",
|
||||
"\tt_{i,i+3} = -1.985751885523562e-15\n",
|
||||
"\n",
|
||||
"For i = 4 ...\n",
|
||||
"\tt_{i,i-1} = -0.15605828154196244\n",
|
||||
"\tt_{i,i+1} = -0.15680086554505168\n",
|
||||
"\tt_{i,i-2} = -3.152251398227753e-06\n",
|
||||
"\tt_{i,i+2} = -3.161664327360904e-06\n",
|
||||
"\tt_{i,i-3} = -1.9456306931892115e-15\n",
|
||||
"\tt_{i,i+3} = -1.976348151505985e-15\n",
|
||||
"\tt_{i,i-1} = -0.15605826321748156\n",
|
||||
"\tt_{i,i+1} = -0.15680084706928052\n",
|
||||
"\tt_{i,i-2} = -3.1522451552639614e-06\n",
|
||||
"\tt_{i,i+2} = -3.1616580336392234e-06\n",
|
||||
"\tt_{i,i-3} = -1.945630219775976e-15\n",
|
||||
"\tt_{i,i+3} = -1.976347665788238e-15\n",
|
||||
"\n",
|
||||
"For i = 5 ...\n",
|
||||
"\tt_{i,i-1} = -0.15680086554505168\n",
|
||||
"\tt_{i,i+1} = -0.156058300394482\n",
|
||||
"\tt_{i,i-2} = -3.1616580016478533e-06\n",
|
||||
"\tt_{i,i+2} = -3.152251395817713e-06\n",
|
||||
"\tt_{i,i-3} = -1.9763479127545625e-15\n",
|
||||
"\tt_{i,i+3} = -1.945630454073864e-15\n",
|
||||
"\tt_{i,i-1} = -0.15680084706928052\n",
|
||||
"\tt_{i,i+1} = -0.1560582620407699\n",
|
||||
"\tt_{i,i-2} = -3.1616580970991677e-06\n",
|
||||
"\tt_{i,i+2} = -3.1503884135302292e-06\n",
|
||||
"\tt_{i,i-3} = -1.976347680690269e-15\n",
|
||||
"\tt_{i,i+3} = -9.758917589446118e-16\n",
|
||||
"\n",
|
||||
"For i = 6 ...\n",
|
||||
"\tt_{i,i-1} = -0.15605830039448199\n",
|
||||
"\tt_{i,i+1} = -0.153632740075246\n",
|
||||
"\tt_{i,i-2} = -3.161664327360904e-06\n",
|
||||
"\tt_{i,i+2} = -3.1306987607180875e-06\n",
|
||||
"\tt_{i,i-3} = -1.9857521195037804e-15\n",
|
||||
"\tt_{i,i+3} = -1.8833562165610968e-15\n",
|
||||
"\tt_{i,i-1} = -0.1560582620407699\n",
|
||||
"\tt_{i,i+1} = -0.07705930210415016\n",
|
||||
"\tt_{i,i-2} = -3.1616580336392234e-06\n",
|
||||
"\tt_{i,i+2} = -1.8618361745866042e-09\n",
|
||||
"\tt_{i,i-3} = -1.985751885523562e-15\n",
|
||||
"\tt_{i,i+3} = -1.2520416620914092e-23\n",
|
||||
"\n",
|
||||
"For i = 7 ...\n",
|
||||
"\tt_{i,i-1} = -0.153632740075246\n",
|
||||
"\tt_{i,i+1} = -0.14871538193811829\n",
|
||||
"\tt_{i,i-2} = -3.152251395817713e-06\n",
|
||||
"\tt_{i,i+2} = -3.088087998768686e-06\n",
|
||||
"\tt_{i,i-3} = -1.976348151505985e-15\n",
|
||||
"\tt_{i,i-1} = -0.07705930210415014\n",
|
||||
"\tt_{i,i+1} = -9.886491591078138e-10\n",
|
||||
"\tt_{i,i-2} = -3.1503884135302292e-06\n",
|
||||
"\tt_{i,i+2} = -8.457627155901465e-24\n",
|
||||
"\tt_{i,i-3} = -1.976347665788238e-15\n",
|
||||
"\n",
|
||||
"For i = 8 ...\n",
|
||||
"\tt_{i,i-1} = -0.14871538193811829\n",
|
||||
"\tt_{i,i+1} = -0.1384917341014353\n",
|
||||
"\tt_{i,i-2} = -3.1306987607180875e-06\n",
|
||||
"\tt_{i,i-3} = -1.945630454073864e-15\n",
|
||||
"\tt_{i,i-1} = -9.886491591078138e-10\n",
|
||||
"\tt_{i,i+1} = -7.172547894745363e-31\n",
|
||||
"\tt_{i,i-2} = -1.861836174586604e-09\n",
|
||||
"\tt_{i,i-3} = -9.758917589446118e-16\n",
|
||||
"\n",
|
||||
"For i = 9 ...\n",
|
||||
"\tt_{i,i-1} = -0.1384917341014353\n",
|
||||
"\tt_{i,i-2} = -3.088087998768686e-06\n",
|
||||
"\tt_{i,i-3} = -1.8833562165610968e-15\n",
|
||||
"\tt_{i,i-1} = -7.1725478947453635e-31\n",
|
||||
"\tt_{i,i-2} = -8.457627155901465e-24\n",
|
||||
"\tt_{i,i-3} = -1.2520416620914093e-23\n",
|
||||
"\n"
|
||||
]
|
||||
}
|
||||
@ -797,7 +795,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 54,
|
||||
"execution_count": 14,
|
||||
"metadata": {
|
||||
"deletable": false,
|
||||
"nbgrader": {
|
||||
@ -836,7 +834,6 @@
|
||||
" Q, R = np.linalg.qr(T)\n",
|
||||
" T = np.matmul(R,Q)\n",
|
||||
" e = np.sum(np.abs(np.diag(T, k=1)))\n",
|
||||
" print(k)\n",
|
||||
" return np.diag(T)"
|
||||
]
|
||||
},
|
||||
@ -863,7 +860,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 75,
|
||||
"execution_count": 15,
|
||||
"metadata": {
|
||||
"deletable": false,
|
||||
"nbgrader": {
|
||||
@ -878,18 +875,7 @@
|
||||
"task": false
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"10000\n",
|
||||
"1000\n",
|
||||
"[-3.35311057 0.14162732 3. 4.21148325]\n",
|
||||
"10000\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def test_QREig():\n",
|
||||
" # Test case one\n",
|
||||
@ -902,7 +888,6 @@
|
||||
" # Eigenvalues are roots of λ^4 - 11*λ^3 + 25*λ^2 + 31*λ - 46.\n",
|
||||
" eigenvalues_of_T = np.array([-1.45350244, 1., 4.65531023, 6.79819221])\n",
|
||||
" assert np.allclose(np.sort(QREig(T)), eigenvalues_of_T)\n",
|
||||
" #print(QREig(T))\n",
|
||||
" \n",
|
||||
" # Test case two\n",
|
||||
" T = np.array([\n",
|
||||
@ -911,10 +896,7 @@
|
||||
" [0,2,0,4],\n",
|
||||
" [0,0,0,3]\n",
|
||||
" ])\n",
|
||||
" #eigenvalues_of_T = np.array([-3.35311, .141627, 3. , 4.21148])\n",
|
||||
" eigenvalues_of_T = np.sort(eig(T)[0])\n",
|
||||
" #print(QREig(T+np.eye(len(T)), k_max=1000000)-1)\n",
|
||||
" print(np.sort(QREig(T, k_max=1000)))\n",
|
||||
" eigenvalues_of_T = np.sort(np.linalg.eig(T)[0])\n",
|
||||
" assert np.allclose(np.sort(QREig(T)), eigenvalues_of_T)\n",
|
||||
"\n",
|
||||
"test_QREig()"
|
||||
@ -945,7 +927,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 77,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"deletable": false,
|
||||
"nbgrader": {
|
||||
|
||||
Reference in New Issue
Block a user