Вы находитесь на странице: 1из 69

Métodos Numéricos:

Ecuaciones algebraicas
Ingeniería Civil
no lineales F.I.M.G.C.-U.N.S.C.H.

Cristian Castro Pérez


cristian.castro@unsch.edu.pe
"Nos asomamos a veces a lo que fuimos antes de ser esto que
vaya a saber si somos" - Julio Cortázar
Introdución

...
Introdución

Métodos numéricos
Introdución

Raíces de ecuaciones
Introdución

DEFINICIÓN
Definición
Introdución

Búsqueda de una raíz


BÚSQUEDA DE UNA RAÍZ
Introdución

Búsqueda de varías raíces


Introdución

Raíces de polinomios
Introdución

Ejemplos de aplicación en ingeniería


Métodos numéricos para ecuaciones con una sola variable

Métodos para ecuaciones con una sola variable


Los métodos descritos en esta sección están orientados a la
solución de ecuaciones que contienen una sola variable. Se
supondrá que la ecuación por resolver está escrita en la forma:
f (x ) = 0
La raíz de la ecuación es un valor de “x” que satisface la ecuación;
por lo tanto, los métodos para resolver la ecuación se denominan
métodos para encontrar raíces.
I Método para ecuaciones con una sola variable
I Métodos de búsqueda incremental
I Método de iteración de punto fijo
I Método de bisección
I Método de Newton-Raphson
I Método de secante
I Método de Muller
Métodos numéricos para ecuaciones con una sola variable

Métodos para ecuaciones con una sola variable

Ecuaciones Algebraicas

Lineales No lineales

Metodos
Numericos
Interval
Halving False
(o bisection) Position Ridder
(o regula falsi)
Succesive
Secant Muller
Substitution
(o fixed-point)
Wegstein Newton
Metodos Raphson
Analiticos
Brent
Broyden

Homotopy
Dogleg step
Hook step

Para problemas multidimensionales


Métodos numéricos para ecuaciones con una sola variable

Método de bisección (o intervalo medio)


Métodos acotados

Base: Una función cambia de signo en la proximidad de una raíz.


Una raíz está acotada en el intervalo [a,b] si el signo de f(a) es
diferente.
Métodos numéricos para ecuaciones con una sola variable

Método de bisección (o intervalo medio)


Algoritmo

1. Selecciona un intervalo [a,b] donde halla un cero


2. Calcula el punto medio como nuevo punto
3. Comprueba si hay cambio de signo en [a,p] o en [p,b].
Comprobación: f(a)*f(p).
4. Si el producto es cero, entonces p es una raíz. Si no es cero
volver al punto 2.
Métodos numéricos para ecuaciones con una sola variable

Método de bisección (o intervalo medio)


Algoritmo
Métodos numéricos para ecuaciones con una sola variable

Método de bisección (o intervalo medio)


Pseudocódigo

Initialize: xa , xb , ∈ \xa < xb


fb ← f (xb ) valor de referencia de la función
While [(xb − xa ) >∈]
xm (xa + xb )/2 punto medio del intervalo
If [fb f (xm ) > 0] then
xb ← xm recolocar el límite derecho
Else
xa ← xm recolocar el límite izquierdo
End if
End While
x ← xb − (xb − xa )f (xb )/[f (xb ) − f (xa )] interpolar
f ← f (x )
Write: Solución x y valor de comprobación f
Métodos numéricos para ecuaciones con una sola variable

Método de bisección (o intervalo medio)


Ejercicio de aplicación con Excel
Aproximar una raíz real positiva para la siguiente función con un ep<0.01% por el método de bisección
f ( x)  x 4  2 x3  12x2  16x  40
Gráfica de la función
x f(x)
-5 455 1400
-4 88
-3 -61 1200
-2 -88
-1 -65 1000
0 -40
1 -37 800
2 -56

f(x)
3 -73 600
4 -40
400
5 115
6 488 200
7 1199
0
-10 -5 0 5 10
-200
x

No. Iteración a b f(a) f(b) XR f(XR) ep


1 4.200000 4.400000 -21.486400 2.521600 4.300000 -10.213900
2 4.300000 4.400000 -10.213900 2.521600 4.350000 -4.034744 1.149425
3 4.350000 4.400000 -4.034744 2.521600 4.375000 -0.804443 0.571429
4 4.375000 4.400000 -0.804443 2.521600 4.387500 0.846520 0.284900
5 4.375000 4.387500 -0.804443 0.846520 4.381250 0.018035 0.142653
6 4.375000 4.381250 -0.804443 0.018035 4.378125 -0.393954 0.071378
7 4.378125 4.381250 -0.393954 0.018035 4.379688 -0.188147 0.035676
8 4.379688 4.381250 -0.188147 0.018035 4.380469 -0.085103 0.017835
9 4.380469 4.381250 -0.085103 0.018035 4.380859 -0.033546 0.008917
Métodos numéricos para ecuaciones con una sola variable

Método deRegula
Método la Falsa
Falsi Posición (Regula Falsi)
Métodos acotados
MÉTODO DE LA FALSA POSICIÓN
El método de la falsa posición se puede entender como un intento por mejorar
las características de convergencia del método de bisección. Se comienza con
valores limitantes xa y xb tales que f(x) cambia de signo sólo una vez en el
intervalo de xa a xb.
Por interpolación lineal se encuentra una raíz aproximada entre xa a xb que
sirve como valor intermedio xintermedio. El nuevo intervalo que contiene la raíz
comprende ahora de xa a xintermedio o de xintermedio a xb. El razonamiento para
determinar que intervaloMethod
False-Position se retiene es le mismo que para el método de
bisección.
Algoritmo
f(x) 1. Selecciona un intervalo [a,b] donde halla
un cero
f(b)
2. Calcula un punto intersección como nuevo
punto
[nuevo f (a ) f (b) f (b)[a - b])
= Þ m =b-
a punto] point
Intersection b m- a m- b f (a) - f (b)
x
3. Comprueba si hay cambio de signo en
[a,b]
[a,p] o en [p,b]. Comprobación: f(a)*f(p).
4.
Next estimate of False-position Si el producto es cero, entonces p es una
raíz. Si no es cero volver al punto 2.
f(a)
Métodos numéricos para ecuaciones con una sola variable

Método
Método Regula
de la FalsiPosición (Regula Falsi)
Falsa
Métodos acotados

(xint)0
(x)

(xint)1
raíz

(xa)0 (xa)1
(xa)
2
(xb)0,1,2
Después de la iteración (1)

Intervalo original (0)


Métodos numéricos para ecuaciones con una sola variable

Método Regula Falsi


ALGORITMO:
Algoritmo
Método de la Falsa Posición
1) Se eligen los valores limitantes xa y xb (con xb > xa )
2) Se calcula f a  f xa  o f b  f xb  y un contador i se coloca en cero
3) EL contador i se incrementa en 1 y se calcula el punto xint ermedio a partir
de una de las dos expresiones:
xint ermedio  xa - xb - xa  f xa   f xb  - f xa 
O bien
xint ermedio  xb - xb - xa  f xb   f xb  - f xa 
4) Se calcula f int ermedio  f xint ermedio 
5) Dependiendo de si fa o fb está disponible a partir del paso (2), se usa i o ii
i) Si  f a fint ermedio > 0 , xa se recoloca en xint ermedio ;
En caso contrario, xb se recoloca en xint ermedio
ii) Si  f b f int ermedio  > 0 , xb se recoloca en xint ermedio ;
En caso contrario, xa se recoloca en xint ermedio
6) Si f  xint ermedio  es suficientemente pequeño; es decir, menor o igual que
alguna pequeña cantidad prescrita  , o si f alcanza un límite de iteración
N, xint ermedio se considera como la raíz aproximada; en caso contrario,
volver al paso (3).
Métodos numéricos para ecuaciones con una sola variable

Método Regula Falsi


Ejercicio de aplicación con Excel
Aplicando el método de la regla falsa, determine la raíz real mayor del polinomio:
f ( x )   3 .7038 x 3  16 .2965 x 2  21 .963 x  9 .36
Realizar el proceso iterativo hasta obtener un ep<0.015%
Se realiza la gráfica de la función:
x f(x)
-3 321.9201
-2.9 300.438243 1
-2.8 279.926778
-2.7 260.36348 0.8
-2.6 241.726129 0.6
-2.5 223.9925
-2.4 207.140371 0.4
-2.3 191.14752
-2.2 175.991722 0.2
-2.1 161.650757
f(x)

0
-2 148.1024 -4 -2 0 2 4
-1.9 135.324429 -0.2
-1.8 123.294622
-1.7 111.990754
-0.4
-1.6 101.390605 -0.6
-1.5 91.47195
-1.4 82.2125672 -0.8
-1.3 73.5902336
-1
-1.2 65.5827264
-1.1 58.1678228 x
-1 51.3233
-0.9 45.0269352
-0.8 39.2565056
1.7 0.9230156
1.8 1.0266984
Métodos numéricos para ecuaciones con una sola variable
1.9 1.0563008
2 0.9896
2.1 0.8043732
2.2
2.3
Método Regula Falsi
0.4783976
-0.0105496
2.4 Ejercicio de aplicación
-0.6846912 con Excel
2.5 -1.56625
2.6 -2.6774488
2.7 -4.0405104
2.8 -5.6776576
2.9 -7.6111132
3 -9.8631
iteración a b f(a) f(b) Xr f(Xr) error
1 2.1 2.5 0.8043732 -1.56625 2.2357235 0.32359344
2 2.2357235 2.5 0.32359344 -1.56625 2.28097494 0.09605883 1.98386405
3 2.28097494 2.5 0.09605883 -1.56625 2.29363161 0.02587496 0.55181781
4 2.29363161 2.5 0.02587496 -1.56625 2.29698548 0.0067855 0.14601162
5 2.29698548 2.5 0.0067855 -1.56625 2.29786121 0.0017669 0.03811067
6 2.29786121 2.5 0.0017669 -1.56625 2.29808898 0.00045924 0.00991159
7 2.29808898 2.5 0.00045924 -1.56625 2.29814817 0.0001193 0.00257533
8 2.29814817 2.5 0.0001193 -1.56625 2.29816354 3.099E-05 0.00066898
9 2.29816354 2.5 3.099E-05 -1.56625 2.29816754 8.0496E-06 0.00017377
Métodos numéricos para ecuaciones con una sola variable

Ecuaciones
Método del puntoalgebraicas
fijo no lineales
Métodos acotados
Problema f(x)=0

y
1. Transformar a x=g(x)
2. Seleccionar un punto inicial x0
y= x
3. Calcular nuevo valor xi+1=g(xi)
4. Repetir hasta llegar a la tolerancia requerida
y= g(x) y
Raiz
y= x

x2 x1 x0 x
y= g(x)
Si:
|g’(x)|<1 El algoritmo converge linealmente
|g’(x)|>=1 El algoritmo diverge
x3 x1 x0 x2 x
Métodos numéricos para ecuaciones con una sola variable

Método del punto fijo


MÉTODO DEL PUNTO FIJO
Algoritmo

1. Considera la descomposición de la función f(x) en


una diferencia de dos funciones: una primera g(x)
y la segunda, siempre la función x: f(x) = g(x) - x.
2. La raíz de la función f(x) se da cuando f(x) = 0, es
decir, cuando g(x) – x = 0, por lo que g(x) = x.
3. El punto de intersección de las dos funciones, da
entonces el valor exacto de la raíz.
4. El método consiste en considerar un valor inicial
x0, como aproximación a la raíz, evaluar el valor
de esta función g(x0), considerando éste como
segunda aproximación de la raíz.
5. El proceso se repite n veces hasta que g(x)coincide
prácticamente con x.
Métodos numéricos para ecuaciones con una sola variable

MÉTODO
Método DEL
Algoritmo
PUNTO
del punto fijo FIJO
• Sólo hay convergencia si la magnitud de la pendiente
de g(x) es menor que la pendiente de la recta f(x) = x.
• La ecuación de recurrencia es: xi1  g(xi )

• Si x* es el verdadero valor de la raíz: x *  g(x * )


x* - xi1  g(x* ) - g(xi )
• Y por el teorema del valor medio: g(x* ) - g(xi )  (x* - xi )g'()
x * - xi1 Ei1
g'()  
x * - xi Ei
• Si g'(x) < 1 , los errores disminuyen en cada iteración
• Si g'(x) > 1 , los errores crecen en cada iteración
Métodos numéricos para ecuaciones con una sola variable

Método del punto fijo


Ejercicio de aplicación con Excel
Obtener una raíz real de la siguiente función por el método de punto fijo f (x)  ex  3x2
Realizar el proceso iterativo hasta que se cumpla un ep<0.001%

x f(x)
-3 -26.9502129
-2.9 -25.1749768
-2.8 -23.4591899
-2.7 -21.8027945 5
-2.6 -20.2057264
-2.5 -18.667915 4
-2.4 -17.189282 3
-2.3 -15.7697412
-2.2 -14.4091968 2
-2.1 -13.1075436
1
-2 -11.8646647
f(x)

-1.9 -10.6804314 0
-1.8 -9.55470111 -4 -3 -2 -1 -1 0 1 2 3 4 5
-1.7 -8.48731648
-1.6 -7.47810348 -2
-1.5 -6.52686984
-3
-1.4 -5.63340304
-1.3 -4.79746821 -4
-1.2 -4.01880579
-1.1 -3.29712892
-5
-1 -2.63212056 x
-0.9 -2.02343034
-0.8 -1.47067104
-0.7 -0.9734147
Métodos numéricos para ecuaciones con una sola variable

Método del punto fijo


Ejercicio de aplicación con Excel

x g1(x) error x g2(x) error


3 3.29583687 -1 0.35018064
3.29583687 3.48393252 5.39894657 0.35018064 0.68782845 49.0889564
3.48393252 3.59493567 3.08776453 0.68782845 0.8143281 15.5342368
3.59493567 3.65766448 1.71499634 0.8143281 0.86749798 6.12910712
3.65766448 3.69226194 0.93702601 0.86749798 0.89086965 2.62346716
3.69226194 3.71109081 0.50736765 0.89086965 0.90134128 1.16178222
3.71109081 3.72126399 0.27337976 0.90134128 0.90607291 0.52221284
3.72126399 3.72673908 0.14691349 0.90607291 0.90821904 0.23630182
3.72673908 3.72967951 0.07883869 0.90821904 0.90919415 0.10724935
3.72967951 3.7312569 0.04227518 0.90919415 0.90963754 0.04874336
3.7312569 3.73210258 0.02265968 0.90963754 0.90983922 0.02216694
3.73210258 3.73255583 0.01214302 0.90983922 0.90993097 0.01008367
3.73255583 3.7327987 0.00650651 0.90993097 0.90997272 0.00458761
3.7327987 3.73292884 0.00348612 0.90997272 0.90999172 0.00208728
3.73292884 3.73299856 0.00186777 0.90999172 0.91000036 0.0009497
3.73299856 3.73303592 0.00100068
3.73303592 3.73305593 0.00053612
Métodos numéricos para ecuaciones con una sola variable

Método de Newton Raphson


Ecuaciones
Métodos acotados algebraicas no lineales
Problema g(x)=0
1. Seleccionar un punto inicial x0
2. Calcular g(xi) y g’(xi)
3. Aplicar la tangente en ese punto y en el corte con el
eje de abcisas tenemos el nuevo punto estimado
g(xi)
xi+1=xi-
g’(xi)
4. Repetir hasta llegar a la tolerancia requerida
y
g(x)

•Necesita conocer la derivada de la


función
•Convergencia cuadrática (rápida)
•Puede no converger (depende de la
función y de la estimación inicial)

x2 x1 x0 x
Métodos numéricos para ecuaciones con una sola variable

Método de Newton Raphson


Algoritmo

1. Se elige un valor inicial x0


2. Se calcula f (x0 )
3. Si |f (x0 )| ≤∈, x0 es la solución estimada; en caso contrario,
continuar con el paso 4.
4. Se calcula xmejorado a partir de la ecuación:
xmejorado = x0 − f (x0 )/f 0 (x0 )
5. x0 se iguala a xmejorado y se regresa al paso 2.
Métodos numéricos para ecuaciones con una sola variable

Método de Newton Raphson


Pseudocódigo

Initialize: x0 , ∈, N ∈ = indicador de convergencia, N = límite de


iteración
f0 ← f (x0 ) valor de la función en x0
i0 ← 0 i = contador de las iteraciones
While [i < N and |f0 | >∈] ciclo de iteración
i ← i + 1 actualizar el contador de iteraciones
x0 ← x0 − f0 /f 0 (x0 ) mejorar la estimación de la raíz
f0 ← f (x0 ) valor de la función en la nueva estimación
End While
If [|f0 | >∈] then debido a que el ciclo terminó con i = N
Write: "No convergencia para el mensaje requerido del límite"
Else
Write: Solución estimada x0 y valor de comprobación f0
End If
Métodos numéricos para ecuaciones con una sola variable

Método de Newton Raphson


Ejercicio de aplicación con Excel
Ejemplo 2.4
x
Obtener la raíz real negativa de la ecuación f(x)  e x sen x - 0
2
por el método de Newton Raphson.
Aproxime hasta que ep< 0.02%

f(x) = exsenx-x/2=0
x f(x)
-2.000000 0.876940 1
-1.900000 0.808463
-1.800000 0.739024
0.8
-1.700000 0.668839 0.6
-1.600000 0.598190 0.4
-1.500000 0.527429
0.2
-1.400000 0.456991
f(x)

-1.300000 0.387400 0
-1.200000 0.319275 -3 -2 -1 -0.2 0 1 2 3
-1.100000 0.253343
-0.4
-1.000000 0.190440
-0.900000 0.131523 -0.6
-0.800000 0.077671 -0.8
-0.700000 0.030091 -1
-0.600000 -0.009882 x
-0.500000 -0.040786
-0.400000 -0.061035
1.100000 2.127335
1.200000 2.494479
1.300000 2.885581
Métodos numéricos para ecuaciones con una sola variable
1.400000 3.296196
1.500000 3.720462
1.600000 Método de Newton Raphson
4.150920
1.700000 4.578321de
Ejercicio aplicación con Excel
1.800000 4.991435
1.900000 5.376862
2.000000 5.718850

iteración xi f(xi) f´(xi) xi+1 error


1.000000 -0.800000 0.077671 -0.509278 -0.647488
2.000000 -0.647488 0.008062 -0.398250 -0.627245 3.227340
3.000000 -0.627245 0.000173 -0.381048 -0.626790 0.072475
4.000000 -0.626790 0.000000 -0.380655 -0.626790 0.000037
5.000000 -0.626790 0.000000 -0.380654 -0.626790 0.000000
Métodos numéricos para ecuaciones con una sola variable

Método de la secante
Ecuaciones
Métodos acotados algebraicas no lineales
Problema g(x)=0
1. Seleccionar dos puntos iniciales x0,x1
2. Calcular la recta que pasa por esos puntos
3. El corte con el eje de abcisas da el nuevo punto
estimado. Volver a calcular la recta.
xi+1-xi
xi+1=xi- g (xi+1)
g (xi+1)-g (xi)

4. Repetir hasta llegar a la tolerancia requerida


y
g(x)

•No Necesita conocer la derivada de


la función (la aproxima).
•Necesita dos puntos iniciales.
•Puede no converger.
x3 x2 x1 x0 x
Métodos numéricos para ecuaciones con una sola variable
ElMétodo
Métodode lade la secante
secante
Métodos acotados

• Se supone que  (x) es


lineal en la vecindad de la
raíz
• Se eligen puntos próximos
a ésta y se traza una línea
recta
• Si bien es cierto  (x) no es
lineal y x2 no es igual a la (x0)
raíz debe estar muy
próxima. Mejores
estimaciones se logran
iterando y reemplazando los
valores xo y x1
( x1 - x2 ) ( x0 - x1 ) (x1)

f ( x1 ) f ( x0 ) - f ( x1 )

( x0 - x1 )
x2 x1 x0
x2  x1 - f ( x1 )
f ( x0 ) - f ( x1 )
Raíz
Métodos numéricos para ecuaciones con una sola variable

Método de la secante
Algoritmo

1. Se elige xa y xb
2. Se calcula f (xb )
3. Si |f (xb )| ≤∈ (una pequeña cantidad positiva), xb es la
solución estimada en caso contrario, se procede al paso 4.
4. Se aplica la interpolación lineal para calcular un punto
intermedio xi ntermedio a partir de:
xintermedio = xb − (xb − xa )f (xb )/[f (xb ) − f (xa )]
5. xa se reubica en xb , xb se reubica en xi ntermedio y se regresa
al paso 2.
Métodos numéricos para ecuaciones con una sola variable

Método de la secante
Pseudocódigo

Initialize: xa , xb , ∈, N ∈ = indicador de convergencia, N = límite de


iteración
fb ← f (xb ) valor de la función en xb
i0 ← 0 i = contador de las iteraciones
While [i < N and |fb | >∈] ciclo de iteración
i ← i + 1 actualizar el contador de iteraciones
xint ← xb − (xb − xa )f (xb )/[f (xb ) − f (xa )] valor intermedio
xa ← xb recolocar xa
xb ← xint recolocar xb
fb ← f (xb ) valor de la función en el nuevo xb
End While
If [|fb | >∈] debido a que el ciclo terminó con i = N
Write: "No convergencia para el mensaje requerido del límite"
Else
Write: Solución estimada xb y valor de comprobación fb
End If
Métodos numéricos para ecuaciones con una sola variable

Método de la secante
Ejercicio de aplicación con Excel
mne2-6v3
Aproxime una de las raíces reales de la siguiente ecuación por medio del método de la secante.
Repita el proceso iterativo hasta obtener un ep<0.01%

f(x) = exsenx-1/2x = 0

0.5
f(x)

0
-3 -2 -1 0 1 2 3
-0.5

-1
x

iteración xi-1 xi f(xi-1) f(xi) f'(xi) xi+1 ep


1.000000 -1.800000 -0.800000 0.739024 0.077671 -0.661353 -0.682557
2.000000 -0.800000 -0.682557 0.077671 0.022531 -0.469505 -0.634568 7.562517
3.000000 -0.682557 -0.634568 0.022531 0.002987 -0.407267 -0.627234 1.169198
4.000000 -0.634568 -0.627234 0.002987 0.000169 -0.384196 -0.626794 0.070258
5.000000 -0.627234 -0.626794 0.000169 0.000001 -0.380848 -0.626790 0.000618
6.000000 -0.626794 -0.626790 0.000001 0.000000 -0.380656 -0.626790 0.000000
Métodos numéricos para ecuaciones con una sola variable

Método de Müller
Métodos acotados

El método de Müller construye una parábola con tres puntos. El


método consiste en obtener los coeficientes de la parábola que
pasa por los tres puntos.

Comparación de los métodos de la secante (a) y Müller (b).


Métodos numéricos para ecuaciones con una sola variable

Método de Müller
Métodos acotados
1. Se escribe la ecuación de la parábola en forma conveniente:

f2 (x ) = a(x − x2 )2 + b(x − x2 ) + c
2. La parábola debe intersectar tres puntos [x0 , f (x0 )], [x1 , f (x1 )],
[x2 , f (x2 )]. Los coeficientes de la ecuación pueden evaluarse al sustituir
cada 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
3. Tres ecuaciones pueden ser resueltas para tres incógnitas que son
a, b, c. Ya que dos términos de la tercera ecuación son cero, puede
resolverse inmediatamente para c = f (x2 ).

f (x0 ) − f (x2 ) = a(x0 − x2 )2 + b(x0 − x2 )


f (x1 ) − f (x2 ) = a(x1 − x2 )2 + b(x1 − x2 )
Métodos numéricos para ecuaciones con una sola variable

Método de Müller
Métodos acotados
Si

h0 = x1 − x0 , h1 = x2 − x1

f (x1 ) − f (x0 ) f (x2 ) − f (x1 )


δ0 = , δ1 =
x1 − x0 x2 − x1

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

h1 b − h1 2 a = h1 δ1

δ1 − δ0
a= , b = ah1 + δ1 , c = f (x2 )
h1 + h0
Métodos numéricos para ecuaciones con una sola variable

Método de Müller
Métodos acotados

4. Para encontrar la raíz se usa una fórmula cuadrática alternativa


−2c
x3 = x2 + √
b ± b 2 − 4ac
5. El error puede calcularse como
x3 − x2

εa =
100%
x
3

La fórmula cuadrática produce 2 raíces. Se escoge el signo que


coincida con el signo de b. Esta elección proporciona como
resultado el denominador más grande y, por lo tanto, dará la raíz
estimada más cercana a x2 .
Métodos numéricos para ecuaciones con una sola variable

Método de Müller
Métodos acotados

6. Una vez que se determina x3 , se repite el proceso siguiendo las


siguientes guías:
6.1. Si sólo se localizan raíces reales elegimos dos puntos originales
que se aproximan a la nueva raíz estimada, x3 .
6.2. Si ambas raíces real y compleja han sido evaluadas, se emplea
una aproximación secuencial. Esto es, parecido al método de la
secante,x1 , x2 y x3 toman el lugar de x0 , x1 y x2 .
Métodos numéricos para ecuaciones con una sola variable

Método de Müller
Pseudocódigo

SUB Muller(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)
Métodos numéricos para ecuaciones con una sola variable

Método de Müller
Pseudocódigo
IF |b + rad| > |b − rad| THEN

den = b + rad
ELSE

den = b − rad
END IF

dxr = −2 ∗ c/den
xr = x2 + dxr
PRINT iter , xr
IF (|dxr | < eps ∗ xr OR iter > max it) EXIT

x0 = x1
x1 = x2
x2 = xr
END DO
END Muller
Métodos numéricos para ecuaciones con una sola variable

Método de Müller
Ejercicio de aplicación

Utilice el método de Müller con valores iniciales x0 , x1 y x2 = 4.5,


5.5 y 5, respectivamente, para determinar la raíz de la ecuación.

f (x ) = x 3 − 13x − 12

Solución: Primero se evaluará la solución con los valores iniciales

f (4.5) = 20.625, f (5.5) = 82.875, f (5) = 48

que se emplean para calcular


82.875 − 20.625
h0 = 5.5 − 4.5 = 1, δ0 = = 62.25
5.5 − 4.5
48 − 82.875
h1 = 5 − 5.5 = −0.5, δ1 = = 69.75
5 − 5.5
Métodos numéricos para ecuaciones con una sola variable

Método de Müller
Ejercicio de aplicación
Estos valores a su vez, se sustituyen
69.75 − 62.25
a= = 15, b = 15(−0.5) + 69.75 = 62.25, c = 48
−0.5 + 1
La raíz cuadrada del discriminante se evalúa como
q
62.252 − 4(15)48 = 31.54461
Luego, como |62.25 + 31.54451| > |62.25 − 31.54451|, se emplea
un signo positivo en el denominador de la ecuación, y la nueva raíz
estimada se determina como
−2(48)
x3 = 5 + = 3.976487
62.25 + 31.54451
y desarrollando el error estimado
−1.023513

εa = 100% = 25.74%
3.976487
Métodos numéricos para ecuaciones con una sola variable

Método de Müller
Ejercicio de aplicación

Debido a que el error es grande, se asignan nuevos valores: x0 se


reemplaza por x1 , x1 se reemplaza por x2 y x2 se reemplaza por x3 .
Por lo tanto, para la nueva iteración,

x0 = 5.5, x1 = 5, x2 = 3.976487

y se repite el cálculo. Los resultados, tabulados a continuación,


muestran que el método converge rápidamente a la raíz xr = 4:
i xr εa (%)
0 5
1 3.976487 25.74
y
2 4.00105 0.6139
3 4 0.0262
4 4 0.0000119
Métodos numéricos para ecuaciones con una sola variable

Método de Halley
Método de Newton-Raphson mejorado

Su contribución fue extender el método de Newton-Raphson para


usar la información del siguiente término en las series de Taylor, la
segunda derivada.

f (xi )
xi+1 = xi − f (xi )f 00 (xi )
f 0 (xi )(1 − 2f 0 (xi )2
)

Sólo tiene sentido usar el método de Halley si es fácil calcular


f 00 (xi ). El método converge cúbicamente

" !#
f (xi ) f (xi )f 00 (xi )
xi+1 = xi − 0 / max 0.8, min 1.2, 1 −
f (xi ) 2f 0 (xi )2
Ejercicios aplicativos

Catenaria
Se denomina catenaria a la forma que adopta una cadena o un cable
suspendido de sus dos extremos. Eligiendo adecuadamente el sistema de
referencia, la ecuación de la catenaria es:
y = λ cosh(x /λ)
donde el origen de coordenadas está situado en la vertical del punto más
bajo de la cadena, a distancia λ del mismo
Ejercicios aplicativos

Catenaria

Sea d la diferencia de altura entre el punto de la cadena de abscisa igual


a 1 y el de altura mínima: d = y (1) − y (0). Conociendo d, podemos
determinar λ resolviendo la ecuación λ + d = λ cosh(1/λ)
Supongamos d=0.1
1. Determinar con precisión de milésimas el valor de λ, utilizando la
ecuación de punto fijo: λ = λ cosh(1/λ) − d
2. Comprueba que la función de punto fijo
1
λ= λ+c

arg cosh λ

es también equivalente a la ecuación λ + d = λ cosh(1/λ). Itera


con esta ecuación y la misma estimación para hallar λ.
Ejercicios aplicativos

Catenaria
Resolución

1. Iteramos la función de punto fijo: g1 (λ) = λ cosh(1/λ) − d tomando


como aproximación inicial x =4. Se necesitan 255 iteraciones para
alcanzar el punto fijo x =5.011784 con una tolerancia de 10−4

1
Ecuaciones de punto fijo: (a) λ cosh(1/λ) ;(b) arg cosh( λ+d
λ )
Ejercicios aplicativos

Catenaria
Resolución

2. Despejando la λ de dentro del cosh en la ecuación

λ + d = λ cosh(1/λ)

queda la ecuación de punto fijo pedida:


1
λ= λ+d

arg cosh λ

Con esta iteración de punto fijo, el proceso converge más rápidamente.


Partiendo de la misma estimación inicial, x =4, se obtiene la solución
x =5.016512 en 15 iteraciones con un error de 6.658831x 10−5 .
Ejercicios aplicativos

Diseño de pavimentos
Generalidades
DISEÑO DE PAVIMENTO FLEXIBLE - AASHTO
CARPETA ASFÁLTICA D1

CAPA BASE D2

CAPA SUB-BASE D3

SUBGRADO

SELLOS

CAPA BASE D2

CAPA SUB-BASE D3

SUBGRADO

ADOQUINES
D1
CAPA BASE D2

CAPA SUB-BASE D3

SUBGRADO
Ejercicios aplicativos

Diseño de pavimentos
Ecuación de diseño para pavimento flexible
1. ECUACIÓN DE DISEÑO PARA PAVIMENTO
Cambio en la Servicialidad

⎡ ΔPSI ⎤
Desviación estándar global Número
Desviación estándar normal
estructural
log10 ⎢ ⎥
log10 ( ESAL) = Z R So + 9,36 log10 (SN + 1) − 0,20 + ⎣ 4,2 −1,5 ⎦
1094
0,40 +
(SN + 1)5,19
Ejes equivalentes

+ 2,32 log10 M R − 8,07


Módulo de resilencia

El modelo de ecuación de diseño está basado en la pérdida del índice de servicialidad (ΔPSI) durante la vida
de servicio del pavimento; siendo éste un parámetro que representa las bondades de la superficie de rodadura
para circular sobre ella.
Ejercicios aplicativos
1.1 ZRDiseño
= DESVIACIÓN ESTÁNDAR NORMAL
de pavimentos
(véase
Desviación Tabla
estándar 4.1 y Tabla 2.2 )
normal

Tabla 4.1 Valores de la desviación estándar normal, ZR, correspondientes a los niveles de confiabilidad, R
Confiabilidad, R, en porcentaje Desviación estándar normal, ZR
50 -0,000
60 -0,253
70 -0,524
75 -0,674
80 -0,841
85 -1,037
90 -1,282
91 -1,340
92 -1,405
93 -1,476
94 -1,555

ZR = DESVIACIÓN ESTÁNDAR NORMAL 95


96
97
-1,645
-1,751
-1,881
(véase Tabla 4.1 y Tabla 2.2 )
98
99
-2,054
-2,327
99,9 -3,090
99,99 -3,750

Tabla 2.2 Niveles sugeridos de confiabilidad de acuerdo a la clasificación funcional del camino.

Nivel de confiabilidad, R, recomendado


Clasificación funcional
Urbana Rural
Interestatales y vías rápidas 85 – 99,9 80 – 99,9
Arterias principales 80 – 99 75 – 95
Colectoras 80 – 95 75 – 95
Locales 50 – 80 50 – 80
ING. JOSÉ R. HARRIS Q. 5
Ejercicios aplicativos
1.2 SO = Desviación normal del error estándar
combinado en ladeestimación
Diseño pavimentos de los parámetros de
diseño y elDesviación
comportamiento
normal del errordel pavimento (modelo
estándar
de deterioro)

Para pavimentos flexibles:


0,40 < So < 0,50

Se recomienda usar 0,45

ING. JOSÉ R. HARRIS Q. 7


Ejercicios aplicativos
1.3 SN = Número estructural indicativo del espesor
total requerido de pavimento
Diseño de pavimentos
SN=número estructural indicativo del espesor total requerido

CARPETA ASFÁLTICA D1

CAPA BASE D2

CAPA SUB-BASE D3

SUBGRADO

SN = a1D1 + a2D2m2 + a3D3m3


donde
ai = coeficiente estructural de la capa i
Di = espesor, en pulgadas, de la capa i
mi = coeficiente de drenaje de la capa i

ING. JOSÉ R. HARRIS Q.


Ejercicios aplicativos

Diseño de pavimentos
a1 = coeficiente estructural
a1=coeficiente de ladecarpeta
estructural asfáltica
carpeta asfáltica
(Figura 2.5, si se conoce el Módulo de Elasticidad de la mezcla asfáltica en psi o la Figura 00, si se conoce la
Estabilidad Marshall en libras)

Figura 2.5
Figura 00
Ejercicios aplicativos

Diseño de pavimentos
a2=coeficiente estructural
a = coeficiente para la capa
estructural base
para la capa base
2

Figura 2.6, si se
utiliza capa base
granular

Figura 2.6
Ejercicios aplicativos

Diseño de pavimentos
a = coeficiente
a3=coeficiente
3 estructural
estructural parasub-base
para la capa la capa sub-base

Figura 2.7, si se
utiliza capa sub-
base granular

Figura 2.7
Ejercicios aplicativos
1.4 ΔPSI = diferencia entre el índice de servicialidad
Diseño de pavimentos
inicial, po, PSI=diferencia
y el índice de servicialidad
entre terminal de
el índice de servicialidad
diseño, pt
ΔPSI = po – pt

Servicialidad es la condición de un pavimento para proveer un manejo seguro y


confortable a los usuarios en un determinado momento. Inicialmente se cuantificó la
servicialidad de una carretera pidiendo la opinión de los conductores, estableciendo el
índice de servicialidad p de acuerdo a la siguiente calificación:

Índice de Servicialidad, p Calificación

0-1 Muy mala

1–2 Mala

2–3 Regular

3–4 Buena

4-5 Muy buena

ING. JOSÉ R. HARRIS Q. 17


Ejercicios aplicativos

Diseño de pavimentos
1.5 MR =MR=Módulo
módulo de Resilencia, en psi, del material
de resilencia
de terracería (subrasante).

La capacidad del suelo se mide mediante las pruebas de CBR y Módulo de Resilencia,
dependiendo de los equipos disponibles.

Relaciones CBR - Módulo de Resiliencia:


En nuestro país no existe experiencia ni equipos para determinar el Módulo de
Resilencia. Ante esta carencia se recurre a correlaciones con el CBR.

Se puede utilizar la siguiente correlación entre el CBR de la terracería y el módulo de


resilencia:

MR (psi) = 1500 CBR

ING. JOSÉ R. HARRIS Q. 20


Ejercicios aplicativos

Diseño de pavimentos
Cálculo del númeroMETODOS NUMERICOS
estructural 2012de bisección
por el método
W18 = 1.05 E+06 (Tráfico estimado)
ZR = -2.327 (Desviación estándar normal)
SO = 0.35 (Error estándar combinado)
∆PSI = 2 (Pérdida de servicialidad)
MR = 440 psi (Módulo resilente)
Di = 8.5 (SNi=Extremo izquierdo del intervalo de búsqueda del número estructural)
Df = 12 (SNf=Extremo derecho del intervalo de búsqueda del número estructural)
tol = 0.0001 (Tolerancia del error)
D = 8.81 (SNreq=Número estructural requerido)

TABLA DE ITERACIONES
Iteraciones Di Df Dc f(Di) f(Df) f(Dc) Error
1 8.5 12 8.5 -0.95860961 0.76624159 -0.080758051 1.75
2 8.5 10.25 10.25 -0.08075805 0.76624159 0.363440518 0.875
3 8.5 9.375 9.375 -0.08075805 0.363440518 0.146004485 0.4375
4 8.5 8.9375 8.9375 -0.08075805 0.146004485 0.033615534 0.21875
5 8.7188 8.9375 8.71875 -0.08075805 0.033615534 -0.02335606 0.109375
6 8.7188 8.828125 8.828125 -0.02335606 0.033615534 0.005188251 0.054688
7 8.7734 8.828125 8.7734375 -0.02335606 0.005188251 -0.009069825 0.027344
8 8.8008 8.828125 8.80078125 -0.00906982 0.005188251 -0.001937196 0.013672
9 8.8008 8.81445313 8.814453125 -0.0019372 0.005188251 0.001626434 0.006836
10 8.8076 8.81445313 8.807617188 -0.0019372 0.001626434 -0.000155156 0.003418
11 8.8076 8.81103516 8.811035156 -0.00015516 0.001626434 0.000735696 0.001709
12 8.8076 8.80932617 8.809326172 -0.00015516 0.000735696 0.000290284 0.000854
13 8.8076 8.80847168 8.80847168 -0.00015516 0.000290284 6.75677E-05 0.000427
14 8.808 8.80847168 8.808044434 -0.00015516 6.75677E-05 -4.37931E-05 0.000214
15 8.808 8.80825806 8.808258057 -4.38E-05 6.75677E-05 1.18876E-05 0.000107
16 8.8082 8.80825806 8.808151245 -4.38E-05 1.18876E-05 -1.59527E-05 5.34E-05
Ejercicios aplicativos

Diseño de pavimentos
Cálculo del número estructural en Excel
METODO DIRECTO - "SOLVER"
REFERENCIA VALOR
W18 3200000.0
ZR -1.282
So 0.5
dPSI 3.0 Error SN -0.171501328
CBR 15.0
Mr (psi) 15117.6
SN 3.21353

METODO DE BÚSQUEDA ITERATIVA


DETERMINACION DE CONSTANTES
K1 K2 K3 K1-K3
15.35204998 0.0458 10.0514 5.3007

ITERACION SN J1 J2 J1+J2 CONTROL


1 0.5 1.6 0.000342 1.648556 3.652121
2 1 2.8 0.001507 2.819147 2.481530
3 1.5 3.7 0.004663 3.729382 1.571296
4 2 4.5 0.011287 4.477142 0.823535
5 2.5 5.1 0.022411 5.114888 0.185790
6 3 5.6 0.037476 5.672758 -0.372080
7 3.5 6.1 0.054119 6.168188 -0.867511
8 3.2 5.8 0.044112 5.877725 -0.577047
9 3.25 5.9 0.045787 5.927508 -0.626830
10 3.213 5.8 0.044547 5.890723 -0.590045

NÚMEROS ESTRUCTURALES
DE DISEÑ0 SN dis: 3.213
REQUERIDO SN req: 3.213
FACULTAD Ejercicios aplicativos
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
: INGENIERÍA DE MINAS, GEOLOGÍA Y CIVIL
ESCUELA : INGENIERÍA CIVIL -1-
ASIGNATURA : MÉTODOS NUMÉRICOS (IC-343)
PROFESOR : ING. CRISTIAN CASTRO P. FECHA: Setiembre - 2010
Diseño de canales
2da. Práctica
Cálculo Calificada
del tirante de de
un Métodos Numéricos
canal con Matlab

SEGUNDA PRÁCTICA: PROGRAMA DE HIDRÁULICA DE CANALES EN MATLAB

ENUNCIADO:

La profundidad normal “y” del flujo en un canal para cualquier tipo de sección, está
relacionada con el caudal “Q”, la pendiente del canal “S” y el coeficiente de fricción de
Manning “n” mediante las ecuaciones:
1 Qn
Q= AR 2 / 3 S 1 / 2  = A5 / 3 P −2 / 3
n S 1/ 2
Elaborar un programa en MATLAB que permita determinar el tirante normal “y”
usando para las soluciones métodos numéricos de ecuaciones algebraicas no lineales
para la determinación o búsqueda de la raíz de las ecuaciones que formule para el
conjunto de datos ingresados por un usuario.

Deberá escoger diez (10) secciones cerradas como mínimo del conjunto que se
propone.

La aplicación del problema requerido en MATLAB puede ser entregada en Ficheros de


Programa “M-FILE” o en Interfaz Gráfica de Usuario “GUI MATLAB”
usando para las soluciones métodos numéricos de ecuaciones algebraicas no lineales
para la determinación o búsqueda de la raíz de las ecuaciones que formule para el
conjunto de datos ingresados por un usuario.
Ejercicios aplicativos
Deberá escoger diez (10) secciones cerradas como mínimo del conjunto que se
propone.
Diseño de canales
La aplicación del problema
Cálculo delrequerido
tirante en
deMATLAB
un canalpuede
conserMatlab
entregada en Ficheros de
Programa “M-FILE” o en Interfaz Gráfica de Usuario “GUI MATLAB”

Ejercicio de Aplicación
Ejercicios aplicativos
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD : INGENIERÍA DE MINAS, GEOLOGÍA Y CIVIL
Diseño ESCUELA
de canales : INGENIERÍA CIVIL
ASIGNATURA : MÉTODOS NUMÉRICOS (IC-343)
-2-

Cálculo del tirante de un canal con Matlab


PROFESOR : ING. CRISTIAN CASTRO P. FECHA: Setiembre - 2010

disp('******************************************')
disp('PROGRAMA DE HIDRAULICA DE CANALES ABIERTOS')
disp('******************************************')
input('presione ENTER ')
disp('* DEFINIR LA SECCION DEL CANAL *')
disp('********************************')
disp('& SECCION RECTANGULAR: 1 *')
disp('& SECCION TRIANGULAR: 2 *')
disp('& SECCION TRAPEZOIDAL: 3 *')
disp('********************************')
seccion=input('Escribir 1, 2 ó 3: ');
%Ingreso de datos basicos del canal, relacionados con el flujo uniforme

disp('************************')
disp('* INGRESO DE DATOS *')
disp('************************')
Q=input('Ingresar el caudal (m3/s) Q = ');
n=input('Ingresar el coeficiente de rugosidad n = ');
S=input('Ingresar pendiente (m/m) S = ');
%Ingreso de características intrinsecas de la geometria del canal
if seccion==1
b=input('Ingresar el ancho de la base (m) b = ');
z=0;
end
if seccion==2
z=input('Ingresar el talud z = ');
b=0;
end
if seccion==3
b=input('Ingresar el ancho de la base (m) b = ');
z=input('Ingresar el talud z = ');
end
b=input('Ingresar el ancho de la base (m) b = ');
z=0;
end
if seccion==2
z=input('Ingresar el talud Ejercicios
z = '); aplicativos
b=0;
end
if seccion==3
Diseño de canales
b=input('Ingresar
el ancho de la base (m)
z=input('Ingresar
el talud
b = ');
z = ');
Cálculo del tirante de un canal con Matlab
end

%Parámetros de cálculo y constantes


precis=0.001;
Yo=0.001;
C=((Q*n)/(sqrt(S)))^ 3;

%Calculo del tirante normal para seccion T-R-T


if seccion==1 |seccion==2|seccion==3
L=sqrt(1+z^ 2);
y=Yo;
while 1
A=b*y+z*y^2;
P=b+2*y*sqrt(1+z^2);
T=b+2*z*y;
F=A^5/P^2-C;
D=(A^4*(5*P*T-4*A*L))/(P^3);
ym=y-F/D;
if (abs(ym-y)< precis)
break
end
y=ym;
end
Yn=y;
end

An=b*Yn+z*Yn^2;
Pn=b+2*Yn*sqrt(1+z^2);
Tn=b+2*z*Yn;
Rn=An/Pn;
Vn=Q/An;
En=Yn+Vn^2/19.62;
NF=Vn/sqrt(9.81*An/Tn);
if (NF<1)
FL=('Subcrítico');
else
FL=('Supercrítico');
end
Ejercicios aplicativos
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
Diseño de canales
FACULTAD
ESCUELA
: INGENIERÍA DE MINAS, GEOLOGÍA Y CIVIL
: INGENIERÍA CIVIL -3-
Cálculo del tirante de un canal con Matlab
ASIGNATURA :
PROFESOR
MÉTODOS NUMÉRICOS (IC-343)
: ING. CRISTIAN CASTRO P. FECHA: Setiembre - 2010

%Rutinas para la obtencion de graficas de la curva de descarga


y1=0.01:0.01:Yn;
q=1/n.*(b.*y1+z.*y1.^2).^(5/3).*((b+2.*y1.*sqrt(1+z.^2)).^(-2/3)).*(S^0.5);
y2=0.01:0.01:Yn;
v=1/n.*(b.*y1+z.*y1.^2).^(2/3).*((b+2.*y1.*sqrt(1+z.^2)).^(-2/3)).*(S^0.5);
%Obtencion de coordenadas para grafico de la seccion de canal
xx=[0.5,1,1+1.25*z*Yn,1+b+1.25*z*Yn,1+b+2.5*z*Yn,1.5+b+2.5*z*Yn];
yy=[0.5+1.25*Yn,0.5+1.25*Yn,0.5,0.5,0.5+1.25*Yn,0.5+1.25*Yn];
xx1=[1+0.25*z*Yn,1+b+2.25*z*Yn];
yy1=[0.5+Yn,0.5+Yn];

disp(' ');
disp('CARACTERÍSTICAS HIDRÁULICAS DEL FLUJO UNIFORME')
disp(' ');
disp(['Tirante Normal (m) Y = ' num2str(Yn)]);
disp(['Area Hidraulica (m2) A = ' num2str(An)]);
disp(['Perímetro Hidráulico (m) P = ' num2str(Pn)]);
disp(['Espejo de Agua (m) T = ' num2str(Tn)]);
disp(['Radio Hidráulico (m) R = ' num2str(Rn)]);
disp(['Velocidad (m/s) V = ' num2str(Vn)]);
disp(['Energía Específica (m) E = ' num2str(En)]);
disp(['Número de Froude (m) N = ' num2str(NF)]);
disp(['Tipo de Flujo F = ' num2str(FL)]);
disp(' ')
subplot(2,2,1);
plot(xx1,yy1,xx,yy)
axis([0,2+b+2.5*z*Yn,0,1+1.25*Yn])
xlabel('X (m)');ylabel('Y(m)');
title('Sección del Canal');
subplot(2,2,2);
plot(q,y1,v,y1)
axis([0,max(q),0,max(v)])
xlabel('Q(m3/s) & V(m/s)');ylabel('Y(m)');
title('Curva de Descarga');
grid;
subplot(2,2,3);
disp(['Tipo de Flujo F = ' num2str(FL)]);
disp(' ')
subplot(2,2,1);
plot(xx1,yy1,xx,yy)
axis([0,2+b+2.5*z*Yn,0,1+1.25*Yn])
Ejercicios aplicativos
xlabel('X (m)');ylabel('Y(m)');
title('Sección del Canal');
subplot(2,2,2);
Diseño de canales
plot(q,y1,v,y1)
axis([0,max(q),0,max(v)])
Cálculo del tirante de un canal con Matlab
xlabel('Q(m3/s) & V(m/s)');ylabel('Y(m)');
title('Curva de Descarga');
grid;
subplot(2,2,3);
plot(q,y1)
axis([0 max(q) 0 Yn])
xlabel('Q(m3/s)');ylabel('Y(m)');
title('Relación: Caudal-Profundidad');
grid;
subplot(2,2,4);
plot(v,y2)
axis([0 max(v) 0 Yn])
xlabel('V(m/s)');ylabel('Y(m)');
title('Relación: Velocidad-Profundidad');
grid;

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Вам также может понравиться