// // Resolucion de sistemas no-lineales // // Metodo de la biseccion ilustrado // clear // Grafico de la funcion // Definicion de la funcion para un escalar deff('y=f(x)','y=log(x.^2+1)-exp(0.4*x).*cos(%pi*x)') xp = -3:0.1:0; yp = f(xp); figure(1) plot2d(xp,yp) plot2d(xp,zeros(xp)) q = 5; // Numero de digitos de precision para la convergencia n_iter = 100; a(1) = input('Valor inicial de a ? ='); b(1) = input('Valor inicial de b ? ='); x(1) = ( a(1) + b(1) ) / 2 ; fa = f(a(1)); fb = f(b(1)); plot2d(a(1),fa,[-4]); plot2d(b(1),fb,[-4]); plot2d(x(1),f(x(1)),[-1]); for k =2:n_iter pause fx = f(x(k-1)); if fa*fx < 0 a(k) = a(k-1); b(k) = x(k-1); fb = fx; elseif fa*fx > 0 a(k) = x(k-1); b(k) = b(k-1); fa = fx; else break end x(k) = ( a(k) + b(k) ) / 2 ; // Verificacion del criterio de parada if ( b(k)- a(k) ) <= 2*abs( x(k) )*10^(-q) break end plot2d(a(k),fa,[-4]); plot2d(b(k),fb,[-4]); plot2d(x(k),f(x(k)),[-1]); end x($) y=f(x($))