假设我的方程组看起来像:
A(1+2i) + B(100i) =10i;
CONJ(A)*(11i) +B(12+ 17i)= 167;
其中A
和B
是复数;
如何求解A
和B
使用 MATLAB?(我需要求解一个由 10 个方程组成的系统。)
假设我的方程组看起来像:
A(1+2i) + B(100i) =10i;
CONJ(A)*(11i) +B(12+ 17i)= 167;
其中A
和B
是复数;
如何求解A
和B
使用 MATLAB?(我需要求解一个由 10 个方程组成的系统。)
这是一道数学题。基本上,一旦分离实/图像分量,您就有四个未知数中的四个方程
A*(1+2i) + B*(100i) =10i;
CONJ(A)*(11i) +B*(12+ 17i)= 167;
相当于
real(A) - 2*imag(A) - 100*imag(B) = 0
2*real(A) + imag(A) + 100*real(B) = 10
11*imag(A) + 12*real(B) - 17*imag(B) = 167
11*real(A) + 17*real(B) + 12*imag(B) = 0
然后在线性方程中定义系数x= [real(A) imag(A) real(B) imag(B)]并将它们求解为
A= [1 -2 0 -100
2 1 100 0
0 11 12 -17
11 0 17 12];
b = [0 10 167 0]';
A\b
ans =
0.4049
14.7920
-0.0560
-0.2918
所以A=0.4049+14.7929i
,B = -0.0560 -0.2908i
有一些平均舍入误差。
当然,如果您有 10 个复杂方程(20 个未知数中的 20 个方程),这不是很有帮助。但是,您可以将上面的系统重写为
real(A) - 2*imag(A) - 100*imag(B) = 0
+ 12*real(B) + 11*imag(A) - 17*imag(B) = 167
2*real(A) + 100*real(B) + imag(A) = 10
11*real(A) + 17*real(B) + 12*imag(B) = 0
并定义
D= [(1+2i) (100i)
(11i) (12+17i) ];
c = [10i 167]';
(来自原始系统Dx=c)人们认识到这是E*x_=f与
E = [ real(D) -imag(D)
imag(D) real(D) ];
f = [real(c) ; imag(c)];
除了一些术语由于共轭操作而改变了符号。这可以通过将数组乘以E
适当的矩阵来单独ones
处理,其中符号反转用于复杂共轭运算中涉及的项。这可以如下进行。定义一个矩阵,该矩阵conj
包含1
原始方程对中应用共轭运算的位置:
conj=[ 0 0
1 0];
那么符号矩阵是
sgn = 2* ([ imag(conj) -real(conj)
real(conj) imag(conj)]+1 >0)-1;
解决方案是
(E.*sgn)\f
ans =
0.4049
-0.0560
14.7920
-0.2918