Python Scipy Lesssq encaja con números complejos

Tengo un conjunto de datos de números complejos y me gustaría poder encontrar los parámetros que mejor se ajusten a los datos. ¿Puede ajustar los datos en números complejos utilizando la herramienta Lesssq implementada por scipy en Python?

Por ejemplo, mi código es algo como esto:

 import cmath
 from scipy.optimize import leastsq
 def residuals(p,y,x):
      L,Rs,R1,C=p
      denominator=1+(x**2)*(C**2)*(R1**2)
      sim=complex(Rs+R1/denominator,x*L-(R1**2)*x*C/denominator)
      return(y-sim)

 z=<read in data, store as complex number>
 x0=np.array[1, 2, 3, 4]
 res = leastsq(residuals,x0, args=(z,x))

Sin embargo,residuals no me gusta trabajar con mi número complejo, me sale el error:

File "/tmp/tmp8_rHYR/___code___.py", line 63, in residuals
    sim=complex(Rs+R1/denominator,x*L-(R1**_sage_const_2 )*x*C/denominator)
  File "expression.pyx", line 1071, in sage.symbolic.expression.Expression.__complex__ (sage/symbolic/expression.cpp:7112)
TypeError: unable to simplify to complex approximation

Supongo que necesito trabajar solo con flotantes / dobles en lugar de números complejos. En ese caso, ¿cómo puedo evaluar las partes reales y complejas por separado y luego agruparlas en una sola métrica de error pararesiduals ¿regresar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta