x = linspace(-1,16);
size(x)
y1 = (2 - 9*x)/(-10);
y2 = (1 - 8*x)/(-9);
plot(x, y1)
hold on
plot(x, y2, 'r')a
% codice di una funzione che calcola la fattorizzazione LU di una
% matrice quadrata
edit fattlu.m
help fattlu
A = [1 -2 4; -3 1 0; 5 -1 1]
B = fattlu(A)
U = triu(B)
tril(B)
tril(B,1)
tril(B,-1)
L = tril(B,-1) + eye(3,3)
L = tril(B,-1) + eye(3)
A
L * U
format long
L * U
A = [0 -2 4; -3 1 0; 5 -1 1]
% il pivot e' zero!
fattlu(A)
% lu(A) calcola la fattorizzazione LU con il pivoting per righe
% P e' una matrice di permutazione tale che PA = LU
[L U P] = lu(A)
A
% PA scambia le righe di A
P * A
% AP scambia le colonne di A
A * P
L * U
% Quarteroni-Saleri, pag. 146, esempio 5.8
A = [1 1+0.5e-15 3; 2 2 20; 3 6 4]
C = fattlu(A);
U = triu(C);
L = tril(C,-1) + eye(3);
A - L*U
[L U P] = lu(A);
P*A - L*U
P
format
P*A - L*U
help format
format short G
P*A - L*U
% esempi della lezione di oggi
A = [3 -2 5; -1 4 -7; 5 0 3]
null(A)
norm(ans)
x = [-3 8 5]
x/norm(x)
b = [5; -5; 5]
det(A)
rank(A)
A\b
% problemi mal posti
a = [9 -10; 8 -9]
b = [2; 1]
a\b
% matrici di Hilbert sono mal condizionate
hilb(1)
hilb(2)
hilb(3)
b = hilb(13) * ones(13,1)
hilb(13)/b
H = hilb(13);
% La soluzione precisa e' (1, 1, 1, ..., 1).
H\b
quit
# Octave 3.6.2, Mon Nov 05 16:04:01 2012 CET <achilles@achilles-TOSH>

