Istvan

gauss-elimination

Apr 6th, 2012
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.01 KB | None | 0 0
  1. % A program adott A mátrix és b vektor esetén a
  2. % Gauss-elimináció módszerét követve kiszámítja az Ax = b lineáris egyen-
  3. % letrendszer megoldását, részleges főelemkiválasztással
  4.  
  5. % Bemenő paraméterek:
  6. % Egy n×n -es mátrix (A)
  7. % Egy n méretű vektor (b)
  8.  
  9. % Kimenő adatok:
  10. % egy n méretű vektor, a lineáris egyenletrendszer megoldása (x)
  11.  
  12. function x = gauss(A,b)
  13.  
  14. n=length(A);
  15. A=[A,b]
  16. for k=1:n-1
  17.   for i=k+1:n
  18.     for j=k+1:n+1
  19.       if ( A(k,k) == 0)
  20.     [maximum, ind] = max(A(k:n,k));
  21.     if ( maximum == 0 )
  22.       disp('A mátrix determinánsa nulla, így nem lehet rajta elvégezni a gauss eliminációt')
  23.       return;
  24.     end
  25.     akt = A(ind,1:n+1);
  26.     A(ind,1:n+1) = A(k,1:n+1);
  27.     A(k,1:n+1) = akt;
  28.       end
  29.         A(i,j) = A(i,j) -  ( (A(i,k) / A(k,k)) * A(k,j) );
  30.     end
  31.     A(i,k)=0;
  32.   end
  33. end
  34. x=zeros(n,1);
  35. x(n,1) = A(n,n+1) / A(n,n);
  36. temp=0;
  37. for k=n-1:-1:1
  38.   for j=k+1:n
  39.     temp = temp + A(k,j) * x(j,1);
  40.   end
  41.     x(k,1) = (A(k,n+1) - temp) / A(k,k);
  42.     temp=0;
  43. end
Advertisement
Add Comment
Please, Sign In to add comment