Solving Time-independent 2D Schrodinger equation with finite difference method

15 次查看(过去 30 天)
Hi, I need to solve a 2D time-independent Schrodinger equation using Finite Difference Method(FDM). The potential is assumed to be 0 throughout and I am using standard five point finite difference discretization scheme. My grid size in two directions x and y (say Nx & Ny) is rather large, Nx=Ny=160.
So the size of the FDM matrix is (25600,25600) though it is sparse. I need only smallest 15-20 eigenvalues and corresponding eigenvectors.
Can someone suggest how to get the eigenvalues without dealing with the entire matrix which will obviously cause memory issues. Will SVD help?
PS: I am going through the methods to store large sparse matrices, any suggestions on storing the matrix elements will be greatly appreciated.
Thanks and Regards, Dibakar

采纳的回答

Milos Dubajic
Milos Dubajic 2016-5-22
You can use spdiags to create sparse matrices which will help you to save memory.

更多回答(2 个)

John D'Errico
John D'Errico 2016-4-11
Just use the tool designed to solve your problem.
help eigs

Laurent NEVOU
Laurent NEVOU 2018-1-15
Look at this example: https://github.com/LaurentNevou/Schrodinger2D_demo

类别

Help CenterFile Exchange 中查找有关 Quantum Mechanics 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by