আমি খুঁজে বের করার চেষ্টা করছি যে scipy.sparse.linalg.eigsh ব্যবহারের চেয়ে খুব বড় এবং স্পারস সংলগ্ন ম্যাট্রিক্সের সমস্ত ইগনালভগুলি এবং আইজেনভেেক্টরগুলিকে গণনা করার একটি দ্রুত উপায় আছে কিনা আমি জানি যতদূর আমি জানি, এই পদ্ধতিগুলি কেবল স্বল্পতা এবং ম্যাট্রিক্সের প্রতিসম বৈশিষ্ট্য। একটি সংলগ্ন ম্যাট্রিক্সটিও বাইনারি, যা আমাকে মনে করে এটি করার আরও দ্রুত উপায় আছে।
আমি একটি এলোমেলো 1000x1000 স্পারস সংলগ্ন ম্যাট্রিক্স তৈরি করেছি এবং আমার x230 উবুন্টু 13.04 ল্যাপটপের বিভিন্ন পদ্ধতির মধ্যে তুলনা করছি:
- scipy.sparse.linalg.eigs: 0.65 সেকেন্ড
- scipy.sparse.linalg.eigsh: 0.44 সেকেন্ড
- scipy.linalg.eig: 6.09 সেকেন্ড
- scipy.linalg.eigh: 1.60 সেকেন্ড
বিচ্ছিন্ন eigs এবং eigsh এর সাহায্যে আমি ম্যাট্রিক্সের পদমর্যাদায় কাঙ্ক্ষিত eigenvalues এবং eigenvectors এর সংখ্যা নির্ধারণ করেছি।
সমস্যাটি বড় ম্যাট্রিক্স দিয়ে শুরু হয় - 9000x9000 ম্যাট্রিক্সে, এটি 45 মিনিটের জন্য scipy.sparse.linalg.eigsh নিয়েছিল!