- #1
beady
- 1
- 0
Hi all,
I'm trying to solve the 1D Schrodinger equation for an arbritary potential, to calculate Franck Condon factors for absorption and emmision spectra. I can do this using iterative techniques (e.g. the Numerov method), but I can't seem to get it to work by discretrizing the hamiltonian, and then finding the eigen vectors/values. Here's what I'm doing, hopefully someone can help.
initial hamiltonian : [tex]H=\frac{1}{2 I}\frac{d^2}{dx^2} + W(x) [/tex]
Split the space up into n points.
use the standard finite difference relations for a second derivative leads to:
[tex]\frac{1}{2I}\frac{v_{i-1}-2v_{i}+v_{i+1}}{\delta^2}+W_i v_i = E v_i[/tex]
and the relevant forward and backward differences for the endpoints.
I then set up a matrix for the above linear equations, and then just solve the system using either Matlab or Mathematica eigenvalue and eigenvector routines.
The problem is that the resulting eigenvalues ( energies ) are completely wrong, and the wavefunctions ( individual eigenvectors ) are weird. It seems that the eigenvectors oscillate around around y=0. It's difficult to explain, but if the desired wavefunction is phi, then at even grid points (n=2,4,6...) , I get the correct phi(x) value, but for odd grid points (n=1,3,5,7...), I get -phi(x). This is easily corrected, but why is it happening?
Is it possible to calculate the wavefunction using this method? I may have made a coding error, but I'm interested to know if the method above should work, and if not, why not.
Thanks in advance
I'm trying to solve the 1D Schrodinger equation for an arbritary potential, to calculate Franck Condon factors for absorption and emmision spectra. I can do this using iterative techniques (e.g. the Numerov method), but I can't seem to get it to work by discretrizing the hamiltonian, and then finding the eigen vectors/values. Here's what I'm doing, hopefully someone can help.
initial hamiltonian : [tex]H=\frac{1}{2 I}\frac{d^2}{dx^2} + W(x) [/tex]
Split the space up into n points.
use the standard finite difference relations for a second derivative leads to:
[tex]\frac{1}{2I}\frac{v_{i-1}-2v_{i}+v_{i+1}}{\delta^2}+W_i v_i = E v_i[/tex]
and the relevant forward and backward differences for the endpoints.
I then set up a matrix for the above linear equations, and then just solve the system using either Matlab or Mathematica eigenvalue and eigenvector routines.
The problem is that the resulting eigenvalues ( energies ) are completely wrong, and the wavefunctions ( individual eigenvectors ) are weird. It seems that the eigenvectors oscillate around around y=0. It's difficult to explain, but if the desired wavefunction is phi, then at even grid points (n=2,4,6...) , I get the correct phi(x) value, but for odd grid points (n=1,3,5,7...), I get -phi(x). This is easily corrected, but why is it happening?
Is it possible to calculate the wavefunction using this method? I may have made a coding error, but I'm interested to know if the method above should work, and if not, why not.
Thanks in advance
Last edited: