%% Universidad Nacional de Chimborazo
% Carrera de Ingeniería Civil
% Asignatura: Métodos numéricos
% Autor:
% Fecha: Lunes 14 y 15 de abril de 2025
% Tema: Uso de fzero en MATLAB
% 1. Introducción a fzero
% La función fzero de MATLAB permite encontrar la raíz de una ecuación no lineal, es decir, el valor \( x^* \) tal que:
% f(x^*) = 0
% Se requiere definir:
% Una función (por ejemplo, como función anónima) de la forma f(x).
% Un valor inicial o un intervalo \([a, b]\) donde se cumpla que  f(a) y f(b) tienen signos opuestos (garantizando el cambio de signo).
% Se pueden especificar opciones adicionales (por ejemplo, tolerancia) mediante la función optimset. Esto es especialmente útil en problemas donde se necesita controlar la precisión del resultado.
% 2. Ejemplo Práctico: Encontrar la raíz de
% f(x)=x^3+4x^2-10
% Se sabe que la raíz real de esta función se encuentra en el intervalo [1,2].

% Definición de la función:
f = @(x) x.^3 + 4*x.^2 - 10;
% Visualización de la función en el intervalo [1,2]:
x = linspace(1,2,100);
y = f(x);
figure;
plot(x, y, 'b-', 'LineWidth', 2)
xlabel('x')
ylabel('f(x)')
grid on
title('f(x) = x^3 + 4x^2 - 10')

% Solicitar al usuario la tolerancia deseada:
tol = 1e-4; %input('Ingrese el valor de la tolerancia para fzero (por ejemplo, 1e-6): ');

% Establecer las opciones para fzero usando optimset:
options = optimset('TolX', tol);

% Uso de fzero para encontrar la raíz en el intervalo [1,2]:
raiz = fzero(f, [1, 2], options);
fprintf('La raíz encontrada es: %f\n', raiz)

% Resaltar la raíz encontrada en la gráfica:
hold on
plot(raiz, f(raiz), 'ro', 'MarkerSize', 6, 'MarkerFaceColor', 'r')
hold off

%
% 3. Ejercicio Propuesto:
% Determinar el punto de máxima deflexión usando fzero
%
%