secante muller

Upload: edwin

Post on 07-Jul-2018

216 views

Category:

Documents


0 download

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