diff options
author | Nguyễn Gia Phong <vn.mcsinyx@gmail.com> | 2020-02-16 14:26:55 +0700 |
---|---|---|
committer | Nguyễn Gia Phong <vn.mcsinyx@gmail.com> | 2020-02-16 14:26:55 +0700 |
commit | 82e6cf7d1046d6cee16f7e8b044ec33e7ec6c4b7 (patch) | |
tree | f7b7ae0bce69070c47a1b31a85bd2bc69dfecf09 /usth/MATH2.4/labwork/3/LU_pivot.m | |
parent | 29d1001e2e21eff289bff23412e284c8b2e44595 (diff) | |
download | cp-82e6cf7d1046d6cee16f7e8b044ec33e7ec6c4b7.tar.gz |
[usth] Numerical Method is MATH2.4
Diffstat (limited to 'usth/MATH2.4/labwork/3/LU_pivot.m')
-rw-r--r-- | usth/MATH2.4/labwork/3/LU_pivot.m | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/usth/MATH2.4/labwork/3/LU_pivot.m b/usth/MATH2.4/labwork/3/LU_pivot.m new file mode 100644 index 0000000..c506697 --- /dev/null +++ b/usth/MATH2.4/labwork/3/LU_pivot.m @@ -0,0 +1,20 @@ +function [L U P] = LU_pivot (A) + [n _] = size (A); + [L P U] = deal (eye (n), eye (n), A); + for k = 1:n + [pivot m] = max (abs (U(k:n, k))); + m = m + k - 1; + if (m ~= k) + U([m k], :) = U([k m], :); % interchange rows m and k in U + P([m k], :) = P([k m], :); % interchange rows m and k in P + if k >= 2; % very important point + % interchange rows m and k in columns 1:k-1 of L + L([m k], 1:k-1) = L([k m], 1:k-1); + end + end + for i = k + 1 : n + L(i, k) = U(i, k) / U(k, k); + U(i, :) -= L(i, k)*U(k, :); + end + end +end |