Solución del Problema: $f(x) = x^3 - 4x + 1$ por el método de bisección
¡Bienvenidos!
En esta entrada daremos solución al siguiente ejercicio propuesto donde aplicaremos el método de bisección.
Método de Bisección
Problema:
Encontrar una raíz de la ecuación: $f(x)=x^3−4x+1$, Selecciona un intervalo adecuado para realizar 2 iteraciones manuscritas del método de bisección. Para ello primero realiza la gráfica de la función en Matlab. Implementa el mismo ejercicio en un archivo de Excel y lo detienes hasta que el error se menor o igual a 0.0. 1Implementa con el código de Matlab. Organiza la solución de tu ejercicio en un archivo de pdf con imágenes ordenadas y claras de los tres pasos anteriores.Solución del Problema: $f(x) = x^3 - 4x + 1$
El Método de Bisección es un algoritmo de búsqueda de raíces que divide repetidamente un intervalo a la mitad y luego selecciona el subintervalo en el que reside la raíz. Se basa en el Teorema del Valor Intermedio.
1. Gráfica en MATLAB y Selección del Intervalo
Para seleccionar un intervalo adecuado $[a, b]$, necesitamos que la función cambie de signo en los extremos, es decir, que $f(a) \cdot f(b) < 0$.
% Definir el rango de x
x = linspace(-3, 3, 100);
% Definir la función
f = x.^3 - 4*x + 1;
% Graficar la función
plot(x, f, 'b', 'LineWidth', 2); % Cambié a color azul para distinción
hold on; % Permite agregar más elementos a la gráfica
grid on; % Agrega una cuadrícula
% Dibuja el eje x (y=0) usando plot
y_eje = zeros(size(x));
plot(x, y_eje, 'r--', 'LineWidth', 1.5);
xlabel('x');
ylabel('f(x)');
title('Gráfica de f(x) = x^3 - 4x + 1');
legend('f(x)', 'Eje x', 'Location', 'best');
hold off;
La salida del código es la siguiente grafica.
Selección del Intervalo
Al evaluar algunos puntos de la función, encontramos:
$f(0) = (0)^3 - 4(0) + 1 = 1$
$f(1) = (1)^3 - 4(1) + 1 = 1 - 4 + 1 = -2$
Dado que $f(0)$ es positivo y $f(1)$ es negativo, la raíz debe encontrarse en el intervalo $[0, 1]$, ya que $f(0) \cdot f(1) < 0$.
Esto significa que el intervalo [0,1] es adecuado para nuestro ejercicio ya que en el se encuentra una raíz.
La grafica también indica que la función tiene tres raíces, pero nos concentramos la raíz que esta contenida en el intervalo [0,1].
2. Dos Iteraciones Manuscritas
Función: $f(x)=x^3−4x+1$
Intervalo Inicial: $[a_0,b_0]=[0,1]$
Iteración 1
$a_0 = 0$, $b_0 = 1$
Punto medio $_p1$:
$$p_1 = \frac{a_0 + b_0}{2} = \frac{0 + 1}{2} = 0.5$$Evaluamos $f(p_1)$:
$$f(0.5) = (0.5)^3 - 4(0.5) + 1 = 0.125 - 2 + 1 = -0.875$$Comparamos: $f(a_0) = 1$ (positivo), $f(p_1) = -0.875$ (negativo). La raíz está en $[a_0, p_1]$.
Nuevo Intervalo: $[a_1, b_1] = [0, 0.5]$
Iteración 2
$a_1 = 0$, $b_1 = 0.5$
Punto medio $p_2$:
$$p_2 = \frac{a_1 + b_1}{2} = \frac{0 + 0.5}{2} = 0.25$$Evaluamos $f(p_2)$:
$$f(0.25) = (0.25)^3 - 4(0.25) + 1 = 0.015625 - 1 + 1 = 0.015625$$Comparamos: $f(p_2) = 0.015625$ (positivo), $f(b_1) = -0.875$ (negativo). La raíz está en $[p_2, b_1]$.
Nuevo Intervalo: $[a_2, b_2] = [0.25, 0.5]$
Aproximación de la raíz después de 2 iteraciones es $p_2 = 0.25$.
3. Implementación en Excel (Hasta que el Error $\leq 0.01$)
El error absoluto en el Método de Bisección se estima como la mitad del tamaño del último intervalo, $\text{Error} = |b_n - a_n| / 2$.
La aproximación final de la raíz es $\mathbf{c_7 = 0.2578125}$.
4. Implementación en Código MATLAB
Este código implementa el algoritmo hasta que el error relativo (o absoluto, ajustando la línea de parada) sea menor o igual a una tolerancia ($\epsilon$). Usaremos el error absoluto $|\text{intervalo}|/2$.
function [raiz, iteraciones] = biseccion_blog(a, b, tol)
% Implementación del Método de Bisección
% f(x) = x^3 - 4x + 1
% Definir la función anónima
f = @(x) x.^3 - 4*x + 1;
% Verificar que la raíz existe en el intervalo
if f(a) * f(b) > 0
error('La función no cambia de signo en el intervalo. Seleccione otro.');
end
iteraciones = 0;
max_iter = 100; % Límite de seguridad para evitar bucles infinitos
raiz_anterior = NaN; % Para calcular el error relativo (aunque usaremos el absoluto)
% Bucle principal del Método de Bisección
while (b - a) / 2 > tol && iteraciones < max_iter
iteraciones = iteraciones + 1;
p = (a + b) / 2; % Nuevo punto medio (aproximación actual)
fp = f(p);
if f(a) * fp < 0
b = p; % La raíz está en [a, p]
else
a = p; % La raíz está en [p, b]
end
end
raiz = (a + b) / 2; % La mejor aproximación es el punto medio final
fprintf('Método de Bisección (f(x) = x^3 - 4x + 1)\n');
fprintf('Tolerancia (Error Absoluto): %.4f\n', tol);
fprintf('Aproximación de la Raíz: %.8f\n', raiz);
fprintf('Número de Iteraciones: %d\n', iteraciones);
end
% --- Para ejecutar en la ventana de comandos de MATLAB (Command Window) ---
% biseccion_blog(0, 1, 0.01)La salida en Matlab es
>> biseccion_blog(0, 1, 0.01)
Método de Bisección (f(x) = x^3 - 4x + 1)
Tolerancia (Error Absoluto): 0.0100
Aproximación de la Raíz: 0.25781250
Número de Iteraciones: 6
ans =
0.2578
- Colegio Nacional de Matemáticas. (2009). Matemáticas simplificadas (2ª ed.). México: Pearson Educación.
-
Swokowski, E. W., & Cole, J. (2009). Álgebra y trigonometría con geometría analítica (12.ª ed.). Cengage Learning Editores, S.A. de C.V.
🧪 ¡Ponte a prueba!
Haz clic en la respuesta que consideres correcta para cada pregunta.
1. ¿Cuál es la condición indispensable para asegurar que existe una raíz en el intervalo [a, b]?
2. En la iteración 1, ¿por qué se eligió el nuevo intervalo [0, 0.5]?
3. Según los datos de Excel, ¿cuántas iteraciones se requirieron para un error < 0.01?
4. ¿Qué intervalo usarías para hallar OTRA raíz distinta a la de [0,1]?
5. ¿Cómo se comporta el error en el método de bisección?
Comentarios
Publicar un comentario