x=zeros(n, 1) r J= for kl.r Exchange XO, k)=BG, k/Lg,j) index j, k B(j+1:n2k)=B(j+1n,k)-L(+1:nj)*x(jk); end End for kl. r X(n, k)=B(n, kL(n,n) ent
x = zeros(n,1); for j=1:n-1 for k=1:r X(j,k) = B(j,k)/L(j,j); B(j+1:n,k) = B(j+1:n,k) - L(j+1:n,j)*X(j,k); end End for k=1:r X(n,k) =B(n,k)/L(n,n); end Exchange index j,k
function X=LTrISoIML B) Vectorize on k n, r]=size(B) ⅹ= zeros(n,r); for j=1: n-1 X(j,1r)=B(j,1:r)/L(j); BG+l: n, I r)=BG+l: n,I: r )-LG+l: n,j)*XG,1: r) enc X(n, 1: r)=B(n,I: r)L(n,n) In high-per formance computing environments, maneuvers like this are often the key to efficient matrix computation
function X = LTriSolM(L,B) [n,r] = size(B); X = zeros(n,r); for j=1:n-1 X(j,1:r) = B(j,1:r)/L(j,j); B(j+1:n,1:r) = B(j+1:n,1:r) - L(j+1:n,j)*X(j,1:r); end X(n,1:r) = B(n,1:r)/L(n,n); Vectorize “on k” In high-performance computing environments, meaneuvers like this are often the key to efficient matrix computation
Script File: Show Tri %o Inverse of the 5-by-5 Forsythe matriX L=eye(n, n)-tril(ones(n, n) X-(L, eye(n,n)) 0000 0000 000 000 84
% Script File: ShowTri % Inverse of the 5-by-5 Forsythe Matrix. n = 5; L = eye(n,n) - tril(ones(n,n),-1) X = LTriSolM(L,eye(n,n)) L = 1 0 0 0 0 -1 1 0 0 0 -1 -1 1 0 0 -1 -1 -1 1 0 -1 -1 -1 -1 1 X = 1 0 0 0 0 1 1 0 0 0 2 1 1 0 0 4 2 1 1 0 8 4 2 1 1
Banded Problems ×0000 ×××× ××000 ××××× 0×××00 A 0 ×××× 00×××0 00×××× 000×× 000××× 0000×× 0000×× Tridiagonal matrix U pper Hessenberg matrix
Banded Problems = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A = 0 0 0 0 0 0 0 0 0 0 A Tridiagonal matrix Upper Hessenberg matrix
A=LU ↓ Ly=b →Ax=(LU)x=L(x)=Ly=b Ux=y Ltrisol(l, b) tRisol(U,y)
A = LU Ax LU x L Ux Ly b Ux y Ly b = = = = = = ( ) ( ) y=Ltrisol(L,b); x=Utrisol(U,y);