Advertisement
Guest User

Untitled

a guest
Jan 8th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 0.68 KB | None | 0 0
  1. # Funkcja obliczająca wektor prawych stron dla zadanej macierzy i wektora jednostkowego
  2. # in:   A - zadana macierz, n - rozmiar macierzy
  3. # out:  b - obliczony wektor prawych stron
  4. function rightVector(A::SparseMatrixCSC{Float64, Int64}, n::Int64, l::Int64)
  5.     b = zeros(Float64, n);
  6.     for i in 1 : n
  7.         firstNonZeroInCol = convert(Int64, max(l * floor((i-1) / l) , 1)); #po floor((i-1) / l) było -1 ale chyba nie pasuje
  8.         lastNonZeroInCol = convert(Int64, min(l + l * floor((i) / l), n));
  9.         for j in firstNonZeroInCol : lastNonZeroInCol
  10.             b[i] += A[j, i];
  11.         end
  12.  
  13.         #uwzględnienie danych zawartych w blokach C
  14.         if (i + l <= n)
  15.             b[i] += A[i + l, i];
  16.         end
  17.     end
  18.     return b;
  19. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement