ফোর্টরান 95 এবং ল্যাপ্যাক সহ একটি আসল অসম্যাট্রিক ম্যাট্রিক্সের ম্যাট্রিক্স সূচকযুক্ত


10

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

পটভূমি: কিছু সময় আগে আমি তাত্ত্বিক পদার্থবিজ্ঞানের এসইতে এই প্রশ্নটি জিজ্ঞাসা করেছি । ফলাফলটি আমাকে মাস্টার সমীকরণগুলিকে আসল অসমমিতিক ম্যাট্রিক্স হিসাবে অভিহিত করতে দেয়। সময়-স্বতন্ত্র ক্ষেত্রে, মাস্টার সমীকরণটি এই ম্যাট্রিক্সটিকে ঘটা করে সমাধান করা হয়। সময়-নির্ভর ক্ষেত্রে এটির সংহতকরণ প্রয়োজন। এই মুহূর্তে আমি কেবল সময়-স্বাধীনতার সাথে উদ্বিগ্ন।

বিভিন্ন সাবরুটিনের দিকে তাকিয়ে পরে আমি কল করা উচিত ( ? Gehrd , ? Orghr , ? Hseqr ...) এটা স্পষ্ট নয় যদি এটা সহজ হবে থেকে ম্যাট্রিক্স কাস্ট করার জন্য real*8করতে complex*16এবং এই রুটিন জটিল ডবল সংস্করণের সাথে এগিয়ে যাওয়া, বা সাথে আটকে থাকুন real*8এবং আমার অ্যারের সংখ্যা দ্বিগুণ করার এবং পরে এগুলির একটি জটিল ম্যাট্রিক্স তৈরির হিট নিন।

সুতরাং, আমি কোন রুটিনগুলিতে কল করব (এবং কোন ক্রমে), এবং আমার আসল ডাবল সংস্করণ বা জটিল ডাবল সংস্করণগুলি ব্যবহার করা উচিত? নীচে বাস্তব ডাবল সংস্করণ দিয়ে এটি করার একটি প্রচেষ্টা রয়েছে। আমি এর আইভালভ্যালু এবং ইগেনভেক্টর খুঁজে পেতে আটকে গিয়েছি L*t

function time_indep_master(s,L,t)
  ! s is the length of a side of L, which is square.
  ! L is a real*8, asymmetric square matrix.
  ! t is a real*8 value corresponding to time.
  ! This function (will) compute expm(L*t).

  integer, intent(in)    :: s
  real*8,  intent(in)    :: L(s,s), t
  real*8                 :: tau(s-1), work(s), wr(s), wi(s), vl
  real*8, dimension(s,s) :: time_indep_master, A, H, vr
  integer                :: info, m, ifaill(2*s), ifailr(2*s)
  logical                :: sel(s)

  A = L*t
  sel = .true.

  call dgehrd(s,1,s,A,s,tau,work,s,info)
  H = A
  call dorghr(s,1,s,A,s,tau,work,s,info)
  call dhseqr('e','v',s,1,s,H,s,wr,wi,A,s,work,s,info)
  call dhsein('r','q','n',sel,H,s,wr,wi,vl,1,vr,s,2*s,m,work,ifaill,ifailr,info)

  ! Confused now...

end function

উত্তর:


8

আমি প্রথমে ম্যাট্রিক্সটি পুরোপুরি স্বেচ্ছাসেবক কিনা তা নিয়ে খুব শক্তভাবে চিন্তা করব: এমন কোনও রূপান্তর আছে যা একে হার্মিটিয়ান করে তুলবে? পদার্থবিজ্ঞান গ্যারান্টি দেয় যে ম্যাট্রিক্সটি তির্যক হতে হবে (যুক্তিসঙ্গত কন্ডিশনড ইগেনভেেক্টর ম্যাট্রিক্স সহ)?

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


1
আমি যা করতে পারি তা হ'ল অসম্পূর্ণ ব্লক সহ একটি ব্লক ডায়াগোনাল ম্যাট্রিক্সে পরিণত করা। এটি নিজেই যদিও খুব আকর্ষণীয়। এই ব্লকগুলির বেশিরভাগই হয় এবং আমি কেবল বিশ্লেষণাত্মকভাবে এটি সমাধান করতে পারি। বাকি ব্লক রয়েছে যদিও ব্যবহার করার জন্য কোনও প্রতিসাম্য নেই। 4 × 42×24×4
qubyte

1
আমি এই উত্তরটি পছন্দ করি; আনসিম্যাট্রিক ক্ষেত্রে যথেষ্ট পরিমাণে ক্ষতির মুখোমুখি হয় যে এটি যদি আপনার সমস্যার এমন একটি সূত্র তৈরি হতে পারে যা অনিয়মিতের পরিবর্তে প্রতিসম ম্যাট্রিকগুলিতে নিয়ে যায় তবে এটি বিবেচনা করার মতো।
জেএম

@ মার্কএস.এভারিট: আপনার মনে হচ্ছে প্রায় সেখানেই আছে ... ম্যাট্রিক কত বড়? X 36 x 36 আবার?
জ্যাক পলসন

এই ক্ষেত্রে , তবে এটি যাওয়ার সম্ভাবনা রয়েছে । 36 × 3616×1636×36
qubyte

2
@ মার্কএস.এভারিট: সুতরাং আপনার সমস্যাটি এখন কার্যকরভাবে 4x4 ম্যাট্রিক্সকে কীভাবে বাড়িয়ে তোলা যায় effectively এ্যাসেম্পোটিক বিশ্লেষণ অপ্রাসঙ্গিক হওয়ার জন্য এটি যথেষ্ট ছোট, সুতরাং উত্তর সম্পূর্ণরূপে মানগুলির উপর নির্ভর করবে। আপনি যদি আপনার লিঙ্কযুক্ত পদার্থবিজ্ঞানের পোস্টকে লিনিয়ার বীজগণিত (কোনও সুপারোপরেটর কী?!?) তে অনুবাদ না করেন আমি আসলেই আর বলতে পারি না।
জ্যাক পলসন

7

জ্যাক যা বলেছে তার উপর ভিত্তি করে তৈরি করার জন্য, সফ্টওয়্যারটিতে যে স্ট্যান্ডার্ড পদ্ধতিটি ব্যবহার করা হয়েছে বলে মনে হচ্ছে (যেমন আপনার পূর্ববর্তী প্রশ্নে বর্ণিত এক্সপোকিট) প্যাডের আনুমানিককরণ (পদ্ধতি 2 এবং 3) বা ক্রিলোভ সাবস্পেস পদ্ধতি (পদ্ধতি) অনুসরণ করে স্কেলিং-এবং-স্কোয়ারিং 20)। বিশেষত, আপনি ঘনিষ্ঠভাবে সংহতকারীদের দিকে তাকিয়ে থাকলে, আপনি ক্রিলোভ সাবস্পেস পদ্ধতিগুলি বিবেচনা করতে এবং সূচকীয় সংহতকারীগুলির কাগজগুলি দেখতে চান (মোলার এবং ভ্যান anণ কাগজে 20 এর পদ্ধতি সহ কিছু উল্লেখ উল্লেখ করা হয়েছে)।

আপনি যদি ইগেনভেেক্টর ব্যবহারে নরক হন তবে ইগেনভেেক্টরগুলির ত্রিভুজাকার পদ্ধতি ব্যবহার করার বিষয়টি বিবেচনা করুন (পদ্ধতি 15); আপনার ম্যাট্রিক্স যেহেতু ননডিয়াগোনালাইজেবল হতে পারে তাই এই পন্থাটি সেরা নাও হতে পারে তবে ইগেনভেেক্টর এবং ইগেনভ্যালুগুলি সরাসরি গণনা করার চেষ্টা করার চেয়ে এটি ভাল (যেমন, পদ্ধতি 14)।

হেসেনবার্গ ফর্ম হ্রাস একটি ভাল ধারণা নয় (পদ্ধতি 13)।

ফোরট্রান জটিল গাণিতিক দ্রুত হওয়ায় আপনি প্রকৃত বা জটিল গাণিতিকের সাথে আরও ভাল পরিবেশিত হবেন কিনা তা আমার কাছে স্পষ্ট নয়, তবে সম্ভবত উপচে পড়া / আন্ডারফ্লো হতে পারে (দেখুন "ফোর্টরান সংকলকরা আসলে কতটা উন্নত?" )।

আপনি নিরাপদে পদ্ধতিগুলি 5-7 টি উপেক্ষা করতে পারেন (ওডিই সল্ভার-ভিত্তিক পদ্ধতিগুলি অক্ষম), পদ্ধতিগুলি 8-13 (ব্যয়বহুল), পদ্ধতি 14 (বড় ম্যাট্রিকের ইগেনভেেক্টর গণনা বিশেষ কাঠামো ছাড়াই শক্ত এবং অসুস্থ অবস্থার ক্ষেত্রে সংখ্যাগত ত্রুটিযুক্ত) , এবং পদ্ধতি 16 (একটি ম্যাট্রিক্সের জর্দান পঁচনের গণনাটি সংখ্যাগতভাবে অস্থির)। 17-19 পদ্ধতিগুলি কার্যকর করার জন্য কৌশলযুক্ত; বিশেষত, 17 এবং 18 পদ্ধতিতে আরও পড়া দরকার। স্কেলিং-এবং-স্কোয়ারিংয়ের জন্য প্যাডের অনুমানগুলি যদি ভালভাবে কাজ না করে তবে পদ্ধতি 1 হ'ল ফল-ব্যাক বিকল্প।

Bj

Bj=γjI+Ej,

γjjEj


1
O(n2)O(n3)

নিঃসন্দেহে তারা জানে যে তারা কী করছে; আমি ল্যাপ্যাকের বাস্তবায়ন সম্পর্কে উদ্বিগ্ন নই। আমি ফোর্টরানের সংকলক আচরণ সম্পর্কে আরও অবাক হই।
জেফ অক্সবেরি

2
হ্যাঁ, সংকলকটি সম্ভবত লিখিত ল্যাপাকের চেয়ে সমস্যা হতে পারে। আপনার প্রোগ্রামটি কেবল ব্যর্থ হয়েছে বলে সন্ধান করতে অস্বস্তিকর হতে পারে যে সংকলক দ্বারা ব্যবহৃত নিরঙ্কুশ মান এবং বিভাগের জন্য বাস্তবায়ন বন্ধ ছিল ...
জেএম

-1

আমার কাছে একটি সাধারণ ফোরট্রান সাবরুটাইন রয়েছে যা একটি স্বেচ্ছাসেবীর ম্যাট্রিক্সের প্রকাশককে গণনা করে। আমি মাতলাব কমান্ডের বিপরীতে এটি পরীক্ষা করেছিলাম এবং এটি ঠিক আছে। এটি স্কেলিং এবং স্কোয়ারিংয়ের উপর ভিত্তি করে। আমি কয়েক বছর আগে এটি লিখেছিলাম।

আমি gams.nist.gov থেকে ডাউনলোড করা ফাইলগুলির মতো আরও একটি সাবরুটিনকে ফিন করতে চাই। তবে এখনও ভাগ্য নেই।

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