Red de conocimiento informático - Conocimiento informático - Ayuda para el código MATLAB para calcular la matriz de pasos RREF()

Ayuda para el código MATLAB para calcular la matriz de pasos RREF()

Escriba la línea de comando de matlab

gt;gt;?type?rref

Verá el código fuente de rref que viene con el sistema

función?[A,jb]?=?rref(A,tol)

RREF¿Reducida?fila?escalón?forma.

R?=?RREF(A) ? produce? también devuelve un vector jb de modo que:

r?length(jb) es la comprensión del algoritmo del rango de A,

x(jb) es el enlace en el sistema lineal Variable definida, Ax=?b,

A(:,jb) es la base del rango de A,

R(1:r,jb) es el identificador de matriz r por r. =?RREF(A,TOL)?Este algoritmo calcula diferentes valores de clasificación en comparación con RANK, ORTH y NULL.

Soporte de clase para la entrada A:

Coma flotante: doble, simple

Ver también RANK , ORTH, NULO, QR, SVD. MathWorks, Inc.

$Revisión:?5.9.4.3?$? $Fecha:?2006/01/18?21:58:54?$

[m,n] ? =?tamaño(A);

?¿Es así?/den);

? Si no se proporciona ninguna tolerancia predeterminada, se calcula la tolerancia predeterminada.

if(nargin?lt;?2), tol? =?max(m,n)*eps(class(A))*norm(A,'inf');?end

?[];

mientras(i?lt;=?m)?(j?lt;=?n)

? Encuentra el valor y el índice del elemento más grande en el resto de la columna j.

[p,k]? =?max(abs(A(i:m,j)));?k?=?k i-1;

si? A(i:m,j)? 1, 1); j? =?j ?1;

else ?Recuerde el índice de columna jb?[jb?j]; ([i?k],j:n)? =?A([k?i],j:n); ?Dividir?el?pivote? n)/A(i, j); Reste múltiplos de la fila pivote de todas las demás filas. para?[1:i-1?i 1:m] A(k,j:n)? =?A(k,j:n)?-?A(k,j)*A(i,j:n) ); fin i?=?i?1; j?=?j ?1;

fin

fin

fin

?Retorno?"RACIONAL"?"números?si?apropiado.

Retorno?"racional"?"números?".

[num,den] ? =?rat (A);

A=num./den;

fin