Praktická cvičení z Numerické matematiky
Soustavy lineárních a nelineárních algebraických rovnic - 1. týden
- Norma vektoru a maticové normy
Normy vektoru spočteme příkazem norm
x = [ 2; -1; 0]; norm(x, 1) norm(x, 2) norm(x, inf)Maticové normy také
A = [ 1 2 3 ; 4 5 6; 7 8 9]; norm(A, 1) norm(A, Inf) % take normu spektralni norm(A, 2)Frobeniovu normu pak např.
norm(A, 'fro') sqrt(sum(sum(A.*A)))Vlastní čísla a spektrální poloměr matice
lambda = eig(A); max(abs(eig(A)))Vlastní čísla a vlastní vektory
[u,lam] = eig(A);
A = [ 2 1 1 ; 1 5 1; 1 1 9]; eig(A)
A = [ 2 -1; -1 2]; b = [ -0.1; 0.1 ]; b1 = b + (1e-5) * [ 1; 1]; x = A \ b; x1 = A \ b1;Číslo podmínněnosti, druhý vztah jen pro symetrické matice
cond(A) max(eig(A)) / min(eig(A))Geometrická interpretace normy matice
A = [ 2 -1; -1 2]; phi = (0:1e-2:(2*pi))'; xy = [cos(phi), sin(phi)]'; Axy = A * xy; plot(xy(1, :), xy(2, :), 'k-', Axy(1,:), Axy(2, :), 'b');
n = 10; pom = ones(n -1, 1); A = 2 * diag(ones(n, 1)) - diag(pom, 1) - diag(pom, -1); [u,lam] = eig(A); % zobrazeni 3. vlastniho vektoru plot( u(:,3) )nebo
n=10; e=ones(n,1); A = full(spdiags([-e 2*e -e ], [-1:1], n, n)) spy(A)
n =5; e=ones(n,1); B = full(spdiags([-e 4*e -e ], [-1:1], n, n)); E = diag(-e); A = []; for i = 1:n, A = blkdiag(A, B); end, A = A - diag(ones(n*(n-1),1), -n) - diag(ones(n*(n-1),1), n); spy(A)