Métodos Numéricos

Facultad de Química
Prof. Ernesto Calderón Castillo
metodosnumericosfq@yahoo.com.mx
Con programación aplicada
INDICE
•Soluciones de ecuaciones no lineales
•Matrices y sistemas de ecuaciones lineales
•Sistemas de ecuaciones no lineales
•Aproximación funcional e interpolación
•Integración y diferenciación numérica
•Ecuaciones diferenciales ordinarias
•Ecuaciones diferenciales parciales
Introducción a la programación
Paquetería (VB-excel)
Lenguajes de programación
Delphi/Tpascal
Fortran
C
Errores
Error = paprox - p
EAbs = | paprox – p |
|paprox – p|
ERelativo = si p≠0
p
ERP= ER x 100%
|paprox – p|
< 5 x 10
-t

p
Definición :
Soluciones de ecuaciones no lineales
Se usan para encontrar las raíces reales y complejas de la ecuación f(x)=0

Tenemos los métodos abiertos y los métodos acotados

Métodos acotados: una función cambia de signo en la aproximidad de su raíz
• método de la bisección (o intervalo medio).
• método de la falsa posición (regula falsi).

Métodos abiertos: emplean una aproximación funcional para obtener un
nuevo valor estimado de la raíz.
• Punto-fijo (sustitución sucesiva o directa)
• Newton-Raphson (línea recta empleando información del gradiente)
• Secante (línea recta empleando dos puntos)
• Muller (raíces complejas, aprox. cuadrática empleando tres puntos)
no existe un método universal de resolución de sistemas de ecuaciones no
lineales, más bien cada sistema no lineal requerirá su método de resolución
idóneo.
SOLUCIONES DE ECUACIONES NO LINEALES
( ) 0 = x f
Las soluciones de una ecuación no lineal se llaman “raíces o ceros”
Ejemplos:
tanh(2x) tan(x) d)
1 x 0 , 0 69 . 3
) 5 . 0 1 . 1 ) 1 (
) 5 . 0 1 . 2 (
c)
b x a , 0 ) ( )
0 3 3 16 4 1 )
2 / 1
2 / 1
4 3 2
=
< < = ÷
÷ ÷
÷
< < ÷
= + + ÷ +
x x
x x
x x f b
x x x x a
Por lo gral carecen de una solución exacta
Método de punto fijo
( ) 0 = x f arreglando para que x quede lado izquierdo
( ) x g x =
0 3 2
2
= + ÷ x x reordenando
2
3
2
+
=
x
x 0 ) ( = x sen ( ) x x sen x + =
El nuevo valor calculado
( )
i i
x g x =
+1
el error aproximado
% 100
1
1
+
+
÷
=
i
i i
a
x
x x
c
( ) 0 5 2
2
= ÷ ÷ = x x x f
Ejemplo para la ecuación
sus raíces son:
1.850781059 y -1.350781059
posibilidades de x=g(x)
1 4
5 2
5 2
1 2
5
2
5
5 2
2
2
2
÷
÷ ÷
÷ =
÷ =
÷
=
+
=
÷ =
x
x x
x x
x x
x
x
x
x
x x
“despejando” el 2do término

“despejando” x del 1er término

Factorizando x y “despejándola”

Sumando x a cada lado.
se evalúa g(x) en x
0
dando como resultado x
1
;
( )
1 0
x x g =
Cuando x
1
=x
0
( ) , 0 = x f ( ) x x g =
Cuando x
1
≠x
0

, 0 =
|
.
|

\
|
-
x f
g(x)≠x
.
.
Valor inicial:
1ª iteración:
2ª iteriación:
3ª iteración:

i-ésima iteración:
i+1-ésima iteración:
( )
( )
( )
( )
( )
1 1
2 3
1 2
0 1
0
+ +
=
=
=
=
=
i i
i i
x g x
x g x
x g x
x g x
x g x
x

( )
( )
( )
( )
( )
( )
1
3
2
1
0
+ i
i
x f
x f
x f
x f
x f
x f


una segunda evaluación g(x) en x
1
, g(x
1
)=x
2


Este proceso se repite y se obtiene este equema iterativo
Si la sucesión f(x
0
),f(x
1
), f(x
2
),… tiende a 0, el proceso converge a x, se continuará hasta
que │f(x
i
)│<e
1
, donde e
1
es un valor pequeño o una cercanía de x
i
con x, se toma como raíz
a x
i
.
En caso que el proceso diverge se tendrá de usar otra g(x).
_
_
Criterio de convergencia
( ) x x g =
si la sucesión x
0
,x
1
,x
2
,… converge a x los valores de x
i
y x
i+1
se acercan entre
sí al avanzar la iteración.
_
i i i
x x d ÷ =
+1
Si d
1
,d
2
,d
3
,… ÷0 el proceso iterativo converge a una raíz hasta que
d
i
<c, y tomar a x
i+1
como raíz buscada.
Si no converge en un número grande de iteraciones, entonces x
0
,x
1
,x
2
,… diverge de x, se
detiene y se modifica la función g(x), el valor inicial o ambos.
Para encontrar una raíz real de la ecuación g(x) = x, proporcionar la función G(X) y los
DATOS: Valor inicial X0, criterio de convergencia TOL, y número máximo de iteraciones MAXIT.
RESULTADOS: La raíz aproximada X o un mensaje de falla.
PASO 1.- Hacer I = 1
PASO 2.- Mientras I < MAXIT repetir los pasos 3 a 6.
PASO 3.- Hacer X = G(X0) 'calcula xi
PASO 4.- Si ABS(X - X0) < tol entonces IMPRIMIR X y TERMINAR. De otro
modo CONTINUAR.
PASO 5.- Hacer I = I + 1
PASO 6.- Hacer X0 = X 'actualiza X0
PASO 7.- IMPRIMIR mensaje de falla "EL MÉTODO NO CONVERGE A UNA RAÍZ" y TERMINAR
Agoritmo de punto fijo: a) pseudocódigo
f unción g(x)
retornar
g=.....
Agoritmo:
b) diagrama de flujo del método de punto fijo
puntof(xi,tol,maxit)
i=1
band=f o
i<=maxit
x=g(x)
|x-xi|<=tol
band=v
band=f
No
si
ciclo
while_do
Si
i=i+1
xi=x
raiz= x
band=v
método no
converge
retornar
Si
No
Agoritmo:
b) diagrama de flujo del método de punto fijo
puntof(xi,tol,maxit)
i=0
band=f o
i<=maxit
x=g(x)
|x-xi|<=tol
band=v
band=f
No
si
ciclo
while_do
Si
i=i+1
xi=x
band=v
método no
converge
retornar
Si
No
puntof=x
Function pf(xi,tol,maxit)
i=0
band=0
do while(i<maxit)
x=g(x)
if (abs(x-x0)<=tol) then
band=1
exit
else
i=i+1
x0=x
endif
loop
if (band=1) then
pf=x
else
pf=0 „no converge
MsgBox Prompt := “el método no converge",_
Buttons:=vbOk,Title := "Error“
end if
end function
función g(x)
retornar
g=(x
2
+3)/2
Agoritmo:
b) diagrama de flujo del método de punto fijo, continuación.
Ejemplo:
Function g(x)
g=(x^2+3)/2
end function
2
3
2
+
=
x
x
.... ) ( = x g
Ejemplo general:
Esto es g(x)
f unción g(x)
retornar
g=.....
Function g(x)
g…
end function
Realizar su gráfica del método
real(8) function pf(x0,tol,maxit)
!dec$ attributes dllexport :: pf
real(8) :: x,x0,tol
integer :: maxit,band
i=0
band=0
ciclowhile: do while(i<maxit)
x=g(x)
if (abs(x-x0).le.tol) then
pf=g(x0)
band=1
exit
else
i=i+1
x0=x
endif
enddo ciclowhile
if (band.eq.0) pf=0 !no converge

contains
real(8) function g(x1)
real(8) :: x1
g=2*x1**2-5
end function g
end function pf
C
o
d
i
f
i
c
a
c
i
ó
n

e
n

f
o
r
t
r
a
n
9
0
,

c
o
m
o

a
r
c
h
.
d
l
l

Declare Function pf Lib "metodosn.dll" (x0 As Double, tol As Double, maxit As Integer) As Double

Codificación en VB con excel y usando arch.dll de f90
Function pfvb(x02 As Double, tol2 As Double, maxit2 As Integer) As Double
Dim x2 As Double
Dim i2, band2 As Integer
i2 = 0
band2 = 0
While i2 < maxit2
x2 = g(x2)
If (Abs(x2 - x02) <= tol2) Then
pfvb = g(x02)
band2 = 1
End
Else
i2 = i2 + 1
x02 = x2
End If
Wend

Segunda opción programar las funciones en VB con excel, se puede usar función o
procedimiento/subrutina
If band = 0 Then msbox = "el
método no converge..."
'pfvb = 0 'no converge
End Function

Function g(x1) As Double
g = 2 * x1 ^ 2 - 5
End Function
Function pfvb(x0 As Double, tol As Double, maxit As Integer) As Double
Call pf(x0, tol, maxit)
If pf(x0, tol, maxit) = 0 Then msbox = "el método no converge..."
End Function
Método de Newton-Raphson
Recordando la expansión de la serie de Taylor, que la podemos expresar como:
2
1 1 1
) (
! 2
) (
) )( ( ) ( ) (
i i i i i i i
x x
f
x x x f x f x f ÷
' '
+ ÷ ' + =
+ + +
ç
ç
Truncando la serie de Taylor después del 1er término derivado, tenemos:
x
i
X
i+1
) )( ( ) ( ) (
1 1 i i i i i
x x x f x f x f ÷ ' + ~
+ +
debe ser igual a cero
) )( ( ) ( 0
1 i i i i
x x x f x f ÷ ' + =
+
o
se puede resolver para:
) (
) (
1
i
i
i i
x f
x f
x x
'
÷ =
+
Esta es la ecuación de Newton Raphson
Ejemplo:
) (
i
x f
0 ) ( ÷
i
x f
) (
i
x f '
Pendiente=
X
i+1
x
i
0

) (x f
x

Usando el método de Newton Raphson calcule la raíz
de f(x)=-e
-x
-x, con un valor inicial de x
0
=0
Su primera derivada de la función: f’(x)=-e
-x
-1
1
1
÷ ÷
÷
÷ =
÷
÷
+
i
i
x
i
x
i i
e
x e
x x
Estimando el error:
,
1 r i
x x =
+
es el valor verdadero de la raíz
0 ) ( =
r
x f
entonces tenemos:
2
) (
! 2
) (
) )( ( ) ( 0
i r i r i i
x x
f
x x x f x f ÷
' '
+ ÷ ' + =
ç
restando
) )( ( ) ( 0
1 i i i i
x x x f x f ÷ ' + =
+
2
) (
! 2
) (
) )( ( 0
i r i r i
x x
f
x x x f ÷
' '
+ ÷ ' =
ç
i x
i
Є
t
(%)
0 0 100
1 0.500000000 11.8
2 0.566311003 0.147
3 0567143165 0.0000220
4 0.567143290 < 10
-18
El error porcentual
disminuye con cada iteración
Suponiendo que hay convergencia x
i
y ξ se bebe aproximar a la raíz x
r
:
Estimando el error (continuación)
1 1 , + +
÷ =
i r i t
x x E tenemos:
2
1 ,
1 ,
! 2
) (
) ( 0
+
' '
+ ' =
+
i t
E
f
E x f
i t i
ç
2
1 ,
1 ,
) ( 2
) (
+
'
' ' ÷
=
+
i t
E
x f
f
E
r
i t
ç
Ejemplo: tenemos la función f(x)=-e
-x
-x
su primera derivada es: f’(x)=-e
-x
-1 se puede evaluar en X
r
=0.56714329
f’(0.56714329)=-1.56714329

La segunda derivada: f”(x)=e
-x
, f”(0.56714329)=0.56714329
2
,
2
1 ,
18095 . 0
) 56714329 . 1 ( 2
56714329 . 0
1 ,
i t i t
E E E
i t
=
÷
~
+
+
Del ejemplo anterior el error inicial fue E
t,0
=0.56714329, el cual se puede sustituirse en
la ecuación de error que predice E
t,1
≈0.18095(0.56714329)
2
=0.0582
Lo cual es cercano al error verdadero de 0.06714329
Para la siguiente iteración E
t,2
≈0.18095(0.06714329)
2
=0.0008158
Lo cual es cercano al error verdadero de 0.0008323
Para la tercera iteración E
t,3
≈0.18095(0.0008323)
2
=0.000000125
En E
t,4
≈0.18095(0.000000125)
2
=2.83x10
-15
La estimación del error mejora, ya que está más cercano a la raíz, x y ξ se aproxima
mejor mediante x
r
.
Para encontrar una raíz real de la ecuación f(x) = 0, proporcionar la función F(X) y
su derivada DF(X) y los
DATOS: Valor inicial X0, criterio de convergencia EPS, criterio de exactitud EPS1 y
número máximo de iteraciones MAXIT.
RESULTADOS: La raíz aproximada X o un mensaje de falla.

PASO 1.- Hacer I = 1
PASO 2.- Mientras I < MAXIT repetir los pasos 3 a 7.
PASO 3.- Hacer X = X0 - F(X0) / DF(X0) 'calcula xi
PASO 4.- Si ABS(X - X0) < EPS entonces IMPRIMIR X y TERMINAR. De
otro modo CONTINUAR.
PASO 5.- Si ABS(F(X)) < EPS1 entonces IMPRIMIR X y TERMINAR. De
otro modo CONTINUAR.
PASO 6.- Hacer I = I + 1
PASO 7.- Hacer X0 = X 'actualiza X0
PASO 8.- IMPRIMIR mensaje de falla "EL MÉTODO NO CONVERGE A UNA RAÍZ"
y TERMINAR
Algoritmo Método de Newton-Raphson
Pseudocódigo:
Algoritmo Método de Newton-Raphson
Diagrama de flujo:
newtonr(xi,tol,maxit)
i=1
band=f o
i<=maxit
xi=xi-fx(xi)/fp(xi)
|f(xi)|<=tol
band=v
band=f
No
si
ciclo
while_do
Si
i=i+1
raiz= xi
band=v
método no
converge
retornar
Si
No
f unción fx(x)
retornar
f x=.....
f unción fp(x)
retornar
f p=.....
Ver archivo en excel del mismo método
pero con condición al final del circuito
de cálculo.
Realizar su gráfica del método
Método de la secante
Se usa cuando algunas funciones cuyas derivadas pueden ser difíciles de evaluar. En
estos casos la derivada se puede aproximar mediante una diferencia finita regresiva:
) (
i
x f
) (
1 ÷ i
x f
X
i+1
x
i
) (x f
x

1
1
( ) ( )
( )
i i
i
i i
f x f x
f x
x x
÷
÷
÷
' ~
÷
Sustituyendo en la ec de NR tenemos una
ecuación iterativa:
1
1
1
( )( )
( )
( ) ( )
i i i
i i i
i i
f x x x
x x g x
f x f x
÷
+
÷
÷
= ÷ =
÷
-el método requiere de 2 puntos iniciales de x
1 0 1
2 1
1 0
2 1 2
3 2
2 1
( ) ( )
( ) ( )
( ) ( )
( ) ( )
x x f x
x x
f x f x
x x f x
x x
f x f x
÷
= ÷
÷
÷
= ÷
÷
La siguiente aproximación x
2
está dada por:
x
3
por:
Hasta que g(x
i
)=x
i+1
o una vez que |x
i+1
-x
i
|<ε o |f(x
i+1
)|<ε
1
2ª iteración:
x
0
=1 f(x
0
)=-0.63212
x
1
=0.61270 f(x
1
)=-0.07081
56384 . 0
) 07081 . 0 ( 61270 . 0
) 61270 . 0 1 ( 07081 . 0
61270 . 0
2
=
÷ ÷
÷ ÷
÷ = x
ε
t
=0.58%
3ª iteración:
x
1
=0.61270 f(x
1
)=-0.07081
x
2
=0.56384 f(x
2
)=0.00518
56717 . 0
) 00518 . 0 ( 07081 . 0
) 56384 . 0 61270 . 0 ( 00518 . 0
56384 . 0
2
=
÷ ÷ ÷
÷
÷ = x
ε
t
=0.0048%
61270 . 0
) 63212 . 0 ( 1
) 1 0 ( 632120 . 0
1
1
=
÷ ÷
÷ ÷
÷ = x
ε
t
=8.0%
-usando el ejemplo anterior pero ahora con éste método, para calcular la raíz de
f(x)=e
-x
-x
con valores iniciales de x
-1
=0 y x
0
=1.0

1ª iteración:
x
-1
=0 f(x
-1
)=1.00000
x
0
=1.0 f(x
0
)=-0.63212
Realizar su gráfica del método
Para encontrar una raíz real de la ecuación f(x) = 0, proporcionar la función F(X) y los
DATOS: Valores iniciales X0, X1, criterio de convergencia tol, criterio de exactitud tol1 y
número máximo de iteraciones MAXIT.
RESULTADOS: La raíz aproximada X o un mensaje de falla.
PASO 1.- Hacer I = 1
PASO 2.- Mientras I < MAXIT repetir los pasos 3 a 8.
PASO 3.- Hacer X = X0 - (X1.X0)*F(X0) /(F(X1)-F(X0))
PASO 4.- Si ABS(X - X1) < tol entonces IMPRIMIR X y TERMINAR.
PASO 5.- Si ABS(F(X)) < tol1 entonces IMPRIMIR X y TERMINAR.
PASO 6.- Hacer X0 = X1
PASO 7.- Hacer X1 = X
PASO 8.- Hacer I = I + 1
PASO 9.- IMPRIMIR mensaje de falla "EL MÉTODO NO CONVERGE A UNA RAÍZ" y
TERMINAR
Algoritmo Método de la secante
Algoritmo Método de la secante
Diagrama de flujo
msecante(x0,x1,tol1,tol2,maxit)
i=1
band=f o
i<=maxit
x=x0-(x1-x0)*fx(x0)/
(fx(x1)-fx(x0))
band=f
si
ciclo
while_do
Si
i=i+1
raiz= x
band=v
método no
converge
retornar
Si
No
|x-x1|<=tol1
band=v
Si
|f(x)|<=tol2
No
band=v
No
x0=x1
x1=x
f unción fx(x)
retornar
f x=.....
Método de posición falsa, regula-falsi
•Al igual que el método de la secante, aproxima la derivada f‟(x
i
) de la ecuación de
Newton Rapson por el cociente
1
1
( ) ( )
i i
i i
f x f x
x x
÷
÷
÷
÷
X
i
y x
i-1
están en el lado opuesto de la raíz buscada, de tal manera que sus valores
funcionales correspondientes tienen signos opuestos: f(x
i
) x f(x
i-1
)<0
x
y
x
M
x
1
x
D
f(x
D
)
f(x
1
)
f(x
M
)<0
x
A

B

a)

x
y
A

B

b)

x
x
1
x
D
f(x
1
)<0
x
M
f(x
D
)>0
f(x
M
)>0
Se denotan x
i
y x
i+1
como x
D
y x
1
respectivamente.
Se tienen 2 valores iniciales x
D
y x
1
y su función es continua en (x
1
y x
D
). Se traza una
línea recta que une los puntos A y B con coordenadas (x
1
,f(x
1
) y (x
D
,f(x
D
). Se reemplaza
f(x) en el intervalo (x
1
,x
D
) con un segmento de recta AB y el punto de intersección sobre el
eje x, x
M
será la apróxmación a x.
Se evalúa f(x
M
) y se compara su signo con el de f(x
D
), si son =s, x
D
<-x
M
, si los signos son
≠, x
1
<-x
M

Método de posición falsa, regula-falsi
1 1 1
1 1
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
D D D D
M D
D D
x x f x x f x x f x
x x
f x f x f x f x
÷ ÷
= ÷ =
÷ ÷
el objetivo es mantener los valores (x
D
y x
1
) más cercanos entre sí y la raíz entre ellos.
Se traza una nueva línea secante entre los puntos actuales A y B, y se repite el proceso
hasta que el criterio de exactitud |f(x
M
)|<ε
1
, tomándose como aproximación a x el valor
último de x
M
. También puede usarse el criterio |x
D
-x
1
|< ε. En este caso se toma como
aproximación x la media entre x
D
y x
1
.
Para calcular el valor x
M
se sustituye x
D
por x
i
y x
i-1
en la ecuación de la secante con lo
que se llega a el algoritmo de posición falsa.
Obtener la raíz f(x)= x
3
+ 2x
2
+ 10x – 20, con el método de la posición falsa
Ejemplo:
TRABAJO EN CLASE
De acuerdo con los otros métodos realizar el algoritmo
con un ejemplo, hacer su diagrama de flujo, hacerlo en
excel y graficarlo, para la parte de programación hacer
su codificación, en Vbasic con excel o el cualquier
lenguaje de programación.
Método de Bisección
•Puede encontrar una raíz si se conoce un intervalo de x
y
x
Y=f(x)
a
c
primero



segundo
tercero
cuarto
quinto



Secuencia de los intervalos y puntos medios
•Suponemos un intervalo [a,b] o a≤x≤c tiene una sóla raíz, hasta que los signos se y(x)
en los dos extremos sean opuestos o bien que f(a) o f(b) se anulen: f(a)f(b)≤0.
Algoritmo:
•Bisectar el intervalo [a,b] en dos mitades: [a,b] y [b,c] donde b=(a+b)/2
•Verificar los signos de f(a)f(b) y f(b)f(c), se localiza la media del intervalo que contiene raíz:
f(a)f(b)≤0 tiene raíz si no [b,c] tiene raíz.
•Se repite los pasos anteriores, se va haciendo más pequeño el intervalo, en cada paso se
toma el punto medio del intervalo
•La iteración se detiene cuando la media del intervalo esta dentro de una tolerancia ε.
Método de Bisección
•El tamaño del intervalo después de n pasos de la iteración es (c-a)
0
/2
n
.
La tolerancia del error está dado por ε, (c-a)
0
/2
n
<ε o n≥log
2
(c-a)
0

Algoritmo:
TRABAJO EN CLASE
De acuerdo con los otros métodos realizar el algoritmo
con un ejemplo, hacer su diagrama de flujo, hacerlo en
excel y graficarlo, para la parte de programación hacer
su codificación, en Vbasic con excel o el cualquier
lenguaje de programación.
Program funcionnolineal2;
uses crt;
const tab=' ';
var r,a,b,tol:real; i,maxit:integer; bandera:boolean;

function pot(x,n:real):real;
begin pot:=exp(n*ln(x)); end;

{se escribe la funcion a calcular}
function f(x:real):real;
begin
f:=2*pot(x,2)+x-5;
end;

function fnl(a,b,tol:real;maxit:integer):real;
var i:byte;
begin
for i:=1 to maxit do begin
r:=(a*f(b)-b*f(a))/(f(b)-f(a));
if abs(f(r))<=tol then
begin fnl:=r; bandera:=true; exit; end;
if f(a)*f(r)<0 then b:=r else a:=r;
end;
end;

{programa principal}
begin
clrscr; writeln; bandera:=false;
writeln('Este programa calcula una funcion no lineal');
writeln('el usuario debe modificarlo si desea otra funcion');
writeln('');
writeln(tab,'f(x)= 2*x^2+x-5');
writeln('');
write('limite de la funcion a= ');readln(a);
write('limite de la funcion b= ');readln(b);
write('numero max de iteraciones= ');readln(maxit);
write('tolerancia (##e-## o #.#####)= ');readln(tol);
writeln;
if bandera=true then
write('la raiz de la funcion es= ',fnl(a,b,tol,maxit):0:6)
else write('la funcion no converge en ',maxit,' iteraciones');
readkey;
end.
Programación en Turbo Pascal

INDICE
•Soluciones de ecuaciones no lineales •Matrices y sistemas de ecuaciones lineales

•Sistemas de ecuaciones no lineales
•Aproximación funcional e interpolación •Integración y diferenciación numérica •Ecuaciones diferenciales ordinarias •Ecuaciones diferenciales parciales Introducción a la programación Paquetería (VB-excel) Lenguajes de programación Delphi/Tpascal Fortran C

Errores Error = paprox .p EAbs = | paprox – p | |paprox – p| ERelativo = p ERP= ER x 100% si p≠0 Definición : |paprox – p| p < 5 x 10-t .

.

aprox. Métodos abiertos: emplean una aproximación funcional para obtener un nuevo valor estimado de la raíz. cuadrática empleando tres puntos) . • Punto-fijo (sustitución sucesiva o directa) • Newton-Raphson (línea recta empleando información del gradiente) • Secante (línea recta empleando dos puntos) • Muller (raíces complejas.Soluciones de ecuaciones no lineales Se usan para encontrar las raíces reales y complejas de la ecuación f(x)=0 Tenemos los métodos abiertos y los métodos acotados Métodos acotados: una función cambia de signo en la aproximidad de su raíz • método de la bisección (o intervalo medio). • método de la falsa posición (regula falsi).

69  0. más bien cada sistema no lineal requerirá su método de resolución idóneo.1  0.1  0.SOLUCIONES DE ECUACIONES NO LINEALES no existe un método universal de resolución de sistemas de ecuaciones no lineales.5 x)1/ 2 c)  3. 0  x  1 (1  x)1. Las soluciones de una ecuación no lineal se llaman “raíces o ceros” f x   0 2 3 4 Ejemplos: a) 1  4 x  16 x  3x  3x  0 b) f ( x)  x0. a  x  b x(2.5 x)1/ 2 d) tan(x)  tanh(2x) Por lo gral carecen de una solución exacta .

850781059 y -1.350781059 x  2x2  5 x5 2 5 x 2x 1 x  2x2  5 x el error aproximado x x  a  i 1 i 100% xi 1 Ejemplo para la ecuación posibilidades de x=g(x) “despejando” el 2do término “despejando” x del 1er término Factorizando x y “despejándola” Sumando x a cada lado.Método de punto fijo f x   0 2 arreglando para que x quede lado izquierdo reordenando x2  3 x 2 sen( x)  0 x  g x  x  senx   x x  2x  3  0 El nuevo valor calculado xi 1  g xi  f x   2 x 2  x  5  0 sus raíces son: 1. 2x2  x  5 x  x 4x 1 .

f(x1). se continuará hasta _ que │f(xi)│<e1. . el proceso converge a x. En caso que el proceso diverge se tendrá de usar otra g(x).  f  x   0. g(x1)=x2  . g x0   x1 Cuando x1=x0 Cuando x1≠x0 f x  0. .se evalúa g(x) en x0 dando como resultado x1. donde e1 es un valor pequeño o una cercanía de xi con x.  g x x una segunda evaluación g(x) en x1. se toma como raíz a xi. g(x)≠x   Este proceso se repite y se obtiene este equema iterativo Valor inicial: 1ª iteración: 2ª iteriación: 3ª iteración:  x0 x1  g  x0  f  x0  f  x1  f  x2  f  x3   f  xi  x2  g  x1   x3  g  x2  i-ésima iteración: xi  g  xi  i+1-ésima iteración: x  g  x  i 1 i 1 f  xi 1  _ Si la sucesión f(x0).… tiende a 0. f(x2).

Criterio de convergencia g x x  _ si la sucesión x0.x1.Si ABS(X .… converge a x los valores de xi y xi+1 se acercan entre sí al avanzar la iteración.… 0 el proceso iterativo converge a una raíz hasta que di<. De otro modo CONTINUAR. criterio de convergencia TOL. Agoritmo de punto fijo: a) pseudocódigo Para encontrar una raíz real de la ecuación g(x) = x..x2..x1.x2. y tomar a xi+1 como raíz buscada.. di  xi 1  xi Si no converge en un número grande de iteraciones. proporcionar la función G(X) y los DATOS: Valor inicial X0. el valor inicial o ambos. entonces x0. La raíz aproximada X o un mensaje de falla.Hacer I = I + 1 PASO 6. se detiene y se modifica la función g(x)..… diverge de x..X0) < tol entonces IMPRIMIR X y TERMINAR. RESULTADOS: PASO 1..Mientras I < MAXIT repetir los pasos 3 a 6.d3. PASO 5.Hacer X = G(X0) 'calcula xi PASO 4.d2. Si d1. PASO 3.Hacer X0 = X 'actualiza X0 PASO 7.IMPRIMIR mensaje de falla "EL MÉTODO NO CONVERGE A UNA RAÍZ" y TERMINAR . y número máximo de iteraciones MAXIT..Hacer I = 1 PASO 2.

Agoritmo: b) diagrama de flujo del método de punto fijo puntof(xi....tol.. band=f ciclo w hile_do retornar band=f o i<=maxit band=v Si No si x=g(x) método no converge raiz= x Si |x-xi|<=tol retornar No band=v i=i+1 xi=x .maxit) función g(x) i=1 g=.

Title := "Error“ end if end function xi=x ._ Buttons:=vbOk.maxit) i=0 band=f ciclo while_do band=f o i<=maxit band=v Si No si x=g(x) método no converge puntof=x Si |x-xi|<=tol retornar No band=v i=i+1 Function pf(xi.maxit) i=0 band=0 do while(i<maxit) x=g(x) if (abs(x-x0)<=tol) then band=1 exit else i=i+1 x0=x endif loop if (band=1) then pf=x else pf=0 „no converge MsgBox Prompt := “el método no converge".tol.tol.Agoritmo: b) diagrama de flujo del método de punto fijo puntof(xi.

Function g(x) g… end function retornar Realizar su gráfica del método ... continuación. g=..... Ejemplo: Esto es g(x) función g(x) x2  3 x 2 g=(x2+3)/2 Function g(x) g=(x^2+3)/2 end function retornar Ejemplo general: función g(x) g ( x)  .Agoritmo: b) diagrama de flujo del método de punto fijo..

le.maxit) !dec$ attributes dllexport :: pf real(8) :: x.tol) then pf=g(x0) band=1 exit else i=i+1 x0=x endif enddo ciclowhile if (band.tol integer :: maxit.eq. como arch.Codificación en fortran90.band i=0 band=0 ciclowhile: do while(i<maxit) x=g(x) if (abs(x-x0).x0.tol.dll real(8) function pf(x0.0) pf=0 !no converge contains real(8) function g(x1) real(8) :: x1 g=2*x1**2-5 end function g end function pf .

maxit As Integer) As Double Call pf(x0. band2 As Integer i2 = 0 band2 = 0 While i2 < maxit2 x2 = g(x2) If (Abs(x2 . tol2 As Double.. se puede usar función o procedimiento/subrutina Function pfvb(x02 As Double.5 Wend End Function . maxit2 As Integer) As Double Dim x2 As Double Dim i2.x02) <= tol2) Then pfvb = g(x02) If band = 0 Then msbox = "el band2 = 1 método no converge.dll de f90 Declare Function pf Lib "metodosn. tol. tol As Double. tol. maxit As Integer) As Double Function pfvb(x0 As Double. tol As Double..." End Function Segunda opción programar las funciones en VB con excel." End 'pfvb = 0 'no converge Else End Function i2 = i2 + 1 x02 = x2 Function g(x1) As Double End If g = 2 * x1 ^ 2 .Codificación en VB con excel y usando arch. maxit) = 0 Then msbox = "el método no converge.. maxit) If pf(x0.dll" (x0 As Double.

Método de Newton-Raphson Recordando la expansión de la serie de Taylor. que la podemos expresar como: f ( xi 1 )  f ( xi )  f ( xi )(xi 1  xi )  f ( ) ( xi 1  xi ) 2 2! xi Xi+1  Truncando la serie de Taylor después del 1er término derivado. tenemos: f ( xi 1 )  f ( xi )  f ( xi )( xi 1  xi ) debe ser igual a cero o 0  f ( xi )  f ( xi )( xi 1  xi ) se puede resolver para: xi 1  xi  Ejemplo: f ( xi ) f ( xi ) Esta es la ecuación de Newton Raphson f (x) Pendiente= f ( xi ) Usando el método de Newton Raphson calcule la raíz de f(x)=-e-x-x. con un valor inicial de x0=0 Su primera derivada de la función: f’(x)=-e-x-1 f ( xi ) f ( xi )  0 0 Xi+1 xi x e  xi  xi xi 1  xi   xi  e 1 .

567143290 Єt(%) 100 11.147 0.i 0 1 2 3 4 0 xi 0.566311003 0567143165 0. f ( xr )  0 es el valor verdadero de la raíz entonces tenemos: f ( ) 0  f ( xi )  f ( xi )(xr  xi )  ( xr  xi ) 2 2! 0  f ( xi )  f ( xi )( xi 1  xi ) restando 0  f ( xi )(xr  xi )  f ( ) ( xr  xi ) 2 2! .500000000 0.8 0.0000220 < 10-18 El error porcentual disminuye con cada iteración Estimando el error: xi 1  xr .

18095(0.56714329)2=0.18095(0. el cual se puede sustituirse en la ecuación de error que predice Et.i 1  0.i1  0.56714329 ) Del ejemplo anterior el error inicial fue Et.i 1  Et .18095(0.Estimando el error (continuación) f ( ) 2 E t .0008323 Para la tercera iteración Et.83x10-15 La estimación del error mejora.0=0.i1 2! Suponiendo que hay convergencia xi y ξ se bebe aproximar a la raíz xr : Et .56714329.18095(0.000000125)2=2. .56714329)=-1.56714329  f ( ) 2 E ( xr ) t .06714329)2=0. f”(0.i 1  xr  xi 1 tenemos: 0  f ( xi ) Et .2≈0.56714329 La segunda derivada: f”(x)=e-x.0008323)2=0.4≈0.56714329 f’(0.3≈0.1≈0.56714329 E t2. x y ξ se aproxima mejor mediante xr.i1 2f Et .000000125 En Et.0582 Lo cual es cercano al error verdadero de 0.06714329 Para la siguiente iteración Et.i 2(1.56714329)=0.i 1  Ejemplo: tenemos la función f(x)=-e-x-x su primera derivada es: f’(x)=-e-x-1 se puede evaluar en Xr=0.0008158 Lo cual es cercano al error verdadero de 0.18095 Et2. ya que está más cercano a la raíz.

PASO 1. PASO 6.IMPRIMIR mensaje de falla "EL MÉTODO NO CONVERGE A UNA RAÍZ" y TERMINAR ... De otro modo CONTINUAR. criterio de exactitud EPS1 y número máximo de iteraciones MAXIT. PASO 3..Mientras I < MAXIT repetir los pasos 3 a 7. proporcionar la función F(X) y su derivada DF(X) y los DATOS: Valor inicial X0.X0) < EPS entonces IMPRIMIR X y TERMINAR. RESULTADOS: La raíz aproximada X o un mensaje de falla.Hacer I = I + 1 PASO 7.. criterio de convergencia EPS.Hacer X = X0 . PASO 5..Algoritmo Método de Newton-Raphson Pseudocódigo: Para encontrar una raíz real de la ecuación f(x) = 0.Hacer I = 1 PASO 2...F(X0) / DF(X0) 'calcula xi PASO 4..Si ABS(X . De otro modo CONTINUAR.Hacer X0 = X 'actualiza X0 PASO 8.Si ABS(F(X)) < EPS1 entonces IMPRIMIR X y TERMINAR.

raiz= xi Si retornar |f(xi)|<=tol retornar No band=v Realizar su gráfica del método Ver archivo en excel del mismo método pero con condición al final del circuito de cálculo... band=f ciclo w hile_do retornar band=f o i<=maxit band=v Si No función fp(x) si xi=xi-fx(xi)/fp(xi) método no converge fp=.tol.maxit) función fx(x) i=1 fx=.......Algoritmo Método de Newton-Raphson Diagrama de flujo: new tonr(xi. i=i+1 .

Método de la secante Se usa cuando algunas funciones cuyas derivadas pueden ser difíciles de evaluar. En estos casos la derivada se puede aproximar mediante una diferencia finita regresiva: f (x) f ( xi ) f ( xi )  f ( xi )  f ( xi 1 ) xi  xi 1 f ( xi 1 ) Xi+1 Sustituyendo en la ec de NR tenemos una ecuación iterativa: xi x xi 1  xi  f ( xi )( xi  xi 1 )  g ( xi ) f ( xi )  f ( xi 1 ) -el método requiere de 2 puntos iniciales de x La siguiente aproximación x2 está dada por: x3 por: x2  x1  x3  x2  ( x1  x0 ) f ( x1 ) f ( x1 )  f ( x0 ) ( x2  x1 ) f ( x2 ) f ( x2 )  f ( x1 ) Hasta que g(xi)=xi+1 o una vez que |xi+1-xi|<ε o |f(xi+1)|<ε1 .

63212 f(x1)=-0. para calcular la raíz de f(x)=e-x-x con valores iniciales de x-1=0 y x0=1.07081 f(x2)=0.61270 x2  0.61270  0.56384 0.61270 1  (0.61270  (0.07081 εt=8.61270 x2=0.00000 x0=1.07081  (0.-usando el ejemplo anterior pero ahora con éste método.0 1ª iteración: x-1=0 f(x-1)=1.07081 ) f(x1)=-0.61270 )  0.0% 2ª iteración: x0=1 x1=0.56717  0.632120 (0  1)  0.63212 ) f(x0)=-0.00518 εt=0.58% x2  0.63212 x1  1   0.56384  0.0 f(x0)=-0.61270  3ª iteración: x1=0.07081 (1  0.00518 ) εt=0.56384  0.00518 (0.0048% Realizar su gráfica del método .56384 )  0.

Hacer X = X0 .Mientras I < MAXIT repetir los pasos 3 a 8.Hacer X1 = X PASO 8.Si ABS(X . criterio de convergencia tol. PASO 6. proporcionar la función F(X) y los DATOS: Valores iniciales X0.Hacer I = 1 PASO 2..IMPRIMIR mensaje de falla "EL MÉTODO NO CONVERGE A UNA RAÍZ" y TERMINAR ..Algoritmo Método de la secante Para encontrar una raíz real de la ecuación f(x) = 0.X0)*F(X0) /(F(X1)-F(X0)) PASO 4.Hacer X0 = X1 PASO 7.Si ABS(F(X)) < tol1 entonces IMPRIMIR X y TERMINAR. PASO 5... PASO 1. PASO 3..(X1. RESULTADOS: La raíz aproximada X o un mensaje de falla.Hacer I = I + 1 PASO 9.X1) < tol entonces IMPRIMIR X y TERMINAR.... X1. criterio de exactitud tol1 y número máximo de iteraciones MAXIT..

tol2.x1.. si x=x0-(x1-x0)*fx(x0)/ (fx(x1)-fx(x0)) método no converge retornar raiz= x Si |x-x1|<=tol1 retornar No band=v Si |f(x)|<=tol2 No band=v x0=x1 x1=x i=i+1 .msecante(x0..maxit) Algoritmo Método de la secante Diagrama de flujo i=1 band=f ciclo w hile_do band=f o i<=maxit band=v Si No función fx(x) fx=..tol1..

Método de posición falsa. aproxima la derivada f‟(xi) de la ecuación de Newton Rapson por el cociente f ( xi )  f ( xi 1 ) xi  xi 1 Xi y xi-1 están en el lado opuesto de la raíz buscada.xD) con un segmento de recta AB y el punto de intersección sobre el eje x. xM será la apróxmación a x. x1<-xM . de tal manera que sus valores funcionales correspondientes tienen signos opuestos: f(xi) x f(xi-1)<0 y a) f(xD) x1 xM x y b) B x1 xD x B f(xD)>0 f(xM)>0 A f(x1) x A xM f(x1)<0 xD x f(xM)<0 Se denotan xi y xi+1como xD y x1 respectivamente. si los signos son ≠. Se traza una línea recta que une los puntos A y B con coordenadas (x1. Se evalúa f(xM) y se compara su signo con el de f(xD). regula-falsi •Al igual que el método de la secante. si son =s.f(xD). Se tienen 2 valores iniciales xD y x1 y su función es continua en (x1 y xD). Se reemplaza f(x) en el intervalo (x1. xD<-xM.f(x1) y (xD.

en Vbasic con excel o el cualquier lenguaje de programación. tomándose como aproximación a x el valor último de xM. Para calcular el valor xM se sustituye xD por xi y xi-1 en la ecuación de la secante con lo que se llega a el algoritmo de posición falsa. En este caso se toma como aproximación x la media entre xD y x1. hacerlo en excel y graficarlo.Método de posición falsa. Se traza una nueva línea secante entre los puntos actuales A y B. y se repite el proceso hasta que el criterio de exactitud |f(xM)|<ε1. . con el método de la posición falsa TRABAJO EN CLASE De acuerdo con los otros métodos realizar el algoritmo con un ejemplo. hacer su diagrama de flujo. También puede usarse el criterio |xD-x1|< ε. para la parte de programación hacer su codificación. xM  xD  Ejemplo: ( xD  x1 ) f ( xD ) x1 f ( xD )  xD f ( x1 )  f ( xD )  f ( x1 ) f ( xD )  f ( x1 ) Obtener la raíz f(x)= x3 + 2x2 + 10x – 20. regula-falsi el objetivo es mantener los valores (xD y x1) más cercanos entre sí y la raíz entre ellos.

c] tiene raíz. se va haciendo más pequeño el intervalo. en cada paso se toma el punto medio del intervalo •La iteración se detiene cuando la media del intervalo esta dentro de una tolerancia ε. •Se repite los pasos anteriores. .b] en dos mitades: [a. Algoritmo: •Bisectar el intervalo [a. hasta que los signos se y(x) en los dos extremos sean opuestos o bien que f(a) o f(b) se anulen: f(a)f(b)≤0.b] y [b.Método de Bisección •Puede encontrar una raíz si se conoce un intervalo de x Secuencia de los intervalos y puntos medios y • • primero • • • ○ Y=f(x) segundo tercero cuarto quinto a c x •Suponemos un intervalo [a.b] o a≤x≤c tiene una sóla raíz. se localiza la media del intervalo que contiene raíz: f(a)f(b)≤0 tiene raíz si no [b.c] donde b=(a+b)/2 •Verificar los signos de f(a)f(b) y f(b)f(c).

(c-a)0/2n <ε o n≥log2 (c-a)0/ε Algoritmo: TRABAJO EN CLASE De acuerdo con los otros métodos realizar el algoritmo con un ejemplo. en Vbasic con excel o el cualquier lenguaje de programación. hacerlo en excel y graficarlo. . La tolerancia del error está dado por ε.Método de Bisección •El tamaño del intervalo después de n pasos de la iteración es (c-a)0/2n. para la parte de programación hacer su codificación. hacer su diagrama de flujo.

b. end.tol:real. begin pot:=exp(n*ln(x)).#####)= ').Program funcionnolineal2. if f(a)*f(r)<0 then b:=r else a:=r.readln(a).fnl(a. write('numero max de iteraciones= '). var i:byte. end. if bandera=true then write('la raiz de la funcion es= '.maxit:integer):real. bandera:=true. writeln('Este programa calcula una funcion no lineal').maxit:integer. function fnl(a. write('limite de la funcion a= '). if abs(f(r))<=tol then begin fnl:=r. Programación en Turbo Pascal . writeln. writeln.b. begin f:=2*pot(x. uses crt. exit. write('limite de la funcion b= '). bandera:boolean. function pot(x.tol.maxit):0:6) else write('la funcion no converge en '. end.readln(tol). {se escribe la funcion a calcular} function f(x:real):real. writeln(''). readkey. writeln(''). writeln(tab. var r.tol:real.n:real):real. {programa principal} begin clrscr.' iteraciones'). const tab=' '. end. end. begin for i:=1 to maxit do begin r:=(a*f(b)-b*f(a))/(f(b)-f(a)). writeln('el usuario debe modificarlo si desea otra funcion'). write('tolerancia (##e-## o #. i.readln(b). end.2)+x-5.maxit.a.'f(x)= 2*x^2+x-5'). bandera:=false.b.readln(maxit).

.4:32038.7.99:/94 320742E24/0907..7.4397.03....07      . !$  .07 !$  0397..4308% #$&% $.1:3.:.J70. !$  .390 !.O3  48 % $'.8%705097485./0.7./..0703.94 .0/01.79074/00.7:3.O31   574547.7.47083.80.43.08  .47924F94/4/0.0...848.79074/0.43.5742.J.

08!##%## !$  ...07  !$  .07  !$  !##2038.08!##%## !$  $$   9403943.07 !$  .A%    '#&#  %## ..0/01..     !$  $$   9403943.

80.7 -.4 0*/4 -.O31  1 709473.3/1 47924F94/4/0. $ 4    1  ./01:4 .280.9 8 1:3.2.9  -.3/.3/14 2.390   94 94 2.7...390 ..

     . $ 1  94 4 -.3/.7 4 -.43. $  94 709473.070 7.3/. 1  1  2F94/434 .

5742. J30. 70:.08     8: 1:3. :3.5843 547 0 . 6:0 0 2F94/4 /0 .O3 .. 80.. 2. 1  03 0 3907.9.43 :3 8020394 /0 70./...43 ..4708 3.8. 03    $0 97.390 .O3 84-70 0 00   807E ..O31.57O2./. 7..9.O3 /0 0943 #.:.20390 $0 90303  .08 . 1    1          1   1     1      1   $0 /0349.3    . 0. ..307. 6:0 :30 48 5:3948    .43 0 /0 1  8 843 8   8 48 8348 843    .   0 5:394 /0 390780. /0 9. ..J -:8.47708543/03908 90303 8348 45:08948 1   1     .424    70850.. 70./.. 1.8  1    1  $0 70025.4708 1:3.F94/4/0548.4   .. 1   80 .0390 1  1          089E3 03 0 .9.447/03..425. 8: 834 ./4 45:0894 /0 .7..4.4393:.O3 08 .  $0 0.43..8 W :. 1  /0 . 6:0 8:8 . /07.

4708    2E8 .4 08 2.O3  . 80..7..9:.:.47924 .99:/ 1  ‚ 942E3/480 ..548.. 20/.O31.47 924 /0  %.4302F94/4/0.078:/.08     80 70590 0 574.1.348 03970 8J  .780 0 .8. ..5. :3.7 0 .040.07403 0. 6:0 0 .43:300254 .7..47924 /0 548..2.2.F94/4/0548.084 .5742.07 8:.8.:07/4.O3 /0 . 0.8..79074   ‚ 3 0890 .390 .2-F3 5:0/0 :8.:.89.    0254   1   1   1    1  1  1  1  -90307... %# $ 0.:.. J30..J 03970 048 $0 97. 80. 3:0.8 0 4-09.O31. 7.4348497482F94/4870.07.7..7.390307 48 .79074 /0 0..424 ..... 70:...74 5.O3 03'-.6:07 03:....2. 0 .8.84 80 942.390 03970 48 5:3948 . .. 03970    !.5742..O3 .O3.430..0/05747.47  80 8:899:0  547     03 .4/1. 1.J1       .  0 ..43 4 6:0 80 0./01:4 .O3 1.424 .790/05747. ..70.07.O3 .

-( 03 /48 29. .^ 47924 W80.074 .J880.4 ..4397.7 0 3907. 4 1 .:.. 1   W$:5430248 :3 3907.485:394820/48 W W 572074 80:3/4 W W W  907. 9030 :3./0483907.434. 8O.( /43/0 - .3:03 1 .3 45:08948 4 -03 6:0 1 .7:3.7. 1 .4 ..J .9.. 7.^^.. 6:0 48 8348 80   03 48 /48 0970248 80.80 .F94/4/080.0:33907.4/0  $0. -( 4 ./08 .O3 W!:0/003.:03..89. . -(  .794 6:394 ..

3/4 .3.39074708 80 .03/4 2E8 506:0N4 0 3907. 1 .. 20/.( 9030 7..1 ... 5. /03974 /0 :3.84 80 942...J 1 .. ..7 48 8348 /0 1 .:. 80 4.4 6:0 . . 907.. 1 .J 8 34 . ‚ . 0 5:394 20/4 /0 3907.439030 7. /0 3907.4 W.^ 9030 7. /0 3907./.J W$0 70590 48 5.. 1 .O3 80 /09030 ... 9407.4 03 .848 . W'071.4 089.. 20/.

.848/0.N4/03907. .4/085:F8/035. .907...O3 W9.O308 .F94/4/080.2.

3 . .3. /0 07747 089E /.. . 9407./4 547 ‚ .

3 ‚ 4 3_4 . . .

078:/..2.8.70..1.74 5..040.2.O3 .‚ 47924 %# $ 0./01:4 .07.0/05747.430..07403 0.07 8:..4/1.:07/4..43:300254 .7..7.:...790/05747.6:07 03:..2..5.4348497482F94/4870.O3.O3 03'-.47924 ..

 :808..1 ..3/07.-440. ..77 . ...9470.!747.:.3 1:3.943549  370.433430.94313 .939007-. 70. .43899. -0354905 3 3  03/ 8008.9/4-03 7 .-   .43. 70.7-90 -03 147942.9470.7< 1:3. 1 .9431 70. . .1:3. 2.79 .7-0.939007 70.2. -03 1 549     03/ 1:3.21:3.

3.-8 1 7 94903 -03137-..3/07.:3.07003 2. 790 3:20742.:.1   )    7903  790 290/0.1:3. 1 7  903-7080.4334.4308 70. .  790 290/0.97:0903 790 .1:3./3 .1:3.1:3../0907.2./0 03/ !747..1:3.8. 70. 1 .2.9   080790 ./3 2./3 ..43. ..3/07.1.3/07.43.97:00903/ 11 .O303%:7-4!.9 907.43- 70.573.4308 13 . 1 .. 0 4   70./3 94  7903 1-..77903-.7 03/ 03/ 5747.< -03 .748/080..5.43  7903  7903 9.497.4308  70.7.1:3..  7903 0:8:./0.  1.74/0-024/1..9  790 9407.78.2.433430.94 2.80 7903 8905747.

Sign up to vote on this title
UsefulNot useful