"Shooting Method" for simulating a Particle in an Infinite Square Well

Click For Summary
SUMMARY

The discussion centers on implementing the Shooting Method in Matlab to solve the Schrödinger Equation for a particle in an infinite square well. The user reports issues with the resulting wave function not matching expected outcomes. Key points include the initialization of the wave function, where the user incorrectly sets psi(1) and psi(2) to the same value, which is not valid for the recursion needed in this method. The user is advised to initialize these values differently to achieve correct results.

PREREQUISITES
  • Understanding of the Schrödinger Equation
  • Familiarity with the Shooting Method in quantum mechanics
  • Proficiency in Matlab programming
  • Knowledge of wave function properties and boundary conditions
NEXT STEPS
  • Review the implementation of the Shooting Method in quantum mechanics
  • Learn about proper initialization techniques for wave functions
  • Explore Matlab's plotting functions for visualizing wave functions
  • Investigate potential adjustments to energy step-size in numerical methods
USEFUL FOR

Students and researchers in computational physics, quantum mechanics enthusiasts, and Matlab programmers working on simulations of quantum systems.

Bassa
Messages
46
Reaction score
1
Hello! I am trying to write a program that solves the Schrödinger Equation for a particle in an infinite square well. I did a lot of research regarding the methods that could be used to accomplish this. I am writing this program in Matlab. The method I am using is called the Shooting Method. In my code below, when I plot psi vs. x_negative, I do not get a wave function that looks like what we expect. I am not sure where I am going wrong with this. I also don't know how much details I should include in this thread. Please, ask me for more information if needed. I have also attached picture of the textbook I am using for my logic. It is from the Computational Physics textbook by N. Giordano. Thank you very much for your help!

Matlab:
clear;
clc;
%declaring variables
psi = zeros(1,200); %Wave function
dx = 0.01; %x steps
V = 1000; %potential outside the well
e = 3; %initial guess energy
de = -.6; %energy step-size.

%boundary conditions
psi(1) = 1;
psi(2) = 1;

last_diverge = 0; %keeping track of the curvature of the wave function
flag = 't'; %variable to control the while loop below

while flag == 't'
    %this for loop needs to be nested in another loop
    for k = 2:length(psi)-1
        %defining the potential funtion of the well
        if abs(k*dx) <= 1
            potential = 0;
        else
            potential = V;
        end
        psi(k+1) =  2*psi(k) - psi(k-1) - 2*(e - potential)*(dx^2)*psi(k);
        %if psi exceeds the maximum magnitude, then exit the loop
        if psi(k+1) > 2
            break;
        end
    end
   
    %plotting the left side of the wave function
    f = 1;
    for n = -k:0
        x_negative(f) = n*dx;
        f = f + 1;
    end
   
    %asking the user if they want to estimate more
    flag = input('Enter (t) if you would like to continue finding the solution: ','s');

    %updating the curvature of the wave function
    if psi(k+1) > 0
        diverge = 1;
    else
        diverge = -1;
    end
    if diverge * last_diverge < 0
        de = -(de/2);
    end
    e = e + de;
    last_diverge = diverge;
end
<Moderator's note: please use code tags>
 

Attachments

  • Screen Shot 2017-03-10 at 2.25.43 PM.png
    Screen Shot 2017-03-10 at 2.25.43 PM.png
    29.2 KB · Views: 803
Last edited by a moderator:
Technology news on Phys.org
Bassa said:
In my code below, when I plot psi vs. x_negative, I do not get a wave function that looks like what we expect.
So what do you get?

One thing that bothers me is
Matlab:
psi(1) = 1;
psi(2) = 1;
This is not a valid slope for the wave function. You need to initialize the 2-point recursion with psi(1)≠psi(2).
 
  • Like
Likes   Reactions: aaroman

Similar threads

Replies
7
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 39 ·
2
Replies
39
Views
14K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 22 ·
Replies
22
Views
2K