在循环中向数组追加复杂值时出现语法错误



我创建了一个函数,它正在取复数并从中生成数组。但是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 *)指数(lamda_1 * T) -数学。指数(lamda_2 * T)) *(-c/(b*(lamda_1 - lamda_2))))

导致错误。

最新更新