MATLAB Code: Stationary Schrodinger EQ, E Spec, Eigenvalues

Click For Summary
SUMMARY

This discussion focuses on developing MATLAB code to solve the stationary Schrödinger equation for a quantum harmonic oscillator, specifically targeting the calculation of energy spectrum and eigenvalues. The user shares their initial attempts, including matrix setups for kinetic and potential energy, and seeks assistance in refining their code. Key components include the construction of the kinetic energy matrix (K) and the effective potential matrix (Veff), with the final Hamiltonian (H) being computed as the sum of these matrices. The user also highlights challenges in calculating the effective potential and normalizing wave functions.

PREREQUISITES
  • Understanding of quantum mechanics principles, particularly the Schrödinger equation.
  • Proficiency in MATLAB programming, specifically matrix operations and eigenvalue calculations.
  • Familiarity with numerical integration techniques, such as the trapezoidal rule.
  • Knowledge of quantum harmonic oscillator concepts, including wave functions and energy levels.
NEXT STEPS
  • Explore MATLAB's 'eig' function for eigenvalue problems in quantum mechanics.
  • Learn about numerical methods for solving differential equations in quantum mechanics.
  • Investigate the implementation of boundary conditions in quantum systems.
  • Study the normalization of wave functions and its significance in quantum mechanics.
USEFUL FOR

Students and researchers in quantum mechanics, MATLAB programmers working on physics simulations, and anyone interested in computational methods for solving quantum equations.

Baynie
Messages
2
Reaction score
1
Hello everyone,

For weeks I have been struggling with this quantum mechanics homework involving writing a code to determine the energy spectrum and eigenvalues for the stationary Schrödinger equation for the harmonic oscillator. I can't find any resources anywhere. If anyone could help me get started, get my matrices and equations set up, or has worked a similar problem/written a similar code before, any help would be greatly appreciated! Thanks in advance!

Homework Statement


media%2F942%2F942060f1-5b27-46f2-99b7-97012f312b07%2Fimage.png

media%2F790%2F790771bf-5a8e-4cc4-a1d7-a160db35df91%2Fimage.png

Homework Equations


Included in image above

The Attempt at a Solution


Her is the code I have written so far. I'm not sure if this is even close or on the right track
% Stationary Schrödinger Equation - QHO

clear
clc

hbar = 6.58E-16;
f = 400E-9;
w = 2*pi*f;
m = 1;
N = 101;
a = 0.1;
n = 1:N;
r = n*a;
l = 1;
x = a;
mwhbar = m*w*hbar;
y = r;

% Operators (Matrices)
T = diag(-1*ones(1,N-2),2) + diag(2*ones(1,N-1),1) + diag(-1*ones(1,N),0);
K = (1/(2*a^2)) * T; % Kinetic Energy Matrix

Veff = -(1./r) + l*(l + 1)./(2*(r.^2));
V = diag(Veff);
U = (1/(2*a^2)) * V; % Potential Energy Matrix

% Equations
H = -(1/2*a^2)*(eigen_f(n+1) - 2 * eigen_f(n) * eigen_f(n-1));
 

Attachments

  • media%2F942%2F942060f1-5b27-46f2-99b7-97012f312b07%2Fimage.png
    media%2F942%2F942060f1-5b27-46f2-99b7-97012f312b07%2Fimage.png
    49.6 KB · Views: 1,188
  • media%2F790%2F790771bf-5a8e-4cc4-a1d7-a160db35df91%2Fimage.png
    media%2F790%2F790771bf-5a8e-4cc4-a1d7-a160db35df91%2Fimage.png
    83.8 KB · Views: 921
Physics news on Phys.org
UPDATE:

Here is an update on the code I've been working on. It is probably closer to where I'm supposed to be headed. I just have problems when it comes to calculating V and Veff clear
clc

N = 101;
a = .01;
n = 1:101;
r(1:N) = n.*a;
l = input('Enter angular quantum number l: ');
T = zeros(N);
V = zeros(N);
Veff = zeros(N);for i = 1:N
for j = 1:N
if i == j
T(i,j) = 2/(2*a^2);
elseif i == j-1 || j == i-1
T(i,j) = -1/(2*a^2);
end
end
endfor i = 1:N
Veff(i,i) = (1/r) + (l*(l+1))./(2.*r.^2);
V(i,i) = V(i,i).*Veff;
end

H = T + V;

[Psi,Energy] = eig(H);

E = diag(Energy);

fprintf('Lowest Eigenvalues:\n');
disp(E(1:3))Psi_0 = Psi(:,1);
Psi_0_Squared = Psi_0.^2;

Psi_1 = Psi(:,2);
Psi_1_Squared = Psi_1.^2;Range_a = a:a:N*a;Integral_0 = trapz(Range_a,Psi_0_Squared);
Integral_1 = trapz(Range_a,Psi_1_Squared);Normalized_Psi_0 = 1/sqrt(Integral_0)*Psi_0;
Normalized_Psi_1 = 1/sqrt(Integral_1)*Psi_1;

subplot(3,1,1);
plot(Range_a,Normalized_Psi_0,'r');
title('Wave Function: Ground State Hydrogen Atom');
xlabel('x');
ylabel('Psi_0(x)');subplot(3,1,2);
plot(Range_a,Normalized_Psi_1,'r');
title('Wave Function: First Excited State Hydrogen Atom');
xlabel('x');
ylabel('Psi_1(x)');subplot(3,1,3);
plot(Range_a,Normalized_Psi_1,'r');
title('Wave Function: First Excited State Hydrogen Atom');
xlabel('x');
ylabel('Psi_2(x)');
 

Similar threads

Replies
5
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 6 ·
Replies
6
Views
5K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
6K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
4
Views
2K
Replies
4
Views
2K