আমি স্ক্র্যাচ থেকে একটি কন্ট্রোল সিস্টেম টুলবক্স লিখছি এবং খাঁটি পাইথন 3 (নির্লজ্জ প্লাগ harold:) এ। আমার অতীত গবেষণা থেকে আমার care.mকাছে প্রযুক্তিগত / অপ্রাসঙ্গিক কারণগুলির জন্য আমি সবসময়ই রিকাটি সলভার সম্পর্কে অভিযোগ করি ।
অতএব, আমি আমার নিজস্ব রুটিনগুলি লিখছি। আমি যে উপায়টির আশেপাশে কোন উপায় খুঁজে পাচ্ছি না তা হ'ল উচ্চ-পারফরম্যান্সের ভারসাম্য বজায় রাখা অ্যালগরিদম, কমপক্ষে যতটা ভাল balance.m। আপনি এটি উল্লেখ করার আগে, xGEBALপরিবার স্কিপিতে উন্মুক্ত হয়ে গেছে এবং আপনি নীচে স্কিপি থেকে মূলত কল করতে পারেন, ধরুন আপনার কাছে একটি ফ্লোট টাইপ 2 ডি অ্যারে রয়েছে A:
import scipy as sp
gebal = sp.linalg.get_lapack_funcs(('gebal'),(A,)) # this picks up DGEBAL
Ab, lo, hi, scaling , info = gebal(A, scale=1 , permute=1 , overwrite_a=0 )
এখন আমি যদি নিম্নলিখিত পরীক্ষার ম্যাট্রিক্স ব্যবহার করি
array([[ 6. , 0. , 0. , 0. , 0.000002],
[ 0. , 8. , 0. , 0. , 0. ],
[ 2. , 2. , 6. , 0. , 0. ],
[ 2. , 2. , 0. , 8. , 0. ],
[ 0. , 0. , 0.000002, 0. , 2. ]])
আমি পাই
array([[ 8. , 0. , 0. , 2. , 2. ],
[ 0. , 2. , 0.000002, 0. , 0. ],
[ 0. , 0. , 6. , 2. , 2. ],
[ 0. , 0.000002, 0. , 6. , 0. ],
[ 0. , 0. , 0. , 0. , 8. ]])
যাইহোক, আমি এটি পাস যদি balance.m, আমি পেতে
>> balance(A)
ans =
8.0000 0 0 0.0625 2.0000
0 2.0000 0.0001 0 0
0 0 6.0000 0.0002 0.0078
0 0.0003 0 6.0000 0
0 0 0 0 8.0000
যদি আপনি ক্রমচারণের নিদর্শনগুলি পরীক্ষা করেন তবে সেগুলি একই তবে স্কেলিং বন্ধ রয়েছে। gebalunityক্য স্কেলিং দেয় যেখানে মতলব 2: এর নিম্নোক্ত ক্ষমতা দেয় [-5,0,8,0,2]।
সুতরাং স্পষ্টতই, এগুলি একই যন্ত্রপাতি ব্যবহার করছে না। আমি লেমননিয়ার, ভ্যান ডুরেন দ্বি-পার্শ্বযুক্ত স্কেলিং, আসল প্যালেট-রেইনস এবং এর মতো ঘন সংস্করণের মতো সাহিত্যের কিছু অন্যান্য কম-জানা পদ্ধতিগুলির মতো বিভিন্ন বিকল্পের চেষ্টা করেছি SPBALANCE।
একটি বিষয় সম্ভবত আমি জোর দিতে পারি যে আমি বেনারের কাজ সম্পর্কে সচেতন; বিশেষত এই উদ্দেশ্যে হ্যামিলটোনীয় ম্যাট্রিক্সের সিম্প্লিকটিক ব্যালেন্সিং । তবে নোট করুন যে এই ধরণের চিকিত্সা gcare.m(জেনারেলাইজড রিকাটি সলভার) এর মধ্যে করা হয় এবং ব্যালেন্সিং সরাসরি মাধ্যমে করা হয় balance.m। সুতরাং, কেউ যদি আমাকে প্রকৃত বাস্তবায়নের দিকে নির্দেশ করতে পারে তবে আমি প্রশংসা করব।
প্রকাশ: আমি প্রকৌশলী গণিতের কোডটি বিপরীত করার চেষ্টা করছি না: আমি এই প্রশ্নটির প্রেরণাসহ বিভিন্ন কারণের কারণে আসলে আমি এ থেকে দূরে যেতে চাই, এটি বলতে গেলে, আমি জানি না যে এটি কী করছে যা আমাকে প্রচুর পরিমাণে আটকায় I দিনের আগের দিন আমার উদ্দেশ্য হল একটি সন্তোষজনক ব্যালেন্সিং অ্যালগরিদম পাওয়া যা আমাকে কারেক্সের উদাহরণগুলি পাস করার অনুমতি দেয় যাতে আমি নিয়মিত দ্রাবকের শীর্ষে নিউটন পুনরাবৃত্তি পদ্ধতিগুলি প্রয়োগ করতে পারি।