mode='r' يعيد R وحدها؛ النمط reduced يعيد زوجًا له Q وR. [1]
نمط الإرجاع يحدد ما نستقبل
mode='r' يعيد R وحدها؛ النمط reduced يعيد زوجًا له Q وR. [1]
لا نحكم على عدد المخرجات من عدد الأسماء التي نكتبها على اليسار. في توثيق qr، يوجد فرق صريح بين R وحدها وزوج العاملين. [1]
سنثبت المدخل ونغير نمط الإرجاع فقط، ثم نكتب شكل القيم الناتجة. الهدف فهم نتيجة هذا الإسناد، دون تعميم خيارات أو دقة التحليل.
إسناد ناجح وقيم مختلفة
إسناد التسلسل لمتغيرين يتطلب عنصرين؛ أسماء المتغيرات لا تختار العاملين. [2]
في مثالنا على NumPy 2.3.5، خرج r مصفوفة 2×2؛ إسنادها لمتغيرين يعطي [2,5] و[0,3]، دون خطأ.
import numpy as np A=np.array([[2,5],[0,3],[0,0]],dtype=np.float64) only=np.linalg.qr(A,mode='r') wrongq,wrongr=only print(type(only).__name__,only.shape) print(wrongq,wrongr)
الخرج only هو [[2,5],[0,3]] من نوع ndarray. القيمتان المسندتان متجهان أحاديا البعد، شكل كل منهما (2,). الأولى الصف الأول لهذا الخرج، والثانية الصف الثاني. تغيير اسميهما إلى Q وR لا يغير محتواهما.
لفهم الرقمين، يمكن حساب حاصل ضرب صفَّي مصفوفتنا المكتوبين مباشرة: 2×0+5×3=15. هذا حساب أصلي مستقل عن تسمية المتغيرين.
راجع حاصل الضرب الصحيح
ضرب هذين المتجهين يعطي العدد 15، لا A. الإسناد نجح، لكنه لم يعط العاملين.
pair=np.linalg.qr(A) Q,R=pair print(type(pair).__name__) print(Q.shape,R.shape) print(Q@R)
في النمط الافتراضي لهذا التشغيل، pair من نوع QRResult. Q شكلها (3,2)، وR شكلها (2,2). القيم الملاحظة لـQ هي [[1,0],[0,1],[0,0]]، مع احتمال عرض الصفر بإشارة سالبة؛ R هي [[2,5],[0,3]].
ضرب العاملين يعطي [[2,5],[0,3],[0,0]]، مساويًا لـA. نتحقق مستقلًا: الصف الأول من Q يختار الصف الأول من R، والثاني يختار الثاني، والثالث يعطي صفًا صفريًا. لم يعد حاصل الضرب عددًا منفردًا.
هذه عوامل صريحة لهذا المدخل. لا نستنتج منها أن كل تنفيذ أو كل مدخل يختار الإشارات نفسها لعوامل QR.

ثلاثة صفوف تكشف اختلاف العدد
تحكم: خرج r لمصفوفة B أدناه له ثلاثة صفوف؛ تفكيكه لمتغيرين يطلق ValueError. النمط reduced للمثال الأصلي يعيد عاملين يعيد ضربهما A.
B=np.array([[2,0,0],[0,3,0],[0,0,4]],dtype=np.float64) br=np.linalg.qr(B,mode='r') u,v=br # ValueError in this control
في التحكم، br هي المصفوفة القطرية B نفسها بشكل (3,3). لا تنتج العملية زوج عوامل؛ محاولة الإسناد إلى اسمين فشلت هنا. هذا يختلف عن النجاح الصامت مع صفين في المثال الأول.
قاعدة تفكيك التسلسل العادي تربط عدد المتغيرات بعدد عناصر التسلسل. [2]
نستقبل خرج r في متغير واحد؛ نستقبل العاملين عند اختيار reduced. [1]
الفحص السابق لا يشمل raw أو المصفوفات المركبة أو الدفعات؛ شغلنا مصفوفات float64 صغيرة على NumPy 2.3.5 وCPython 3.12.14. بقي المدخلان دون تغيير.
| الاستقبال | النوع | الشكل أو النتيجة |
|---|---|---|
| only | ndarray | (2,2) |
| wrongq وwrongr | متجهان | (2,) لكل منهما |
| wrongq@wrongr | عدد | 15 |
| pair | QRResult | Q:(3,2)، R:(2,2) |
| u,v=br | خطأ | ValueError |
للتوسع: أنواع المصفوفات.
المراجع
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
