SVD تفكك المصفوفة إلى U وقطر القيم وVh. [1] في مثالنا، تساوي القيم يسمح بتغيير الاتجاهات مع حفظ المصفوفة.
القيم والعوامل شيئان مختلفان
SVD تفكك المصفوفة إلى U وقطر القيم وVh. [1] في مثالنا، تساوي القيم يسمح بتغيير الاتجاهات مع حفظ المصفوفة.
توثق SVD إعادة البناء U@diag(s)@Vh. في حالتنا الحقيقية المربعة، العاملان متعامدان والقيم مرتبة تنازليًا. [1]
نختار مصفوفات حقيقية 2×2 ذات قطر موجب، ونكتب Vh بوصفها العامل الأيمن المعاد نفسه. نحتفظ بترتيب القيم وعواملها في كل حاصل. السؤال هو هل توجد عوامل أخرى صالحة لنفس المصفوفة، لا أين توجد صفوف أو أعمدة في الخرج.
قد تختلف علامات متجه واحد دون تغير الاتجاه الذي يصفه. سنبني تغييرًا أقوى: عمود يجمع مركبتين غير صفريتين من الأساس الأصلي. ثم نختبر شرطًا يجعل هذا المزج يحفظ المصفوفة، وتحكمًا لا يحفظها.
كل الأعداد هنا مؤلفة بلا وحدات أو بيانات تجريبية. لا نقيس تفوق اتجاه أو ملاءمته لتفسير ظاهرة؛ نراجع هوية تحليل لمصفوفة محددة.
زوج متساو يسمح بالمزج
شغّلنا NumPy 2.3.5 وCPython 3.12.14 على A=3I₂ من float64. أعادت SVD القيم [3,3] والعاملين U=Vh=I₂ في هذا التشغيل.
import numpy as np A=3*np.eye(2,dtype=np.float64) U,s,Vh=np.linalg.svd(A,full_matrices=False) W=np.array([[3/5,-4/5],[4/5,3/5]],dtype=np.float64) U2=U@W Vh2=W.T@Vh B=(U2*s)@Vh2
نختار W=[[3/5,−4/5],[4/5,3/5]]. تغيير العاملين إلى U₂=UW وVh₂=WᵀVh يعطي حاصلًا يوافق A بتسامح مطلق 10⁻¹²؛ العمود الجديد يمزج الاتجاهين، فلا يقتصر التغيير على إشارة عمود.
العمودان في W هما (3/5,4/5) و(−4/5,3/5). مربع طول كل منهما 9/25+16/25=1، وجداؤهما الداخلي −12/25+12/25=0. إذن WᵀW=I₂ في الحساب الكسري الدقيق.
المصفوفة القطرية في المثال هي 3I₂. لذلك W(3I₂)Wᵀ=3WWᵀ=3I₂. وبإدخال العاملين الأصليين، يصبح UW(3I₂)WᵀVh=U(3I₂)Vh=A. هذا برهان لهوية التغيير المختار، لا مجرد موافقة تشغيلين عدديين.
كما يبقى U₂ متعامدًا لأن U₂ᵀU₂=WᵀUᵀUW=I₂. ويبقى العامل الأيمن متعامدًا بالطريقة نفسها. لم نحفظ حاصل الضرب عبر عوامل تفقد شرط التعامد.
في تشغيلنا كان U₂=W وVh₂=Wᵀ لأن الأصلين I₂. العمود الأول الجديد (0.6,0.8) يختلف عن (1,0) وعن سالبها، والثاني (−0.8,0.6) يختلف عن (0,1) وعن سالبها. لدينا اتجاهان آخران متعامدان، مع القيمتين نفسيهما والمصفوفة نفسها.
سجل الحاصل العددي قطرًا 3.0000000000000004، وخارج قطر قريبًا من 10⁻¹⁶ بإشارتين مختلفتين. لا نكتب إنه مطابق حرفيًا للأصفار والعدد 3؛ المرجع الكسري يعيدها بدقة، والتشغيل وافقها ضمن التسامح.
قيم غير متساوية وتحكم الإشارة
للمصفوفة ذات القطر 5 و2، التغيير نفسه يعطي [[77/25,36/25],[36/25,98/25]]، مختلفًا عن الأصل. تبقى قيمه المفردة [5,2] في التشغيل؛ تساوي القيم بين مصفوفتين لا يثبت تساويهما.
T=np.array([[5.,0.],[0.,2.]],dtype=np.float64) Ut,st,Vht=np.linalg.svd(T,full_matrices=False) C=((Ut@W)*st)@(W.T@Vht)
لأي قطر D=diag(p,q) في حسابنا، تعطي WDWᵀ الخانات c²p+s²q وcs(p−q) وs²p+c²q، حيث c=3/5 وs=4/5. عند p=5 وq=2، العليا اليسرى 45/25+32/25=77/25، وخارج القطر 12/25×3=36/25، والسفلى اليمنى 80/25+18/25=98/25.
سجل التشغيل C تقريبًا [[3.08,1.44],[1.44,3.92]]. الخانات خارج القطر ليست صفرًا، فلا يعيد هذا الحاصل T. ومع ذلك سجلت SVD لـC القيم [5,2]؛ هذا تحكم يبين أن قائمة القيم وحدها ليست وصفًا كاملًا للمصفوفة.
سبب حفظ المثال الأول واضح من الحساب: عندما p=q، يختفي فرق القيم في خارج القطر، ويصبح القطر العدد نفسه لأن c²+s²=1. عندما اختلفتا في التحكم، لم نستطع إلغاء الدوران عبر القطر كما فعلنا مع 3I₂.
هذا لا يعني أن كل تغيير للعوامل ممنوع عند قيم مختلفة. نختار F=diag(−1,1): ضرب U في F وضرب Vh في F من اليسار يحفظ الحاصل، لأن FDF=D لأي قطر في حالاتنا. أما تغيير U وحدها فيقلب أول عنصر قطري إلى السالب ويفشل إعادة الأصل.
للأساس 3I₂، أعاد تغيير الإشارة المقترن [[3,0],[0,3]]، وتغيير الطرف الأيسر وحده أعاد [[−3,0],[0,3]]. الإشارة تحكم ثانوي؛ السؤال الجديد هو حرية مزج اتجاهين في كتلة قيم متساوية، لا اشتراط علامة واحدة لكل متجه.

ما الذي فحصناه فعليًا؟
مرت 200 مقارنة على المثال و24 حالة قطرية موجبة مؤلفة، بمرجع Fraction مستقل. هذه عوامل بديلة أنشأناها، وليست مقارنة بين محللين أو إثباتًا لعدم حتمية تنفيذ المكتبة.
الحالات القطرية هي (1,1) و(3,3) و(7,7) و(5,2) و(7,1) و(4,3). لكل زوج نختار (c,s) من (1,0) و(0,1) و(3/5,4/5) و(5/13,12/13). كلها تحقق c²+s²=1 بالكسور، فلدينا 6×4=24 حالة، إضافة إلى المثال الأساسي.
ثماني مجموعات فحص لكل حالة: القيم المفردة؛ العوامل الأصلية وإعادة البناء والأشكال والأنواع وثبات المدخل؛ تعامد W؛ تعامد العاملين بعد التغيير؛ الحاصل مقابل الصيغة الكسرية؛ هل بقيت المصفوفة نفسها؛ قيم الحاصل المفردة كتحكم؛ ثم تغيير إشارة الطرفين مقابل طرف واحد. الإجمالي 25×8=200.
حسب المرجع Wdiag(p,q)Wᵀ مباشرة باستخدام Fraction، والتحقق c²+s²=1 دقيق. لا يستدعي هذا الحساب SVD أو eig أو norm لإنتاج المتوقع. إعادة تحليل الحاصل تشغيل ثانوي يراجع القيم، وليست المصدر الوحيد للجواب.
في التشغيل المحدد كانت عوامل جميع الأقطار الأصلية I₂، وفحصنا ذلك كشرط لسجلنا. لا ندعي أن مكتبة أو جهازًا آخر سيختار تلك العوامل نفسها. المقارنة العددية بتسامح مطلق 10⁻¹² ونسبي صفر؛ المصفوفات والنتائج float64، وبقيت بايتات المدخلات الأصلية.
في الدوران (0,1) تتبادل قيم القطر غير المتساوية، فيتغير الأصل رغم اختفاء خارج القطر. أما (1,0) فليس مزجًا أصلًا ويحفظ كل حالة. لذلك لا نحول عبارة «قيم مختلفة» إلى منع لكل مصفوفة تغيير، ولا نستدل من تعامد W وحده على حفظ الحاصل.
لم نفحص قيمًا شبه متساوية أو صفرية، أو مداخل مركبة ومستطيلة ودفعات وغير منتهية، أو ثبات الاتجاهات تحت اضطراب أو زوايا فضاءات جزئية أو أداءً ومشاركة ذاكرة. المثال يثبت وجود تحليل بديل لكتلة متساوية، ويكشف فشل التغيير المختار عند اختلافها، ضمن الشروط المعلنة.
| القطر | التغيير | يحفظ الأصل؟ |
|---|---|---|
| 3 و3 | W مع Wᵀ | نعم |
| 5 و2 | W مع Wᵀ | لا |
| 3 و3 | F في الطرفين | نعم |
| 3 و3 | F في U فقط | لا |
للتوسع: أنواع المصفوفات.
المراجع
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
