mihainan

Nan Mihai - Metode numerice

Mar 19th, 2014
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.94 KB | None | 0 0
  1. function x = eliminareGausianaPP(A,b)
  2. n = size(A,1);
  3. A = [A,b];
  4. for i = 1:n-1
  5.     p = i;
  6.     for j = i+1:n
  7.         if abs(A(j,i)) > abs(A(i,i))
  8.             U = A(i,:);
  9.             A(i,:) = A(j,:);
  10.             A(j,:) = U;        
  11.         endif
  12.     endfor
  13.     while A(p,i)== 0 & p <= n
  14.         p = p+1;
  15.     endwhile
  16.     if p == n+1
  17.         disp('Nu are solutie unica!');
  18.         break
  19.     else
  20.         if p ~= i
  21.             T = A(i,:);
  22.             A(i,:) = A(p,:);
  23.             A(p,:) = T;
  24.         endif
  25.     endif
  26.    
  27.     for j = i+1:n
  28.         m = A(j,i)/A(i,i);
  29.         for k = i+1:n+1
  30.             A(j,k) = A(j,k) - m*A(i,k);
  31.         endfor
  32.     endfor
  33. endfor
  34.  
  35. if A(n,n) == 0
  36.     disp('Nu are solutie unica!');
  37.     return
  38. endif
  39.  
  40. x(n) = A(n,n+1)/A(n,n);
  41. for i = n - 1:-1:1
  42.     sumax = 0;
  43.     for j = i+1:n
  44.         sumax = sumax + A(i,j)*x(j);
  45.     endfor
  46.     x(i) = (A(i,n+1) - sumax)/A(i,i);
  47. endfor
  48.  
  49. endfunction
Advertisement
Add Comment
Please, Sign In to add comment