σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyخرائط الطريقالمسارات
Ctrl K
AO
+1.2k متعلّم
تسجيل الدخولانضم ↗
خرائط الطريقالمسارات
AO
+1.2k متعلّم
تسجيل الدخول
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyخرائط الطريقالمسارات
Ctrl K
AO
+1.2k متعلّم
تسجيل الدخولانضم ↗
خرائط الطريقالمسارات
AO
+1.2k متعلّم
تسجيل الدخول
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
مسار SciPy›الوحدة 3 · المصفوفات والإشارات والبنية›الموضوع 3.2·~45 دمتوسط

المصفوفات المتفرقة

الموضع في المسارالوحدة 3 من 3 · الموضوع 2 من 5
3.2 المصفوفات المتفرقة
—درجة المختبر— / 100إجمالي XP—التتابع—

خزّن فقط ما ليس صفرًا

كثير من المصفوفات الكبيرة أصفار تقريبًا. شبكة تسعير خيار فيها صف لكل مستوى سعر ويلمس كل صف جاريه فقط. تسمى مثل هذه المصفوفة متفرقة. وتخزين كل صفر يهدر الذاكرة والوقت. تحتفظ scipy.sparse بالعناصر غير الصفرية فقط. وتستعمل الصيغة csr_matrix (الصف المتفرق المضغوط) ثلاث قوائم. تحمل data القيم غير الصفرية صفًا صفًا، وتحمل indices عمود كل قيمة، وتبين indptr أين يبدأ كل صف وينتهي داخل data: الصف iii هو data[indptr[i]:indptr[i+1]]. وآخر رقم في indptr هو عدد غير الأصفار nnz.

تناسب الصيغ المختلفة أعمالًا مختلفة. تخزن coo_matrix ثلاثيات بسيطة (صف وعمود وقيمة) وهي الطريقة السهلة لبناء مصفوفة. وتسرع csr_matrix في قص الصفوف وفي الجداء AxA\mathbf xAx الذي يكلف نحو nnz عملية ضرب بدل n2n^2n2. وcsc_matrix الفكرة نفسها بالأعمدة، وdia_matrix تخزن الأقطار وهي مثالية للمصفوفات الشريطية. ولنظام Ax=bA\mathbf x=\mathbf bAx=b تستفيد sparse.linalg.spsolve من الأصفار فتكون أسرع بكثير من الحل الكثيف. وليس التفرق أفضل دائمًا: إذا زادت العناصر غير الصفرية على الثلث تقريبًا كلّف الحساب الإضافي أكثر مما يوفر. وفي المالية يظهر التفرق في شبكات التسعير وفي نماذج العوامل التي أغلب تحميلاتها صفر وحين تحتفظ بالارتباطات القوية فقط.

Ax costs ≈nnz multiplications,density=nnzn2,row i=data[indptr[i]:indptr[i+1]]A\mathbf x\ \text{costs}\ \approx \mathrm{nnz}\ \text{multiplications},\qquad \text{density}=\frac{\mathrm{nnz}}{n^{2}},\qquad \text{row } i=\texttt{data}[\texttt{indptr}[i]:\texttt{indptr}[i+1]]Ax costs ≈nnz multiplications,density=n2nnz​,row i=data[indptr[i]:indptr[i+1]](1)
قراءة مصفوفة CSRلنأخذ المصفوفة 4×44\times44×4 بصفوفها (5,0,0,1)(5,0,0,1)(5,0,0,1) و(0,0,2,0)(0,0,2,0)(0,0,2,0) و(0,0,0,0)(0,0,0,0)(0,0,0,0) و(3,0,0,4)(3,0,0,4)(3,0,0,4). في CSR تكون data=[5,1,2,3,4] وindices=[0,3,2,0,3] وindptr=[0,2,3,3,5]. الصف 222 فارغ لأن indptr[2]=indptr[3]=3 وnnz=5. والضرب في (1,1,1,1)(1,1,1,1)(1,1,1,1) يجمع كل صف فيعطي (6,2,0,7)(6,2,0,7)(6,2,0,7) بـ555 عمليات ضرب فقط. ولمصفوفة ثلاثية القطر بـn=1000n=1000n=1000 كشبكة تسعير بالفروق المنتهية 2,9982{,}9982,998 عنصرًا غير صفري من أصل 1,000,0001{,}000{,}0001,000,000 أي كثافة 0.30%0.30\%0.30%. وتحتاج نحو 404040 كيلوبايت في CSR مقابل 888 ميغابايت كثيفة. وفي بيانات حقيقية تشكل ارتباطات 555555 سهمًا من ملف الأسعار المشترك مصفوفة 55×5555\times5555×55. والاحتفاظ بالعناصر ذات ∣ρ∣>0.5|\rho|>0.5∣ρ∣>0.5 فقط يُبقي 249249249 من 3,0253{,}0253,025 أي 8.2%8.2\%8.2% وتأخذ نسخة CSR 3.23.23.2 كيلوبايت مقابل 24.224.224.2 كثيفة. وعند ∣ρ∣>0.6|\rho|>0.6∣ρ∣>0.6 يبقى 4.3%4.3\%4.3% فقط.
  • ثلاث قوائم: data وindices وindptr تصف مصفوفة CSR، وindptr[-1] هو عدد غير الأصفار.
  • ابنِ بـ COO واحسب بـ CSR: الثلاثيات سهلة التجميع والتخزين بالصفوف سريع للجداءات والحلول.
  • التفرق يفيد فقط إذا كان أغلبها أصفارًا: المصفوفة الكثيفة أفضل حين تكثر العناصر غير الصفرية.

المختبر: ما الذي يُقيَّم

  • عدّ غير الأصفار10 نقطة
  • كم قيمة في صف10 نقطة
  • كثافة شبكة10 نقطة
  • جداء متفرق15 نقطة
  • أي صيغة لأي عمل15 نقطة
  • نظام ثلاثي القطر10 نقطة
  • متى يفيد التفرق ومتى لا30 نقطة
0/ 7 تمت الإجابة
المهام
1إجابة رقمية10 نقطةبلا إجابة

لمصفوفة CSR القيمة indptr=[0,2,3,3,5]. كم تساوي nnz أي عدد القيم غير الصفرية المخزنة؟

n=n =n=المقبول: ± 0.01
2إجابة رقمية10 نقطةبلا إجابة

مع indptr=[0,2,3,3,5] كم قيمة مخزنة في الصف 333 (الأخير بالعدّ من 000)؟ هي indptr[4]-indptr[3].

k=k =k=المقبول: ± 0.01
3إجابة رقمية10 نقطةبلا إجابة

لمصفوفة تسعير ثلاثية القطر بـn=1000n=1000n=1000 عدد 2,9982{,}9982,998 عنصرًا غير صفري من 1,000,0001{,}000{,}0001,000,000. ما الكثافة بالمئة؟ أعط منزلتين عشريتين.

d=d =d=المقبول: ± 0.01
4إجابة رقمية15 نقطةبلا إجابة

للمصفوفة ذات الصفوف (5,0,0,1)(5,0,0,1)(5,0,0,1) و(0,0,2,0)(0,0,2,0)(0,0,2,0) و(0,0,0,0)(0,0,0,0)(0,0,0,0) و(3,0,0,4)(3,0,0,4)(3,0,0,4) كم تساوي آخر مركّبة في AxA\mathbf xAx عندما x=(1,1,1,1)\mathbf x=(1,1,1,1)x=(1,1,1,1)؟

y=y =y=المقبول: ± 0.01
5مطابقة15 نقطةبلا إجابة

طابق كل صيغة متفرقة بالعمل الذي يناسبها أكثر.

اختر مقابل كل عنصر في اليسار.

coo_matrix
csr_matrix
csc_matrix
dia_matrix
6اختيار10 نقطةبلا إجابة

عليك حل نظام ثلاثي القطر بـn=100,000n=100{,}000n=100,000 مجهول في كل خطوة زمنية من شبكة تسعير. ما الاختيار المعقول؟

7اشرح بكلماتك30 نقطةبلا إجابة

اشرح في جملة أو جملتين لماذا توفر الصيغة المتفرقة الذاكرة والوقت لمصفوفة أغلبها أصفار، ولماذا قد تخسر أمام المصفوفة الكثيفة حين تكون أغلب العناصر غير صفرية.

وضع الرياضياتإدخال بلوحة المفاتيح أو LaTeXالمهمة 1 من 7 · Ctrl ⏎ للتحقق

سجّل الدخول لتشغيل الكود الخاص بك.

قراءة كل المحاضرات مجانية. أنشئ حسابًا أو سجّل الدخول لتشغيل الكود وتنفيذ الاختبارات وتسليم هذا المختبر.

  • بيئة تطوير داخل المتصفح مع طرفية bash — لا حاجة لتثبيت أي شيء
  • تصحيح فوري ونقاط خبرة ومكانك في المسار
إنشاء حسابتسجيل الدخول
أو
المتابعة عبر GitHub