2. Core APIs¶
This chapter covers NLSQ’s core API classes for direct control over optimization.
2.5. Chapter Overview¶
- CurveFit Class (15 min)
Reusable curve fitting with JIT caching.
- LeastSquares (15 min)
Direct optimizer control.
- TRF Optimizer (10 min)
Trust Region Reflective algorithm details.
- Result Types (5 min)
OptimizeResult and OptimizeWarning.
2.6. API Level Comparison¶
API |
Control Level |
Use Case |
|---|---|---|
|
Automatic |
Simple, workflow-based fitting |
|
Medium |
Reusable fitting, batch processing |
|
High |
Custom residual functions, diagnostics |
|
Full |
Algorithm customization, research |
2.7. Quick Examples¶
from nlsq import fit, CurveFit
from nlsq.core.least_squares import LeastSquares
# Simple fit
popt, pcov = fit(model, x, y, p0=[...])
# Reusable CurveFit
fitter = CurveFit()
popt1, pcov1 = fitter.curve_fit(model, x1, y1, p0=[...])
popt2, pcov2 = fitter.curve_fit(model, x2, y2, p0=[...])
# Direct LeastSquares
optimizer = LeastSquares()
result = optimizer.least_squares(
fun=residual_func, x0=initial_params, bounds=(-np.inf, np.inf)
)