خيار p يحدد الحساب في cond؛ الافتراضي يستخدم معيار 2 وحساب SVD. [1]
اقرأ خيار الحساب مع النتيجة
خيار p يحدد الحساب في cond؛ الافتراضي يستخدم معيار 2 وحساب SVD. [1]
يضع جدول التوثيق القيمة 2 مع أكبر قيمة مفردة، و−2 مع أصغر قيمة مفردة؛ ويعرّف الحساب بحاصل ضرب المقدار للمصفوفة ومعكوسها. [1]
هذه خانات تصف الاختيار داخل الحساب. نختبر مدخلًا قطريًا ونقارن الخرج بقيمه المفردة نفسها، بدل نقل وصف خانة في الجدول إلى تفسير عدد مطبوع.
لا نطبق على النتائج المختلفة قاعدة تفسير واحدة من دون ذكر p. سنسجل المدخل والنوع، ثم نضيف مضاعفةً للمقياس وتحكمًا منفردًا.
مصفوفة قطرية ونسبتان
في تشغيلنا، A ذات القطر 3 و12 أعطت cond(A)=4 وcond(A,p=-2)=0.25؛ أصغر قيمة مفردة فيها 3.
لأعداد المثال، النسبة الكبرى إلى الصغرى 12/3=4، والنسبة العكسية 3/12=0.25؛ اختلاف الناتجين مرتبط باختيار p.
import numpy as np A=np.array([[3.,0.],[0.,12.]],dtype=np.float64) s=np.linalg.svd(A,compute_uv=False) a=np.linalg.cond(A) b=np.linalg.cond(A,p=2) c=np.linalg.cond(A,p=-2)
يمكن طلب القيم المفردة دون المتجهات باستخدام compute_uv=False؛ وتعرض SVD القيم المفردة بترتيب تنازلي. [2]
على NumPy 2.3.5 وCPython 3.12.14، كانت s=[12.0,3.0] من float64 بالشكل (2,). كانت a وb وc أعدادًا من numpy.float64 بالشكل ()؛ a=b=4.0، وc=0.25. بقيت بايتات A كما كانت.
AᵀA=diag(9,144)؛ جذور القيم الذاتية تعطي القيم المفردة 12 و3. [2] معكوس A=diag(1/3,1/12)، ومنه حاصل الأكبرين 4 والأصغرين 1/4.
حسبنا هذه الكسور من المدخل نفسه؛ لم نستخدم cond لإنتاج المتوقع. لا تساوي 0.25 القيمة 3 في هذه المصفوفة، ولا نبدل أسماء المقدارين لمجرد ورود عبارة «أصغر قيمة مفردة» بجوار −2 في الجدول.
ضاعف القيم وراجع ما يبقى
مضاعفة القطر إلى 6 و24 أبقت الناتجين 4 و0.25، بينما صارت أصغر قيمة مفردة 6.
B=np.array([[6.,0.],[0.,24.]],dtype=np.float64) np.linalg.svd(B,compute_uv=False) np.linalg.cond(B) np.linalg.cond(B,p=2) np.linalg.cond(B,p=-2)
في التشغيل، القيم المفردة [24.0,6.0]؛ الخرج الافتراضي وخرج p=2 يساويان 4.0، وخرج p=-2 يساوي 0.25. تغير مقدار القيم المفردة، ولم تتغير النسب في هذين المدخلين.
نفحص الأعداد مباشرة: 24/6=4 و6/24=1/4. لو كان الرقم 0.25 هنا هو أصغر قيمة مفردة نفسها، لوجب أن يوافق 6؛ لكنه لا يوافقها. هذا تحكم يكشف الفرق بين مقدار القيمة ونسبة قيمتين.
B مدخل مستقل عن A، وصيغتهما float64 وأبعادهما 2×2. لا نغير صفًا أو عمودًا وحده، ولا نستنتج من هذه المضاعفة نتيجة لجميع طرق تغيير المصفوفة.

تحكم منفرد وحدود التحقق
تحكم منفرد: القطر 3 و0 أعطى inf مع الافتراضي وp=2، وصفرًا مع p=-2؛ ننقل هذه النتائج ضمن نطاق تشغيلنا.
S=np.array([[3.,0.],[0.,0.]],dtype=np.float64) with np.errstate(divide="ignore",invalid="ignore"): d=np.linalg.cond(S) e=np.linalg.cond(S,p=2) f=np.linalg.cond(S,p=-2)
في هذا التشغيل d=e=inf، وf=0.0؛ وأعادت SVD القيم [3.0,0.0]. استخدم الفحص errstate للتحكم في تحذيرات الحساب ضمن الكتلة، ولا نستعمله لإثبات صلاحية معكوس للمصفوفة.
S لا تملك معكوسًا: تضرب المتجه غير الصفري (0,1) في الصفر. لذلك لا نطبق عليها برهان الكسور الخاص بالقطر الموجب في القسم السابق. نسجل الخرج الفعلي منفصلًا عن ذلك البرهان.
لا نقرأ الصفر في f كأنه جواب الخرج الافتراضي؛ العملية المحددة بخيارها جزء من السجل. وجود عدد مطبوع وحده لا يحدد المقدار الذي طلبناه.
فحصنا 27 حالة قطرية موجبة: العنصر الأول من 1 و3 و8، والثاني من 2 و4 و12، والمضاعف من 1/2 و1 و2. أضفنا A وB والتحكم S؛ مرت 236 مقارنة للأنواع والأشكال والقيم والنسب وثبات المدخل.
المتوقع للحالات الموجبة مشتق بكسور Fraction؛ استخدمنا سماحية نسبية ومطلقة 10⁻¹³ لمقارنة القيم المحسوبة. بقي الفحص ضمن مصفوفات float64 قطرية 2×2. لم نفحص مداخل مركبة أو مستطيلة أو دفعات، ولم نختبر أداءً أو نقرر ضمانًا عامًا للدقة.
| القطر | أصغر قيمة مفردة | cond الافتراضي وp=2 | cond مع p=-2 |
|---|---|---|---|
| 3 و12 | 3 | 4 | 0.25 |
| 6 و24 | 6 | 4 | 0.25 |
| 3 و0 | 0 | inf | 0 |
للتوسع: أنواع المصفوفات.
المراجع
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
