No BSD License  

Highlights from
Legendre Roots

from Legendre Roots by Ulises Velasco
Program made to find legendrie's polinomial roots or zeros.

y=cdl(grado)
%This is a simple small program made to find legendrie's polinomial roots or zeros


% Este es un programa que obtiene los ceros de el polinomio de Legendre
% Se necesita el programa px

function y=cdl(grado)


par=0;
incremento=.5;
fin=0;
valor=0;

% Checamos si el grado es par o impar

click=rem(grado,2);

if click==0
    par=1;
end

if grado<1
    par=2;
end


% Caso de un polinomio de grado par
if par==1
    respuesta=fzero(inline(['px(' num2str(grado) ',x)']),.9);
    tamano1=grado/2;
    while fin==0
                
        
        if valor>1
            incremento=incremento/2;
            valor=0;
        end
     
        v1=abs(fzero(inline(['px(' num2str(grado) ',x)']),valor));
        v2=sum(respuesta==(v1));
        
        if v2==0
            respuesta=[respuesta v1];
        end
        
        
        tamano=size(respuesta);
        tamano=tamano(2);
                
        if tamano==tamano1
            fin=1;
        end
            
        valor=valor+incremento;
    end
    respuesta=sort(respuesta);
    respuestaneg=respuesta*-1;
    respuestaneg=sort(respuestaneg);
    y=[respuestaneg respuesta];
end
% Caso de un polinomio de grado impar
if par==0
    respuesta=fzero(inline(['px(' num2str(grado) ',x)']),.9);
    tamano1=floor(grado/2);
    while fin==0
                
        
        if valor>1
            incremento=incremento/2;
            valor=0;
        end
     
        v1=abs(fzero(inline(['px(' num2str(grado) ',x)']),valor));
        v2=sum(respuesta==(v1));
        
        if v2==0
            if v1>0
            respuesta=[respuesta v1];
        end
        end
        
        
        tamano=size(respuesta);
        tamano=tamano(2);
                
        if tamano==tamano1
            fin=1;
        end
            
        valor=valor+incremento;
    end
    respuesta=sort(respuesta);
    respuestaneg=respuesta*-1;
    respuestaneg=sort(respuestaneg);
    y=[respuestaneg 0 respuesta];

end

Contact us