Buenas a todos! La primera vez en mi vida de forero que me paso por el subforo de informática
les vengo con una pregunta que me está trayendo muchos quebraderos de cabeza. Se trata de programar el método de la bisección. Mi código es:
[FONT=Fixedsys]
function [y0]=mdo_biseccion(xi,xf)
%Método de la bisección con f(x)=x^2-9
tol=1e-3;
flag=1;
while (flag)
xm=(xf-xi)/2;
ym=f(xm);
if (ym~=0)
if (ym*f(xi)>0)
xi=xm;
else
xf=xm;
end
else
flag=0;
end
flag=(xf-xi>tol);
end
y0=ym;
end
function [r]=f(x)
r=x*x-9;
end[/FONT]
Para los que no sepan en qué consiste el método de la bisección: miren la página 10 y 11 de este Link
El problema está en que me entra en un bucle infinito. La verdad, no entiendo por qué leches lo hace, si debería salir del while principal de una forma u otra.
Gracias por vuestra ayuda, que ojalá sea temprana dado que el lunes me examino de esto.
Saludos
les vengo con una pregunta que me está trayendo muchos quebraderos de cabeza. Se trata de programar el método de la bisección. Mi código es:
[FONT=Fixedsys]
function [y0]=mdo_biseccion(xi,xf)
%Método de la bisección con f(x)=x^2-9
tol=1e-3;
flag=1;
while (flag)
xm=(xf-xi)/2;
ym=f(xm);
if (ym~=0)
if (ym*f(xi)>0)
xi=xm;
else
xf=xm;
end
else
flag=0;
end
flag=(xf-xi>tol);
end
y0=ym;
end
function [r]=f(x)
r=x*x-9;
end[/FONT]
Para los que no sepan en qué consiste el método de la bisección: miren la página 10 y 11 de este Link
El problema está en que me entra en un bucle infinito. La verdad, no entiendo por qué leches lo hace, si debería salir del while principal de una forma u otra.
Gracias por vuestra ayuda, que ojalá sea temprana dado que el lunes me examino de esto.
Saludos
Comentario