相关疑难解决方法(0)

LU 分解与部分旋转 Matlab

我正在尝试通过部分旋转来实现我自己的 LU 分解。我的代码在下面,显然工作正常,但对于某些矩阵,与内置的相比,它给出了不同的结果[L, U, P] = lu(A)matlab 中函数

谁能看出哪里错了?

function [L, U, P] = lu_decomposition_pivot(A)
    n = size(A,1);
    Ak = A;
    L = zeros(n);
    U = zeros(n);
    P = eye(n);
    for k = 1:n-1
        for i = k+1:n
            [~,r] = max(abs(Ak(:,k)));

            Ak([k r],:) = Ak([r k],:);
            P([k r],:) = P([r k],:);

            L(i,k) = Ak(i,k) / Ak(k,k);
            for j = k+1:n
                U(k,j-1) = Ak(k,j-1);
                Ak(i,j) = Ak(i,j) - L(i,k)*Ak(k,j);
            end
        end
    end
    L(1:n+1:end) = 1;
    U(:,end) = Ak(:,end);
return …
Run Code Online (Sandbox Code Playgroud)

matlab matrix decomposition

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

decomposition ×1

matlab ×1

matrix ×1