impedance.py icon indicating copy to clipboard operation
impedance.py copied to clipboard

[BUG] Single-element fitting does not appear to work

Open edmundsj opened this issue 3 years ago • 0 comments

Describe the bug When trying to fit impedance data to a single circuit element, this package doesn't appear to pass arguments correctly into curve_fit.

To Reproduce Steps to reproduce the behavior:

  1. Code which generates the error '...'
from impedance.models.circuits import CustomCircuit
import numpy as np

frequencies = np.array([1, 2, 3])
Z = np.array([4, 5, 6+1j])
circuit_spec = 'C1'
initial_guess = [40e-12]
circuit = CustomCircuit(circuit=circuit_spec, initial_guess=initial_guess)
circuit.fit(frequencies, Z)

  1. Full error info
Traceback (most recent call last):
  File "process_impedance.py", line 72, in <module>
    circuit.fit(frequencies, Z)
  File "/Users/jordan.e/opt/miniconda3/lib/python3.7/site-packages/impedance/models/circuits/circuits.py", line 119, in fit
    **kwargs)
  File "/Users/jordan.e/opt/miniconda3/lib/python3.7/site-packages/impedance/models/circuits/fitting.py", line 153, in circuit_fit
    p0=initial_guess, bounds=bounds, **kwargs)
  File "/Users/jordan.e/opt/miniconda3/lib/python3.7/site-packages/scipy/optimize/minpack.py", line 796, in curve_fit
    **kwargs)
  File "/Users/jordan.e/opt/miniconda3/lib/python3.7/site-packages/scipy/optimize/_lsq/least_squares.py", line 811, in least_squares
    "f0.shape: {0}".format(f0.shape))
ValueError: `fun` must return at most 1-d array_like. f0.shape: (1, 8)

Expected behavior I expect single-element fitting to work either with the initial_guess given as an array or as a single value.

Additional context Add any other context about the problem here.

edmundsj avatar Jun 02 '22 19:06 edmundsj