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

33 ビュー (過去 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 Center および File ExchangeQuantum Mechanics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by