function x = gauss_pivoteo(A, b) n = size(A,1); Ab = [A b]; % Eliminación con pivoteo parcial for k = 1:n-1 [~, idx] = max(abs(Ab(k:n,k))); idx = idx + k - 1; if idx ~= k Ab([k idx], :) = Ab([idx k], :); % Intercambio de filas end for i = k+1:n m = Ab(i,k)/Ab(k,k); Ab(i,k:end) = Ab(i,k:end) - m * Ab(k,k:end); end end % Sustitución regresiva x = zeros(n,1); x(n) = Ab(n,end)/Ab(n,n); for i = n-1:-1:1 x(i) = (Ab(i,end) - Ab(i,i+1:n)*x(i+1:n)) / Ab(i,i); end end