如何在python中计算复杂的联立方程?

时间:2018-05-12 06:36:12

标签: python numpy

我需要从一组三个方程中获得三个复数,这是一组S参数的纠错过程的一部分。

condition2='yy'

这给了我错误

import numpy as np

G_A1 = -1 + 0j
G_A2 = 0 + 0j
G_A3 = 1 + 0j
G_M1 = -0.5323 - 0.0163j
G_M2 = -11.1951 - 37.7373j
G_M3 = 0.5528 + 0.1621j

a = np.array([[G_A1,G_A2,G_A3], [1,1,1], [(-G_A1*G_M1),(-G_A2*G_M2),(-G_A3,G_M3)]])
b = np.array([G_M1,G_M2,G_M3])
x = np.linalg.solve(a, b)
print(x)

我想我不妨尝试将复数值转换为float,但后来我得到了这个错误。

a = np.array([[G_A1,G_A2,G_A3], [1,1,1], [(-G_A1*G_M1),(-G_A2*G_M2),(-G_A3,G_M3)]])
TypeError: a float is required

如果复杂的值无法转换为float,我应该在这里使用哪种替代方法?

1 个答案:

答案 0 :(得分:2)

你在最后一行的最后一个条目中有一个拼写错误,这使得它成为一个元组

(-G_A3,G_M3)

并导致TypeError作为元素。如果你纠正了问题就消失了。在这种情况下,你也不需要在表达式周围添加括号。