• Martes 21 de Mayo de 2024, 01:39

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - kike23

Páginas: [1]
1
Matlab / ALGORITMO EN MATLAB
« en: Miércoles 7 de Octubre de 2009, 01:55 »
HOLA

Amigo tengo un problema con un algoritmo en matlab, el cual es el de eliminacion gausiana con pivoteto tatol.
lo q pasa es q yo tengo el de eliminacion gaussiana con pivoteo total y necesito convertirlo en pivoteo total, pero no se como hacerlo, porq necesito q cuando me haga el cambio de columnas me guarde ese cambio.
le agradesco su colaboracion.
Amigos aqui les coloco el algoritmo q estoy trabajando y necesito modificar.
%%Metodo De Eliminación Gaussiana con pivoteo psarcial escalado
%%para resolver el sistema Ax=b
%%Dada una matriz A nxn+1, el número de incognitas
%% La salida es  el vector solución X
 
function [X]=EGPPE(A,n)
for i=1:n,
    s(i)=-1;
    for j=1:n,
        if abs(A(i,j))>s(i)
            s(i)=abs(A(i,j));
        end
    end
    if s(i)==0
        disp('No existe solución única');
        return
    end
    nrow(i)=i;
end
   
for i=1:n-1,
   
    max=abs(A(nrow(i),i))/s(nrow(i));
    for j=i:n,
        if abs(A(nrow(j),i))/s(nrow(j))>=max
            max=abs(A(nrow(j),i))/s(nrow(j));
            p=j;
        end
    end
    if A(nrow(p),i)==0
       disp('No existe solución única');
       return
    end
    if nrow(i) ~= nrow(p)
        ncopy=nrow(i);
        nrow(i)=nrow(p);
        nrow(p)=ncopy;
    end
    for j=i+1:n,
        m(nrow(j),i)=A(nrow(j),i)/A(nrow(i),i);
        for k=1:n+1,
            A(nrow(j),k)=(A(nrow(j),k)-m(nrow(j),i)*A(nrow(i),k));
        end
    end
end
if A(nrow(n),n)==0
    disp('No existe solución única');
    return
end
 
X(n)=A(nrow(n),n+1)/A(nrow(n),n);
 
for i=n-1:-1:1,
    sum=0;
    for j=i+1:n,
        sum=sum+A(nrow(i),j)*X(j);
    end
   
    X(i)=(A(nrow(i),n+1)-sum)/A(nrow(i),i);
end

gracias por su ayuda

Páginas: [1]