[英]Multiplication of matrices involving inverse operation: getting infinity
在我之前的问题中,这里问过: Matlab:如何计算矩阵的逆
我想知道如何执行逆运算
A = [1/2, (1j/2), 0;
1/2, (-1j/2), 0;
0,0,1]
T = A.*1
Tinv = inv(T)
输出为Tinv
=
1.0000 1.0000 0
0 - 1.0000i 0 + 1.0000i 0
0 0 1.0000
与第二张图片相同。 第一张图片是矩阵A
但是,对于更大的矩阵,说5 x 5,如果我不使用恒等式, I
将执行元素明智的乘法,那么我将得到无穷大值。 这是一个例子
A = [1/2, (1j/2), 1/2, (1j/2), 0;
1/2, (-1j/2), 1/2, (-1j/2), 0;
1/2, (1j/2), 1/2, (1j/2), 0;
1/2, (-1j/2), 1/2, (-1j/2), 0;
0, 0 , 0 , 0, 1.00
];
T = A.*1
Tinv = inv(T)
Tinv =
Inf Inf Inf Inf Inf
Inf Inf Inf Inf Inf
Inf Inf Inf Inf Inf
Inf Inf Inf Inf Inf
Inf Inf Inf Inf Inf
因此,我尝试将T = A.*I
乘以I = eye(5)
然后取反偶数,但是我没有得到无穷大的值,我得到的元素2
在图片中不存在3 x 3矩阵案件。 这是结果
Tinv =
2.0000 0 0 0 0
0 0 + 2.0000i 0 0 0
0 0 2.0000 0 0
0 0 0 0 + 2.0000i 0
0 0 0 0 1.0000
如果对于3 x 3矩阵的情况,我使用I = eye(3)
,那么我又得到元素2。
Tinv =
2.0000 0 0
0 0 + 2.0000i 0
0 0 1.0000
什么是正确的方法?
问题:对于一般情况,对于m by m
任何大小的矩阵,我是否应该使用I = eye(m)
相乘? 使用I
可以防止无穷大,但是会产生新的数字2
。 我真的很困惑。 请帮忙
更新:这是完整图像,其中Theta是3个未知数的向量,其中Theta1,Theta1 *和Theta2是3个标量值参数。 Theta1是一个复数值,因此我们将其分为两部分:Theta1和Theta1 *,而Theta2是一个实数值。 g是一个复数值函数。 复数值函数相对于Theta的导数的表达式为T ^ H。 由于存在3个未知数,因此矩阵T的大小应为3乘3。
您的问题与您认为的略有不同。 图像中矩阵中的符号( I , 0 ) 不一定是标量 (仅对于n = 1
),但是它们实际上是平方矩阵 。
I是一个单位矩阵, 0是一个零矩阵。 如果像这样对待这些矩阵,您将得到预期的答案:
n = 2; % size of the sub-matrices
I = eye(n); % identity matrix
Z = zeros(n); % matrix of zeros
% your T matrix
T = [1/2*I, (1j/2)*I, Z;
1/2*I, (-1j/2)*I, Z;
Z,Z,I];
% inverse of T
Tinv1 = inv(T);
% expected result
Tinv2 = [I,I,Z;
-1j*I,1j*I,Z;
Z,Z,I];
% max difference between computed and expected
maxDist = max(abs(Tinv1(:) - Tinv2(:)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.