Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| from scipy import stats | |
| print("Theoretical Reasons for Beta Distribution in Ideal Polyhedra Volumes") | |
| print("="*70) | |
| print("\nExploring why volumes naturally follow a Beta distribution...\n") | |
| print("Key insights about Beta distributions:") | |
| print("-"*50) | |
| print("1. Beta is the 'natural' distribution for bounded random variables on [0,1]") | |
| print("2. It's the conjugate prior for binomial/Bernoulli processes") | |
| print("3. It emerges from order statistics of uniform random variables") | |
| print("4. Maximum entropy distribution given constraints on E[log(X)] and E[log(1-X)]") | |
| print("\n\nPossible theoretical explanations for our case:") | |
| print("="*70) | |
| print("\n1. BOUNDED DOMAIN + GEOMETRIC CONSTRAINTS") | |
| print("-"*50) | |
| print("• Volumes are bounded: 0 < V < V_max") | |
| print("• Vertices constrained to sphere (compact domain)") | |
| print("• Beta naturally models variables with hard bounds") | |
| print("• Rescaling to [0,1] makes Beta the canonical choice") | |
| print("\n2. PRODUCT STRUCTURE OF VOLUME FORMULA") | |
| print("-"*50) | |
| print("The Lobachevsky function Λ(θ) = -∫[0,θ] log|2sin(t)| dt") | |
| print("For tetrahedron: V = Σ Λ(dihedral angles)") | |
| print("• Products/sums of bounded terms → Beta-like distributions") | |
| print("• Similar to how products of uniforms give Beta") | |
| print("\n3. PROJECTIVE GEOMETRY CONNECTION") | |
| print("-"*50) | |
| print("• Möbius transformations preserve cross-ratios") | |
| print("• Cross-ratios of random points → Beta distributions") | |
| print("• Our volume formula involves cross-ratio-like terms") | |
| print("• Stereographic projection preserves these properties") | |
| print("\n4. ORDER STATISTICS INTERPRETATION") | |
| print("-"*50) | |
| print("Beta(α,β) is the distribution of the k-th order statistic") | |
| print("of n uniform random variables, where α=k, β=n-k+1") | |
| print("• Our increasing α with more vertices suggests") | |
| print(" we're seeing higher order statistics") | |
| print("• Volume might act like a 'sorted' geometric quantity") | |
| # Visualize theoretical connections | |
| fig, axes = plt.subplots(2, 2, figsize=(12, 10)) | |
| # 1. Show how Beta emerges from order statistics | |
| ax = axes[0, 0] | |
| n_samples = 10000 | |
| n_uniform = 5 | |
| uniforms = np.random.uniform(0, 1, (n_samples, n_uniform)) | |
| kth_order = np.sort(uniforms, axis=1)[:, 3] # 4th order statistic | |
| ax.hist(kth_order, bins=50, density=True, alpha=0.6, label='4th order stat of 5 uniforms') | |
| x = np.linspace(0, 1, 100) | |
| ax.plot(x, stats.beta.pdf(x, 4, 2), 'r-', linewidth=2, label='Beta(4,2)') | |
| ax.set_title('Order Statistics → Beta Distribution') | |
| ax.legend() | |
| ax.set_xlabel('Value') | |
| ax.set_ylabel('Density') | |
| # 2. Maximum entropy interpretation | |
| ax = axes[0, 1] | |
| ax.text(0.5, 0.9, "Maximum Entropy Principle", | |
| fontsize=14, weight='bold', ha='center', transform=ax.transAxes) | |
| explanation = """ | |
| Given constraints: | |
| • X ∈ [0, 1] | |
| • E[log(X)] = fixed | |
| • E[log(1-X)] = fixed | |
| The maximum entropy distribution is Beta(α,β) | |
| where α and β encode the constraints. | |
| For ideal polyhedra: | |
| • Geometric constraints on vertices | |
| • Topological constraints (triangulation) | |
| • Volume bounded by maximum | |
| → Beta emerges as the most "unbiased" | |
| distribution satisfying all constraints | |
| """ | |
| ax.text(0.05, 0.05, explanation, fontsize=10, | |
| ha='left', va='bottom', transform=ax.transAxes, | |
| family='monospace') | |
| ax.axis('off') | |
| # 3. Connection to hyperbolic geometry | |
| ax = axes[1, 0] | |
| theta = np.linspace(0.1, np.pi-0.1, 100) | |
| lobachevsky_integrand = -np.log(2*np.abs(np.sin(theta))) | |
| ax.plot(theta, lobachevsky_integrand, 'b-', linewidth=2) | |
| ax.fill_between(theta, 0, lobachevsky_integrand, alpha=0.3) | |
| ax.set_xlabel('θ (dihedral angle)') | |
| ax.set_ylabel('-log|2sin(θ)|') | |
| ax.set_title('Lobachevsky Function Integrand') | |
| ax.text(np.pi/2, 2, 'Area = Λ(θ)', fontsize=12, ha='center') | |
| # 4. Why α increases with vertices | |
| ax = axes[1, 1] | |
| vertices = [4, 5, 6, 7, 8] | |
| predicted_alpha = [1.08, 4.77, 13, 25, 40] # Rough exponential growth | |
| ax.semilogy(vertices, predicted_alpha, 'go-', markersize=10, linewidth=2) | |
| ax.set_xlabel('Number of Vertices') | |
| ax.set_ylabel('Beta α parameter (log scale)') | |
| ax.set_title('Growth of Concentration Parameter') | |
| ax.grid(True, alpha=0.3) | |
| ax.text(6, 5, 'Exponential\ngrowth', fontsize=12, ha='center', | |
| bbox=dict(boxstyle="round,pad=0.3", facecolor="yellow", alpha=0.5)) | |
| plt.tight_layout() | |
| plt.savefig('beta_distribution_theory.png', dpi=150) | |
| print("\nSaved theoretical analysis to beta_distribution_theory.png") | |
| # Mathematical conjecture | |
| print("\n\nMATHEMATICAL CONJECTURE:") | |
| print("="*70) | |
| print("The volume of a random ideal polyhedron with n vertices") | |
| print("(3 fixed at 0, 1, ∞ and n-3 uniform on the sphere)") | |
| print("follows approximately Beta(α_n, β_n) where:") | |
| print("") | |
| print("• α_n grows exponentially with n") | |
| print("• β_n grows sublinearly") | |
| print("• Mean → some limit < 1 as n → ∞") | |
| print("") | |
| print("This might connect to:") | |
| print("1. Random matrix theory (hyperbolic isometries as SL(2,C))") | |
| print("2. Free probability (non-commutative distributions)") | |
| print("3. Quantum gravity (random triangulations of hyperbolic space)") | |
| # Test universality | |
| print("\n\nTesting universality hypothesis:") | |
| print("-"*50) | |
| print("Question: Does the Beta emergence depend on our specific setup?") | |
| print("\nVariations to test:") | |
| print("• Different measures on the sphere (not uniform)") | |
| print("• Different fixed points (not 0, 1, ∞)") | |
| print("• Different hyperbolic polyhedra (not ideal)") | |
| print("\nPrediction: Beta distribution is universal due to:") | |
| print("• Bounded domain") | |
| print("• Maximum entropy under geometric constraints") | |
| print("• Central limit effects in hyperbolic geometry") | |
| plt.close() |