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.