# Linear

class plasmapy.analysis.fit_functions.Linear(params: Optional[Tuple[float, ...]] = None, param_errors: Optional[Tuple[float, ...]] = None)

A sub-class of AbstractFitFunction to represent a linear function.

\begin{align}\begin{aligned}y &= f(x) = m \, x + b\\delta y)^2 &= (x \, \delta m)^2 + (m \, \delta x)^2 + (\delta b)^2\end{aligned}\end{align} where \(m and $$b$$ are real constants to be fitted and $$x$$ is the independent variable. $$\delta m$$, $$\delta b$$, and $$\delta x$$ are the respective uncertainties for $$m$$, $$b$$, and $$x$$.

Parameters

Attributes Summary

 FitParamTuple A namedtuple used for attributes params and param_errors. curve_fit_results The results returned by the curve fitting routine used by curve_fit. latex_str LaTeX friendly representation of the fit function. param_errors The associated errors of the fitted params. param_names Names of the fitted parameters. params The fitted parameters for the fit function. rsq Coefficient of determination (r-squared) value of the fit.

Methods Summary

 __call__(x[, x_err, reterr]) Direct call of the fit function $$f(x)$$. curve_fit(xdata, ydata, **kwargs) Calculate a linear least-squares regression of (xdata, ydata) using scipy.stats.linregress. func(x, m, b) The fit function, a linear function. func_err(x[, x_err, rety]) Calculate dependent variable uncertainties $$\delta y$$ for dependent variables $$y=f(x)$$. root_solve(*args, **kwargs) The root $$f(x_r) = 0$$ for the fit function.

Attributes Documentation

FitParamTuple

A namedtuple used for attributes params and param_errors. The attribute parameter_names defines the tuple field names.

curve_fit_results

The results returned by the curve fitting routine used by curve_fit. This is typically from scipy.stats.linregress or scipy.optimize.curve_fit.

latex_str
param_errors

The associated errors of the fitted params.

param_names

Names of the fitted parameters.

params

The fitted parameters for the fit function.

rsq

Coefficient of determination (r-squared) value of the fit. Calculated by scipy.stats.linregress from the fit.

Methods Documentation

__call__(x, x_err=None, reterr=False)

Direct call of the fit function $$f(x)$$.

Parameters
• x (array_like) – Dependent variables.

• x_err (array_like, optional) – Errors associated with the independent variables x. Must be of size one or equal to the size of x.

• reterr (bool, optional) – (Default: False) If True, return an array of uncertainties associated with the calculated independent variables

Returns

curve_fit(xdata, ydata, **kwargs) None

Calculate a linear least-squares regression of (xdata, ydata) using scipy.stats.linregress. This will set the attributes parameters, parameters_err, and rsq.

The results of scipy.stats.linregress can be obtained via curve_fit_results.

Parameters
• xdata (array_like) – The independent variable where data is measured. Should be 1D of length M.

• ydata (array_like) – The dependent data associated with xdata.

• **kwargs – Any keywords accepted by scipy.stats.linregress.curve_fit.

func(x, m, b)

The fit function, a linear function.

$f(x) = m \, x + b$

where $$m$$ and $$b$$ are real constants representing the slope and intercept, respectively, and $$x$$ is the independent variable.

Parameters
• x (array_like) – Independent variable.

• m (float) – value for slope $$m$$

• b (float) – value for intercept $$b$$

Returns

y – dependent variables corresponding to :math:x

Return type

array_like

func_err(x, x_err=None, rety=False)

Calculate dependent variable uncertainties $$\delta y$$ for dependent variables $$y=f(x)$$.

$(\delta y)^2 = (x \, \delta m)^2 + (m \, \delta x)^2 + (\delta b)^2$
Parameters
• x (array_like) – Independent variables to be passed to the fit function.

• x_err (array_like, optional) – Errors associated with the independent variables x. Must be of size one or equal to the size of x.

• rety (bool) – Set True to also return the associated dependent variables $$y = f(x)$$.

Returns

• err (numpy.ndarray) – The calculated uncertainties $$\delta y$$ of the dependent variables ($$y = f(x)$$) of the independent variables x.

• y (numpy.ndarray, optional) – (if rety == True) The associated dependent variables $$y = f(x)$$.

Notes

• A good reference for formulating propagation of uncertainty expressions is:

J. R. Taylor. An Introduction to Error Analysis: The Study of Uncertainties in Physical Measurements. University Science Books, second edition, August 1996 (ISBN: 093570275X)

root_solve(*args, **kwargs)

The root $$f(x_r) = 0$$ for the fit function.

\begin{align}\begin{aligned}x_r &= \frac{-b}{m}\\\delta x_r &= |x_r| \sqrt{ \left( \frac{\delta m}{m} \right)^2 + \left( \frac{\delta b}{b} \right)^2 }\end{aligned}\end{align}
Parameters
Returns

• root (float) – The root value for the given fit parameters.

• err (float) – The uncertainty in the calculated root for the given fit parameters and parameters_err`.