|
202 | 202 | },
|
203 | 203 | {
|
204 | 204 | "cell_type": "code",
|
205 |
| - "execution_count": 1, |
| 205 | + "execution_count": 17, |
206 | 206 | "metadata": {
|
207 | 207 | "tags": [
|
208 | 208 | "hide-input"
|
|
213 | 213 | "name": "stdout",
|
214 | 214 | "output_type": "stream",
|
215 | 215 | "text": [
|
216 |
| - "Eigenvalues: [ 4.93487481 51.06512519]\n", |
217 |
| - "First eigenvector: [[-0.66168489]\n", |
218 |
| - " [-0.74978204]]\n" |
| 216 | + "Eigenvalues: [ 4.93487481+0.j 51.06512519+0.j]\n", |
| 217 | + "First eigenvector: [-0.66168489 -0.74978204]\n" |
219 | 218 | ]
|
220 | 219 | }
|
221 | 220 | ],
|
222 | 221 | "source": [
|
223 |
| - "# to code this up we are going to set a=1\n", |
224 | 222 | "import numpy as np\n",
|
| 223 | + "from scipy.linalg import eig, inv, eigh\n", |
| 224 | + "\n", |
| 225 | + "# Lets adopt simpler units\n", |
225 | 226 | "a = 1.0\n",
|
226 | 227 | "hbar = 1.0\n",
|
227 | 228 | "m = 1.0\n",
|
228 | 229 | "\n",
|
229 |
| - "S = np.matrix([[1.0/30.0, 1.0/140.0],[1.0/140.0,1.0/630.0]])\n", |
230 |
| - "H = np.matrix([[1.0/6.0,1.0/30.0],[1.0/30.0,1.0/105.0]])\n", |
| 230 | + "S = np.array([[1.0/30.0, 1.0/140.0],[1.0/140.0,1.0/630.0]])\n", |
| 231 | + "H = np.array([[1.0/6.0,1.0/30.0],[1.0/30.0,1.0/105.0]])\n", |
231 | 232 | "\n",
|
232 |
| - "e,v = np.linalg.eig(np.dot(np.linalg.inv(S),H))\n", |
| 233 | + "e, v = eig(inv(S) @ H) #e, v = eigh(H, S) #Same values eigh is for hermitian matrices\n", |
233 | 234 | "\n",
|
234 | 235 | "print(\"Eigenvalues:\", e)\n",
|
235 | 236 | "print(\"First eigenvector:\", v[:,0])"
|
236 | 237 | ]
|
237 | 238 | },
|
238 |
| - { |
239 |
| - "cell_type": "code", |
240 |
| - "execution_count": 2, |
241 |
| - "metadata": { |
242 |
| - "tags": [ |
243 |
| - "hide-input" |
244 |
| - ] |
245 |
| - }, |
246 |
| - "outputs": [ |
247 |
| - { |
248 |
| - "name": "stdout", |
249 |
| - "output_type": "stream", |
250 |
| - "text": [ |
251 |
| - "S^{-1} = [[ 840. -3780.]\n", |
252 |
| - " [-3780. 17640.]]\n", |
253 |
| - "S^{-1}H = [[ 14. -8.]\n", |
254 |
| - " [-42. 42.]]\n" |
255 |
| - ] |
256 |
| - } |
257 |
| - ], |
258 |
| - "source": [ |
259 |
| - "print(\"S^{-1} = \", np.linalg.inv(S))\n", |
260 |
| - "print(\"S^{-1}H = \", np.dot(np.linalg.inv(S),H))" |
261 |
| - ] |
262 |
| - }, |
263 |
| - { |
264 |
| - "cell_type": "code", |
265 |
| - "execution_count": 3, |
266 |
| - "metadata": {}, |
267 |
| - "outputs": [ |
268 |
| - { |
269 |
| - "data": { |
270 |
| - "text/plain": [ |
271 |
| - "array([51.06512519, 4.93487481])" |
272 |
| - ] |
273 |
| - }, |
274 |
| - "execution_count": 3, |
275 |
| - "metadata": {}, |
276 |
| - "output_type": "execute_result" |
277 |
| - } |
278 |
| - ], |
279 |
| - "source": [ |
280 |
| - "np.roots([1,-56,14*42-42*8])" |
281 |
| - ] |
282 |
| - }, |
283 | 239 | {
|
284 | 240 | "cell_type": "markdown",
|
285 | 241 | "metadata": {},
|
|
0 commit comments