banach i sor polecenie i rozw ale nie dziala

disp 'metoda Choleskiego-Banachiewicza'

% rozklad LL' macierzy A (rozklad Choleskiego-Banachiewicza dla macierzy symetrycznej)

L = zeros(N); % utworzenie pustej macierzy L do wypelnienia

for i = 1 : N % dla kolejnych kolumn

% obliczenie elementow z diagonali

suma = 0;

for k = 1 : (i-1)

suma = suma + (L(i,k))^2;

end

L(i,i) = sqrt(A(i,i) - suma);

% obliczenie elementow spod diagonali

for j = (i+1) : N

suma = 0;

for k = 1 : (i-1)

suma = suma + L(j,k) * L(i,k);

end

L(j,i) = (A(j,i) - suma) / L(i,i);

end

end

L % wypisanie obliczonej macierzy L

LLT = L * L' % sprawdzenie czy L*L' == A

% wsteczne podstawienie (w dol) => wektor y = L' x

y = zeros(N,1); % utworzenie wektora y (chwilowo wypelnionego zerami)

for i = 1 : N

suma = 0;

for j = 1 : (i-1)

suma = suma + L(i,j) * y(j); % sumujemy iloczyny kolejnych y przez wspolczynniki

end

y(i) = ( b(i) - suma ) / L(i,i);

end

LT = L' % transpozycja L daje macierz gornotrojkatna

% ... dzieki temu mozna zastosowac wteczne podstawienie

% (w gore) => wektor x

x = zeros(N,1); % utworzenie wektora x

for i = N : -1 : 1

suma = 0;

for j = N : -1 : (i+1)

suma = suma + LT(i,j) * x(j);

end

x(i) = ( y(i) - suma ) / LT(i,i);

end

% wypisanie obliczonego x i sprawdzenie czy zostal dobrze policzony:

x_CB = x

Ax_b = A*x - b

%% a.2 wyznaczenie rozwiazania ukladu rownan metoda SOR

disp 'metoda SOR'

% parametr omega

w = 1

% rozklad macierzy A na L+D+U

L = tril(A,-1)

D = diag(diag(A))

U = triu(A,1)

% macierze B i c

B = inv(D + w*L) * ((1-w)*D - w*U)

c = w * inv(D + w*L) * b

X = []; % skasowanie zawartosci zmiennej X, jesli istniala

R = []; % skasowanie zawartosci zmiennej R, jesli istniala

X(:,1) = ones(N,1); % punkt startowy - przechowujemy jako pierwsza kolumne macierzy X

R(1) = norm(A*X(:,1)-b); % residuum dla punktu startowego - przechowujemy jako pierwszy element macierzy R

dokladnosc = 0.0001 % max norma wektora resztowego (residuum)

maxiter = 100 % max liczba iteracji

i = 1; % reset licznika iteracji

while (i <= maxiter) & (R(i) > dokladnosc)

X(:,i+1) = B * X(:,i) + c; % znalezienie i przechowanie w X kolejnego rozwiazania

R(i+1) = norm(A*X(:,i+1)-b); % znalezienie i przechowanie w R kolejnego residuum

i = i+1;

end

% wyswietlenie wynikow

x_SOR = X(:,i) % rozwiazanie koncowe

disp 'liczba iteracji ', i-1

[X' R'] % tabelka z wynikami i residuum

%% podpunkt b wyznacznik i macierz odwrotna do A

disp 'wyznacznik i macierz odwrotna do A'

detA = det(A)

Ainv = inv(A)



Wyszukiwarka

Podobne podstrony:
Spółka prowadzi działalność produkcyjną ale nie prowadzi magazynów wyrobów gotowych
bmw E36 regulacji temperatury nie dziala
zadania które były, ale nie mam rozwiązania
bmw E39 E46 E53 nie dziala dmuchawa
mercedes benz c klasa kierunkowskazy nie dzialaja
POLITYKA PIENIĘŻNA ściąga ale nie, FiR, Polityka Pieniezna
diagnostyka - zestawy, To są zestawy z kiedyś wcześniej ale nie wiem z kiedy
mechanika, sciaga mechana(2), 1 zasada dynamiki-jeśli na ciało nie działa żadna siła lub siły działa
ANTROPOLOGIA ks. prof PIECUCH, Człowiek, któremu się wydaje, że zrozumiał świat, ale nie zrozumiał s
Przepraszam kasa mi nie dziala
fizya2,
teoria , Prawo bezwładności - punkt materialny, na który nie działa żadna siła lub działają siły rów
Wielkie dzieła literatury światowej nie są na ogółoptymistyczne, ale nie odbierają nadziei, ˙Wielkie
Pracownik może krytykować decyzje szefa, ale nie jego osobę
Audi A6 nie dziala wentylator chlodnicy
Peugeot 406 nie dziala wentylator chlodnicy
kłopotliwe, niepraktykujący, Czy można być wierzącym, ale nie praktykującym

więcej podobnych podstron