আমি স্ক্র্যাচ থেকে একটি কন্ট্রোল সিস্টেম টুলবক্স লিখছি এবং খাঁটি পাইথন 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
যদি আপনি ক্রমচারণের নিদর্শনগুলি পরীক্ষা করেন তবে সেগুলি একই তবে স্কেলিং বন্ধ রয়েছে। gebal
unityক্য স্কেলিং দেয় যেখানে মতলব 2: এর নিম্নোক্ত ক্ষমতা দেয় [-5,0,8,0,2]
।
সুতরাং স্পষ্টতই, এগুলি একই যন্ত্রপাতি ব্যবহার করছে না। আমি লেমননিয়ার, ভ্যান ডুরেন দ্বি-পার্শ্বযুক্ত স্কেলিং, আসল প্যালেট-রেইনস এবং এর মতো ঘন সংস্করণের মতো সাহিত্যের কিছু অন্যান্য কম-জানা পদ্ধতিগুলির মতো বিভিন্ন বিকল্পের চেষ্টা করেছি SPBALANCE
।
একটি বিষয় সম্ভবত আমি জোর দিতে পারি যে আমি বেনারের কাজ সম্পর্কে সচেতন; বিশেষত এই উদ্দেশ্যে হ্যামিলটোনীয় ম্যাট্রিক্সের সিম্প্লিকটিক ব্যালেন্সিং । তবে নোট করুন যে এই ধরণের চিকিত্সা gcare.m
(জেনারেলাইজড রিকাটি সলভার) এর মধ্যে করা হয় এবং ব্যালেন্সিং সরাসরি মাধ্যমে করা হয় balance.m
। সুতরাং, কেউ যদি আমাকে প্রকৃত বাস্তবায়নের দিকে নির্দেশ করতে পারে তবে আমি প্রশংসা করব।
প্রকাশ: আমি প্রকৌশলী গণিতের কোডটি বিপরীত করার চেষ্টা করছি না: আমি এই প্রশ্নটির প্রেরণাসহ বিভিন্ন কারণের কারণে আসলে আমি এ থেকে দূরে যেতে চাই, এটি বলতে গেলে, আমি জানি না যে এটি কী করছে যা আমাকে প্রচুর পরিমাণে আটকায় I দিনের আগের দিন আমার উদ্দেশ্য হল একটি সন্তোষজনক ব্যালেন্সিং অ্যালগরিদম পাওয়া যা আমাকে কারেক্সের উদাহরণগুলি পাস করার অনুমতি দেয় যাতে আমি নিয়মিত দ্রাবকের শীর্ষে নিউটন পুনরাবৃত্তি পদ্ধতিগুলি প্রয়োগ করতে পারি।