Untitled
function raiz = biseccion(f, a, b, tol, max_iter) % BISECCION Encuentra la raíz de una función en un intervalo usando el método de bisección % % RAIZ = BISECCION(F, A, B, TOL, MAX_ITER) encuentra una raíz de la función F en el intervalo [A, B] % con una tolerancia TOL y un máximo de MAX_ITER iteraciones. F debe ser una función de una variable. % % Encontrar la raíz de sin(x) = 0 % f1 = @(x) sin(x); % raiz1 = biseccion(f1, 3, 4, 1e-6, 50) % Resultado esperado: π (aproximadamente 3.14159) if f(a) * f(b) >= 0 error('La función cambiara de signo en el intervalo [a, b]'); end iter = 0; while (b - a) > tol && iter < max_iter c = (a + b)/2; if f(c) == 0 break; elseif f(a) * f(c) < 0 b = c; else a = c; end iter = iter + 1; end if iter == max_iter warning('Se alcanzó el número máximo de iteraciones sin alcanzar la tolerancia'); end raiz = (a + b)/2; end
Leave a Comment