I'm trying to use the odeint function or the quad function to integrate my integrand in my calc_Hmatrix function. however I am not sure what my y0 or my t would need to be in order to get the code to run properly. please help, if more information is needed I can update this post
Project1(1) (1) (1) x S ㄨ scipyintegrate.odeint--Sc | + jupyter Project1(1) ()(1r File Edit View Insert Cell Kernel Widgets Help +x4r,수+H.CCode Trusted Python 3 O In [63]: Xmatplotlib inline from pylab import from scipy.integrate import quad import time import math fron scipy.fftpack İmport fft import numpy.linalg as la from numpy.random import uniform from scipy.integrate inport odeint Quantum Mechanics Project 1 Goal: Solve the energy eigenvalue equation We will use the matrix method by the following recipe 1 Identity basis tunctons lb-ers) We will choose the basis functions are also restricting ourselves to the computabonal domain 0 s xs L 2. Calculate matrix elements of Hamiltonian 1. Find the eigenvalues E, and eigenvectors IE) of tnat matrix H 2. Then, since E)- ) in the position representation we have In [87]: # Define constants here hbar, 1.e m-1 # special units # special units.. This ce # corresponding to the chosen basis functions L defines the "basts pht function, In [65J # NOTE: This function is only a "good" basis function return sgrt(a ari)sin(j'pi x/L) This cetl def ines the "dzpht funcrion def basis phij. x) 433 AM /22/2019 In [78): ates the second derivative of the basii e which colcul ns PgDn PgUp Home
Sipyintegrate.odeint- ScV JupyterProjecti(I) (1) (1) (uns-ved changes) File Edit View Insert Cell Kernel Widgets Logout Trusted Python 3 O . Help In [87]: : # Define constants here hbar- 1.0 # special units. # special units jmax ·20 In [65]: # This cell defines the -basis-phi-function, # corresponding to the chosen basis functions # NOTE: This function is only a "good" basis function def basis phi(j, x): return sqrt (2.8/L) sin(j'pi x/L) In [78]: # This cell defines the "d2phi" function, # which calculates the second derivative of the basis, phi function. Needed Later! def d2phi(j, x): return -((sqrt(2.0)"(pi". 2)"U".2)"sin((pi*).x)/L)/L"(5.e/2A)) In [67]: # This cell defines the potential energy V(x) # This will be "customized" for individual exercises. def V(x): return e # This then corresponds to the infinite square well in the cell below, you will want to program carefulty the integrand that appears in the matrix elements Then, you will be ready to use that function to later pertorm the integration needed for the matix eiements of H In t74]; # This celL defines the "integrand, that is needed to later calculate the matrix elements of H def Iategrand, , 1): basis phi(i,x)*(-(hbar*hbar)/()*(d2phi (j.x))-vox) "basis,phid.x)) return I In [148]: # This cell defines the function, that will # construct the matrix H # input parameter: jMax. rhe maximum number of basis functions to include # . For performing the integrals needed for the matrix e.enents. e you may use guadlt or other integration functions vou know The indtces i and d run Frow I to jmax for our mathenaticat formulation remember that the Python array index counting goes from 0 toinasal def calc Hmatrix(jMax) H zeros ((jmax, jeax)) " The index count ing set up bel ow is to "help a ad just for the diffarence between the math indices 435 AM /22/2019 几ー
哂E | Project1(1) (1) (1) ×1Sscipyintegrateodeint-Sc|+v ← →。 | O localhost 8888/notebo(M ☆|延久 upyter Project1(1)() () File Edt View Insert Cell Kenel Widgets Help unseved changes) Logout | Python 3 0 Trusted eiements 01 H In [741: i # This cell defines the *integrand", that is needed to later # Calculate the matrix elements of H def Integrand(x, i, j): I basis phi(i,x)'((C-(hban*hbar))/(2"m)) (d2phi (j.x))+V(x) basis phi(j,x)) return I In [148]: : # This cell defines the function, that will # construct the matrix H. # Input parameter: jMax. The maximum number of basis functions to include # For performing the integrals needed for the matrix elements, # you may use-quad. or other integration functions you know. # . The indices and j run from 1 to jmax for our mathematical formulation; # remember that the python array index counting goes from e to jmax-1! def calc Hmatrix (jMax): H - zeros ((jmax, jmax)) # The index counting set up below is to "help" # adjust for the difference between the moth indices # and the python array indices for i in range(1, jmax+1): for j in range(1, jmax+1): q Integrand(x,i,j) After the H matrix is built with the calc _Hmatrix turnction, you can simply use the eig Python function to obtain the eigenvalues En and eigenvectors Cia E)C with these cn coefficients obtained from the eigenvectors of the H matrix, you can build the jMax In [141]: # This celt defines the function that "builds" the # eigenfunctions, out of thejust-found coefficients ejn # and the basis functions .. basis-pet def eigenfunction(x, n. cin): · efunc 8.e for j in range(i, jnax 1): efunc t- op.linalg,eig(H) 0u T00O! print (efunc) return efunc 4:35 AM /22/2019 ns
€| 哂 ← → Project1(1) (1) (1) × ⑥scipyi l+﹀ 左久 integrate.odeint-Sc | D localhost:8888/noteborn ☆ jupyter Project1(1) (1) (1) de File Edit View Insert C Kernel Widgets Help Logout | Trusted , 1 Python 3。 with these cn coefficients obtained from the eigenvectors of the H matrix, you can build the jMar In [141]: # This cell defines the function that -builds" the # eigenfunctions, out of the just-found coefficients cJn # and the basis functions ,basis-phi" def eigenfunction(x, n, c jn): efunc 6.0 for j in range(1, jmax 1): efunc print return efunc +-np. linalg.eįg(H) (efunc) ### TODO! In [142]: x linspace (e,L,100) h calc Hmatrix(28.e) if-eigenfunction(x,e.c_jn) plot(x, Hf) İlaw TypeError 2 linspace(&L,100) calc Hmatrix(29.0) h “ 4 Wf eigenfunction(x,e,c in) s plot(x,Wf) cipython input-148-4e173e8536ba> in calc Hmatrix(jMax) for j in range(1, jnax 1): q-Integrand(x,i,j) 14 15 --> 16 17 Typetrror: odeint () missing 2 required positional arguments; Tye and 't Exercises 1. Complete the functions above, anywhere marked TODO For the cases below, you shoui . Lisl the lirst several allowed energies r Make an "energy level diagrarit (for exampe, using the hlines Python function) Pot the first several energy eigentunctions () as functions of a - Bonus chalienge To explore the numerical aspect of this method, you can also prepare plots hal demonstrate Bhiat as you increase jMax in the calculations. you shokt get increasinghy 4:35 AM 3/22/2019