339ad8e924
Papers: - phi_harmonic_energy_quantization_paper.md - kolmogorov_turbulence_paper.md - turing_pattern_paper.md (abstract fixed: geometric scaling, not power-of-2) - four_forces_hypothesis.md Scripts: - beast-build/phi_harmonic_mapping.py - beast-build/fractal_echo_hunt.py - beast-build/kolmogorov_test.py - beast-build/turing_analysis.py - beast-build/four_forces_analysis.py Data: - phi_harmonic_spectrum.csv (3 energy levels) - beast-build/sweep_results.csv (272 records)
190 lines
6.5 KiB
Python
190 lines
6.5 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Find the fractal echo - hydrogen series in coherence/asymmetry patterns
|
|
Look for self-similar ratios like we did with periodic table
|
|
"""
|
|
import csv
|
|
import math
|
|
|
|
PHI = 1.618033988749895
|
|
|
|
def load_sweep_data():
|
|
"""Load sweep data."""
|
|
data = []
|
|
with open('/mnt/d/Resonance_Engine/beast-build/sweep_results.csv', 'r') as f:
|
|
reader = csv.DictReader(f)
|
|
for row in reader:
|
|
if row['value'] == 'value':
|
|
continue
|
|
try:
|
|
data.append({
|
|
'parameter': row['parameter'],
|
|
'value': float(row['value']),
|
|
'coh_mean': float(row['coh_mean']),
|
|
'asym_mean': float(row['asym_mean']),
|
|
'vort_mean': float(row['vort_mean'])
|
|
})
|
|
except:
|
|
continue
|
|
return data
|
|
|
|
def find_fractal_echo(values, name):
|
|
"""Look for self-similar ratios in a list of values."""
|
|
print(f"\n=== {name} FRACTAL ECHO ANALYSIS ===")
|
|
|
|
# Sort and get unique values
|
|
unique_vals = sorted(set(values))
|
|
print(f" {len(unique_vals)} unique values")
|
|
|
|
# Check all pairs for harmonic ratios
|
|
harmonic_ratios = []
|
|
for i, v1 in enumerate(unique_vals):
|
|
for v2 in unique_vals[i+1:]:
|
|
if v1 == 0:
|
|
continue
|
|
ratio = v2 / v1
|
|
|
|
# Check for hydrogen series ratios
|
|
hydrogen_targets = {
|
|
'Lyman-\u03b1 (2\u21921)': 0.75,
|
|
'Lyman-\u03b2 (3\u21921)': 0.888889,
|
|
'Balmer-\u03b1 (3\u21922)': 0.138889,
|
|
'Balmer-\u03b2 (4\u21922)': 0.1875,
|
|
'Paschen-\u03b1 (4\u21923)': 0.048611,
|
|
}
|
|
|
|
for h_name, target in hydrogen_targets.items():
|
|
if abs(ratio - target) < 0.01:
|
|
harmonic_ratios.append((v1, v2, ratio, h_name, target))
|
|
|
|
# Check phi-harmonic
|
|
phi_targets = [PHI, PHI**2, 1/PHI, 2*PHI, 3*PHI]
|
|
for target in phi_targets:
|
|
if abs(ratio - target) < 0.01:
|
|
harmonic_ratios.append((v1, v2, ratio, f'Phi-{target:.3f}', target))
|
|
|
|
# Sort by closeness to target
|
|
harmonic_ratios.sort(key=lambda x: abs(x[2] - x[4]))
|
|
|
|
print(f"\n Found {len(harmonic_ratios)} harmonic relationships:")
|
|
for v1, v2, ratio, name, target in harmonic_ratios[:20]:
|
|
diff = abs(ratio - target)
|
|
print(f" {v1:.6f} \u2192 {v2:.6f}: ratio={ratio:.6f} \u2248 {name} (diff: {diff:.6f})")
|
|
|
|
return harmonic_ratios
|
|
|
|
def analyze_coherence_levels(data):
|
|
"""Look for discrete coherence levels (energy levels)."""
|
|
print("\n=== COHERENCE ENERGY LEVELS ===")
|
|
|
|
# Get all coherence values
|
|
coh_vals = [d['coh_mean'] for d in data]
|
|
coh_vals.sort()
|
|
|
|
# Bin coherence values (looking for discrete levels)
|
|
bins = {}
|
|
bin_size = 0.0005 # Very fine binning
|
|
|
|
for c in coh_vals:
|
|
bin_key = round(c / bin_size) * bin_size
|
|
bins[bin_key] = bins.get(bin_key, 0) + 1
|
|
|
|
# Find populated bins (energy levels)
|
|
energy_levels = [k for k, v in bins.items() if v > 2]
|
|
energy_levels.sort()
|
|
|
|
print(f" Found {len(energy_levels)} coherence energy levels:")
|
|
for i, level in enumerate(energy_levels[:10]):
|
|
print(f" Level {i+1}: {level:.6f}")
|
|
|
|
# Check ratios between levels
|
|
if len(energy_levels) >= 3:
|
|
print("\n Energy level ratios:")
|
|
for i in range(len(energy_levels)-1):
|
|
for j in range(i+1, len(energy_levels)):
|
|
ratio = energy_levels[j] / energy_levels[i]
|
|
print(f" Level {i+1}\u2192{j+1}: {energy_levels[i]:.6f} \u2192 {energy_levels[j]:.6f} = {ratio:.6f}")
|
|
|
|
return energy_levels
|
|
|
|
def analyze_asymmetry_series(data):
|
|
"""Look for hydrogen series in asymmetry values."""
|
|
print("\n=== ASYMMETRY HYDROGEN SERIES ===")
|
|
|
|
# Get asymmetry values for omega sweep
|
|
omega_data = [d for d in data if d['parameter'] == 'omega']
|
|
asym_vals = [d['asym_mean'] for d in omega_data]
|
|
|
|
# Look for discrete asymmetry levels
|
|
unique_asym = sorted(set(round(a, 3) for a in asym_vals))
|
|
|
|
print(f" {len(unique_asym)} unique asymmetry levels")
|
|
print(" Levels:", ", ".join(f"{a:.3f}" for a in unique_asym[:10]))
|
|
|
|
# Check ratios
|
|
harmonic_pairs = []
|
|
for i, a1 in enumerate(unique_asym):
|
|
for a2 in unique_asym[i+1:]:
|
|
if a1 == 0:
|
|
continue
|
|
ratio = a2 / a1
|
|
|
|
# Hydrogen series check
|
|
targets = {
|
|
'Lyman-\u03b1': 0.75,
|
|
'Balmer-\u03b1': 0.138889,
|
|
'Paschen-\u03b1': 0.048611,
|
|
}
|
|
|
|
for name, target in targets.items():
|
|
if abs(ratio - target) < 0.05:
|
|
harmonic_pairs.append((a1, a2, ratio, name, target))
|
|
|
|
if harmonic_pairs:
|
|
print("\n Hydrogen-like ratios found in asymmetry:")
|
|
for a1, a2, ratio, name, target in harmonic_pairs:
|
|
print(f" {a1:.3f} \u2192 {a2:.3f}: {ratio:.6f} \u2248 {name}")
|
|
else:
|
|
print("\n No hydrogen series found in asymmetry ratios")
|
|
|
|
return harmonic_pairs
|
|
|
|
def main():
|
|
print("=" * 80)
|
|
print("FRACTAL ECHO HUNT - HYDROGEN SERIES IN LATTICE DATA")
|
|
print("=" * 80)
|
|
|
|
data = load_sweep_data()
|
|
print(f"Loaded {len(data)} data points")
|
|
|
|
# 1. Look for hydrogen series in coherence values
|
|
coh_vals = [d['coh_mean'] for d in data]
|
|
find_fractal_echo(coh_vals, "COHERENCE")
|
|
|
|
# 2. Look for discrete energy levels
|
|
energy_levels = analyze_coherence_levels(data)
|
|
|
|
# 3. Look for hydrogen series in asymmetry
|
|
harmonic_pairs = analyze_asymmetry_series(data)
|
|
|
|
# 4. Check vorticity for patterns
|
|
vort_vals = [d['vort_mean'] for d in data]
|
|
find_fractal_echo(vort_vals, "VORTICITY")
|
|
|
|
print("\n" + "=" * 80)
|
|
print("CONCLUSION")
|
|
print("=" * 80)
|
|
|
|
if harmonic_pairs:
|
|
print("\n\u2705 HYDROGEN SERIES FOUND IN ASYMMETRY")
|
|
print(" The lattice shows hydrogen-like energy quantization")
|
|
elif energy_levels:
|
|
print("\n\u26a0\ufe0f DISCRETE ENERGY LEVELS FOUND")
|
|
print(" The lattice quantizes coherence, but not in hydrogen pattern")
|
|
else:
|
|
print("\n\u274c NO CLEAR FRACTAL ECHO FOUND")
|
|
print(" The hydrogen series may be encoded differently")
|
|
print(" Try looking at: velocity ratios, vorticity harmonics, or combined metrics")
|
|
|
|
if __name__ == '__main__':
|
|
main() |