Advertisement
mihainan

Nan Mihai - Eliminare gaussiana

Mar 19th, 2014
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.85 KB | None | 0 0
  1. function x = eliminareGaussiana(A, b)
  2.  
  3. n = size(A, 1);
  4. r = zeros(n, 1);
  5. for i = 1 : 1 : n    
  6.    r(i) = i;
  7. endfor
  8.  
  9. x = zeros(n, 1);
  10. for k = 1:n
  11.     max = abs(A(r(k), r(k)));    
  12.     max_pos = k;    
  13.     for l = k : 1 : n        
  14.         if abs(A(r(l), r(k))) > max            
  15.             max = abs(A(r(l), r(k)));            
  16.             max_pos = l;            
  17.         endif
  18.     endfor
  19.    
  20.     temp_r = r;
  21.     r(k) = temp_r(max_pos);
  22.     r(max_pos) = temp_r(k);
  23.    
  24.     for i = 1:n
  25.         if i ~= k
  26.             zeta = A(r(i), k) / A(r(k), k);
  27.             for j = k : 1 : n
  28.                 A(r(i), j) = A(r(i), j) - A(r(k), j) * zeta;                      
  29.             endfor
  30.             b(r(i)) = b(r(i)) - b(r(k)) * zeta;
  31.         endif
  32.     endfor
  33. endfor
  34.  
  35. for i = 1:n
  36.     x(i) = b(r(i)) / A(r(i), i);
  37. endfor
  38.  
  39. endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement