Método de la regla falsa: Determinación de la Raíz Real para $f(x) = \frac{0.8 – 0.3x}{x}$
¡Bienvenidos!
En esta entrada daremos solución a un ejercicio propuesto donde se aplica el método de la regla falsa de acuerdo a las indicaciones del mismo.
Determine la raíz real de f(x) = (0.8 – 0.3x)/x:
a) Analíticamente
b) Gráficamente
c) Empleando tres iteraciones en el método de la falsa posición,
con valores iniciales de 1 a 3.
d) Calcule el error aproximado ea.
Solución:
Determinación de la Raíz Real para $f(x) = \frac{0.8 – 0.3x}{x}$
a) Determinación Analítica
Para encontrar la raíz real, igualamos la función a cero: $f(x)=0$.
$$ \frac{0.8 – 0.3x}{x} = 0 $$
Esto implica que el numerador debe ser igual a cero ($x \neq 0$):
$$0.8 – 0.3x = 0 \implies 0.3x = 0.8 \implies x = \frac{0.8}{0.3} = \frac{8}{3}$$
La raíz analítica es:
$$\mathbf{x_r = \frac{8}{3} \approx 2.666667}$$
b) Determinación Gráfica
Al evaluar la función en los extremos del intervalo $[1, 3]$:
$f(1) = 0.5$ (Positivo)
$f(3) \approx -0.0333$ (Negativo)
Dado el cambio de signo, la raíz existe entre $1$ y $3$. Gráficamente, la raíz se estima cerca de $\mathbf{2.7}$.
c) y d) Método de la Falsa Posición (3 Iteraciones) y Error Aproximado $\epsilon_a$
La función analizada es $f(x) = \frac{0.8 – 0.3x}{x}$, con valores iniciales $x_l = 1$ y $x_u = 3$. La raíz analítica es $x_r = 8/3 \approx 2.666667$.
La fórmula utilizada para el Método de la Falsa Posición es:
Valores iniciales: $f(x_l) = f(1) = 0.5$ y $f(x_u) = f(3) \approx -0.033333$.
$\textbf{Iteración 1}$
Cálculo de $x_{r,1}$:
Evaluación: $f(x_{r,1}) = f(2.875000) \approx -0.0217$.
Nuevo intervalo: $[1, 2.8750]$. ($x_{l} = 1$, $x_{u} = 2.8750$).
$\textbf{Iteración 2}$
Valor de MATLAB: $x_{r,2} \approx 2.7969$.
Cálculo del error aproximado $\epsilon_{a,2}$:}
Evaluación: $f(x_{r,2}) = f(2.7969) \approx -0.0140$.
Nuevo intervalo: $[1, 2.7969]$. ($x_{l} = 1$, $x_{u} = 2.7969$).
$\textbf{Iteración 3}$
Valor de MATLAB: $x_{r,3} \approx \mathbf{2.7480}$.
Cálculo del error aproximado $\epsilon_{a,3}$:}
Conclusión Final
Tras tres iteraciones, los resultados obtenidos son:
La raíz aproximada es $\mathbf{x_{r,3} \approx 2.748047}$.
El error aproximado $\epsilon_a$ es $\mathbf{1.776830\%}$.
Implementación en Matlab
% graficapuntofijo.m
% 1. Definición Simbólica (para graficar y mostrar la expresión)
syms x
f_simbolica = (0.8 - 0.3*x) / x;
disp('Función Simbólica:');
disp(f_simbolica);
% 2. Definición Numérica (para los cálculos iterativos)
f_num = @(x) (0.8 - 0.3*x) ./ x;
% 3. Graficar (Inciso b)
figure;
fplot(f_num, [0.5, 5], 'LineWidth', 2, 'Color', 'b')
grid on
hold on
plot([0.5, 5], [0, 0], 'r--') % Línea del eje x (y=0)
title('Raíz de f(x) = (0.8 - 0.3x) ./ x')
xlabel('x')
ylabel('f(x)')
hold off
% 4. Inicialización del Método
xl = 1;
xu = 3;
xr_anterior = 0;
% Mostrar evaluación de límites (verificación)
fxl = f_num(xl);
fxu = f_num(xu);
disp(' ');
disp(['f(xl) = f(1) = ', num2str(fxl)]);
disp(['f(xu) = f(3) = ', num2str(fxu)]);
% 5. Implementación de las Tres Iteraciones (Inciso c y d)
fprintf('\n--------------------------------------------------------------\n');
fprintf('| Iter | xl | xu | xr | f(xr) | ea (%%) |\n');
fprintf('--------------------------------------------------------------\n');
for i = 1:3
% Fórmula de la Falsa Posición
xr = xu - (f_num(xu) * (xl - xu)) / (f_num(xl) - f_num(xu));
% Cálculo del Error Aproximado (Inciso d)
if i > 1
ea = abs((xr - xr_anterior) / xr) * 100;
else
ea = NaN; % No hay error en la primera iteración
end
fxr = f_num(xr);
% Imprimir resultados de la iteración
fprintf('| %d | %6.4f | %6.4f | %6.4f | %6.4f | %8.4f |\n', i, xl, xu, xr, fxr, ea);
% Actualizar los límites para la siguiente iteración
if fxl * fxr < 0
xu = xr; % La raíz está en [xl, xr]. xu se actualiza.
% fxl no cambia, sigue siendo f(1)=0.5
else
xl = xr; % La raíz está en [xr, xu]. xl se actualiza.
fxl = fxr; % f(xl) se actualiza
end
xr_anterior = xr;
end
fprintf('--------------------------------------------------------------\n');
fprintf('\nRaíz aproximada tras 3 iteraciones: xr = %f\n', xr);
fprintf('Error aproximado (Inciso d): ea = %f %%\n', ea);
Salida de la ejecución del código.
Comentarios
Publicar un comentario