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

fit()

Automatic

Simple, workflow-based fitting

CurveFit

Medium

Reusable fitting, batch processing

LeastSquares

High

Custom residual functions, diagnostics

TRF

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)
)