    function [ B ]= inversa(A)
    [ n , n ] = size ( A ) ;
    M = cat( 2 , A , eye (n) ) ;
    x = zeros ( 1 , n ) ;
    for i = 1 : n
    ord ( i ) = i ;
    end
    for p = 1 : n 
    for i = p : n
    for j = p : n 
    if abs ( M ( i , j ) ) > abs ( M ( p , p ) )
    x = M ( i , : ) ;
    M ( i , : ) = M ( p , : ) ;
    M ( p , : ) = x ;
    x = M ( : , j ) ;
    M ( : , j ) = M ( : , p ) ;
    M ( : , p ) = x ;
    x = ord ( j ) ;
    ord ( j ) = ord ( p ) ;
    ord ( p ) = x ;
    end
    end
    end
    M ( p , : ) = M ( p , : ) / M ( p , p ) ;
    for i = 1 : n
    if i ~= p
    M ( i , : ) = M ( i , : ) - M ( i , p ) * M ( p , : ) ;
    end
    end
    end
    for i = 1 : n
    B ( ord (  i  ) , : ) = M ( i ,n+1:2*n ) ;
    end
    end