scipy.optimize — Ricerca di radici e minimizzazione¶
Il sottomodulo scipy.optimize fornisce semplici routine per trovare radici e minimi di funzioni scalari definite dall’utente. Poiché ogni iterazione deve richiamare il callable Python fornito dall’utente, il guadagno di velocità rispetto a un’implementazione in puro Python è modesto (tipicamente circa 2x).
Funzioni¶
- scipy.optimize.bisect(f: Callable[[float], float], a: float, b: float, *, xtol: float = xtolerance, maxiter: int = 100) float¶
Trova una radice di f nell’intervallo
[a, b]usando il metodo di bisezione. f deve cambiare segno sull’intervallo.- Parametri:
f – callable che accetta un singolo
floate restituisce unfloat.a – estremo sinistro dell’intervallo.
b – estremo destro dell’intervallo.
xtol – tolleranza assoluta sulla posizione della radice (predefinito
xtolerance).maxiter – numero massimo di bisezioni (predefinito
100).
- Ritorna:
la posizione della radice come
float.- Solleva:
ValueError – se
f(a) * f(b) > 0.
- scipy.optimize.curve_fit(f: Callable[..., float], xdata: ndarray | list | tuple, ydata: ndarray | list | tuple, p0: ndarray | list | tuple, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int | None = None) None¶
Stub per il fitting di curve ai minimi quadrati non lineari (Levenberg-Marquardt). Presente nella tabella del modulo per compatibilità delle API ma attualmente un segnaposto: accetta e convalida i suoi argomenti ma restituisce sempre
None. Preferiscifmin()o librerie esterne finché questa routine non sarà implementata.- Parametri:
f – callable del modello
f(x, *params) -> float.xdata – array-like 1-D di valori indipendenti.
ydata – array-like 1-D di valori dipendenti, della stessa lunghezza di xdata.
p0 – array-like 1-D di stime iniziali dei parametri.
- scipy.optimize.fmin(f: Callable[[float], float], x0: float, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int = 200) float¶
Trova la posizione di un minimo locale della funzione scalare f usando il metodo del simplesso discendente (Nelder-Mead).
- Parametri:
f – callable che accetta un singolo
floate restituisce unfloat.x0 – stima iniziale.
xatol – tolleranza assoluta sulla posizione (predefinito
xtolerance).fatol – tolleranza assoluta sul valore della funzione (predefinito
xtolerance).maxiter – numero massimo di iterazioni (predefinito
200).
- Ritorna:
la posizione del minimo come
float.
- scipy.optimize.newton(f: Callable[[float], float], x0: float, *, tol: float = xtolerance, rtol: float = rtolerance, maxiter: int = 50) float¶
Trova uno zero della funzione scalare a valori reali f con il metodo di Newton-Raphson (delle secanti).
- Parametri:
f – callable che accetta un singolo
floate restituisce unfloat.x0 – stima iniziale.
tol – tolleranza assoluta sulla radice (predefinito
xtolerance).rtol – tolleranza relativa sulla radice (predefinito
rtolerance).maxiter – numero massimo di iterazioni (predefinito
50).
- Ritorna:
la posizione della radice come
float.