function [ A, sA, Q2, NGL, VA, F ] = mmq_lin( X, Y, V )
%  [ A, sA, Q2, NGL, VA, F ] = mmq_lin( X, Y, V );

Y = Y(:);
Ndados = length( Y );
Nparam = size(X,2);

if min(size(V))==1
    % ajuste com V = incerteza
       iV = diag( V.^2 ) \ eye( length(V) );
else
    % ajuste com matriz de covariância completa
    iV = V \ eye(Ndados);
end

VA =  ( X' * iV * X ) \ eye(Nparam);
A = VA * X' * iV * Y;
F = X * A;
Q2 = (Y-F)' * iV * (Y-F);
sA = sqrt( diag(VA) );
NGL = Ndados - Nparam;
