求解复杂矩阵的线性方程

Solving linear equation of complex matrices

我有一个形式为 ax=b 的线性方程,其中 b 是复矩阵,a 是实矩阵。我期望解决方案 x 是一个复杂的向量。尝试 numpy.linalg.solve(a,b) 函数时,我收到此警告:

ComplexWarning: Casting complex values to real discards the imaginary part

如何解这个方程以保留复数?

b 分成实部和虚部,分别求解 real/imaginary 部分
Ax = b = A(xr+xi) = br + bi
A@xr=br,A@xi=bi

br = np.real(b)
bi = np.imag(b)
A_inv = np.linalg.inv(A)
xr = A_inv @ br
xi = A_inv @ bi
x = xr + 1.j*xi

编辑 您想要的方式:

x = np.linalg.solve(A, np.real(b)) + 1.j*np.linalg.solve(A, np.imag(b))