// // Resolucion de sistemas no-lineales // // Metodo de la regla falsa // 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) = b(1) - f(b(1))*(b(1)-a(1))/(f(b(1))-f(a(1))); 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]); plot2d([a(1) b(1)]', [fa fb]',[2]); 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) = b(k) - f(b(k))*(b(k)-a(k))/(f(b(k))-f(a(k))) ; // 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([a(k) b(k)]', [fa fb]',[2]); end x($) y=f(x($))