dynsys_poincare_section — MATH dynsys op

• Data kinds: table → pairs

• Call: import fullseye as fs; fs.ledger.dynsys_poincare_section(states, axis=2, value=None, direction=1) (implementation को सीधे call करना हो तो import mathops; mathops.dynsys_poincare_section(states, axis=2, value=None, direction=1), registry से लेना हो तो opsmath.get("dynsys_poincare_section"))

उपयोग

जहाँ trajectory किसी plane को पार करती है — crossing point को interpolate करके।

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

Takes the x block of ode_flow_states and returns the points where coordinate *axis* crosses *value* in the given *direction* (+1 upward, -1 downward, 0 either). The crossing is found by linear interpolation between the two straddling samples, not by taking the nearer sample — otherwise the section is quantised by the step size and a periodic orbit looks like a cloud.

★Why this earns its place: a periodic orbit must give one point (to within the interpolation error), a period-2 orbit two, and a chaotic one a fractal set. That is a check with a number in it, unlike "the picture looks like a strange attractor".

Returns a pairs array of the remaining coordinates at each crossing.

Raises ValueError: states not (S, n) with S >= 2; axis out of range; direction not in (-1, 0, 1); non-finite input; no crossing found (reported, not returned as an empty array that a caller may read as "no orbit").

पूरी 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 जुड़ता है (pairs को input के रूप में लेते हैं)

neighbour_index_gaps · curve_locality

इसी category के (dynsys)

ode_flow_states · ode_vector_field_grid · dynsys_lyapunov_spectrum · dynsys_bifurcation_map · dynsys_correlation_dimension


*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.