Errror con codigo
Publicado por Edward (1 intervención) el 11/01/2012 21:43:11
Buenas tardes, estoy intentando crear un codigo que realice un barrido en el intervalo (a,b) de un polinomio p. para encontrar la primera raiz y funciona si hay una raiz, pero si dentro de ese intervalo no existe una raiz que me devuelva un valor de c igual al de b.... que pasa, que cuando hago la prueba con este valor
proyecto ([1 -5 5 -5 -6], -2.2, -2)
el deberia detenerse cuando a = b = -2 pero en lugar de esto el ciclo sigue.
este es el codigo
function [a, c] = proyecto(p,a,b)
dx =0.1;it=0;i=0;
while(i==0 || a<=b )
if (a == b)
c=b;
break
end
ya=polyval(p,a);
yb=polyval(p,a+dx);
if(ya*yb<=0)
c =a+dx;
i=1;
break
else
it = it+1;
a = a+dx;
%c= 0;
end
end
usando el debugger creo que el problema esta en que en el ultimo paso "a" toma un valor igual a -2.00000 y b = -2 por eso no entra en la condicion del if...
si pueden ayudarme se los agradeceria
proyecto ([1 -5 5 -5 -6], -2.2, -2)
el deberia detenerse cuando a = b = -2 pero en lugar de esto el ciclo sigue.
este es el codigo
function [a, c] = proyecto(p,a,b)
dx =0.1;it=0;i=0;
while(i==0 || a<=b )
if (a == b)
c=b;
break
end
ya=polyval(p,a);
yb=polyval(p,a+dx);
if(ya*yb<=0)
c =a+dx;
i=1;
break
else
it = it+1;
a = a+dx;
%c= 0;
end
end
usando el debugger creo que el problema esta en que en el ultimo paso "a" toma un valor igual a -2.00000 y b = -2 por eso no entra en la condicion del if...
si pueden ayudarme se los agradeceria
Valora esta pregunta


0