কোন সাধারণ ম্যাট্রিক্সের বৃহত্তম ইগেনুয়ালু গণনা করার দ্রুততম উপায় কী?


27

সম্পাদনা: আমি যদি পরীক্ষা করে যাচ্ছি যে কোনও ইগেনভ্যালুগুলির এক বা একাধিকের দৈর্ঘ্য রয়েছে কিনা।

আমার একটি বৃহত স্পারস, অ-সিমমেট্রিক ম্যাট্রিক্সের বৃহত্তম পরম ইগন্যালুটি সন্ধান করতে হবে।

আমি আর এর eigen()ফাংশনটি ব্যবহার করে আসছি , যা EISPACK বা LAPACK এর যে কোনও একটির কাছ থেকে QR আলগো ব্যবহার করে সমস্ত অভিভাবকগুলি খুঁজে পেতে পারে এবং তারপরে আমি abs()পরম মানগুলি পেতে ব্যবহার করি use তবে আমার এটি আরও দ্রুত করা দরকার।

আমি igraphআর প্যাকেজে আরপ্যাক ইন্টারফেসটি ব্যবহার করার চেষ্টা করেছি । তবে এটি আমার এক ম্যাট্রিকের জন্য ত্রুটি দিয়েছে।

চূড়ান্ত বাস্তবায়ন অবশ্যই আর থেকে অ্যাক্সেসযোগ্য be

একই মাত্রার একাধিক ইগন্যালুগুলি সম্ভবত থাকবে।

আপনার কি কোন পরামর্শ আছে?

সম্পাদনা: নির্ভুলতার কেবল প্রয়োজন 1e-11। একটি "সাধারণ" ম্যাট্রিক্স এখনও পর্যন্ত । আমি এটিতে একটি কিউআর ফ্যাক্টরীকরণ করতে সক্ষম হয়েছি। তবে এর চেয়েও বড় কিছু পাওয়াও সম্ভব। আমি বর্তমানে আরনলদি অ্যালগরিদম সম্পর্কে পড়তে শুরু করছি। আমি বুঝতে পারি এটি ল্যাঙ্কসোসের সাথে সম্পর্কিত।386×386

সম্পাদনা 2: যদি আমার একাধিক ম্যাট্রিক থাকে যে আমি "পরীক্ষা" করছি এবং আমি জানি যে এখানে একটি বৃহত সাবম্যাট্রিক্স রয়েছে যা আলাদা হয় না। এটি কি এড়ানো / বাতিল করা সম্ভব?


আমার উত্তরটি এখানে দেখুন: scicomp.stackexchange.com/a/1679/979 । এটি একটি বর্তমান গবেষণা বিষয় এবং বর্তমান পদ্ধতিগুলি ল্যাঙ্কজোর চেয়ে আরও ভাল করতে পারে। একক মানগুলি গণনা করার সমস্যাটি ইগুভ্যালুগুলি গণনা করার সমতুল্য।
dranxo

2
400x400 ম্যাট্রিক্স! = বড়। এছাড়াও "সম্ভবত একই মাত্রার একাধিক ইগন্যালিউস থাকবে কিনা" এর অর্থ কী? নোংরা জমিতে: linalg.eig (random.normal (আকার = (400,400))) প্রায় আধা সেকেন্ড সময় নেয়। এটা কি খুব ধীর?
meawoppl

@ মায়োপ্পল হ্যাঁ অর্ধেক সেকেন্ড খুব ধীর। কারণ এটি অন্য একটি অ্যালগো অংশ যা এই গণনাটি বহুবার চালায়।
শক্তি

1
@ পাওয়ার গটকাঃ আপনার কি ইগেনভেেক্টরের সাথে সান্নিধ্য আছে? অর্থাৎ এটি সম্ভবত শেষ সমাধানের সাথে সমান, বা আপনি এর কাঠামো সম্পর্কে একটি শিক্ষিত অনুমান করতে পারেন?
meawoppl

উত্তর:


14

এটি আপনার ম্যাট্রিক্সের আকারের উপর নির্ভর করে, বৃহত আকারের ক্ষেত্রে এটি অপ্রয়োজনীয় কিনা এবং আপনি যে নির্ভুলতা অর্জন করতে চান তার উপর।

যদি আপনার ম্যাট্রিক্স একক ফ্যাক্টরীকরণের অনুমতি দিতে খুব বড় হয় এবং আপনার উচ্চ নির্ভুলতার প্রয়োজন হয় তবে ল্যাঙ্কসোস অ্যালগরিদম সম্ভবত সবচেয়ে দ্রুততম উপায়। সংক্ষিপ্ত আকারের ক্ষেত্রে, আর্নল্ডি অ্যালগরিদম প্রয়োজন হয়, যা সংখ্যাগতভাবে অস্থির হয়, সুতরাং এটি বাস্তবায়নের জন্য এটি সমাধান করা প্রয়োজন (নিরাময়ের ক্ষেত্রে কিছুটা বিশ্রী)।

যদি আপনার সমস্যার ক্ষেত্রে এটি না হয় তবে আপনার প্রশ্নে আরও নির্দিষ্ট তথ্য দিন। তারপরে এই উত্তরে একটি মন্তব্য যুক্ত করুন, এবং আমি এটি আপডেট করব।

সম্পাদনা: [এটি ছিল সবচেয়ে পুরানো সংস্করণের জন্য প্রশ্নটির পুরানো সংস্করণের জন্য। বি দ্বারা স্বল্প গুণে আইএর অনুমোদিত ত্রিভুজাকৃতির অনুকরণের অনুমতি দেওয়া হয়েছে (বা একটি সুস্পষ্ট বিপরীত গণনা করুন, তবে এটি ফ্যাক্টেরাইজেশনের চেয়ে 3 গুণ বেশি খরচ করে)) আপনি পরীক্ষা করতে চান যে বি এর নেতিবাচক এগেনালু আছে কিনা। এ এর জায়গায় খ এর সাথে কাজ করা, নেতিবাচক ইগেনভ্যালুগুলি আরও ভালভাবে পৃথক করা হয়, তাই যদি সেখানে থাকে তবে আপনার দ্রুত রূপান্তর করা উচিত।

তবে আপনার সমস্যাটি কোথা থেকে এসেছে তা সম্পর্কে আমি আগ্রহী। ননসিম্যাট্রিক ম্যাট্রিকগুলিতে সাধারণত জটিল ইগেনভ্যালু থাকে, তাই '' বৃহত্তম '' এমনকি এমনকি সংজ্ঞায়িত হয় না। সুতরাং আপনাকে অবশ্যই আপনার সমস্যা সম্পর্কে আরও জানতে হবে যা এটি আরও দ্রুত এবং / বা আরও নির্ভরযোগ্যভাবে কীভাবে সমাধান করা যায় তা বোঝাতে সহায়তা করতে পারে।

সম্পাদনা 2: আর্নল্ডির সাথে আগ্রহের একটি বিশেষ উপসেট পাওয়া কঠিন । একেবারে বৃহত্তম ইগেনভ্যালুগুলি নির্ভরযোগ্যভাবে পেতে, আপনি মূল ম্যাট্রিক্স ব্যবহার করে উপ-স্পেস সাইজের সাথে মিল রেখে বা ইগেনভ্যালুগুলির সংখ্যাকে অতিক্রম করে বা তার परिमाणের কাছাকাছি হওয়ার সম্ভাবনা ছাড়িয়ে subs ছোট ম্যাট্রিকগুলিতে এটি কিউআর অ্যালগরিদমের চেয়ে ধীর হবে তবে বড় ম্যাট্রিকগুলিতে এটি আরও দ্রুত হবে।


বৃহত্তম ইজেনভ্যালু ১ এর চেয়ে বেশি হলে আমার পরীক্ষা করা দরকার Acc নির্ভুলতার জন্য কেবল 1e-11 হওয়া দরকার। একটি "সাধারণ" ম্যাট্রিক্স এখনও পর্যন্ত 386 x 386 হয়েছে I আমি এটিতে একটি কিউআর ফ্যাক্টরীকরণ করতে সক্ষম হয়েছি। তবে এর চেয়েও বড় কিছু পাওয়াও সম্ভব। আমি বর্তমানে আরনলদি অ্যালগরিদম সম্পর্কে পড়তে শুরু করছি। আমি বুঝতে পারি এটি ল্যাঙ্কসোসের সাথে সম্পর্কিত।
পাওয়ার

এই তথ্যটি আপনার প্রশ্নের অন্তর্গত - সুতরাং দয়া করে এটি সম্পাদনা করুন এবং আরও তথ্য যুক্ত করুন (ইগেনভ্যালুগুলি আসল কেন? বা সবচেয়ে বড় অর্থ কী?) - আমার উত্তরের সম্পাদনা দেখুন।
আর্নল্ড নিউমায়ার

দুঃখিত যে আমি নিজেকে পরিষ্কারভাবে ব্যাখ্যা করিনি। আমি এও স্পষ্টভাবে ব্যাখ্যা করিনি যে ইগেনুয়ালগুলি জটিল। আমি যদি পরীক্ষা করে নিচ্ছি যে কোনও ইগেনভ্যালুগুলির এক বা তার বেশি এর দৈর্ঘ্য রয়েছে।
পাওয়ার

1
এটি আরও অর্থবহ করে তোলে, তবে এখন my with সহ আমার রেসিপিটি কেবল তখনই কার্যকর হয় যদি দরিদ্র ইগ্যালভ্যালু সত্যই>> 1 হয়। অন্যদিকে, নতুন তথ্য সম্ভবত ইঙ্গিত দেয় যে আপনার কাছে খুব কম পছন্দ আছে তবে সমস্ত ইগন্যাল্যগুলি গণনা করা হচ্ছে। - অতিরিক্ত তথ্য জানাতে আপনার প্রশ্নটি আপডেট করুন! (IA)1
আর্নল্ড নিউমায়ার

1
আমার উত্তরে 2 সম্পাদনা দেখুন
আর্নল্ড নিউমায়ার

7

পাওয়ার পুনরাবৃত্তিতে (অথবা পাওয়ার পদ্ধতি), যেমন কি ড্যান বর্ণনা করা হয়, সবসময় একই বিন্দুতে মিলিত হবে, যদিও হারে।|λn1/λn|

তাহলে পাসে হবে , এটা ধীর হতে হবে, কিন্তু আপনি ব্যবহার করতে পারেন বহির্পাতন যে কাছাকাছি পেতে। এটি জটিল মনে হতে পারে তবে ছদ্ম-কোডের একটি প্রয়োগ কাগজে দেওয়া হয়েছে। λ nλn1λn


1
কি যদি | λ (n − 1) | = | λ (এন) | ?
পাওয়ার

@ পাওয়ার, তারপরে নিয়মিত পাওয়ার আইট্রেশন রূপান্তরিত হবে না। আমি জানি না যে এক্সট্রাপোলেশন পদ্ধতিগুলি বিভিন্ন ইগেনভ্যালুগুলির মধ্যে কতটা পার্থক্য করবে, তার জন্য আপনাকে কাগজটি পড়তে হবে।
পেড্রো

2
@ পাওয়ার: সমস্ত জিনিস পুনর্বিবেচনা করা হয়েছে, যদি, তারপরে পাওয়ার পুনরাবৃত্তিটি এখনও সঠিক ইগ্যালভ্যালুতে রূপান্তর করবে। ফলে eigenvector, যা আপনি মধ্যে যাহাই হউক না কেন আগ্রহী হবে বলে মনে হচ্ছে না, eigenvectors সংশ্লিষ্ট একটি রৈখিক সমন্বয় হতে হবে এবং । n λ n - 1|λn1|=|λn|λnλn1
পেড্রো

আপনার কাছে এমন একাডেমিক কাগজ বা বইয়ের কোনও রেফারেন্স রয়েছে যা এটি সমর্থন করে? এছাড়াও, যদি \ ল্যাম্বদা_ {n complex জটিল হয়?
পাওয়ার

5
যদি সর্বাধিক মডুলাসের বিভিন্ন ইগন্যালুগুলি থাকে তবে পাওয়ার পুনরাবৃত্তি কেবল ব্যতিক্রমী পরিস্থিতিতে রূপান্তর করে। এটি কিছুটা অনির্দেশ্য উপায়ে দোলায়।
আর্নল্ড নিউমায়ার

5

সম্প্রতি এ নিয়ে বেশ ভালো গবেষণা হয়েছে। নতুন পদ্ধতির মধ্যে "র্যান্ডমাইজড অ্যালগরিদম" ব্যবহার করা হয়েছে যা সর্বকালের বৃহত্তম ইগেনভ্যালুগুলিতে ভাল নির্ভুলতা পেতে আপনার ম্যাট্রিক্সের কয়েকটি পাঠ প্রয়োজন। এটি পাওয়ার পুনরাবৃত্তির বিপরীতে যা উচ্চ নির্ভুলতায় পৌঁছতে বেশ কয়েকটি ম্যাট্রিক্স-ভেক্টর গুণক প্রয়োজন।

আপনি এখানে নতুন গবেষণা সম্পর্কে আরও পড়তে পারেন:

http://math.berkeley.edu/~strain/273.F10/martinsson.tygert.rokhlin.randomized.decomposition.pdf

http://arxiv.org/abs/0909.4061

এই কোডটি আপনার জন্য এটি করবে:

http://cims.nyu.edu/~tygert/software.html

https://bitbucket.org/rcompton/pca_hgdp/raw/be45a1d9a7077b60219f7017af0130c7f43d7b52/pca.m

http://code.google.com/p/redsvd/

https://cwiki.apache.org/MAHOUT/stochastic-singular-value-decomposition.html

আপনার পছন্দের ভাষাটি যদি না থাকে তবে আপনি নিজের র্যান্ডমাইজড এসভিডিটিকে খুব সহজেই রোল করতে পারেন; এটির জন্য কেবলমাত্র একটি ম্যাট্রিক্স ভেক্টর গুণ এবং তারপরে একটি অফ-শেল্ফ এসভিডি কল করা দরকার।


4

এখানে আপনি জেকোবি-ডেভিডসন অ্যালগরিদমটির একটি অ্যালগরিদমিক পরিচিতি পাবেন, যা সর্বাধিক ইগন্যালিউটি গণনা করে।

এই কাগজে গাণিতিক দিকগুলি অন্বেষণ করা হয়েছে। জেডি সাধারণ (বাস্তব বা জটিল) ম্যাট্রিক্সের অনুমতি দেয় এবং ইগেনভ্যালুগুলির পরিসীমা গণনা করতে ব্যবহার করা যেতে পারে।

এখানে আপনি বিভিন্ন লাইব্রেরি বাস্তবায়ন জেডিকিউআর এবং জেডিকিউজেড (একটি সি ইন্টারফেস সহ, যা আপনার আর থেকে লিঙ্ক করতে সক্ষম হওয়া উচিত) পেতে পারেন।


আমি এমন কোনও সাহিত্য খুঁজে পাইনি যা স্পষ্টভাবে জানিয়ে দেয় যে জ্যাকোবি-ডেভিডসন পদ্ধতিটি একটি বাস্তব, সাধারণ ম্যাট্রিক্সের জন্য কাজ করে।
পাওয়ার

যতক্ষণ না প্রতিটি নিবন্ধ সুস্পষ্টভাবে কোনও বিধিনিষেধের কথা না বলে এবং অভিব্যক্তির যুক্তি সেই সীমাবদ্ধতার উপর নির্ভর করে না তাতে কিছু আসে যায় না।
ডেথব্রিথ

এখানে জেডির আরও একটি ব্যাখ্যা দেওয়া হল। বিবেচিত ম্যাট্রিকগুলি সম্পূর্ণ সাধারণ। কোনও বিশেষ কাঠামো শোষণ করা হয় না এবং হার্মিটিয়ান ম্যাট্রিক্সের সাথে নির্দিষ্ট ফলাফলগুলির তুলনা করা হয় এবং বিপরীত হয়, উদাহরণস্বরূপ, সাধারণ ম্যাট্রিকের জন্য রূপান্তরটি চতুর্ভুজ, তবে হার্মিটিয়ান ম্যাট্রিক্সের জন্য ঘনক।
মৃত্যু শ্বাস

এর জন্য ধন্যবাদ. আমি সাধারণ ম্যাট্রিক্সের জন্য কোনও সি কোড খুঁজে পাই না, সুতরাং আমাকে নিজের লেখাতে হবে। অ্যালগরিদমের লিঙ্কগুলি কেবল হারমেটিয়ান ম্যাট্রিক্সের জন্য বলে মনে হচ্ছে।
পাওয়ার

1
@ পাওয়ার আপনি সাহিত্যে এমন কোনও ফলাফলও খুঁজে পাবেন না যাতে বলা হয়েছে যে স্ট্যান্ডার্ড কিউআর বাস্তবায়নগুলি একটি বাস্তব, সাধারণ ম্যাট্রিক্সের জন্য রূপান্তর করে - এটি একটি উন্মুক্ত সমস্যা এবং প্রকৃতপক্ষে খুব বেশি সময় আগেই ল্যাপাকের কিউআর কোডের জন্য একটি কাউন্টারিক নমুনা পাওয়া গিয়েছিল।
ফেডেরিকো পোলোনি

2

আপনার মূল পোস্টে, আপনি বলেছেন:

"আমি ইগ্রাফ আর প্যাকেজে আরপ্যাক ইন্টারফেসটি ব্যবহার করার চেষ্টাও করেছি। তবে এটি আমার ম্যাট্রিকের একটিতে ত্রুটি দিয়েছে।"

আমি ত্রুটি সম্পর্কে আরও জানতে আগ্রহী হবে। আপনি যদি এই ম্যাট্রিক্সটি সর্বজনীনভাবে কোথাও উপলভ্য করতে পারেন তবে আমি এটিতে আরপ্যাক চেষ্টা করতে আগ্রহী।

আমি উপরে যা পড়েছি তার উপর ভিত্তি করে, আমি প্রত্যাশা করব যে এয়ারপ্যাক একটি বিচ্ছিন্ন ম্যাট্রিক্সের বৃহত্তম (বা বৃহত্তম কয়েকটি) ইগোনালগুলি বের করার জন্য খুব ভাল কাজ করবে। আরও সুনির্দিষ্টভাবে বলতে গেলে, আমি আশা করব যে আর্নল্ডি পদ্ধতিগুলি এই ক্ষেত্রে ভালভাবে কাজ করবে এবং এটি অবশ্যই আর্প্যাক ভিত্তিক।

উপরের ক্ষেত্রের আগ্রহের অঞ্চলে ঘনিষ্ঠভাবে ব্যবধানযুক্ত ইগনালভগুলি থাকাকালীন বিদ্যুৎ পদ্ধতির ধীরে ধীরে অভিযানের বিষয়টি উপরে উল্লেখ করা হয়েছিল। আর্নল্ডি শক্তি পদ্ধতির পরিবর্তে বেশ কয়েকটি ভেক্টর দিয়ে পুনরাবৃত্তি করে এটি উন্নত করে।


আমি তখন থেকে আমার কাজটি খুঁজে পেতে পারি কিনা তা আমি দেখতে পাব। আমি এই এক বছর আগে কাজ।
পাওয়ার

0

এটি দ্রুততম উপায় নয়, তবে একটি যুক্তিসঙ্গত দ্রুত উপায় হ'ল বারবার ম্যাট্রিক্সের সাহায্যে কোনও (প্রাথমিকভাবে এলোমেলো) ভেক্টরটিকে বারবার আঘাত করা এবং তারপরে প্রতি কয়েকটি পদক্ষেপকে স্বাভাবিক করা। অবশেষে এটি বৃহত্তম ইগেনভেક્ટરে রূপান্তরিত হবে এবং একক পদক্ষেপের জন্য আদর্শ অর্জনটি সম্পর্কিত ইগন্যাল্যুয়েজ।

এটি সবচেয়ে ভাল কাজ করে যখন বৃহত্তম ইগেনভ্যালু অন্য কোনও ইগন্যালুয়ের চেয়ে যথেষ্ট বড় হয়। যদি অন্য একটি ইগন্যালুয়ু বৃহত্তমের নিকটবর্তী স্থানে থাকে তবে এটি একত্রিত হতে কিছুটা সময় সময় নেয় এবং এটি রূপান্তরিত হয়েছে কিনা তা নির্ধারণ করা কঠিন হতে পারে ।


1
থ্যাঙ্কস ড্যান, তবে: আমার ম্যাট্রিক্সে, অন্যান্য কিছু ইগেনাল্যুগুলির মধ্যে একটির বৃহত্তর হিসাবে সমান (যদি একই না হয়) পরিমাণ হবে। আপনার পদ্ধতিটি পাওয়ার আইট্রেশন এবং রেলেইগ কোটারিয়েন্ট আইট্রেশনের মতো? ব্যাটারসন এবং স্মিলি (১৯৯০) লিখেছেন যে কিছু অ-মিমিমেট্রিক ম্যাট্রিক্সের জন্য, রেলেইগ কোটিয়েন্ট আইট্রেশন রূপান্তর করবে না। ব্যাটারসন, এস।, স্মিলি, জে (১৯৯০) "ননসিমমেট্রিক ম্যাট্রিক্সের জন্য রেলেইগ কোটিয়েন্টিয়েন্ট ইটারেশন", গণিতের গণিত, খণ্ড 55, নাম 191, পি 169 - 178
পাওয়ার

অন্যান্য ইগনুভ্যালুগুলির যদি বৃহত্তম আকারের সমানতা থাকে ... তবে এই মানগুলি কি "বৃহত্তম বৃহত্তম" নয়?
ely

@ এমএমএস: তারা এখনও "বৃহত্তম ইগেনভ্যালু" হতে পারে তবে একের অধিক বৃহত্তম উপস্থিতি এখনও অভিব্যক্তিকে হ্রাস করবে।
ড্যান

আমি কেবল ভাবছি যে আপনি কোন ইগুভ্যালুতে রূপান্তর করতে চান। রায়লেগ ভাগফল / পাওয়ার পদ্ধতির মতো জিনিসগুলি বোঝানো হয় যখন একটি পৃথক বৃহত্তম ইজেনভ্যালু থাকে। আপনার প্রশ্নটি বৃহত্তম এগেনুয়ালুটি খুঁজতে বলেছে, তবে তারপরে মনে হচ্ছে এটি আপনার সমস্যার জন্য আসলে ভালভাবে সংজ্ঞায়িত হয়নি। আমি শুধু পোস্টের শিরোনাম দ্বারা বিভ্রান্ত করছি।
ely

-1

আর প্যাকেজ rARPACK আমার জন্য কাজ করে। এবং এটি খুব দ্রুত বলে মনে হচ্ছে এটি এআরপ্যাকের কেবল একটি ইন্টারফেস, বিরল লিনিয়ার বীজগণিতের জন্য আদর্শ প্যাকেজ (যার অর্থ কয়েকটি ইগেনভ্যালু এবং ইগেনভেেক্টর গণনা করা)।


SciComp স্বাগতম! প্রশ্নটিতে যেমন বলা হয়েছে, এআরপ্যাক ওপিতে কাজ করে না, সুতরাং এই উত্তরটি সত্যিই সহায়ক নয়।
ক্রিশ্চান ক্ল্যাসন

@ হোয়াংডিটি এই প্রশ্নটির পূর্বসূরী
পাওয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.