এই ইতিবাচক সুনির্দিষ্ট বাস্তব প্রতিসাম্য ম্যাট্রিকগুলির নির্মাণ সম্পর্কে কোনও তথ্য ছাড়াই , দেওয়া পরামর্শগুলি প্রয়োজনীয়তার যথেষ্ট পরিমাণে সীমিত।12×12
আমি সোর্সফোজের কাছ থেকে আর্মাদিলো প্যাকেজটি ডাউনলোড করেছি এবং ডকুমেন্টেশনটি একবার দেখেছি। আলাদাভাবে কম্পিউটিং কর্মক্ষমতা উন্নত করার চেষ্টা করুন এবং , যেখানে সব বেশী পদে এক ম্যাট্রিক্স হয়, যেমন সেট করে । ডকুমেন্টেশন নোট করে যে এটি মাপ মাপের ম্যাট্রিক্সের জন্য ডিফল্ট , সুতরাং বাদ দিয়ে আমি ধরে নিই যে বিকল্পটি ক্ষেত্রে ডিফল্ট ।det ( 12 I - Q - J ) J 4 × 4 12 × 12det(Q)det(12I−Q−J)Jdet(Q,slow=false)
4×4slow=true
12×12
কি slow=true
সম্ভবতঃ করে একটি সারিতে পর্যায় ফর্ম, যা থেকে নির্ধারক সহজে পাওয়া যায় পেয়ে আংশিক বা পূর্ণ অন্য pivoting হয়। তবে আপনি আগেই জানেন যে ম্যাট্রিক্স ইতিবাচক সুনির্দিষ্ট, সুতরাং স্থিরতার জন্য পাইভটিং অপ্রয়োজনীয় (কমপক্ষে আপনার গণনার বেশিরভাগ ক্ষেত্রে অনুমানযোগ্য) আর্মাদিলো প্যাকেজটি যদি পিভটগুলি অল্প বয়স্ক হয়ে যায় তবে এটি ব্যতিক্রম ছুঁড়ে ফেলেছে তা স্পষ্ট নয় তবে এটি হওয়া উচিত । বীজগণিত প্যাকেজ রৈখিক একটি যুক্তিসঙ্গত সংখ্যাসূচক বৈশিষ্ট্য সম্পাদনা করুন: আমি আরমাডিলো কোডটি কার্যকরী পাওয়া হেডার ফাইলে , সারগর্ভ কার্যকারিতার জন্য ব্যবহার সি ++ টেমপ্লেট সেটিং। প্রভাবিত বলে মনে হচ্ছে না কিভাবে12 × 12Qdet
include\armadillo_bits\auxlib_meat.hpp
slow=false
12×12নির্ধারকটি করা হবে কারণ গণনাটি "প্রাচীরের উপরে নিক্ষিপ্ত" হয়ে LAPACK (বা এটিএসএলএস) এর কাছে সেই সময়ে পাইভোটিংয়ের প্রয়োজন নেই এমন কোনও ইঙ্গিত ছাড়াই; det_lapack
ফাইলটিতে এর অনুরোধগুলি দেখুন এবং দেখুন ।
অন্য বিষয়টি হ'ল বিএমএলএস এবং ল্যাপ্যাকের উচ্চ গতির প্রতিস্থাপনের সাথে আর্মাদিলো প্যাকেজ যুক্ত করার তাদের পরামর্শের অনুসরণ করা, যদি আপনি সত্যিই সেগুলি ব্যবহার করেন; সেকেন্ড দেখুন। বিশদ বিবরণের জন্য আর্মাদিলো README.TXT ফাইলের 5 টি। [বর্তমান 64৪-বিট মেশিনগুলির গতির জন্য বিএলএলএস বা ল্যাপাকের উত্সর্গীকৃত -৪-বিট সংস্করণ ব্যবহারেরও সুপারিশ করা হয়েছে]]
একেলোন ফর্মের সারি হ্রাস মূলত গাউসিয়ান নির্মূল, এবং গাণিতিক জটিলতা রয়েছে । উভয় ম্যাট্রিকের জন্য এটি তখন কাজের দ্বিগুণ, বা । এই ক্রিয়াকলাপগুলি আপনার প্রসেসিংয়ে ভাল "বাধা" হতে পারে, তবে বিশেষ কাঠামো না থাকলে আশা করা যায় না423n3+O(n2)প্রশ্ন43n3+O(n2)Q (অথবা ট্রিলিয়ন পরীক্ষার বিষয় ক্রমশোধ যার ফলে মধ্যে কিছু পরিচিত সম্পর্ক) কাজ কমে যেতে পারে ।O(n2)
তুলনা, একটি জেনারেলের cofactors দ্বারা সম্প্রসারণ ম্যাট্রিক্স জড়িত এন ! গুণন ক্রিয়াকলাপ (এবং প্রায় সংখ্যার যোগ / বিয়োগ), সুতরাং এন = 12 এর জন্য তুলনা ( 12 ! = 479001600 বনাম 2)n×nn!n=1212!=479001600) পরিষ্কারভাবে কোফ্যাক্টরগুলিকে অপসারণের পক্ষে।23n3=1152
অন্য পদ্ধতির জন্য 4 প্রয়োজনকাজ হ্রাস হবেপ্রশ্নঃগৃহকর্তাকে রূপান্তরের, যা রাখে সঙ্গে tridiagonal ফর্মে12আমি-প্রশ্নঃtridiagonal ফর্ম মধ্যে। গণনাডিট(কিউ)এবংডিট(12আই-কিউ-জ) এরপরেও(এন)অপারেশনগুলিতে করা যেতে পারে। [র্যাঙ্ক ওয়ান আপডেটের প্রভাব-জে43n3+O(n2)Q12I−Qdet(Q)det(12I−Q−J)O(n)−J দ্বিতীয় নির্ধারকটিতে একটি ত্রিভুজাকৃতির সিস্টেম সমাধান করে প্রদত্ত একটি স্কেলার ফ্যাক্টর হিসাবে প্রকাশ করা যেতে পারে]]
এরকম একটি স্বাধীন গণনা কার্যকর করা কার্যকর হতে পারে হিসাবে সফল (বা ব্যর্থ) আর্মাদিলোর ফাংশনটিতে কল করার ফলাফলগুলি পরীক্ষা করা det
।
বিশেষ কেস: জের্নেজের একটি মন্তব্যের পরামর্শ অনুসারে, ধরুন যে যেখানে আগের মত জে , সকলের (রেঙ্ক 1) ম্যাট্রিক্স এবং ডি = ডায়াগ ( ডি 1 , … , ডি এন ) একটি সংবেদনশীল (ধনাত্মক) ) তির্যক ম্যাট্রিক্স। প্রকৃতপক্ষে গ্রাফ তত্ত্বের প্রস্তাবিত প্রয়োগের জন্য এগুলি পূর্ণসংখ্যার ম্যাট্রিক হবে। তাহলে ডিট ( কিউ ) এর একটি সুস্পষ্ট সূত্রটি হ'ল:Q=D−JJD=diag(d1,…,dn)det(Q)
det(Q)=(∏i=1ndi)(1−∑i=1nd−1i)
এর প্রুফের স্কেচটি আরও প্রশস্ত প্রয়োগের চিত্রিত করার সুযোগ দেয়, অর্থাত্ যখনই একটি পরিচিত নির্ধারক থাকে এবং সিস্টেম ডি ভি = ( 1 … 1 ) টি দ্রুত সমাধান হয়ে যায়। ফ্যাক্টরিং দিয়ে শুরু করুন:DDv=(1…1)T
det(D−J)=det(D)⋅det(I−D−1J)
এখন আবার র্যাঙ্ক 1, যথা ( ডি - 1 1 … ডি - 1 এন ) টি ( 1 … 1 ) । মনে রাখবেন যে দ্বিতীয় নির্ধারকটি হ'ল:D−1J(d−11…d−1n)T(1…1)
f(1)=det(I−D−1J)
f(x)D−1Jf(x)n−1x∑d−1i
D−1J(d−11…d−1n)T=(∑d−1i)(d−11…d−1n)T
f(x)=xn−1(x−∑d−1i)f(1)det(I−D−1J)1−∑d−1i
Q=D−J12I−Q−J=12I−D+J−J=12I−D