% zu Aufgabe 4.1
% Loesung eines linearen Gleichungssystems auf drei Arten:
% obwohl A gut konditioniert ist, liefern \ und lu nur sehr ungenaue
% Loesungen, nur qr funktioniert

n = 50;
A = eye(n) - tril(ones(n),-1);
A(:,n) = ones(n,1);
v = sin(1:n)';
b = A*v;

x_op = A\b;

[L,R1] = lu(A);
y = L\b;
x_lr = R1\y;

[Q,R2] = qr(A);
y = Q'*b;
x_qr = R2\y;

nx = norm(v,2);
op_error = norm(x_op - v,2) / nx
lr_error = norm(x_lr - v,2) / nx
qr_error = norm(x_qr - v,2) / nx

cond_A = cond(A,2)
cond_L = cond(L,2)
cond_R1 = cond(R1,2)
cond_R2 = cond(R2,2)