Examples¶
Basic 2-norm estimation¶
from sparse_kappa.backend import sparse as sp
from sparse_kappa import cond_estimate
A = sp.random(2000, 2000, density=0.005, format='csr')
cond = cond_estimate(A, norm=2, method='svds')
print(f"kappa_2(A) = {cond:.3e}")
Compare multiple methods¶
methods = ['svds', 'lanczos', 'golub-kahan']
for method in methods:
value = cond_estimate(A, norm=2, method=method)
print(f"{method:12s} -> {value:.3e}")
1-norm with LU solver¶
result = cond_estimate(
A,
norm=1,
method='hager-higham',
solver='lu',
return_dict=True,
)
print(result['condition_number'])
print(result['solver_info'])
GNN training workflow¶
from sparse_kappa import TrainingConfig, train_gnn_condition_estimator
train_samples = [
{'matrix': A, 'condition_number': 10.2, 'norm_Ainv': 0.4},
]
config = TrainingConfig(target='condition', norm=2, epochs=20, lr=1e-3)
estimator = train_gnn_condition_estimator(train_samples, config=config)
pred = estimator.predict(A)
print(pred)