⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldlt.m

📁 LU decomposition routines in matlab
💻 M
字号:
function [A,iflag] = ldlt( A )%% Usage:%        [A,iflag] = ldlt( A )%% Given a symmetric N by N matrix A, LDLT attempts% to compute the LDL^T decomposition of A.% %% input:%        A:     The N by N matrix A.%               Only the lower triangular part of A%               is used.%% output:%        A:     The strict lower triangular part of A%               contains the strict lower triangular part of L.%               The diagonal of A contains the diagonal D.%               The strict upper part of A is unchanged.%%        iflag: error flag%               iflag = 0  LDL^T decomposition could be computed%                          and is stored in the lower triangular%                          part of A.%               iflag = 1  A is not squared%               iflag > 1  Negative diagonal entry observed in step iflag-1.%                          Matrix A is not positive definite.%%% Matthias Heinjenschloss% Feb 1, 2001iflag = 0;% get size of A and checj dimensions[m,n]    = size(A);if ( m ~= n )   iflag = 1;   returnend% Start LDL^T decompositionfor j = 2:n    A(j,j) = A(j,j) - A(j,1:j-1)*A(j,1:j-1)';    if( A(j,j) <= 0 )        iflag = j+1;        return    end        for i = j+1:n        A(i,j) = ( A(i,j) - A(i,1:j-1)*A(j,1:j-1).*' ) / A(j,j);    endend    %end of ldlt

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -