Está en la página 1de 20

2013

Método de Müller

Raíces de Ecuaciones

Yamil Armando Cerquera Rojas


Universidad Surcolombiana
21/09/2013
RAÌCES DE ECUACIONES
Método Müller
Ing Yamil Armando Cerquera Rojas – yacerque@gmail.com
Especialista en Sistemas Universidad Nacional
Docente Universidad Surcolombiana
Neiva - Huila

Tabla de contenido

Introducción ................................................................................................................................... 3
Antecedentes ............................................................................................................................. 3
Desarrollo .................................................................................................................................... 4
Cancelación por resta – Fórmula alternativa: ...................................................................... 7
Ejercicio de aplicación: ............................................................................................................ 8
Otra forma de obtener la Fórmula de del método de Muller .......................................... 10
Ejemplo: y = sin (x) − 12x ..................................................................................................... 10
Ejemplo: Calcular la raíz de la ecuación: y = (1 + x) ∗ sinx − 1 = 0 ............................. 12
Algoritmo para MatLab ........................................................................................................... 13
Código en MatLab .................................................................................................................... 13
Otro algoritmo en MatLAb para la función de muller ....................................................... 16
Código en DEV C ...................................................................................................................... 17
Recursos Bibliográficos ........................................................................................................... 19
Bibliografia OnLine: ................................................................................................................ 20
Introducción
Este es un método para encontrar las raíces de ecuaciones polinomiales de la forma
general:

f n ( x ) = a 0 + a1 x + a 2 x 2 + ....... + a n x n

Donde n es el orden del polinomio y las a 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 más interesantes y potentes es en los sistemas dinámicos,
particularmente en los lineales.

El polinomio más conocido en el mundo científico, es el denominado, ecuación


característica, que es de la forma:

a 2 x 2 + a1 x + a 0 = 0

Donde las raíces de este polinomio satisfacen:

− a1 ± a12 − 4 a 2 a 0
x1 , 2 =
2a0

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.

Recuerde que el método de la secante obtiene la raíz dirigiendo una recta hasta el eje
x con dos valores de la función. El método de Müller es similar; pero construye una
parábola con tres puntos.
Desarrollo
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:
f 2 ( x) = a( x − x2 ) 2 + b( x − x2 ) + c

Figura 1. Recta del método de la secante

Figura 2. Parábola del método de Muller

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:
Ecuación 1
f ( x0 ) = a( x0 − x 2 ) + b( x0 − x 2 ) + c
2

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 fórmula 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 fórmula
cuadrática es posible localizar tanto raíces reales, como raíces complejas.

Ecuación 2
f 2 ( xi ) = a ( x i − x 2 ) + b( xi − x 2 ) + c 2

Si se quiere que esta parábola pase por los tres puntos [x0 , f ( x0 )] , [x1 , f ( x1 )] ,
[x2 , f ( x2 )] , Los coeficientes de la Ecuación 2 se evalúan sustituyendo cada uno de esos
tres puntos para dar:

Ecuación 3
f ( x 0 ) = a ( x 0 − x 2 ) 2 + b( x 0 − x 2 ) + c
Ecuación 4
f ( x1 ) = a ( x1 − x 2 ) + b( x1 − x 2 ) + c 2

Ecuación 5
f ( x 2 ) = a ( x 2 − x 2 ) + b( x 2 − x 2 ) + c 2

Observe que se ha eliminado el subíndice 2 de la función por brevedad. Debido a que


se tiene tres ecuaciones es posible encontrar los tres coeficientes desconocidos a,b,c.
De la Ecuación 5

f ( x 2 ) = a (se tiene que c = f ( x 2 ) . Así el valor de c es la función


x 2 − x 2 ) 2
+ b ( x 2 − x 2 ) + c

evaluada en el tercer valor inicial x 2 . Este valor se sustituye en las ecuaciones

Ecuación 3

f ( x 0 ) = a ( x 0 − x 2 ) 2
+ b ( x 0 − x 2 ) + c

Ecuación 4

= − + − +
2
f ( x 1 ) a ( x 1 x 2 ) b ( x 1 x 2 ) c

Para tener dos ecuaciones con dos incógnitas:

Ecuación 6
f ( x0 ) − f ( x2 ) = a( x0 − x 2 ) + b( x0 − x 2 ) ≡ −a ( x0 − x 2 ) − b( x0 − x 2 ) = f ( x 2 ) − f ( x0 )
2 2

Ecuación 7
f ( x1 ) − f ( x 2 ) = a( x1 − x 2 ) + b( x1 − x 2 ) ≡ − a( x1 − x2 ) − b( x1 − x 2 ) = f ( x 2 ) − f ( x1 )
2 2

Una manipulación algebraica permite encontrar los coeficientes restantes a y b. La


manera de hacer esto consiste en definir las diferencias:
h0 = x1 − x0 h1 = x 2 − x1
f ( x 1 ) − f ( x0 ) f ( x 2 ) − f ( x1 )
δ0 = δ1 =
x1 − x0 x 2 − x1

Estas se sustituyen en la ¡Error! No se encuentra el origen de la referencia.:


− a ( x 0 − x 2 ) 2 − b( x 0 − x 2 ) = f ( x 2 ) − f ( x 0 )

Teniendo h0 = x1 − x0 y h1 = x2 − x1 , entonces ( x0 − x 2 ) = −(h0 + h1 ) , por tanto se tiene


finalmente:

( h0 + h1 )b − ( h0 + h1 ) 2 a = h0δ 0 + h1δ 1

Y de la ¡Error! No se encuentra el origen de la referencia.

− a( x1 − x 2 ) 2 − b( x1 − x 2 ) = f ( x2 ) − f ( x1 ) , si f ( x 2 ) − f ( x) = δ 1 ( x 2 − x1 )

− b( x1 − x 2 ) − a( x1 − x 2 ) 2 = δ 1 ( x2 − x1 ) , si (x1 − x2 ) = −h1 , entonces la ecuación se


convierte en:

− b(−h1 ) − a (− h1 ) 2 = δ 1 ( x 2 − x1 ) , y reacomodando signos se tiene finalmente:

(h1 ) ( )*
* b − h12 a = h1δ 1

Se han convertido las ¡Error! No se encuentra el origen de la referencia. y ¡Error!


No se encuentra el origen de la referencia. en:

( h0 + h1 )b − ( h0 + h1 ) 2 a = h0δ 0 + h1δ 1
(h1 ) * b − h12( )* a= h1δ 1

De donde se despeja a y b. El resultado se resume como

δ1 − δ 0
a=
h1 − h0
b = ah1 + δ 1
c = f ( x2 )
Para encontrar la raíz se aplica la fórmula cuadrática de la Ecuación 2, sin embargo
debido al error de redondeo potencial, en lugar de usar la fórmula convencional, se
usará la fórmula alternativa1, es decir:

Si se tiene que encontrar x3 , de f 2 ( x3 ) = a ( x3 − x 2 ) 2 + b( x 3 − x 2 ) + c .


− 2c
x3 − x 2 =
b ± b 2 − 4ac
− 2c
O despejando la incógnita x3 = + x2
b ± b 2 − 4ac

La utilizar la formula cuadrática, es posible localizar tanto las raíces reales como las
complejas. Esta es la mayor ventaja del método.

Cancelación por resta – Fórmula alternativa:

Se refiere al redondeo incluido cuando se restan dos números de punto flotante casi
iguales.

Un caso común donde ocurre es en la determinación de las raíces de una ecuación


cuadrática o parábola utilizando la ecuación cuadrática.

x1 − b ± b 2 − 4ac
= , En los casos donde b 2 >>> 4ac , la diferencia en el numerador
x2 2a
puede ser muy pequeña. En tales casos, la precisión doble llega a reducir el problema.

Además una formulación alternativa puede usarse para minimizar la cancelación por
resta.

x1 − 2c
=
x2 − b ± b 2 − 4ac

Una ilustración del problema y del uso de esta fórmula alternativa se ofrece en el
siguiente ejemplo.

Calcule el valor de las raíces de una ecuación cuadrática con a=1, b=3000.001 y c=3.
Compare el valor calculado con las raíces verdaderas x1 = −0.001 y x 2 = −3000

Si se ejecuta en MatLab el siguiente código:

» a=1;

1
Métodos para ingenieros, 5 edición Steven Chapra – Raymond Canale, Mc Graw Hill. Pag. 73),
b=3000.001;
c=3;
x1=(-b+sqrt(b*b-4*a*c))/(2*a)
x2=(-b-sqrt(b*b-4*a*c))/(2*a)

Se tendrá como respuesta lo siguiente:

x1 = -1.000007614493370e-003
x 2 = -3.000000999999000e+003

Ejercicio de aplicación:
Utilice el método de Müller para encontrar las raíces de la ecuación
f ( x) = x 3 − 13 x − 12 , con valores iniciales x0 = 4,5, x1 = 5.5, x 2 = 5 .

Si se gráfica la función, y teniendo en cuenta que es de orden tres, puede visualizar


que las raíces son reales y dadas en -3, -1 y 4.

Solución: si

x0 = 4,5 f ( x0 ) = f (4.5) = 20.625 ,


x1 = 5.5 , f ( x1 ) = f (5.5) = 82.875
x2 = 5 , f ( x2 ) = f (5) = 48

h0 = x1 − x0 = 5.5 − 4.5 = 1
h1 = x2 − x1 = 5 − 5.5 = −0.5
f ( x1 ) − f ( x0 ) 82.875 − 20.625
δ0 = = = 62.25
x1 − x0 5.5 − 4.5
f ( x 2 ) − f ( x1 ) 48 − 82.875
δ1 = = = 69.75
x 2 − x1 5 − 5.5

Estos valores a su vez se sustituyen en las ecuaciones:

δ1 − δ 0 69.75 − 62.25
a= = = −5
h1 − h0 − 0.5 + 1
b = ah1 + δ 1 = −5(−0.5) + 69.75 = 72.25
c = f ( x 2 ) = 48

La raíz cuadrática del determinante se evalúa como:

b 2 − 4ac = 62.25 2 − 4(15)( 48) = 31.54461

Luego, 62.25 + 31.54451 > 62.25 − 31.54451 , se emplea un signo positivo en el


− 2c
denominador de la ecuación x3 = x 2 + , y así se encuentra la nueva raíz.
b + b 2 − 4ac

− 2 * ( 48)
x3 = 5 + = 3.976487
62.25 + 31.54451

Y desarrollando el error relativo:

− 1.023513
er = * 100% = 25.74%
3.976487

Debido a que el error es demasiado grande todavía, se asignan nuevos valores así: x0
se remplaza por x1 , x1 se remplaza por x 2 y x 2 se remplaza por x3 , por lo tanto la
nueva iteración se realiza con:

x0 = 5,5, x1 = 5, x 2 = 3.976487 , y se repite de nuevo todos los cálculos

i xr er
0 5.000000
1 3.976487 25.740000
2 4.001050 0.6139000
3 4.000000 0.0262000
4 4.000000 0.0000119
Otra forma de obtener la Fórmula de del método de Muller
Los tres valores iniciales necesitados son denotados como x k , x k −1 , y x k − 2 . La parábola
pasa a través de los puntos: [x k , f ( x k )] , [xk −1 , f ( xk −1 )] y [x k − 2 , f ( xk −2 )], si se escribe en
la forma de Newton, entonces:

y = f ( xk ) + ( x − xk ) f [xk , xk −1 ] + ( x − xk )( x − xk −1 ) f [xk , xk −1 , xk −2 ]

Donde f ( x k , x k −1 ) y f ( x k , xk −1 , x k −2 ) denotan restas divididas. Esto puede ser escrito


como:

y = f ( xk ) + w( x − xk ) + f [xk , xk −1 , xk − 2 ]( x − xk ) 2

Donde
w = f [x k , x k −1 ] + f [x k , xk − 2 ] − f [x k −1 , x k − 2 ]

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


2 f ( xk )
x k +1 = x k −
w ± w 2 − 4 f ( x k ) f [x k , x k −1 , x k − 2 ]
Ejemplo: y = sin(x) − x
Su gráfica es:

Figura 3
La raíz está entre x2 =1.8 y x1 = 2.2. Tomando x0 =2.0 entre x2 y x1

x0 = 2.0
x1 = 2.2
x2 = 1.8

Los correspondientes valores de f(x), h1, h2 y d son:

y0 = -0.0907025732
y1 = -0.2915035962
y2 = 0.0738476309
h1 = 0.2
h2 = 0.2
d = 1.000000000

Resolviendo el sistema se obtienen los coeficientes del polinomio cuadrático:

a = -0.4531352362
b = -0.9133780680
c = -0.0907025732

Por ser b < 0 se considera el signo (-) en el denominador de la expresión para r, raíz
del polinomio ( r es una primera aproximación a la raíz de f(x) )

r= 1.895252107

La raíz r del polinomio se encuentra a la izquierda de x0. Los nuevos valores son

x00 = 1.895252107
x11 = 2.0
x22 = 1.8
h11 = 0.104747893
h22 = 0.095252107
d1 = 0.9093462816

Y los nuevos valores de la función son:

y00 = 0.0001983067
y11 = -0.0907025732
y22 = 0.0738476309

Los valores de los nuevos coeficientes del polinomio son:

a1 = -0.4730106876
b1 = -0.8182594122
c1 = 0.0001983067
Con dichos valores se obtiene una nueva aproximación a la raíz resolviendo el
polinomio cuadrático:

r1 = 1.895494425

El valor de la función en r1 es:

y3 = -0.1294e-6

y la solución “exacta” de la ecuación propuesta es:

rexac = 1.895494267

La magnitud del error absoluto en r1 es:

er = 0.158e-6

Ejemplo: Calcular la raíz de la ecuación: y = (1 + x) ∗ sin(x) − 1 = 0

Figura 4
x2 = 2.8
x0 = 2.9
x1 = 3.0
h1 = 0.1
h2 = 0.1
d = 1.000000000
y2 = 1.726773367
y0 = -0.0669276161
y1 = -0.4355199676
a = 71.25543160
b = -10.81146668
c = -0.0669276161
r= 2.894043416
y3 = -0.0458478202
x22 = 2.894043416
x00 = 2.9
x11 = 3.0
h11 = 0.1
h22 = 0.005956584
d1 = .05956584000
y22 = -0.0458478202
y00 = -0.0669276161
y11 = -0.4355199676
a1 = -1.387518017
b1 = -3.547171713
c1 = -0.0669276161

Una segunda aproximación a la raíz es r1 y la raíz "exacta" es rexac:

r1 = 2.880990772
rexac = 2.880986321

El valor de la función en x = r1 es:

y33 = -0.0000155441

Algoritmo para MatLab

Para encontrar la solución a f ( x) = 0 debe tener tres aproximaciones x 0 , x1 , x 2

Valores de entrada: x 0 , x1 , x 2 ; tolerancia o margen de error TOL; y máximo numero de


iteraciones No.

Valores de salida: Solución aproximada p o mensaje de fallo.

Los coeficientes son almacenados en el vector A, Las dimensiones de A pueden


cambiar.

Código en MatLab
syms('P', 'OK', 'TOL', 'M', 'X', 'FLAG', 'NAME', 'OUP', 'F', 'H');
syms('r','DEL1', 'DEL', 'I', 'B', 'D', 'E', 'J','x','s','N');
TRUE = 1;
FALSE = 0;
F = zeros(1,4);
X = zeros(1,4);
H = zeros(1,3);
DEL1 = zeros(1,2);
fprintf(1,'Este es el método de Mullers.\n');
fprintf(1,'Ingrese el polinomio P(x)\n');
fprintf(1,'Por ejemplo: para entrar x^3-2*x+4 ingrese \n');
fprintf(1,' [ 1 0 -2 4 ] \n');
P = input(' ');
OK = TRUE;
N = length(P);
if N == 2
r = -P(N)/P(N-1);
fprintf(1,'El Polinomio es lineal: La raíz es %11.8f\n', r);
OK = FALSE;
end
if OK == TRUE
OK = FALSE;
while OK == FALSE
fprintf(1,'Ingrese tolerancia\n');
TOL = input(' ');
if TOL <= 0
fprintf(1,'La Tolerancia debe ser positiva \n');
else
OK = TRUE;
end
end
OK = FALSE;
while OK == FALSE
fprintf(1,'Ingrese el máximo numero de iteraciones – sin punto decimal \n');
M = input(' ');
if M <= 0
fprintf(1,'Debe ser un entero positivo \n');
else
OK = TRUE;
end
end
fprintf(1,'Ingrese el primer de 3 valores de entrada \n'); X(1) = input(' ');
fprintf(1,'Ingrese el segundo de 3 valores de entrada \n'); X(2) = input(' ');
fprintf(1,'Ingrese el tercer de 3 valores de entrada \n'); X(3) = input(' ');
end
if OK == TRUE
fprintf(1,'Seleccione output destination\n');
fprintf(1,'1. Screen\n');
fprintf(1,'2. Text file\n');
fprintf(1,'Enter 1 or 2\n');
FLAG = input(' ');
if FLAG == 2
fprintf(1,'Input el file name in el form - drive:\\name.ext\n');
fprintf(1,'For example: A:\\OUTPUT.DTA\n');
NAME = input(' ','s');
OUP = fopen(NAME,'wt');
else
OUP = 1;
end
fprintf(OUP, 'MULLERS METHOD\n');
fprintf(OUP, 'El output is i, approximation x(i), f(x(i))\n\n');
fprintf(OUP,'El real and imaginary parts of x(i) are\n');
fprintf(OUP,'followed by real and imaginary parts of f(x(i)).\n\n');
F(1) = polyval(P,X(1));
F(2) = polyval(P,X(2));
F(3) = polyval(P,X(3));
% PASO 1
H(1) = X(2)-X(1);
H(2) = X(3)-X(2);
DEL1(1) = (F(2)-F(1))/H(1);
DEL1(2) = (F(3)-F(2))/H(2);
DEL = (DEL1(2)-DEL1(1))/(H(2)+H(1));
I = 3;
% PASO 2
while I <= M & OK == TRUE
% PASO 3
B = DEL1(2)+H(2)*DEL;
D = B*B-4*F(3)*DEL;
if abs(DEL) <= 1.0e-20 % test to see if straight line
if abs(DEL1(2)) <= 1.0e-20 % straight line - test if horizontal line
fprintf(1,'Horizontal Line\n');
OK = FALSE;
else
% straight line but not horizontal
X(4) = (F(3)-DEL1(2)*X(3))/DEL1(2);
H(3) = X(4)-X(3);
end
else
% not a straight line
D = sqrt(D);
% PASO 4
E = B+D;
if abs(B-D) > abs(E)
E = B-D;
end
% PASO 5
H(3) = -2*F(3)/E;
X(4) = X(3)+H(3);
end
if OK == TRUE
F(4) = polyval(P,X(4));
fprintf(OUP, '%d %f %f %f %f\n',I,X(4),imag(X(4)),F(4),imag(F(4)));
end
% PASO 6
if abs(H(3)) < TOL
% Procedure completed successfully.
fprintf(OUP, '\nMethod Succeeds\n');
fprintf(OUP, 'Approximation is within %.10e\n', TOL);
fprintf(OUP, 'in %d iterations\n', I);
OK = FALSE;
else
% PASO 7
for J = 1:2
H(J) = H(J+1);
X(J) = X(J+1);
F(J) = F(J+1);
end
X(3) = X(4);
F(3) = F(4);
DEL1(1) = DEL1(2);
DEL1(2) = (F(3)-F(2))/H(2);
DEL = (DEL1(2)-DEL1(1))/(H(2)+H(1));
end
I = I+1;
end
% PASO 8
if I > M & OK == TRUE
% Procedimiento completado.
fprintf (OUP, 'Method Failed\n');
end
if OUP ~= 1
fclose(OUP);
fprintf(1,'Output file %s created sucessfully\n',NAME);
end
end

Otro algoritmo en MatLAb para la función de muller


function [Xp, ITER, FLAG] = MULLER(F, X0, X1, X2, EPS1, EPS2, MAXIT)
% Sintaxis
% [Xp, ITER, FLAG] = MULLER(F, X0, X1, X2, EPS1, EPS2, MAXIT)
% Entrada
% - F es la función, almacenada como un archivo F.m
% - X0, X1, X2 son los valores iniciales
% - EPS1 es el criterio de convergencia
% - EPS2 es el criterio de exactitud
% - MAXIT es el número máximo de iteraciones
% Salida
% - Xp es el valor de la raíz aproximada
% - ITER es el número de iteraciones realizadas
% - FLAG es una variable lógica, es 1 si hubo convergencia, caso contrario es 0
for K = 1 : MAXIT
F10 = (feval(F, X1) - feval(F, X0)) / (X1 - X0);
F21 = (feval(F, X2) - feval(F, X1)) / (X2 - X1);
F210 = (F21 - F10) / (X2 - X0);
A2 = F210;
A1 = F21 - (X2 + X1) * A2;
A0 = feval(F, X2) - X2 * (F21 - X1 * A2);
D1 = -A1 + sqrt(A1^2 - 4 * A0 * A2);
D2 = -A1 - sqrt(A1^2 - 4 * A0 * A2);
if (abs(D1) > abs(D2))
X3 = 2 * A0 / D1;
else
X3 = 2 * A0 / D2;
end
if (abs(X3 - X0) <= EPS1 | abs(feval(F, X3)) <= EPS2)
Xp = X3;
ITER = K;
FLAG = 1;
return;
end
X0 = X1;
X1 = X2;
X2 = X3;
end
disp('Se ha excedido el máximo número de iteraciones...');
ITER = MAXIT;
FLAG = 0;
return;

Nota. Para usar el programa MULLER, es necesario introducir la función de iteración


f(x) en un archivo, por ejemplo F.m, que cumpla con la sintaxis de MATLAB para la
creación de funciones, y que pueda ser llamado por MULLER como una cadena de
caracteres.

Código en DEV C
#include <iostream.h>
#include <conio.h>
#include <math.h>
main ()
{ int I, MAXIT;
double x0, x1, x2, x3, A, B, C, D, E;
double Fx0, Fx1, Fx2, Fx3, F10, F21, F210;
double A0, A1, A2, D1, D2;
double EA, EA1;
cout << " \n\t\t METODO DE MULLER " ;
cout << " \n\n FUNCION f(x)= x3+x2-5x+20 " ;
cout << " \n\n Ingrese el valor inicial =" ;
cin >> x0;
cout << " \n\n Ingrese el valor para x1 " ;
cin >> x1;
cout << " \n\n Ingrese el valor para x2 " ;
cin >> x2;
cout << " \n\n Ingrese el criterio de exactitud " ;
cin >> EA1;
cout << " \n\n Ingrese numero de iteraciones " ;
cin >> MAXIT;
I=1;
While (I<=MAXIT)
{ Fx0= pow(x0,3)-13*x0-12;
Fx1= pow(x1,3)-13*x1-12;
Fx2= pow(x2,3)-13*x2-12;
F10 = (Fx1-Fx0)/(x1-x0);
F21 = (Fx2-Fx1)/(x2-x1);
F210= (F21-F10)/(x2-x0);
A2= F210;
A1= F21-(x2+x1)*A2;
A0= Fx2-(x2*(F21-(x1*A2)));
A=pow((pow(A1,2)-4*A0*A2),0.5);
D1= -A1+A;
D2= -A1-A;
B=abs(D1);
C=abs(D2);
if(B>C)
{ x3=(2*A0)/D1;
}
else
{ x3=(2*A0)/D2;
}
Fx3= pow(x3,3)+ pow(x3,2)-5*x3 + 20;
D = abs(x3-x0);
E = abs(Fx3);
if ((D<EA1)||E<EA1))
{ cout << " \n\n valor de x: " << x3 << endl<< endl;
cout << " \n\n El numero de iteracion encontrado: " << I<< endl;
system("PAUSE");
return 0;
}
x0=x1;
x1=x2;
x2=x3;
I=I+1;
}
cout << " El sistema no converge " << MAXIT << " Iteraciones " ;
cout << " El ultimo valor encontrado para x: " << x3<< endl<< endl;
system ("PAUSE");
return 0;
}
Recursos Bibliográficos
MATHEUS. John H. Fink Kurtis D. Métodos Numéricos con MATLAB. Editorial
Prentice Hall
ALTZ, Franz L. Electronic. Digital. computers: Their use in science and
Engineering. 1958 Academic Press inc. New York.
BURDEN Richard L., J. Douglas Faires; Análisis numérico. tr. Efrén Alatorre
Miguel; Revisión Técnica. Ildefonso. 1998 (Biblioteca USCO. Nro Topográfico:
515 / B949a.)
CHAPRA Steven C., CANALE Raymond P, Numerical Methods for engineers.
McGraw Hill, Inc. 1988. 839p. ISBN 0-07-909944-0.
CHAPRA Steven C., CANALE Raymond P. Métodos numéricos para ingenieros: con
aplicaciones en computadoras personales. 1988 (Biblioteca USCO Nro
Topográfico: 519.5 / C467m)
CONDE S. D, Carl de Boor. Análisis numérico elemental: Un enfoque
algorítmico. Mc. Graw-Hill 1972, (Biblioteca USCO Nro Topográfico: 511.8 /
C761 Biblioteca).
CORMICK MC., John M. and SALVADOR M.C. Numerical Methods in FORTRAN.
1964. Prentice-Hall Inc Englewood Cliffs N:J.
CURTIS, F. Gerald, WHEATLEY, O. Patrick. Análisis numérico con aplicaciones.
Tr. Hugo Villagomez Vasquez. 6 Ed. Pearson Educación. 2000, 698p. ISBN 968-
444-393-5
FADDEEVA, V.N. Computacional methods of linear algebra, Dover Publications.
1969, New York.
GASTINEL Noél; Análisis numérico lineal. tr. Javier Ruiz Fernández de Pinedo.
1975. (Biblioteca USCO Nro Topográfico: 511.7 / G255).
GREENSPAN, D. Theory and solutions of Ordinary Differencial Equations. 1960
The. Mc Millan Co. New York.
KINCAID David y Ward Cheney; Análisis numérico: Las matemáticas del cálculo
científico. tr. Rafael. 1994 (Biblioteca USCO Nro Topográfico: 515 / K51a).
LUTHE. Rodolfo, OLIVERA Antonio, SCHUTZ Fernando, Métodos numéricos. 1986
(Biblioteca USCO Nro Topográfico: 511.7 / L973m).
McCRACKEN, Daniel D., Métodos numéricos y programación fortran: con
aplicaciones en ingeniería y ciencias. 1986. Editorial Limusa. México.
(Biblioteca USCO Nro. Topográfico: 001.6424 / M117).
NAKAMURA Shoichiro; Análisis numérico y visualización gráfica con MATLAB. tr.
Roberto Escalona García. 1998 (Biblioteca USCO N ro Topográfico: 515.1 /
N163a).
NAKAMURA Shoichiro; Métodos numéricos aplicados con software. tr. Oscar
Alfredo Palmas Velasco. Prentice Hall Hispanoamericana S.A. 1995. 570p.
(Biblioteca USCO. Nro. Topográfico: 511.8 / N163m) ISBN 968-880-263-8
NIETO RAMIREZ José A., Métodos numéricos en computadoras digitales. Editorial
Limusa 1980. (Biblioteca USCO Nro Topográfico: 001.64042 / N677).
RALSTON Anthony; Introducción al análisis numérico. tr. Carlos E. Cervantes de
Gortari. Editorial Limusa. Mexico. 1978. 629p. (Biblioteca USCO Nro
Topográfico: 511.7 / R164.)
SCARBOROUGH, J.B Numerical mathematics analysis
SIERRA ROMERO, Alberto. Manual de Métodos Numéricos. Universidad
Tecnológica de Pereira.
SMITH, W. Allen; Análisis numérico. tr. Francisco Javier Sánchez Bernabe; Rev.
Téc. José Luis Turriza Pinto. Prentice Hall Hispanoamericana S.A. 1988. 608p.
(Biblioteca USCO Nro Topográfico: 515 / S664a) ISBN 968-880-119-4.
STANTON, Ralp G. Numerical Methods for Science and Engineering. 1967.
Prentice-Hall Inc. Englewood Cliffs N.J

Bibliografia OnLine:
http://sai.uam.mx/apoyodidactico/mn/
http://www.unalmed.edu.co/~ifasmar/libro.shtml
http://www.iesrodeira.com/metodos_numericos/index-2.htm
http://uprhmate01.upr.clu.edu/~pnm/notas4061/index.htm
http://mailweb.udlap.mx/~ccastane/Analisis_Numerico_html/Lindley.html#RegresaGral1
http://www.ii.uam.es/~pedro/ccii/teoria/
http://webdiee.cem.itesm.mx/web/servicios/archivo/tutoriales/metodos/algoritmos/index.html
http://www.ucsc.cl/~kdt/numerico/index.htm
http://luda.azc.uam.mx/curso2/cp2indic.html
http://www.geocities.com/SiliconValley/Pines/7894/metodos/
http://www.uv.es/~diaz/mn/fmn.html
http://proton.ucting.udg.mx/posgrado/cursos/metodos/temario.html
http://webdiee.cem.itesm.mx/web/servicios/archivo/tutoriales/metodos/algoritmos/index.html
http://www.damtp.cam.ac.uk/user/fdl/people/sd/lectures/nummeth98/contents.htm
http://anamat1.csi.ull.es/anamat_p/Titulaciones/matematicas.htm
http://www.cnice.mecd.es/Descartes/
http://mathworld.wolfram.com/
http://www.elprisma.com/
http://www-gap.dcs.st-and.ac.uk/~history/index.html
http://www.ciencia-hoy.retina.ar/indice.htm
http://omega.ilce.edu.mx:3000/sites/ciencia/html/fisica.htm
http://books.pdox.net/
http://arxiv.org/
http://pessoal.sercomtel.com.br/matematica/resumos.htm
http://www.itlp.edu.mx/publica/tutors.htm
http://www.rinconmatematico.com/libros.htm

También podría gustarte