wave_mode_frequencies — MATH wave op

• Data kinds: कोई नहीं → signal (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: import fullseye as fs; fs.ledger.wave_mode_frequencies(kind='rectangular', count=10, aspect=1.0) (implementation को सीधे call करना हो तो import mathops; mathops.wave_mode_frequencies(kind='rectangular', count=10, aspect=1.0), registry से लेना हो तो opsmath.get("wave_mode_frequencies"))

उपयोग

membrane की eigenvalue ladder — एक closed form जिससे आप जाँच कर सकते हैं।

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

kind="rectangular": the Dirichlet eigenvalues of a rectangle are pi**2 * (m**2 + n**2 / aspect**2) for m, n >= 1 — not m n pi, which is the usual slip. kind="circular": the free-edge (Neumann) circular membrane's eigenvalues are the squares of the zeros of J'_m.

★Why this earns its place: this ladder is what separates a membrane from a plate, and it is exactly computable. The square drum's ratios start 2, 5, 5, 8, 10, 10, 13 (in units of pi**2) — the repeated 5 and 10 are the famous degeneracies that make the square drum's modes ambiguous, and a wrong implementation loses them.

Returns a signal: the eigenvalues, ascending.

Raises ValueError: unknown kind; non-positive count or aspect; a circular request without scipy.

पूरी 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_beats_fringes_and_screens — py -3.11 examples/poc_beats_fringes_and_screens.py

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

mat_solve · mat_lstsq · stat_describe · stat_histogram · stat_zscore · interp_linear · interp_cubic · interp_scattered

इसी category के (wave)

wave_membrane_mode · wave_nodal_lines · wave_two_slit · wave_fringe_period · wave_grating_orders


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