secante muller
TRANSCRIPT
-
8/19/2019 Secante Muller
1/11
MÉTODOS NUMÉRICOS
Edwin David Yaguana Torres
MÉTODO DE LA SECANTE
El método de la secante permite encontrar los ceros de una función de forma iterativa. Requiere de dos puntos iníciales,los cuales pueden ser arbitrarios.
Este método básicamente consiste en trazar rectas secantes a la curva de la ecuación que se está analizando y verificar
la intersección de dichas rectas con el eje de las X para conocer si es la raíz que se busca. Cabe mencionar que éste
método converge con la raíz con una velocidad semejante a la de Newton-Raphson, aunque de igual forma corre el
riesgo de no converger con ésta nunca.
Figura 1: Método de la secante
Definición: consideremos la curva y = f (x) continua en un intervalo [a,b], y la recta que pasa por
los puntos A(a, f (a)) y B(b, f (b)).
Si la función continua y = f (x) es tal que f(x)=0 posee una raíz única en el intervalo [a,b], y f(a)
y f(b) tienen signos opuestos, la cuerda AB cortará al eje X en un punto x1 del intervalo [a,b], que
junto con A ó B formará el nuevo intervalo (a1, b1)
1
-
8/19/2019 Secante Muller
2/11
El método de la secante va aproximando el valor de la raíz buscada mediante las sucesivas interacciones con el eje
X de la cuerda que une dos puntos cuyas ordenadas son de signos distintos.
Fórmula: debido a que el método de la secante se basa en el método de Newton-Raphson, pero
evitando usar la derivada de la función, la recta que pasa por los valores de 2 iteraciones sucesivas
se aproxima a la derivada de la función, es decir, la pendiente de la recta.
f (x0) = f (x1) − f (x0)
x1 − x0Si se sutituye ésta expresión en la ecuación del Método de Newton-Raphson, se obtiene la expresión
del método de la secante:
x2 = x1 − x1 − x0f (x1) − f (x0) · f (x1)
Para ciertos valores x0 y x1 dados, la sucesión terminará cuando |xn+1 − xn| ≤ e; donde e es la precisión reque-rida.
EJEMPLOS
1. Mediante el método de la secante calcular la raíz aproximada de la función f (x) = x3−1, donde x0 = 0 y x1 = 2;hasta que e ≤ 1 %
Mediante la fórmula de la secante obtenemos los valores que se acercan a la raíz de la función.
Figura 2: y = x3 − 1
Se obtiene que la raíz de la función es igual a 1; si
se observa en la gráfica se cumple esta condición.
x2 = x1 − x0f (x1) − f (x0) · f (x1)
n x0 x1 x2 e
1 0 2 0.250 1.750
2 2 0.250 0.466 -0.216
3 0.250 0.466 2.737 -2.271
4 0.466 2.737 0.566 2.171
5 2.737 0.566 0.653 -0.087
6 0.566 0.653 1.299 -0.087
7 0.653 1.299 0.897 0.402
8 1.299 0.897 0.973 -0.076
9 0.897 0.973 1.003 -0.003
10 0.973 1.003 1 0.003
2
-
8/19/2019 Secante Muller
3/11
2. Mediante el método de la secante calcular la raíz aproximada de la función f (x) = x2−4, donde x0 = 3 y x1 = 4;hasta que e ≤ 1 %
Mediante la fórmula de la secante obtenemos los valores que se acercan a la raíz de la función.
Figura 3: y = x2 − 4
Se obtiene que la raíz de la función es igual a 2; si
se observa en la gráfica se cumple esta condición.
x2 = x1 − x0f
(x1) −
f (x0) ·
f (x1)
n x0 x1 x2 e
1 3 4 2.286 1.714
2 4 2.286 2.091 0.195
3 2.286 2.091 2.006 0.085
4 2.091 2.006 2 0.006
3
-
8/19/2019 Secante Muller
4/11
ALGORITMO Y EJECUCIÓN DEL MÉTODO DE LA SECANTE
ALGORITMO
clc
clear all
disp(’MÉTODO DE LA SECANTE’)
y=input(’Ingrese la ecuación: ’);
fx=inline(y);
x=-2:0.1:2;
y1=feval(fx,x);
plot(x,y1)
grid on
hold on
axis square
plot([-3 3],[0 0],’Color’,’r’)
plot([0 0],[-9 9],’Color’,’r’)
fprintf(’Ingrese los siguientes valores: \n’)
x0=input(’x0: ’);
x1=input(’x1: ’);
e=0.01;
k=0;
fx0=feval(fx,x0);
fx1=feval(fx,x1);
x2=x1-(fx1)*(x1-x0)/(fx1-fx0);
error=abs(x1-x0);
fprintf(’ x0\t\t x1 \t x2 \t error\n’)
while (abs(x1-x0)>e)
fprintf(’%.3f \t %.3f \t %.3f \t %.3f \t\n’,x0,x1,x2,error)
x0=x1;
x1=x2;
fx0=feval(fx,x0);fx1=feval(fx,x1);
x2=x1-(fx1)*(x1-x0)/(fx1-fx0);
error=abs(x1-x0);
k=k+1;
end
fprintf(’La raiz de la ecuación es: %.0f\n’,x2)
fprintf(’El número de iteraciones fue: %d\n’,k)
4
-
8/19/2019 Secante Muller
5/11
EJECUCIÓN
MÉTODO DE LA SECANTE
Ingrese la ecuación: ’x.^3-1’
Ingrese los siguientes valores:
x0: 0
x1: 2
x0 x1 x2 error
0.000 2.000 0.250 2.000
2.000 0.250 0.466 1.750
0.250 0.466 2.737 0.216
0.466 2.737 0.566 2.271
2.737 0.566 0.653 2.171
0.566 0.653 1.299 0.087
0.653 1.299 0.897 0.6461.299 0.897 0.973 0.402
0.897 0.973 1.003 0.076
0.973 1.003 1.000 0.030
La raiz de la ecuación es: 1
El número de iteraciones fue: 10
5
-
8/19/2019 Secante Muller
6/11
MÉTODO DE MULLEREl método de Muller obtiene la raíz de una función de manera similar al método de la secante, pero en lugar de hacer
una proyección de una recta utilizando dos puntos, requiere de tres puntos para calcular una parábola.
Definición: sea una función polinómica de la forma: f n(x) = a0 + a1x + a2x2 + . . . . . . + anx
n
Donde n es el orden del polinomio y las a son coeficientes constantes. Los polinomios cumplen con
las siguientes reglas:
a) Para la ecuación de orden n, hay n raíces reales o complejas. Se debe notar que esas raíces
no son necesariamente distintas.
b) Si n es impar, hay al menos una raíz real.
c) Si las raíces complejas existen, existe un par conjugado.
Figura 4: Método de Muller
El método consiste en obtener los coeficientes de los tres puntos, sustituirlos en la fórmula cuadrática y obtener
el punto donde la parábola intercepta el eje x. La aproximación es fácil de escribir, en forma conveniente esta sería:
f 2(x) = a(x − x2)2 + b(x − x2) + C
Se busca la parábola que intercepta los tres puntos [x0, f (x0)], [x1, f (x1)] y [x2, f (x2)].
Los coeficientes de la ecuación anterior se evalúan al sustituir uno de esos tres puntos para dar:
f (x0) = a(x0 − x2)2 + b(x0 − x2) + C
f (x1) = a(x1−
x2)2 + b(x1
−x2) + C
f (x2) = a(x2 − x2)2 + b(x2 − x2) + C
6
-
8/19/2019 Secante Muller
7/11
De la última ecuación se genera que, f (x2) = C , de esta forma, se puede tener un sistema de dos ecuaciones con dos
incógnitas:
f (x0) − f (x2) = a(x0 − x2)2 + b(x0 − x2)
f (x1) − f (x2) = a(x1 − x2)2 + b(x1 − x2)
Definiendo de esta forma:
h0 = x1 − x0
h1 = x2 − x1
δ 0 = f (x1) − f (x0)
x1 − x0δ 1 =
f (x2) − f (x1)x2 − x1
Sustituyendo en el sistema:
(h0 − h1)b − (h0 + h1)2a = h0δ 0 + h1δ 1
h1b − h21a = h1δ 1
Teniendo como resultado los coeficientes:
a = δ 1 − δ 0h1 + h0
b = ah1 + δ 1
c = f (x2)
Fórmula: para calcular la raíz del polinomio de segundo grado aplicamos la fórmula general, pero
debido al potencial error de redondeo se usará la fórmula alternativa:
x3 − x2 = −2cb ± √ b2 − 4ac
x3 = x2 + −2c
b ± √ b2 − 4acLa ventaja de este método es que se pueden calcular raíces reales e imaginarias.
El error estimado será:
e =
x3 − x2x3
·100%
Al ser un método de aproximación, este se realiza de forma secuencial e iterativamente, donde x1, x2, x3 reemplazan
los puntos x0, x1, x2 llevando el error a un valor cercano a cero.
7
-
8/19/2019 Secante Muller
8/11
EJEMPLOS
1. Mediante el método de Muller calcular la raíz aproximada de la función f (x) = x3 − 13x − 12, donde x0 = −6,x1 = −5 y x2 = 1; hasta que e ≤ 1 %
Obtenemos todos los valores para poder encontrar a, b, c y aplicamos la fórmula para poder obtener el valor que
se acerca a la raíz de la función.
Se obtiene que la raíz de la función es igual a -3; si se observa en la gráfica se cumple esta condición.
Figura 5: f (x) = x3 − 13x − 12
x3 = x2 + −2c
b ± √ b2 − 4ac
n x0 x1 x2 x3 e
1 -6 -5 1 -3.688 127.115
2 -5 1 -3.688 -3.220 14.550
3 1 -3.688 -3.220 -3.034 6.111
4 -3.688 -3.220 -3.034 -3 1.152
5 -3.220 -3.034 -3 -3 0.012
6 -3.034 -3 -3 -3 0
8
-
8/19/2019 Secante Muller
9/11
2. Mediante el método de Muller calcular la raíz aproximada de la función f (x) = x3 + x2 − 4x− 4, donde x0 = 1,x1 = 1,5 y x2 = 1,75; hasta que e ≤ 1 %
Obtenemos todos los valores para poder encontrar a, b, c y aplicamos la fórmula para poder obtener el valor que
se acerca a la raíz de la función.
Figura 6: f (x) = x3 + x2 − 4x − 4
Se obtiene que la raíz de la función es igual a 2; si se observa en la gráfica se cumple esta condición.
x3 = x2 + −2c
b ± √ b2
− 4acn x0 x1 x2 x3 e
1 1 1.5 1.75 2.011 12.986
2 1.5 1.75 2.011 2 0.564
3 1.750 2.011 2 2 0.006
9
-
8/19/2019 Secante Muller
10/11
ALGORITMO Y EJECUCIÓN DEL MÉTODO DE MULLER
ALGORITMO
clc
clear all
disp(’MÉTODO DE MULLER’)
y=input(’Ingrese la ecuación: ’);
fx=inline(y);
x=-2.5:0.1:2.5;
y1=feval(fx,x);
plot(x,y1)
grid on
hold on
axis square
plot([-3 3],[0 0],’Color’,’r’)
plot([0 0],[-9 9],’Color’,’r’)
fprintf(’Ingrese los siguientes valores: \n’)
x0=input(’x0: ’);
x1=input(’x1: ’);
x2=input(’x2: ’);
e=0.01;
k=0;
fx0=feval(fx,x0);
fx1=feval(fx,x1);
fx2=feval(fx,x2);
h0=x1-x0;
h1=x2-x1;
d0=(fx1-fx0)/(x1-x0);
d1=(fx2-fx1)/(x2-x1);
a=(d1-d0)/(h1+h0);
b=a*h1+d1;c=fx2;
disc=sqrt(b.^2-4*a*c);
x3=x2-((2*c)/(b+disc));
error=abs((x3-x2)/x3);
fprintf(’ x0\t\t x1 \t x2 \t x3 \t error\n’)
while (error>e)
fprintf(’%.3f \t %.3f \t %.3f \t %.3f \t %.3f \t\n’,x0,x1,x2,x3,error)
x0=x1;
x1=x2;
x2=x3;
10
-
8/19/2019 Secante Muller
11/11
fx0=feval(fx,x0);
fx1=feval(fx,x1);
fx2=feval(fx,x2);
h0=x1-x0;
h1=x2-x1;
d0=(fx1-fx2)/(x1-x0);d1=(fx2-fx1)/(x2-x1);
a=(d1-d0)/(h1-h0);
b=a*h1+d1;
c=fx2;
disc=sqrt(b.^2-4*a*c);
x3=x2-((2*c)/(b+disc));
error=abs((x3-x2)/x3)*100;
k=k+1;end
fprintf(’La raiz de la ecuación es: %.0f\n’,x3)
fprintf(’El número de iteraciones fue: %d\n’,k)
EJECUCIÓN
MÉTODO DE MULLER
Ingrese la ecuación: ’x.^3+x.^2-4*x-4’
Ingrese los siguientes valores:
x0: 1
x1: 1.5
x2: 1.75
x0 x1 x2 x3 error
1.000 1.500 1.750 2.011 0.130
1.500 1.750 2.011 2.011 0.013
1.750 2.011 2.011 2.000 0.521
La raiz de la ecuación es: 2
El número de iteraciones fue: 3
11