How do I write out symbolically what this function does in the case n= 5 for the iteration with j = 3, Using ordinary element wise vector and matrix notation

1 view (last 30 days)
function [L, U] = lufacto(A)
% LUFACT LU factorization
% Input:
% A square matrix
% Output:
% (L, U) unit lower triangular and upper triangular such that LU = A
n = length(A);
L = eye(n); % ones on diagonal
% Gaussian elimination
for j = 1:n-1
L(j+1:n, j) = A(j+1:n, j) / A(j, j);
A(j+1:n, j:n) = A(j+1:n, j:n) - L(j+1:n, j) * A(j, j:n);
end
U = triu(A);
end
  1 Comment
Dyuman Joshi
Dyuman Joshi on 22 Sep 2023
n = length(A);
Using length() for non-vector, non-square arrays can be confusing (for the lack of a better word).
Instead use the more robust option - size, where the output for a 2D array is
[number_of_rows number_of_columns]

Sign in to comment.

Answers (1)

Pratyush
Pratyush on 22 Sep 2023
Hi Muhideen,
I understand you want to represent the calculation steps for n=5, in the iteration j=3 using Matrix notation.
Symbolically, the calculations for the given iteration can be represented as:
  • L(4, 3) = A(4, 3) / A(3, 3)
  • L(5, 3) = A(5, 3) / A(3, 3)
  • A(4, 3:5) = A(4, 3:5) - L(4, 3) * A(3, 3:5)
  • A(5, 3:5) = A(5, 3:5) - L(5, 3) * A(3, 3:5)
Note: The above notation assumes 1-based indexing.
  4 Comments

Sign in to comment.

Products


Release

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!