dynsys_correlation_dimension — MATH dynsys op

• Data kinds: points → measurement

• Call: import fullseye as fs; fs.ledger.dynsys_correlation_dimension(points, n_radii=24, r_lo=None, r_hi=None, max_points=4000, seed=0) (implementation को सीधे call करना हो तो import mathops; mathops.dynsys_correlation_dimension(points, n_radii=24, r_lo=None, r_hi=None, max_points=4000, seed=0), registry से लेना हो तो opsmath.get("dynsys_correlation_dimension"))

उपयोग

Grassberger-Procaccia correlation dimension — log C(r) का slope।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

C(r) is the fraction of point pairs closer than r; for a self-similar set it grows like r**D, and *D* is read off the straight part of the log-log plot (fitted on the middle 60 % of the radii, where the curve is free of the small-r noise floor and the large-r saturation).

★Why this earns its place: unlike box counting it needs no grid, and its answers are known for simple sets — a circle gives 1, a filled square 2, a Cantor set log2/log3 = 0.6309. It measures a different quantity from the existing fractal_dimension (box counting), so the two are an independent pair rather than two names for one number.

Returns a measurement: the fitted dimension.

Raises ValueError: fewer than 32 points; not a 2-D array; non-finite input; a degenerate cloud (every point identical); a radius range that leaves no pairs.

Limits: sub-sampled to *max_points* (pairs grow quadratically). ★The dominant error is not the sub-sampling but the radius window: the default range is the 1st-25th percentile of pair distances, and on a *bounded* set its upper end runs into the boundary, where C(r) saturates and flattens the slope. Measured on a unit square (true D = 2): 1.879 with the default window and 1.873 / 1.879 / 1.871 at 400 / 1,500 / 3,000 points —— more points do not help; narrowing the window to r_lo=0.01, r_hi=0.1 gives 1.947 and 0.002 / 0.05 gives 2.050. Pass *r_lo* / *r_hi* explicitly when the answer matters, and report the window with the number.

पूरी family का input contract (fail-closed)

mathops के सभी ops गणना से पहले input की जाँच करते हैं (कुछ भी चुपचाप पास नहीं होता):

• complex input से ValueError — float64 में ज़बरदस्ती बदलने पर imaginary part चुपचाप छूट जाता है (numpy केवल ComplexWarning देता है और "सही दिखने वाला पर गलत" real number लौटाता है)। .real/.imag/abs() स्पष्ट रूप से लिखें, या complex data संभालने वाले complexops का उपयोग करें।

• masked array (masked elements वाला) से ValueError — mask हटाकर नीचे के raw values इस्तेमाल करने वाला implicit conversion अस्वीकार है। भरना है या हटाना है, यह स्पष्ट रूप से बताएँ।

• हर input पर NaN/Inf से ValueError (गिनती बताकर अस्वीकार — क्योंकि यह पूरे परिणाम में फैल जाता है)।

• Shape सख़्त है: 1-D और 2-D को implicit रूप से promote या broadcast नहीं किया जाता (vector slot में matrix या matrix slot में vector देने पर ValueError; reshape स्पष्ट रूप से करें)।

• Size की सीमा: matrix लेने वाले ops और stat_histogram के bins, mathops.MAX_ELEMENTS (2^26 ≈ 6.7 करोड़ elements) से अधिक होने पर ValueError देते हैं।

उपयोग की विस्तृत guide

• math_metrology family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_what_a_picture_cannot_check — py -3.11 examples/poc_what_a_picture_cannot_check.py

वे अगले ops जिनसे type जुड़ता है (measurement को input के रूप में लेते हैं)

—

इसी category के (dynsys)

ode_flow_states · ode_vector_field_grid · dynsys_poincare_section · dynsys_lyapunov_spectrum · dynsys_bifurcation_map


*Provenance: mathops.py — MATH operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.