%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