将复数附加到循环中的数组时出现语法错误

Syntax error in appending a complex value to an array in loop

我创建了一个函数,它接受复数并从中生成一个数组。但是 python 在代码中显示了一些语法错误。我是 python 的新手,找不到任何关于此处问题的资源。循环是迭代的,以前的值用作新值的输入。

def imp(mass, spring, damp, inp):

  steps = 100
  U = inp

  m = mass
  K = spring
  d = damp
  
  a = d/m
  b = K/m
  c = 1/m

  A = np.array([0, 1],[-b, -a])
  B = np.array([0],[c])
  C = np.array([1, 0])
  D = 0

  x_kplus = np.array([],dtype=np.complex_)
  x_dot_kplus = np.array([],dtype=np.complex_)

  lamda_1 = complex(-a,np.sqrt(a**2 - 4*b))
  lamda_2 = complex(-a,-np.sqrt(a**2 - 4*b))

  x_k = 1
  x_dot_k = 1

  for T in range(0,steps):

    Ad_11 = (-lamda_2 * math.exponent(lamda_1 * T) + 
             lamda_1 * math.exponent(lamda_2 * T)) * (1/(lamda_1 - lamda_2))
    Ad_12 = (math.exponent(lamda_1 * T) - math.exponent(lamda_2 * T)) * (1/(lamda_1 - lamda_2))
    Ad_21 = (-b * (math.exponent(lamda_1 * T) - 
                   math.exponent(lamda_2 * T))) * (1/(lamda_1 - lamda_2))
    Ad_22 = (lamda_1 * math.exponent(lamda_1 * T) + 
             lamda_2 * math.exponent(lamda_2 * T)) * (1/(lamda_1 - lamda_2))

    

    Bd_11 = (-lamda_2 * math.exponent(lamda_1 * T) + lamda_1 * math.exponent(lamda_2 * T) - 
             (lamda_1 - lamda_2)) * (-c/(b*(lamda_1 - lamda_2)))
    Bd_12 = (-b * (math.exponent(lamda_1 * T) - math.exponent(lamda_2 * T)) * 
             (-c/(b*(lamda_1 - lamda_2)))

    

    x_kplus[T] = np.append(Ad_11 * x_k + 
                           Ad_12 * x_dot_k + 
                           Bd_11 * U)
    
    x_dot_kplus[T] = np.append([Ad_21 * x_k + 
                                Ad_22 * x_dot_k + 
                                Bd_12 * U])
    
    x_k = x_kplus[T]
    x_dot_k = x_dot_kplus[T]

  return x_k_1, x_dot_k_1

File "<ipython-input-13-cb9f2fbff276>", line 47
    x_kplus[T] = np.append(Ad_11 * x_k +
          ^
SyntaxError: invalid syntax

您在声明中缺少一个小括号

Bd_12 = (-b * (math.exponent(lamda_1 * T) - math.exponent(lamda_2 * T)) * (-c/(b*(lamda_1 - lamda_2)))

导致错误。