-
Notifications
You must be signed in to change notification settings - Fork 0
/
MetodoDeLaSecante.m
47 lines (40 loc) · 1.5 KB
/
MetodoDeLaSecante.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
% Autor: Juan Carlos Estevez Vargas
% Canal de Youtube: Apuntes de un Ingeniero
% Actualizado: 9/junio/2022
% ------- DESCRIPCIÓN ----------------------------------------------------
% Calcula la aproximación de una de las raices de una función por el
% método de la secante.
% ------------------------------------------------------------------------
% ------- ESTA FUNCION PIDE LOS SIGUIENTES DATOS DE ENTRADA: -------------
% f = función a operar.
% x0 = Primer punto de operación, primer valor de intervalo [a, b].
% x1 = Segundo punto de operación, valor de cierre del intervalo [a, b].
% tol = Tolerancia permitida en el programa (ejemplo: 10^-4 o 0.001).
% ------------------------------------------------------------------------
% ------- VARIABLES DE SALIDA: -------------------------------------------
% i = Número de iteraciones realizadas en el sistema.
% x2 = Raíz encontrada de la función f.
% -----------------------------------------------------------------------
function MetodoDeLaSecante()
clear
clc
f = input('Ingrese la función: ','s');
x0 = input('Ingrese el punto x0: ');
x1 = input('Ingrese el punto x1: ');
tol = input('Ingrese la tolerancia: ');
ezplot(f), grid on
f = inline(f);
error = 1;
i = 0;
fprintf('Iteracipon: Raiz:\n');
while error>tol
x2 = x0 - ((x0-x1)/(feval(f, x0)-feval(f,x1)))*feval(f,x0);
x0 = x1;
x1 = x2;
i = i+1;
error = abs(feval(f,x2));
i2(i)=i;
x3(i)=x2;
end
fprintf('\nEl número de iteraciones es: %3.0f\n',i);
fprintf('La raiz es: %4.6f\n',x2);