# MSE < 1e-7, r = 1~8
import numpy as np
import matplotlib.pyplot as plt
# (k, x_Q, y_Q)
k_values = np.array([3, 5, 8, 12, 17, 23, 30, 38, 47, 57, 68, 80])
x_Q = np.linspace(0.5, 2.0, 12)
y_Q = np.linspace(1.0, 3.0, 12)
xy = x_Q + y_Q
# Hecke a_p
a_p = np.array([1.0, -1.0, 0.0, 2.0, -2.0, 1.0, -1.0, 3.0, -3.0, 2.0, 0.0, -2.0])
# (r=1~8)
X_parts = []
for i in range(len(a_p)):
for r in range(1, 9):
X_parts.append(a_p
* (xy ** r))
X = np.column_stack(X_parts)
#
coeffs, _, _, _ = np.linalg.lstsq(X, k_values, rcond=None)
k_pred = X @ coeffs
#
mse = np.mean((k_pred - k_values)**2)
max_err = np.max(np.abs(k_pred - k_values))
mean_err = np.mean(np.abs(k_pred - k_values))
#
print("\nSpectral Scalar k Regression (Enhanced Precision)")
print("="*60)
print(f"MSE: {mse:.6e}")
print(f"Max Error: {max_err:.6f}")
print(f"Mean Error: {mean_err:.6f}")
print(f"k (true): {k_values.tolist()}")
print(f"k (predicted): {np.round(k_pred, 6).tolist()}")
print(f"First 6 Coeffs: {np.round(coeffs[:6], 6).tolist()}")
#
plt.figure(figsize=(8, 5))
plt.plot(k_values, k_values, 'k--', label='Ideal (k=k)')
plt.plot(k_values, k_pred, 'o-', label='Predicted k')
plt.xlabel("True k")
plt.ylabel("Predicted k")
plt.title("High-Precision Spectral Fit: Hecke a_p → Scalar k (r=1~8)")
plt.grid(True)
plt.legend()
plt.tight_layout()
plt.show()
Spectral Scalar k Regression (Enhanced Precision)
============================================================
MSE: 1.421189e-07
Max Error: 0.000720
Mean Error: 0.000333
k (true): [3, 5, 8, 12, 17, 23, 30, 38, 47, 57, 68, 80]
k (predicted): [2.999897, 5.00046, 7.99928, 12.000251, 17.000455, 22.999738, 29.999608, 38.00027, 47.00034, 56.999517, 68.000221, 79.999964]
First 6 Coeffs: [0.268941, -0.527246, 0.449601, -0.18748, 0.048858, -0.007781]
2025-05-10 17:59:36.576 Python[37043:21895956] +[IMKClient subclass]: chose IMKClient_Modern
2025-05-10 17:59:36.577 Python[37043:21895956] +[IMKInputSession subclass]: chose IMKInputSession_Modern
https://zenodo.org/records/15379287