You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带选主元的LU分解Matlab代码出错原因排查求助

带选主元LU分解代码错误排查求助

您好,我非英语母语,借助翻译工具提问,望谅解。我已成功实现无选主元的LU分解代码,现因作业需求编写带选主元的LU分解代码,但运行结果严重错误。以下是相关代码、测试矩阵及错误结果,恳请帮忙排查问题:

无选主元LU分解代码

% non-pivoting code
function x = mylu_np(A)
    [m,~] = size(A);
    L = eye(m); U = A(:,:);
    for i = 1:m-1
        for j = i+1:m
            L(j,i) = U(j,i)/U(i,i);
            U(j,i) = 0;
            U(j,i+1:m) = U(j,i+1:m) - L(j,i)*U(i,i+1:m);
        end
    end
    x = [L U];
end

带选主元LU分解代码

function x = mylu_pp(A)
    [m,~] = size(A);
    P = eye(m); L = eye(m); U = A(:,:);
    for i = 1:m-1
        for j = i+1:m
            if abs(U(i,i)) < abs(U(j,i))
                U([i j],:) = U([j i],:);
                P([i j],:) = P([j i],:);
            end
        end
        for j = i+1:m
            L(j,i) = U(j,i)/U(i,i);
            U(j,i) = 0;
            U(j,i+1:m) = U(j,i+1:m) - L(j,i)*U(i,i+1:m);
        end
    end
    x = [P L U];
end

测试矩阵及验证代码

A = [0.0001 -5.0300 5.8090 7.8320;
    2.2660 1.9950 1.2120 8.0080;
    8.8500 5.6810 4.5520 1.3020;
    6.7750 -2.2530 2.9080 3.9700];
W = mylu_pp(A)
P = W(1:4,1:4); L = W(1:4,5:8); U = W(1:4,9:12);
P*A - L*U

错误结果

ans = [0.0000 0.0000 0.0000 0.0000;
    6.7749 4.3489 3.4847 0.9967;
    -2.2659 -7.0250 -1.6521 2.1754
    -4.5090 2.6761 -1.8326 -3.1721]

内容的提问来源于stack exchange,提问作者Nightflight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:30:28