% Angewandte Numerik 1, SoSe 2014 % Uebungsblatt 02, Aufgabe 15: Cholesky-Zerlegung % % Testprogramm fuer die Funktion L = choleskyBand(A), % die die CholeskyZerlegung einer Bandmatrix A berechnet clear all; close all; clc; tol = 1e-12; %% Testfall 1 A = 3*eye(4)+diag([1,1,1],-1)+diag([1,1,1],1); L = choleskyBand(A,1); err = max(max(abs(L*L'-A))); if (err < tol) fprintf('Testfall 1: Bestanden.\n'); else fprintf(2,'Testfall 1: Fehlgeschlagen.\n'); end %% Testfall 2 A = 8*eye(7)+diag(2*ones(6,1),-1)+diag(2*ones(6,1),1)+... diag(ones(5,1),-2) + diag(ones(5,1),2); L = choleskyBand(A,2); err = max(max(abs(L*L'-A))); if (err < tol) fprintf('Testfall 2: Bestanden.\n'); else fprintf(2,'Testfall 2: Fehlgeschlagen.\n'); end %% Testfall 3 n=50; A=rand(5,n); A= diag(A(1,:))+diag(A(2,2:end),1)+diag(A(3,2:end),-1)... + diag(A(4,6:end),5)+diag(A(5,6:end),-5); A = A+A'; A = A+(norm(A,1)+norm(A,Inf))*eye(n); A = A+A'+n*eye(n); L = choleskyBand(A,5); err = max(max(abs(L*L'-A))); if (err < tol) fprintf('Testfall 3: Bestanden.\n'); else fprintf(2,'Testfall 3: Fehlgeschlagen.\n'); end