Praktická cvičení z Numerické matematiky
Soustavy lineárních a nelineárních algebraických rovnic - 2. týden
U = [ 0.5 0.1 0.3; -0.2 0.4 -0.2; 0.1 0.2 0.3];
V = [ 0.8 ; 0; 0.55 ];
norm(U, 1)
norm(U, 2)
norm(U, Inf)
[u,v] = eig(U);
X = V; % pocatecni podminka
% jedna iterace (opakujeme)
X = U * X + V
Prostá iterační metoda - cyklus
for i = 1:40, X = U * X + V; end
Příklad 2.5: Prostá iterační metoda pro velké matice
n = 20; pom = ones(n - 1, 1);
U = -diag(pom, 1) / 2 - diag(pom, -1) / 2;
V = ones(n, 1);
[z, lam] = eig(U);
norm(U, 1)
norm(U, 2)
norm(U, Inf)
X = V; % pocatecni podminka
% opakujeme
X = U * X + V;
Příklad 2.6: Prostá iterační metoda pro velké matice
n = 5;
e = ones(n,1) / 4;
B = full(spdiags([-e 0 -e ], [-1:1], n, n));
A = []; for i = 1:n, A = blkdiag(A, B); end,
pom = diag(ones(n*(n-1),1), -n) / 4;
A = A - pom - pom';
spy(A)
U = A;
V = ones(n, 1);
[z, lam] = eig(U);
norm(U, 1)
norm(U, 2)
norm(U, Inf)
X = V; % pocatecni podminka
% opakujeme
X = U * X + V;