Hilaquita Mamani Gladys

Método de la Müller.

Introducción

Este método utilizado para encontrar raíces de ecuaciones  con raíces múltiples, y consiste en obtener los coeficientes de la parábola que pasa por tres puntos elegidos. Dichos coeficientes son sustituidos en la formula cuadrática para obtener el valor donde la parábola intersecta al eje X; es decir, la raíz estimada. La aproximación se puede facilitar, si se escribe la ecuación de la parábola en una forma conveniente.

Una de las mayores ventajas de este método, es que al trabajar con la formula cuadrática es posible localizar tanto raíces reales, como raíces complejas.

Características del método Muller.

▪ Converge cuadráticamente en un intervalo cercano a la raíz.

▪ No requiere evaluar la primera derivada.

▪ Se obtiene raíces reales   y complejas (cuando las raíces sean repetidas.

▪ Requiere valores iníciales

▪ Extensión del método de la secante; aprox. la gráfica de la función f(x) por una línea recta que pasa por x los puntos (xi -1,f(x1)) su intersección con el eje x   da   una nueva aproximación (Xi -1).

▪ n=2 segundo

Se tomó 3 valores iníciales X0, X1, X2 y está ene. Polinomio P(x) de segundo grado que pasa por los puntos (X0,f(X0)), (X1,f(X1)) y (X2,f(X2)).

▪ Se toman sus raíces de p(x), la más cercana a X 2,   como la siguiente aproximación   a X3

Fórmula

Los tres valores iniciales necesitados son denotados como xk, xk-1 y xk-2. La parábola pasa a través de los puntos: (xkf(xk)), (xk-1f(xk-1)) y (xk-2f(xk-2)), si se escribe en la forma de Newton, entonces:

donde f[xk, xk-1] y  f[xk, xk-1, xk-2] denotan restas divididas. Esto puede ser escrito como:

Donde:

La próxima iteración esta dada por la raíz que brinda la ecuación  y = 0.

  • Determina la siguiente aproximación x3 encontrando la intersección con el eje x de la parábola definida por los puntos (x0,f(x0)), (x1,f(x1)), (x2,f(x2)).

Pseudocódigo

using System;

using System.Collections.Generic;

using System.Text;

namespace Muller

{

class Program

{

static double F(double x)

{

double F= Math.Pow(x,3)-13*x-12;

return F;

}

static void Main(string[] args)

{

Console.WriteLine(“****METODO MULLER***”);

Console.WriteLine(“ingrese X0″);

double X0 = double.Parse(Console.ReadLine());

Console.WriteLine(“ingrese X1″);

double X1 = double.Parse(Console.ReadLine());

Console.WriteLine(“ingrese X2″);

double X2 = double.Parse(Console.ReadLine());

Console.WriteLine(“ingrese Eadm”);

double Eadm = double.Parse(Console.ReadLine());

Console.WriteLine(“ingrese n”);

Double n = double.Parse(Console.ReadLine());

double h0,h1,d0,d1,A,B,C,R, denominador, h,X3;

int i = 1;

h0 = X1 – X0;

h1 = X2 – X1;

d0 = (F(X1) – F(X0)) / (X1 – X0);

d1 = (F(X2) – F(X1)) / (X2 – X1);

A = (d1 – d0) / (h1 + h0);

i = 3;

do

{

B = A * h1 + d1;

C=F(X2);

R=Math.Sqrt(Math.Pow(B,2)-(4*A*C));

if (B+R>B-R)

{

denominador = B + R;

}

else

{

denominador = B – R;

}

h = (-2*C) / (denominador);

X3 = X2 + h;

if (Eadm>Math.Abs(h ))

{

Console.WriteLine(X3);

Console.WriteLine(i);

goto id1;

}

X0 = X1;

X1 = X2;

X2 = X3;

h0 = X1 – X0;

h1 = X2 – X1;

d0 = (F(X1) – F(X0)) / h0;

d1 = (F(X2) – F(X1)) / h1;

A = (d1 – d0) / (h1 + h0);

i++;

} while (i<=n);

Console.WriteLine(“NeuN”);

id1:

Console.ReadKey();

}

}

}

Salidas

Gutierrez Bautista Brenda

Método de Muller  

 

Contenido

 

1.     Introducción. 3

2.     Fundamento teórico. 3

2.1Formula Metodo Muller 4

3.     JAVA de Eclipse. 5

3.1   Código. 5

3.2  Corrida. 6

MÉTODO DE Müller

1.       Introducción

Este método utilizado para encontrar raíces de ecuaciones  con raíces múltiples, y consiste en obtener los coeficientes de la parábola que pasa por tres puntos elegidos. Dichos coeficientes son sustituidos en la formula cuadrática para obtener el valor donde la parábola intersecta al eje X; es decir, la raíz estimada. La aproximación se puede facilitar, si se escribe la ecuación de la parábola en una forma conveniente.

Una de las mayores ventajas de este método, es que al trabajar con la formula cuadrática es posible localizar tanto raíces reales, como raíces complejas.

2.       Fundamento teórico

El método de la secante obtiene raíces de una función estimando una proyección de una línea recta en el eje de las x, a través de los valores de la función. El método de Müller, trabaja de manera similar, pero en lugar de hacer la proyección de una recta  utilizando dos puntos, requiere de tres puntos para calcular una parábola.

Para esto necesitaremos de tres puntos [x0, f(x0)], [x1, f(x1)] y [x2, f(x2)]. La aproximación la podemos escribir como:

 

f2(x) = A(x – x2)2 + B(x – x2) + C

 Los coeficientes de la parábola los calculamos resolviendo el siguiente sistema de ecuaciones.

 f2(x0) = A(x0 – x2)2 + B(x0 – x2) + C

f2(x1) = A(x1 – x2)2 + B(x1 – x2) + C

f2(x2) = A(x2 – x2)2 + B(x2 – x2) + C

 De la última ecuación podemos ver que el calor de C = f2(x2). Sustituyendo los valores de C en las otras dos ecuaciones tenemos

 f2(x0)- f2(x2)  = A(x0 – x2)2 + B(x0 – x2)

f2(x1) – f2(x2) = A(x1 – x2)2 + B(x1 – x2)

 Si definimos

 h0 = x1 – x0

h1 = x2 – x1

d0 = [f(x1) – f(x0)]/[x1 – x0]

d1 = [f(x2) – f(x1)]/[x2 –x1]

 Sustituyendo en las ecuaciones tenemos

 (d0* h0 + d1* h1)= A(h1 + h0 )2 – B(h1 + h0 )

-d1* h1 = A(h1)2 – Bh1

 La solución de este sistema de ecuaciones es:

 A = (d1 – d0)/(h1 + h0)

                                                           B = Ah1 + d1

                                                    C = f(x2)

2.1.Formula Método Muller

El método de Muller cuenta con tres valores iniciales necesitados son denotados como xk, xk-1 y xk-2. La parábola pasa a través de los puntos: (xkf(xk)), (xk-1f(xk-1)) y (xk-2f(xk-2)), si se escribe en la forma de Newton, entonces:

donde f[xk, xk-1] y  f[xk, xk-1, xk-2] denotan restas divididas. Esto puede ser escrito como:

donde

La próxima iteración esta dada por la raíz que brinda la ecuación  y = 0.

3.       Java de Eclipse

Implementaremos el algoritmo matemático haciendo uso del programa  Eclipse Java. Uso el método de Müller con el siguiente ejemplo los valores iniciales de 4.5, 5.5 y 5 para determinar la raíz de la ecuación f(x) = x3 – 13x – 12.

(CHICOS AQUÍ PUEDEN AÑADIR MÁS COSAS)

 3.1   Código

  1. public class metmuller {
  2. public static void main(String[] args) {
  3.     Muller();
  4.   }

10. static public void Muller()

  1. {
  2. double x0 = 4.5, x1 = 5.5, x2 = 5.0, x3;
  3. double h0, h1, d0, d1, A, B, C;
  4. double den, raiz;

16. do

  1. {

20.

  1. h0 = x1 – x0;
  2. h1 = x2 – x1;
  3. d0 = (f(x1) – f(x0)) / h0;
  4. d1 = (f(x2) – f(x1)) / h1;
  5. A = (d1 – d0) / (h1 + h0);
  6. B = A * h1 + d1;
  7. C = f(x2);
  8. raiz = Math.sqrt(B * B – 4.0 * A * C);
  9. if (Math.abs(B + raiz) > Math.abs(B – raiz))
  10. den = B + raiz;
  11. else
  12. den = B – raiz;
  13. x3 = x2 – 2 * C / den;
  14. System.out.println(” x = ” + x3 + ” ” + f(x3));
  15. x0 = x1;
  16. x1 = x2;
  17. x2 = x3;
  18. }while (Math.abs(f(x3)) > 0.000001);
  19. }
  20. static public double f(double x)
  21. {
  22. return(x*x*x – 13*x -12);
  23. }

60.}

3.2   Corrida

COLQUE QUISPE ELMER

MÉTODO DE MULLER

 

Este es un método para encontrar las raíces de ecuaciones polinomiales de la forma general:

Donde n es el orden del polinomio y las  son coeficientes constantes. Continuando con los polinomios, estos cumplen con las siguientes reglas:

 

  • 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.
  • Si n es impar, hay al menos una raíz real.
  • Si las raíces complejas existen, existe un par conjugado.

 

Antecedentes

 

Los polinomios tienen muchas aplicaciones en ciencia e ingeniería, como es el caso de su utilización en ajuste de curvas. Sin embargo, se considera que una de las aplicaciones mas interesantes  y potentes es en los sistemas dinámicos, particularmente en los lineales.

 

El polinomio mas conocido en el mundo científico, es el denominado, ecuación característica, que es de la forma:

Donde las raíces de este polinomio satisfacen:

También denominados eigenvalores del sistema. Los eigenvalores pueden utilizarse para analizar un sistema, para nuestro caso es muy útil en lo concerniente a la estabilidad. Con base en lo anterior, encontrar las raíces en sistemas de segundo orden es prácticamente sencillo, pero para sistemas de orden superior, puede resultar en un arduo trabajo.

 

EL MÉTODO

 

Un predecesor del método de Muller, es el método de la secante, el cual obtiene raíces, estimando una proyección de una línea recta en el eje x, a través de dos valores de la función (Figura 1). El método de Muller toma un punto de vista similar, pero proyecta una parábola a través de tres puntos (Figura 2).

 

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:

Así, se busca esta parábola para intersectar 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:

La última ecuación genera que,, de esta forma, se puede tener un sistema de dos ecuaciones con dos incógnitas:

 

Definiendo de esta forma:

 

Sustituyendo en el sistema:

 

Teniendo como resultado los coeficientes:

Hallando la raiz, se implementar la solución convencional, pero debido al error de redondeo potencial, se usará una formulación alternativa:

despejando

La gran ventaja de este método es que se pueden localizar tanto las raíces reales como las imaginarias.

Hallando el error este será:

 

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.

 

PROGRAMA

Por ser un método que trabaja de forma lineal, es posible una aplicación computacional en forma sencilla, la cual sería:

 

FUNCION MULLER

 

SubMuller (xr, h, eps, maxit)

x2 = xr

x1 = xr + h*xr

x0 = xr – h*xr

Do

iter = iter + 1

h0  = x1 + x0

h1 = x2 – x1

d0 = (f(x1)-f(x0))/h0

d1 = (f(x2)-f(x1))/h1

a = (d1 – d0)/(h1 + h0)

b = a*h1 +d1

c = f(x2)

rad = sqrt (b*b – 4*a*c)

if I b+ rad I > l b – rad l then

den = b + rad

Else

den = b – rad

End if

dxr = -2*c/den

xr = x2 + dxr

Print iter, xr

IF (Idxrl<eps*xr or iter>maxit) exit

x0 = x1

x1 = x2

x2 = xr

End do

End Muller

 

FUNCION MULLER EN C#

 

using System;
using System.Collections.Generic;
using System.Text;
namespace Muller
{
class Program
{
static double F(double x)
{
double F= Math.Pow(x,3)-13*x-12;
return F;
}
static void Main(string[] args)
{
Console.WriteLine(“ingrese X0″);
double X0 = double.Parse(Console.ReadLine());
Console.WriteLine(“ingrese X1″);
double X1 = double.Parse(Console.ReadLine());
Console.WriteLine(“ingrese X2″);
double X2 = double.Parse(Console.ReadLine());
Console.WriteLine(“ingrese Eadm”);
double Eadm = double.Parse(Console.ReadLine());
Console.WriteLine(“ingrese n”);
double n = double.Parse(Console.ReadLine());
double h0,h1,d0,d1,A,B,C,R, denominador, h,X3;
int i = 1;
h0 = X1 – X0;
h1 = X2 – X1;
d0 = (F(X1) – F(X0)) / (X1 – X0);
d1 = (F(X2) – F(X1)) / (X2 – X1);
A = (d1 – d0) / (h1 + h0);
i = 3;
do
{
B = A * h1 + d1;
C=F(X2);
R=Math.Sqrt(Math.Pow(B,2)-(4*A*C));
if (B+R>B-R)
{
denominador = B + R;
}
else
{
denominador = B – R;
}
h = (-2*C) / (denominador);
X3 = X2 + h;
if (Eadm>Math.Abs(h ))
{
Console.WriteLine(X3);
Console.WriteLine(i);
goto id1;
}
X0 = X1;
X1 = X2;
X2 = X3;
h0 = X1 – X0;
h1 = X2 – X1;
d0 = (F(X1) – F(X0)) / h0;
d1 = (F(X2) – F(X1)) / h1;
A = (d1 – d0) / (h1 + h0);
i++;
} while (i<=n);
Console.WriteLine(“NeuN”);
id1:
Console.ReadKey();

}
}
}

 

 

Ejemplo

h = 0,1

x2 = 5  x1 = 5,5  x0 =4,5

Con un análisis previo, las raíces son –3, -1 y 4

 

Solución

 

Calculando

 

 

Hallando los coeficientes

 

La raíz cuadrada del discriminante es:

 

Así

 

Y el error estimado

 

Ahora

x2 = 3,9765  x1 = 5  x0 =5,5

 

Haciendo uso de un programa y realizando diferentes iteraciones:

i xr Ea %
0 5  
1 3,9465 25,740
2 4,0011 0,614
3 4,0000 0,026
4 4,0000 0,000

 

Calcina Vedia Franz

Método de Newton Raphson

1 Historia

2 Descripción del método

3 Código en Matlab

4 Ejemplo

         4.1 Ejemplo en geogebra

5 Referencias

6 Enlaces externos

1 Historia

El método de Newton fue descrito por Isaac Newton en De analysi per aequationes número terminorum infinitas (escrito en 1669, publicado en 1711 por William Jones) y en De metodis fluxionum et serierum infinitarum (escrito en 1671, traducido y publicado como Método de las fluxiones en 1736 por John Colson). Sin embargo, su descripción difiere en forma sustancial de la descripción moderna presentada más arriba: Newton aplicaba el método solo a polinomios, y no consideraba las aproximaciones sucesivas xn, sino que calculaba una secuencia de polinomios para llegar a la aproximación de la raíz x. Finalmente, Newton ve el método como puramente algebraico y falla al no ver la conexión con el cálculo.

Isaac Newton probablemente derivó su método de forma similar aunque menos precisa del método de François Viète. La esencia del método de Viète puede encontrarse en el trabajo del matemático persa Sharaf al-Din al-Tusi.

El método de Newton-Raphson es llamado así por la razón de que el matemático inglés Joseph Raphson (contemporáneo de Newton) se hizo miembro de la Royal Society en 1691 por su libro aequationum universalis Análisis que publico en 1690 y el cual contenía este método para aproximar raíces. Mientras que Newton en su libro Método de las fluxiones describe el mismo método escrito en 1671, pero publicado hasta 1736, lo que significa que Raphson había publicado este resultado casi 50 años antes, aunque no fue tan popular como los trabajos de Newton y se le reconoció posteriormente.

2 Descripción del método

La función ƒ es mostrada en azul y la línea tangente en rojo. Vemos que xn+1 es una mejor aproximación que xn para la raíz x de la función f.

El método de Newton-Raphson es un método abierto, en el sentido de que su convergencia global no está garantizada. La única manera de alcanzar la convergencia es seleccionar un valor inicial lo suficientemente cercano a la raíz buscada. Así, se ha de comenzar la iteración con un valor razonablemente cercano al cero (denominado punto de arranque o valor supuesto). La relativa cercanía del punto inicial a la raíz depende mucho de la naturaleza de la propia función; si ésta presenta múltiples puntos de inflexión o pendientes grandes en el entorno de la raíz, entonces las probabilidades de que el algoritmo diverja aumentan, lo cual exige seleccionar un valor supuesto cercano a la raíz. Una vez que se ha hecho esto, el método linealiza la función por la recta tangente en ese valor supuesto. La abscisa en el origen de dicha recta será, según el método, una mejor aproximación de la raíz que el valor anterior. Se realizarán sucesivas iteraciones hasta que el método haya convergido lo suficiente. f’(x)= 0 Sea f : [a, b] -> R función derivable definida en el intervalo real [a, b]. Empezamos con un valor inicial x0 y definimos para cada número natural n

Donde f ‘ denota la derivada de f.

Nótese que el método descrito es de aplicación exclusiva para funciones de una sola variable con forma analítica o implícita cognoscible. Existen variantes del método aplicables a sistemas discretos que permiten estimar las raíces de la tendencia, así como algoritmos que extienden el método de Newton a sistemas multivariables, sistemas de ecuaciones, etc.

Método de Newton Raphson de aproximación de raíces: Para aproximar una raíz de la ecuación f(x)=0 se comienza con una estimación previa x0 y se genera una sucesión x1, x2, x3,… de aproximaciones cada vez más precisas mediante la fórmula

En esta situación, o bien la sucesión de aproximaciones converge hacia un límite que es una raíz de la ecuación, o bien no tiene límite.

En pseudocódigo, esto es:

function newtonIterationFunction(x) {

return  x – (cos(x) – x^3) / (-sin(x) – 3*x^2)

}

var x := 0,5

for i from 0 to 99 {

print “Iteraciones: ” + i

print “Valor aproximado: ” + x

xold := x

x := newtonIterationFunction(x)

if x = xold {

print “Solución encontrada!”

break

}

}

3 Codigo en Matlab

Programa escrito en Matlab para hallar las raíces usando el método de NEWTON-RAPHSON

function x =newton()

disp (‘NEWTON-RAPHSON’)

xo=input(‘Valor inicial =’);

n=input (‘numero de iteraciones=’);

salida=ones(n,4); % matiz de salida de datos

for i=1:n

x1=xo-[(exp(-xo)-xo)]/[(-exp(-xo)-1)];

vsal=[xo;x1];

er=[[abs((xo-x1)/xo)]]*100;  % error relativo porcentual

ea=[[abs((x1-xo)/x1)]]*100;  % error

xo=x1;

salida(i,1)=i;

salida(i,2)=x1;

salida(i,3)=er;

salida(i,4)=ea;

end

disp(‘ite raiz er ea’);

disp(num2str(salida));

4 Ejemplo

La ecuación           tiene dos raíces cerca de x= 0.1 (0.1213203436; 0.1231056256), encuéntrelas mediante el método de Newton Raphson.

Sol:

El método de N-R, es el método iterativo que requiere de la función, su derivada y un punto de inicio, la formula está dada por:

Entonces:

Al reemplazar los datos, se obtiene:

Entonces las iteraciones son:

Ahora buscaremos la otra raíz, tomando como punto de inicio X0= ­ 0.13

4.1 Ejemplo en geogebra

5 Referencias

6 Enlaces externos

Jimenez Chavez Maria

 METODO DE LA SECANTE

function secante
global fun
fprintf(‘METODO DE LA SECANTE:\n’);
fun=input(‘Ingrese la funcion:\n’,’s’);
x0=input(‘Ingrese el primer punto inicial:\n’);
x1=input(‘Ingrese el segundo punto inicial:\n’);
tol=input(‘Ingrese la tol:\n’);
it=0;
fprintf(‘it x0 x1 x2 x1-x2′);
while(it<50) it=”it+1;” x=”x0;” f0=”eval(fun);” x=”x1;” f1=”eval(fun);” x2=”(x0*f1-x1*f0)/(f1-f0);”> fprintf(‘el procedimiento se completo satisfactoriamente:\n’);
break
end
x0=x1;
x1=x2;
end
fprintf(‘la raiz buscada es=%15.9f\n’,x2);
ezplot(fun),
grid on

 METODO DE MULLER

% m metodo de Muller para obtener una solución para f(x)=0
function p = muller(f,x0,x1,x2,tol,ni)
h1 = x1 – x0;
h2 = x2 – x1;
d1 = (polyval(f,x1) – polyval(f,x0))/h1;
d2 = (polyval(f,x2) – polyval(f,x1))/h2;
d = (d2 – d1)/(h2 + h1);
i = 3;
while i <= ni
b = d2 + h2*d;
D = (b*b – 4*polyval(f,x2)*d)^0.5;
if abs(b – D) < abs(b + D)
E = b + D;
else
E = b – D;
end
h = -2*polyval(f,x2)/E;
p = x2 + h;
if abs(h) < tol
return;
end

x0 = x1;
x1 = x2;
x2 = p;
h1 = x1 – x0;
h2 = x2 – x1;
d1 = (polyval(f,x1) – polyval(f,x0))/h1;
d2 = (polyval(f,x2) – polyval(f,x1))/h2;
d = (d2 – d1)/(h2 + h1);
i = i + 1;
end
fprintf(‘Fallo después de %d iteraciones’,ni);

 

 

 

Callisaya Chavez Maria Eugenia

Método de Newton

En análisis numérico, el método de Newton (conocido también como el método de Newton-Raphson o el método de Newton-Fourier) es un algoritmo eficiente para encontrar aproximaciones de los ceros o raíces de una función real. También puede ser usado para encontrar el máximo o mínimo de una función, encontrando los ceros de su primera derivada.

Historia

El método de Newton fue descrito por Isaac Newton en De analysi per aequationes número terminorum infinitas (escrito en 1669, publicado en 1711 por William Jones) y en De metodisfluxionum et serieruminfinitarum (escrito en 1671, traducido y publicado como Método de las fluxiones en 1736 por John Colson). Sin embargo, su descripción difiere en forma sustancial de la descripción moderna presentada más arriba: Newton aplicaba el método solo a polinomios, y no consideraba las aproximaciones sucesivas xn, sino que calculaba una secuencia de polinomios para llegar a la aproximación de la raíz x. Finalmente, Newton ve el método como puramente algebraico y falla al no ver la conexión con el cálculo.

Isaac Newton probablemente derivó su método de forma similar aunque menos precisa del método de François Viète. La esencia del método de Viète puede encontrarse en el trabajo del matemáticopersaSharaf al-Din al-Tusi.

El método de Newton-Raphson es llamado así por la razón de que el matemático inglés Joseph Raphson (contemporáneo de Newton) se hizo miembro de la Royal Society en 1691 por su libro aequationumuniversalis Análisis que publico en 1690 y el cual contenía este método para aproximar raíces. Mientras que Newton en su libro Método de las fluxiones describe el mismo método escrito en 1671, pero publicado hasta 1736, lo que significa que Raphson había publicado este resultado casi 50 años antes, aunque no fue tan popular como los trabajos de Newton y se le reconoció posteriormente.

Descripción del método

La función ƒ es mostrada en azul y la línea tangente en rojo. Vemos que xn+1 es una mejor aproximación que xn para la raíz x de la función f.

El método de Newton-Raphson es un método abierto, en el sentido de que su convergencia global no está garantizada. La única manera de alcanzar la convergencia es seleccionar un valor inicial lo suficientemente cercano a la raíz buscada. Así, se ha de comenzar la iteración con un valor razonablemente cercano al cero (denominado punto de arranque o valor supuesto). La relativa cercanía del punto inicial a la raíz depende mucho de la naturaleza de la propia función; si ésta presenta múltiples puntos de inflexión o pendientes grandes en el entorno de la raíz, entonces las probabilidades de que el algoritmo diverja aumentan, lo cual exige seleccionar un valor supuesto cercano a la raíz. Una vez que se ha hecho esto, el método linealiza la función por la recta tangente en ese valor supuesto. La abscisa en el origen de dicha recta será, según el método, una mejor aproximación de la raíz que el valor anterior. Se realizarán sucesivas iteraciones hasta que el método haya convergido lo suficiente. f’(x)= 0 Sea f : [a, b] ->R función derivable definida en el intervalo real [a, b]. Empezamos con un valor inicial x0 y definimos para cada número naturaln

Donde f ‘ denota la derivada de f.

Nótese que el método descrito es de aplicación exclusiva para funciones de una sola variable con forma analítica o implícita cognoscible. Existen variantes del método aplicables a sistemas discretos que permiten estimar las raíces de la tendencia, así como algoritmos que extienden el método de Newton a sistemas multivariables, sistemas de ecuaciones, etc.

CODIFICACION EN MATLAB

disp (‘NEWTON-RAPHSON’)

xo=input(‘Valor inicial =’);

n=input (‘numero de iteraciones=’);

salida=ones(n,4); % matiz de salida de datos

for i=1:n

x1=xo-[(exp(-xo)-xo)]/[(-exp(-xo)-1)];

vsal=[xo;x1];

er=[[abs((xo-x1)/xo)]]*100;  % error relativo porcentual

ea=[[abs((x1-xo)/x1)]]*100;  % error

xo=x1;

salida(i,1)=i;

salida(i,2)=x1;

salida(i,3)=er;

salida(i,4)=ea;

end

disp(‘iteraizerea’);

disp(num2str(salida));

CODIFICADO1

disp (‘NEWTON-RAPHSON’)

xo=input(‘Valor inicial =’);

n=input (‘numero de iteraciones=’);

salida=ones(n,4); % matiz de salida de datos

for i=1:n

x1=xo-[(exp(-xo)-xo)]/[(-exp(-xo)-1)];

vsal=[xo;x1];

er=[[abs((xo-x1)/xo)]]*100;  % error relativo porcentual

ea=[[abs((x1-xo)/x1)]]*100;  % error

xo=x1;

salida(i,1)=i;

salida(i,2)=x1;                                         

salida(i,3)=er;

salida(i,4)=ea;

end

disp(‘iteraciones de la raiz error relativo porcentual   al error ‘);

disp(num2str(salida));

CORRIDA EN MATLAB1

REALIZADO EN EXCEL

CODIFICADO EN JAVA
import java.io.*;

publicclassMetodoNewtonRapshon {

// MétododeNewtonRapsonparaencontrarlasraicesdeunaecuación

// laecuaciónexplicitadebecodificarseen el método f, y suderivada

// debecodificarseen el métododf

staticBufferedReaderreader;

publicMetodoNewtonRapshon() {

reader = newBufferedReader(newInputStreamReader(System.in));

}

publicstaticdoublereadDouble() throwsIOException {

return (new Double(reader.readLine())).doubleValue();

}

// Codificacióndelafunción x cubicamenos 4.3 por x cuadradamas 4 por x

// menos 17.2

publicstaticdouble f(double x) {

return x * x * x – 4.3 * x * x + 4 * x – 17.2;

}

// Derivadadelafuncion anterior

publicstaticdoubledf(double x) {

return 3 * x * x – 4.3 * 2 * x + 4;

}

publicstaticvoid main(String[] args) {

double x, y, error;

boolean done = false;

MetodoNewtonRapshonv = newMetodoNewtonRapshon();

try {

System.out.print(“x0 = “);

x = readDouble();

System.out.println();

System.out.print(“error = “);

error = readDouble();

do {

y = f(x);

System.out.println(x + ” ” + y);

if (Math.abs(y) < error)

done = true;

x -= y / df(x);

} while (!done);

System.out.println(“Raiz de la Ecuación : ” + x);

} catch (Exception e) {

e.printStackTrace();

}

}

}

CORRIDA EN JAVA

Flores Mamani Omar

MÉTODO DE LA SECANTE

En análisis numérico el método de la secante es un método para encontrar los ceros de una función de forma iterativa.

Es una variación del método de Newton-Raphson donde en vez de calcular la derivada de la función en el punto de estudio, teniendo en mente la definición de derivada, se aproxima la pendiente a la recta que une la función evaluada en el punto de estudio y en el punto de la iteración anterior. Este método es de especial interés cuando el coste computacional de derivar la función de estudio y evaluarla es demasiado elevado, por lo que el método de Newton no resulta atractivo.

En otras palabras, el método de la secante es un algoritmo de la raíz de investigación que utiliza una serie de raíces de las líneas secantes para aproximar mejor la raíz de una función f. El método de la secante se puede considerar como una aproximación en diferencias finitas del método de Newton-Raphson. Sin embargo, este método fue desarrollado independientemente de este último.

 

El método

El método se define por la relación de recurrencia:

 

Como se puede ver, este método necesitará dos aproximaciones iníciales de la raíz para poder inducir una pendiente inicial.

 

Derivación del método

El método se basa en obtener la ecuación de la recta que pasa por los puntos (xn−1, f (xn−1)) y (xn, f (xn)). A dicha recta se le llama secante por cortar la gráfica de la función. En la imagen de arriba a la derecha se toman los puntos iníciales x0 y x1, se construye una línea por los puntos (x0, f(x0)) y (x1, f(x1)). En forma punto-pendiente, esta línea tiene la ecuación mostrada anteriormente. Posteriormente se escoge como siguiente elemento de la relación de recurrencia, xn+1, la intersección de la recta secante con el eje de abscisas obteniendo la fórmula, y un nuevo valor. Seguimos este proceso, hasta llegar a un nivel suficientemente alto de precisión (una diferencia lo suficientemente pequeñas entre xn y xn-1).

 

Convergencia

El orden de convergencia de este método, en un punto cercano a la solución, es donde

 

Es el número áureo, por lo que se trata de una convergencia supe lineal inferior a la del método de Newton-Raphson. En caso de que la aproximación inicial sea demasiado lejana o la raíz no sea simple, este método no asegura la convergencia y tiene un comportamiento similar al de Newton-Raphson.

 

Comparación con otros métodos de búsqueda de raíces

El método de bisección necesita de muchas iteraciones comparado con el método de la secante, ya que el proceso que éste sigue es mucho más preciso que el de bisección, el cual solo divide por mitades sucesivamente hasta dar con un valor aproximado al real y por consecuente conlleva un número significativamente mayor de iteraciones.

El método de la regla falsa utiliza la misma fórmula que el método de la secante. Sin embargo, no se aplica la fórmula en xn−1 y xn, como el método de la secante, pero en xn y en la última iteración xk tal que f (xk) y f (xn) tiene un signo diferente. Esto significa que el método de regla falsa siempre converge.

La fórmula de recurrencia del método de la secante se puede derivar de la fórmula para el método de Newton-Raphson:

 

Utilizando la aproximación de diferencias finitas:

 

Si comparamos el método de Newton-Raphson con el método de la secante, vemos que el método de Newton-Raphson converge más rápido (para 2 en contra α ≈ 1,6). Sin embargo, el método de Newton-Raphson requiere la evaluación de ambos f y su derivada en cada paso, mientras que el método de la secante sólo requiere la evaluación de f. Por lo tanto, el método de la secante puede muy bien ser más rápido en la práctica.

Si comparamos el método de Newton-Raphson con el método de la secante, vemos que el método de Newton-Raphson converge más rápido (para 2 en contra α ≈ 1,6). Sin embargo, el método de Newton-Raphson requiere la evaluación de ambos f y su derivada en cada paso, mientras que el método de la secante sólo requiere la evaluación de f. Por lo tanto, el método de la secante puede muy bien ser más rápido en la práctica.

 

Código del Método de la Secante MATlab

 F=input(‘Ingrese la función entre comillas: ‘);

x0=input(‘Ingrese el valor de X0: ‘);

x1=input(‘Ingrese el valor de X1: ‘);

e=input(‘Ingrese el error: ‘);

n=input(‘Ingrese el numero máximo de Iteraciones: ‘);

f=inline(F);

fprintf(‘It.        X0              X1              error       Raiz \n’);

for i=1 : n

if f(x0) < f(x1)

aux=x0;

x0=x1;

x1=aux;

end

x2=x1-(((x1-x0)/(f(x1)-f(x0)))*f(x1));

fprintf(‘%2d \t %11.7f \t %11.7f \t %11.7f \t %11.7f \n’,i,x0,x1,e,x2);

 

if f(x2)<e

i=n+1;

end

x1=x0;

x0=x2;

end

fprintf(‘La raíz de la función es: ‘);

disp(x2);

ezplot(f),grid on

Ejemplo 1

f(x)=      x^3+2*x^2+10*x-20

x0=       0

x1=      1

error= 0.001

Ejemplo 2

f(x)=     exp(-x)-x

x0=           0

x1=           1

error=      0.0001

 

Ejemplo 3

 

f(x)= 5*log(x)+3*x^4-7

x0= 1

x1=5

error=      0.0001