আমি বর্তমানে সস্তাভাবে একটি ম্যাট্রিক্স জন্য ভাল র্যাঙ্কের অনুমানটি গণনা করার চেষ্টা করছি । অতএব আমি একটি কলামেন্ট পিভোটিং QR পচন ব্যবহার করে গণনা করি
[Q,R,E]=qr(A)
মতলব-তে আমি ব্যবহার করে র্যাঙ্কটি অনুমান করি
tol = size(A,n)*eps*norm(A,'fro');
r = sum(abs(diag(R))>tol)
এটি সূক্ষ্মভাবে কাজ করে এবং আর এর সমস্ত তির্যক এন্ট্রি দেখে মনে হচ্ছে:
যদি পুরো অ্যালগরিদমকে সি / ফোর্টরান আমি পোর্ট করে আমি [Q, R, E] = qr (A) কে LAPACK থেকে DGEQP3 ব্যবহার করে, যা QR পচনকে একটি কলামকে বিভক্ত করে তোলে। তবে যদি আমি র্যাঙ্কের জন্য একই অনুমান ব্যবহার করি তবে আমি বেশিরভাগই কিছু ভুল পাই। ডিজিইকিউপি 3 থেকে উত্পাদিত জন্য একই প্লটটি দেখতে মনে হচ্ছে
উভয় পরীক্ষার জন্য ইনপুট ম্যাট্রিক্স হুবহু এক।
এখন আমার প্রশ্নটি হচ্ছে কোন ল্যাপাক ফাংশনের উপর মাতলাব থেকে কুইআর পচন কমানোর উপর নির্ভর করে?
কোনও সহায়তার জন্য ধন্যবাদ, গ্রিসু
সম্পাদনা: ডিজিইকিউপিএফ একই ভুল ফলাফল দেয়।
Edit2:
- ইনপুট ম্যাট্রিক্স ঘন এবং ই + এস আই জি এন ( ই , এফ ) হিসাবে বিল্ড করুন
- এখানে উপলব্ধ হল:http://www-e.uni-magdeburg.de/makoehle/A.mtx.gz(MatrixMarket ফরম্যাট)
- ভুল : http://www-e.uni-magdeburg.de/makoehle/R_wrong.mtx.gz
- আমি ওপেনব্লাস / গোটোব্ল্যাস (bit৪ বিট) এর সাথে ল্যাপ্যাক ৩.৪.০ ব্যবহার করেছি
- মতলব 7, 2007 বি, 2010 বি লিনাক্স 32 বিট
সম্পাদনা 3: - জিডিবি ব্যবহার করে আমি জানতে পেরেছি যে মতলব 2010 বি DGEQP3: # 3 0xaa46ce2f কে /usr/ubuntu10.04/matlabr2010b/bin/glnx86/..///in/glnx86/../ থেকে কল করে। ।