• Viernes 19 de Abril de 2024, 12:35

Autor Tema:  ALGORITMO EN MATLAB  (Leído 8943 veces)

kike23

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
ALGORITMO EN MATLAB
« en: Miércoles 7 de Octubre de 2009, 01:55 »
0
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

linam

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: ALGORITMO EN MATLAB
« Respuesta #1 en: Martes 3 de Noviembre de 2009, 17:51 »
0
Tengo el algoritmo de eliminacion gaussiana con pivoteo total pero reuiero primero que me digas donde adquiristes el que esta publicado???

kike23

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: ALGORITMO EN MATLAB
« Respuesta #2 en: Miércoles 4 de Noviembre de 2009, 00:27 »
0
EL algoritmo lo saque  del libro de burdel....

linam

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: ALGORITMO EN MATLAB
« Respuesta #3 en: Miércoles 4 de Noviembre de 2009, 02:59 »
0
Bueno este algortimo tal y como lo muestras no esta asi en el libro de _Burden
sin embargo este algoritmo lo realice yo hace un par de años tengo exactamente el mismo y es imposible que alguien lo replicara igual, realmente me gustaria ver como llego a tus manos,
bueno espero enviarte el algoritmo mañana aunque aun estoy con la intiga sobre el algoritmo

linam

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: ALGORITMO EN MATLAB
« Respuesta #4 en: Miércoles 4 de Noviembre de 2009, 03:01 »
0
definitivamente si es mi algoritmo mira esta linea

%%Metodo De Eliminación Gaussiana con pivoteo psarcial escalado
psarcial ese error lo cometí yo