আমার উপলব্ধিটি হল যে numpy.linalg.lstsq LAPACK রুটিন dgelsd এর উপর নির্ভর করে ।
সমস্যাটি হ'ল:
কমান ( ওভারএক্স )∥ একটি এক্স - বি ∥2
অবশ্যই, এই একটি নেই অনন্য একটি ম্যাট্রিক্স একটি যার সমাধান র্যাঙ্ক ভেক্টরের দৈর্ঘ্য কম । একটি নির্ধারিত সিস্টেমের ক্ষেত্রে, একটি সমাধান সরবরাহ করে যেমন:খজdgelsd
z- র
- এ জেড = খ
- ∥ z ∥2≤ ∥ এক্স ∥2 সবার জন্য যে সন্তুষ্ট । (যেমন নির্ধারিত সিস্টেমের সর্বনিম্ন আদর্শ সমাধান।এক্সএ x = খz- র
উদাহরণস্বরূপ, সিস্টেমটি যদি numpy.linalg.lstsq ফিরে আসবে ।x + y= 1x = .5 , y= .5
ডিজেলসডি কীভাবে কাজ করে?
রুটিনটি dgelsd
এ এর একক মানের পচন (এসভিডি) গণনা করে
আমি কেবল একটি রৈখিক সিস্টেম সমাধান করার জন্য একটি এসভিডি ব্যবহার করার পিছনে ধারণাটি স্কেচ করব। একবচন মান পচানি একটি গুণকনির্ণয় হয় যেখানে এবং লম্ব ম্যাট্রিক্স এবং একটি তির্যক ম্যাট্রিক্স যেখানে তির্যক এন্ট্রি একবচন মান হিসাবে পরিচিত হয়।UΣV′=AUVΣ
ম্যাট্রিক্স এর কার্যকর র্যাঙ্কটি এমন একক মানের সংখ্যা হবে যা কার্যকরভাবে শূন্য নয় (অর্থাত্ যন্ত্রের যথার্থতার সাথে শূন্যের তুলনায় যথেষ্ট আলাদা ...)। যাক নন-জিরো একবচন মূল্যবোধের তির্যক ম্যাট্রিক্স হও। এসভিডি এইভাবে:AS
A=U[S000]V′
সিউডো-বিপরীত এর দেওয়া হয়:A
A†=V[S−1000]U′
বিবেচনা করুন সমাধান । তারপর:x=A†b
Ax−b=U[S000]V′V[S−1000]U′b−b=U[I000]U′b−b
মূলত এখানে দুটি মামলা রয়েছে:
- নন-জিরো একবচন মান রয়েছে তা গণনা (অর্থাত ম্যাট্রিক্স আকার ) দৈর্ঘ্য কম । এখানে সমাধান সঠিক হবে না; আমরা লিনিয়ার সিস্টেমটি ন্যূনতম স্কোয়ার অর্থে সমাধান করব।Ib
- Ax−b=0
এই শেষ অংশ একটু চতুর ... ম্যাট্রিক্স মাত্রা এবং ব্যবহার ট্র্যাক রাখতে যে প্রয়োজন একটি লম্ব ম্যাট্রিক্স হয়।U
সিউডো-ইনভার্সের সমতুল্যতা
যখন এর রৈখিক স্বতন্ত্র সারি থাকে, (উদাহরণস্বরূপ আমাদের ফ্যাট ম্যাট্রিক্স থাকে), তারপরে:
AA†=A′(AA′)−1
একটি নির্ধারিত সিস্টেমের জন্য, আপনি দেখিয়ে দিতে পারেন যে সিউডো-ইনভার্স আপনাকে ন্যূনতম আদর্শ সমাধান দেয়।
যখন এর রৈখিক স্বতন্ত্র কলামগুলি থাকে (যেমন: আমাদের একটি চর্মসার ম্যাট্রিক্স রয়েছে), তারপরে:
AA†=(A′A)−1A′