تجزیهٔ QR ستونهایِ یک ماتریس را با یک پایهٔ متعامد نمایش میدهد: A=QR. در مثالِ این صفحه، Q سه سطر و دو ستونِ واحدِ عمود دارد و R بالامثلثیِ۲×۲ است. این عاملها را واقعاً میسازیم و بعد با حلِ مثلثی، کمترینِ مربعهایِ یک دستگاهِ سهمعادلهای و دومجهولی را به دست میآوریم.
چرا اول ستونهایِ مستقل لازم داریم؟
ماتریسِ A از سطرهایِ(۱،۱)، (۱،۰) و(۰،۱) ساخته شده است. ستونِ اول a₁=(۱،۱،۰) و ستونِ دوم a₂=(۱،۰،۱) است. این دو ستون مستقلاند؛ ستونِ دوم ضریبی از اولی نیست. در این تمرینِ دوستونه، اگر یکی از مرحلههایِ نرمالسازی طولِ قابلِ استفاده نداشته باشد، تابع متوقف میشود؛ پایهٔ جایگزین پنهانی تولید نمیکند.
Gram–Schmidt را با همین عددها دنبال کنیم
طولِ ستونِ اول √۲ است؛ پس q₁=(۱÷√۲،۱÷√۲،۰). سهمِ ستونِ دوم در این جهت، r₁₂=q₁ᵀa₂=۱÷√۲ است. آن سهم را از a₂ کم میکنیم و v₂=(۰٫۵،−۰٫۵،۱) باقی میماند. طولِ v₂ برابرِ√۱٫۵ است و تقسیم بر آن، q₂≈(۰٫۴۰۸۲۴۸،−۰٫۴۰۸۲۴۸،۰٫۸۱۶۴۹۷) میدهد.
بنابراین R سطرهایِ(√۲،۱÷√۲) و(۰،√۱٫۵) دارد. ستونهایِ Q بردارهایِ q₁ و q₂ هستند؛ ترتیبِ سطر و ستون را در فایلِ JSON کنترل کنید. ضربِ Q در R، A را بازسازی میکند و QᵀQ همانیِ۲×۲ میشود. چون Q مستطیلی است، QQᵀ را همانیِ۳×۳ نمینامیم.
دستگاهی که جوابِ دقیقِ هر سه سطر را ندارد
سمتِ راست را b=(۱،۲،۳) بگذاریم. سطرِ دوم x₁=۲ و سطرِ سوم x₂=۳ میخواهد، ولی سطرِ اول x₁+x₂=۱؛ هر سه همزمان برقرار نمیشوند. هدفِ کمترینِ مربعها، کمکردنِ مجموعِ مربعِ باقیماندههاست؛ عبارتِ «حل» در این بخش به معنیِ صفرشدنِ تکتکِ اختلافها نیست.
ابتدا c=Qᵀb و سپس Rx=c را حساب میکنیم. برایِ این مثال c≈(۲٫۱۲۱۳۲۰،۲٫۰۴۱۲۴۱) است. از آخرینِ سطرِ R شروع میکنیم: x₂=c₂÷r₂₂=۵÷۳. سپس x₁=(c₁−r₁₂x₂)÷r₁₁=۲÷۳. این همان حلِ پسروِ دو سطری است؛ کد معادلهٔ نرمال یا معکوسِ AᵀA را تشکیل نمیدهد.
از کجا بدانیم فقط یک جوابِ تصادفی نگرفتهایم؟
| سطر | b | Ax | باقیماندهٔ b−Ax |
|---|---|---|---|
| اول | ۱ | ۷÷۳ | −۴÷۳ |
| دوم | ۲ | ۲÷۳ | ۴÷۳ |
| سوم | ۳ | ۵÷۳ | ۴÷۳ |
ضربِ داخلیِ باقیمانده در هر ستونِ A صفر است: −۴÷۳+۴÷۳=۰. کد Aᵀr را با آستانهٔ خطایِ عددی کمتر از۱۰بهتوانِ−۱۲ کنترل میکند. مجموعِ مربعِ باقیمانده۱۶÷۳ میشود. در مسئلهٔ تمامرتبهٔ همین مثال، عمودبودنِ باقیمانده بر فضایِ ستونها شرطِ جوابِ کمترینِ مربعهاست.
سه آزمونِ متفاوت داریم: تعامدِ Q، بازسازیِ QR و عمودبودنِ باقیمانده. تنها دیدنِ دو عددِ x کافی نبود. فایلِ همراه پیشبینی و اختلافِ هر سطر را نگه میدارد؛ عددِ۱۶÷۳ خطایِ همین سه ورودیِ ساختگی است، نه خطایِ پیشبینیِ دادهٔ تازه یا درصدِ دقت.
مرزِ روشِ آموزشی با کتابخانهٔ عددی
فایل فقط روشِ کلاسیکِ Gram–Schmidt برایِ دو ستون را پیاده میکند. ستونهایِ وابسته و ستونِ اولِ صفر را در دو آزمونِ واقعی رد میکند. آستانهٔ مطلقِ۱۰بهتوانِ−۱۲ متناسب با مقیاسِ همین تمرین است؛ قاعدهٔ تشخیصِ رتبه برایِ همهٔ دادهها نیست. رویِ ستونهایِ نزدیکوابسته، خطایِ ممیزشناور میتواند تعامد را خراب کند.
NumPy در پیادهسازیِ مستندشده از روتینهایِ LAPACK و نمایشِ Householder استفاده میکند. ما آن کتابخانه را اجرا نکردهایم و سرعت یا پایداریِ همسان ادعا نمیکنیم. شکلِ کاهشیافته و رابطهٔ QR مرجعاند؛ فرایندِ محدودِ این فایل برایِ دیدنِ مرحلههاست.
این راهنما را کجا ادامه بدهیم؟
رگرسیونِ خطیِ دستی فرمولِ شیب و عرض از مبدأ را دارد؛ اینجا پایهٔ متعامد و حلِ مثلثیِ دستگاهِ بلند موضوع است. در PCA هدف انتخابِ محورهایِ واریانس است، نه همین عاملسازی. برایِ نیازِ واقعیِ پاسخگوییِ مشتری، ورودی و معیارِ پذیرش را در راهکارهایِ اپرا مطرح کنید؛ مثالِ عددی، قابلیتِ محصول یا نتیجهٔ مشتری را اثبات نمیکند.
فایل تمرین و منبع
ساختِ Q و R و حلِ مثلثیِ واقعی؛ Python · عاملها، بازسازی و باقیماندهٔ عمود بر ستونها
منابع در 2026-11-04 خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثالها و فایلهای این راهنما آموزشی و ساختهٔ تحریریهاند.