【问题标题】:Inverse of Upper Triangular matrix algorithm逆上三角矩阵算法
【发布时间】:2021-01-05 13:24:21
【问题描述】:

我有计算下三角矩阵逆的代码。如何从下面的代码中通过一点点改变来计算上三角矩阵的逆?

function L = L_inv(A)
            [n,n] = size(A);
            L = zeros(n); 
            for i=1:n
                L(i,i) = 1/A(i,i);
                for j=i+1:n
                    L(j,i)=-A(j, i:j-1)*L(i:j-1,i)/A(j,j);
                end
            end
        end

【问题讨论】:

  • 我的线性代数很生疏,但是如果我没记错的话,上三角矩阵只是下三角矩阵的转置,并且矩阵的转置的逆等于逆的转置.如果这是真的,只需将您的函数应用于上三角矩阵的转置,然后转置返回结果。
  • @MatteoV 你确定吗,我也想过同样的事情。

标签: matlab matrix


【解决方案1】:

矩阵转置的逆等于其逆的转置。 因此,由于上三角矩阵只是下三角矩阵的转置,因此要找到上三角矩阵的逆矩阵,您只需将函数应用于其转置,然后再次转置结果。

n = 10; % dimensions of your matrix
U = triu(rand(n, n)); % create a random upper triangular matrix
Uinv1 = L_inv(U')'; % using your function
Uinv2 = inv(U); % using the built-in function
Uinv1 - Uinv2

打印两个结果之间的差异,您可以看到它们(几乎)完全相同。例如在我的情况下norm(Uinv1 - Uinv2) = 5.642266075279820e-15

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 2017-12-23
    • 1970-01-01
    相关资源
    最近更新 更多