Fitting

eisfit.fitting.buildCircuit(circuit, parameters, frequencies)[source]

transforms a circuit, parameters, and frequencies into a string that can be evaluated

Parameters:
circuit : str
parameters : list of floats
frequencies : list of floats
Returns:
eval_string : str

Python expression for calculating the resulting fit

eisfit.fitting.circuit_fit(frequencies, impedances, circuit, initial_guess, algorithm='leastsq', bounds=None)[source]

Main function for fitting an equivalent circuit to data

Parameters:
frequencies : numpy array

Frequencies

impedances : numpy array of dtype ‘complex128’

Impedances

circuit : string

string defining the equivalent circuit to be fit

initial_guess : list of floats

initial guesses for the fit parameters

algorithm: string

Name of algorithm to pass to scipy.optimize.minimize or to instantiate scipy.optimize.leastsq

Returns:
p_values : list of floats

best fit parameters for specified equivalent circuit

p_errors : list of floats

error estimates for fit parameters

Notes

Need to do a better job of handling errors in fitting. Currently, an error of -1 is returned.

eisfit.fitting.computeCircuit(circuit, parameters, frequencies)[source]

evaluates a circuit string for a given set of parameters and frequencies

Parameters:
circuit : string
parameters : list of floats
frequencies : list of floats
Returns:
array of floats
eisfit.fitting.residuals(param, Z, f, circuit)[source]

Calculates the residuals between a given circuit/parameters (fit) and Z/f (data). Minimized by scipy.leastsq()

Parameters:
param : array of floats

parameters for evaluating the circuit

Z : array of complex numbers

impedance data being fit

f : array of floats

frequencies to evaluate

circuit : str

string defining the circuit

Returns:
residual : ndarray

returns array of size 2*len(f) with both real and imaginary residuals

eisfit.fitting.rmse(a, b)[source]

A function which calculates the root mean squared error between two vectors.

Notes

\[RMSE = \sqrt{\frac{1}{n}(a-b)^2}\]
eisfit.fitting.valid(circuit, param)[source]

checks validity of parameters

Parameters:
circuit : string

string defining the circuit

param : list

list of parameter values

Returns:
valid : boolean

Notes

All parameters are considered valid if they are greater than zero – except for E2 (the exponent of CPE) which also must be less than one.