Scripts de Matlab

Método de bisección. Es un método numérico, también llamado algoritmo de bisección que estima el valor de una o mas raices en una función algebráica. Este método se considera como un método cerrado de aproximación numérica. 

%% Método de Bisección para encontrar raíces de una función %%
%% Algortimo para resolver el problema de bisección% 1. Se debe definir la función cuya raíz queremos encontrar% 2. Definir el intervalo [x1, x2] donde se buscará la raíz% 3. Establecer una tolerancia de la cercania al cero por parte de f(x)% (función de error)% 4. Establecer un no. máximo de iteraciones% 5. Función para calcular el método de bisección% 6. Definimos variables % 7. Ciclo de las iteraciones% 8. Verificar si se encontró una raíz 
%% Let's start ....clc, clear, format compacttic % Contamos el tiempo% 1. equation = @(x) x^3 - 2*x^2 + 3*x - 5;% 2.x1 = 1;xu = 2;% 3. tol = 0.00001;% 4. max_iter = 100; % Por seguridad poner un rango amplio% 5. bisection_equation = @(x1, xu, equation) (x1 + xu)/2;% 6. error = inf; % Definir valores iniciales en algoritmos de búsqueda, ...... Inicialmente, asumimos que el mejor valor es infinito hasta encontrar uno mejoriter = 0;xr = bisection_equation(x1, xu, equation);% 7. while error > tol && iter < max_iter    fx1 = equation(x1);    fxu = equation(xu);    fxr = equation(xr);        if fx1 * fxr < 0        xu = xr;    elseif fxu * fxr < 0        x1 = xr;    else%       Encontramos una raiz        break    end        xr = bisection_equation(x1, xu, equation);    error = abs(fxr);    iter = iter + 1;end% 8. if error <= tol    fprintf('Encontramos una raiz, y es: %f.\n', xr);    fprintf('La raiz se encontró en la %da iteración.\n', iter')else    fprintf('El método de bisección no converge despues de haber realizado %d iteraciones.\n', max_iter);endtiempo_transcurrido = toc;fprintf('Tiempo de cómputo: %.4f segundos.\nHappy learning!!', tiempo_transcurrido);

Método de falsa posición. Es un método numérico que estima el valor de una o mas raices en una función algebráica. Este método se considera como un método cerrado de aproximación numérica. 

%% Método de la falsa posción para encontrar raíces de una función %%
%% Algortimo para encontrar una raíz en un intervalo cerrado% 1. Se debe definir la función cuya raíz queremos encontrar% 2. Definir el intervalo [x1, x2] donde se buscará la raíz% 3. Establecer una tolerancia de la cercania al cero por parte de f(x)% (función de error)% 4. Establecer un no. máximo de iteraciones% 5. Función para calcular el método de la falsa posición% 6. Definimos variables % 7. Ciclo de las iteraciones% 8. Verificar si se encontró una raíz % 9. Graficamos la función y seleccionamos en el diagrama la ubicación % de la raíz computada
%% Let's start ....clc, clear, format compacttic % Contamos el tiempo% 1. equation = @(x) x^3 - 2*x^2 + 3*x - 5;% 2.x1 = 1;xu = 2;fx1 = equation(x1);fxu = equation(xu);% 3. tol = 0.00001;% 4. max_iter = 100; % Por seguridad poner un rango amplio% 5. false_position_equation = @(x1, xu, equation) xu-((fxu)*(x1-xu))/((fx1)*(fxu));% 6. error = inf; % Definir valores iniciales en algoritmos de búsqueda/, ...... Inicialmente, asumimos que el mejor valor es infinito hasta encontrar uno mejoriter = 0;xr = false_position_equation(x1, xu, equation);% 7. while error > tol && iter < max_iter    fx1 = equation(x1);    fxu = equation(xu);    fxr = equation(xr);        if fx1 * fxr < 0        xu = xr;    elseif fxu * fxr < 0        x1 = xr;    else%       Encontramos una raiz        break    end        xr = false_position_equation(x1, xu, equation);    error = abs(fxr);    iter = iter + 1;end% 8. if error <= tol    fprintf('Encontramos una raiz, y es: %f.\n', xr);    fprintf('La raiz se encontró en la %da iteración.\n', iter')else    fprintf('El método de bisección no converge despues de haber realizado %d iteraciones.\n', max_iter);endtiempo_transcurrido = toc;fprintf('Tiempo de cómputo: %.4f segundos.\nHappy learning!!', tiempo_transcurrido);% 9. 'fplot(equation,[-5,5],'Linewidth',2); grid, hold on, plot(xr,fxr,'ro');legend('Performance graphic', 'Root location','location', 'best')