Yo actualmente tratando de calcular una estimación barata buena fila de una matriz . Por lo tanto, calculo una descomposición QR pivotante de columna usando
[Q,R,E]=qr(A)
en Matlab Calculo el rango de usando
tol = size(A,n)*eps*norm(A,'fro');
r = sum(abs(diag(R))>tol)
Esto funciona bien y un gráfico sobre todas las entradas diagonales de R se ve así:
La matriz de entrada es exactamente la misma para ambos experimentos.
Mi pregunta ahora es ¿en qué función LAPACK se basa la columna que gira la descomposición QR de Matlab?
Gracias por cualquier ayuda, Grisu
Editar: DGEQPF da el mismo resultado incorrecto.
Edit2:
Edit3: - Utilizando GDB descubrí que Matlab 2010b llama a DGEQP3: # 3 0xaa46ce2f en dgeqp3_ () desde /usr/ubuntu10.04/matlabr2010b/bin/glnx86/../../bin/glnx86/../. ./bin/glnx86/mllapack.so ¿Por qué obtengo un resultado incorrecto con LAPACK (3.4.0 incluye las correcciones mencionadas en la Nota de trabajo 176)?