Advertisement
Guest User

cavallo

a guest
Nov 21st, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.83 KB | None | 0 0
  1. function [x] = RisolviTriangSup(U, y)
  2. % Risolve il sistema triangolare superiore Ux = y
  3.  
  4. n = length(y);
  5. x(n) = y(n) / U(n, n);
  6.  
  7. for k = n-1 : -1 : 1
  8.     x(k) = (y(k) - U(k, k+1:n)*x(k+1:n)') / U(k, k);
  9. end
  10.  
  11. end
  12.  
  13.  
  14.  
  15.  
  16. function [x] = Gauss(A, b)
  17. % Metodo di eliminazione di Gauss
  18.  
  19. n = length(b);
  20.  
  21. for k = 1 : n-1
  22.    
  23.     for i = k+1 : n
  24.         m(i) = A(i,k) / A(k,k);
  25.        
  26.         for j = k+1 : n
  27.             A(i,j) = A(i,j) - m(i)*A(k,j);
  28.         end
  29.        
  30.         b(i) = b(i) - m(i)*b(k);
  31.     end
  32. end
  33.  
  34. x = RisolviTriangSup(triu(A), b);
  35. end
  36.  
  37.  
  38.  
  39.  
  40.  
  41. A = [   -2.3    4   -1.5    -1;
  42.         4       -9.2 0.9    5;
  43.         -4      5    -5     5.2;
  44.         -8      8    -13.4  20];
  45.  
  46. b = [1 -3 3 -2]';
  47.  
  48. x = Gauss(A, b);
  49. x_true = A\b;
  50.  
  51. norm(b - A*x') / norm(b)
  52.  
  53. norm(x_true - x) / norm(x_true)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement