যে সমস্যার জন্য আমি আগ্রহী, তার জন্য ম্যাট্রিক্সের মাত্রা 30 বা তার চেয়ে কম।
ওল্ফগ্যাংবাংয়ের্থ নোট হিসাবে, আপনার যদি এই ম্যাট্রিক্সের একটি বিশাল সংখ্যা (মিলিয়ন, বিলিয়ন) না থাকে তবে ম্যাট্রিক্স ইনভার্সনের কার্য সম্পাদন কোনও সমস্যা নয়।
একটি ইতিবাচক নির্দিষ্ট প্রতিসাম্য ম্যাট্রিক্স দেওয়া, বিপরীতমুখী ম্যাট্রিক্স এবং এর নির্ধারক গণনার জন্য দ্রুততম অ্যালগরিদম কী?
গতি যদি কোনও সমস্যা হয় তবে আপনার নিম্নলিখিত প্রশ্নের উত্তর দেওয়া উচিত:
- আপনার কি সত্যিই পুরো বিপরীত দরকার? (অনেক অ্যাপ্লিকেশনকে একটি সুস্পষ্ট বিপরীত গঠনের প্রয়োজন হয় না))
- আপনার কি সত্যিকারের নির্ধারক দরকার? (নির্ধারকগণ অসাধারণ, তবে গণ্য বিজ্ঞানে অবশ্যই এটি শ্রবণ নয়))
- আপনার কি উচ্চ নির্ভুলতার প্রয়োজন? (কম নির্ভুলতা অ্যালগরিদমগুলি দ্রুততর হতে থাকে))
- একটি সম্ভাব্যতা প্রায় যথেষ্ট হবে? (সম্ভাব্য অ্যালগরিদমগুলি দ্রুত হতে থাকে))
আপনার একটি ছোট, ধনাত্মক সুনির্দিষ্ট ম্যাট্রিক্সকে উল্টানো এবং এর নির্ধারক গণনা করার সমস্যার স্ট্যান্ডার্ড প্রতিক্রিয়া হ'ল কোলেস্কি পচন হবে। যদিA=LLTতাহলে det(A)=∏ni=1l2iiএবং ।det(A−1)=∏ni=1l−2ii
ধরে নেওয়া যাক হল দ্বারা , Cholesky পচানি প্রায় মধ্যে নির্ণিত করা যেতে পারে flops, যা একটি এল ইউ পচানি অর্ধেক খরচ সম্পর্কে। তবে এই জাতীয় অ্যালগরিদমকে "দ্রুত" হিসাবে বিবেচনা করা হবে না। একটি এলোমেলোভাবে LU পচনAnnn3/3(১) আপনি যদি সত্যই প্রচুর পরিমাণে ম্যাট্রিক তৈরি করতে চান, তবে এটি বিবেচনার জন্য দ্রুততর অ্যালগরিদম হতে পারে, (২) ফ্যাক্টরাইজেশনটি সত্যই আপনার আবেদনের সীমিত পদক্ষেপ এবং (3) এলোমেলোভাবে অ্যালগরিদম ব্যবহারে যে কোনও ত্রুটি ঘটেছে তা হ'ল গ্রহণযোগ্য। আপনার ম্যাট্রিকগুলি স্পার্স অ্যালগরিদমগুলি সার্থক হওয়ার পক্ষে সম্ভবত খুব ছোট, সুতরাং দ্রুত অ্যালগরিদমের জন্য কেবলমাত্র অন্যান্য সুযোগগুলির জন্য অতিরিক্ত ম্যাট্রিক্স কাঠামো (যেমন, ব্যান্ডেড), বা শোষণ সমস্যা কাঠামোর প্রয়োজন হবে (উদাহরণস্বরূপ, সম্ভবত আপনি চতুরতার সাথে আপনার অ্যালগরিদমের পুনর্গঠন করতে পারেন যাতে আপনি না আর কোনও ম্যাট্রিক্স বিপরীত বা তার নির্ধারক গণনা করা দরকার) need দক্ষ নির্ধারক অ্যালগরিদমগুলি প্রায়শই একটি রৈখিক সিস্টেম সমাধান করার ব্যয় হয়, একটি ধ্রুবক ফ্যাক্টরের মধ্যে তাই লিনিয়ার সিস্টেমগুলির জন্য ব্যবহৃত একই যুক্তি নির্ধারকগুলিও গণনার ক্ষেত্রে প্রযোজ্য।