Está en la página 1de 11

UNIVERSIDAD NACIONAL DE TRUJILLO

Escuela de Post Grado


Sección de Postgrado de Doctorado

DOCTORADO EN CIENCIAS E INGENIERÍA

“DESARROLLO DE PROBLEMAS DEL CAPITULO N° 13”

METODOS Y MODELOS DE OPTIMIZACION

AUTORES:
ALBUQUERQUE FERNÁNDEZ, Luis José

BENITES ALIAGA, Alex Antenor

DURAND ORELLANA, Rocío del Pilar

HURTADO ZAMORA, Oswaldo

DOCENTE:
Dr. EVANGELISTA BENITES, Guillermo

TRUJILLO – PERÚ

2015

DESARROLLO DE PROBLEMAS DEL CAPITULO 13


Métodos Numéricos para Ingenieros 5ta Ed. Chapra, Steven C.,
Canale, Raymond P.

13.1. Dada la fórmula


f(x)=-x2+8x-12
a) Determine en forma analítica (esto es, por medio de derivación) el valor máximo y
el correspondiente de x para esta función.
b) Verifique la ecuación (13.7) produce los mismos resultados con base en los
valores iniciales de X0=0, X1=2 y X2=6

DESARROLLO

a) La derivada de la función es:

f ' ( x)  2 x  8

f " ( x )  2
; resolviendo la derivada con valor inicial 0, obtenemos x=4

c)
Usando la ecuación del ejercicio del 13.7

x0 = 0 f(x0) = –12

x1 = 2 f(x1) = 0

x2 = 6 f(x2) = 0

 12( 4  36)  0(36  0)  0(0  4)


x3  4
2( 12)(2  6)  2(0)(6  0)  2(0)(0  2)

13.12. Determine el mínimo de la función del problema 13.11 con los métodos siguientes:

P á g i n a 2 | 11
a) Método de Newton (x0=-1, e=1%).
b) Método de Newton, pero con el uso de una aproximación en diferencias finitas
para las estimaciones de las derivadas

Donde
δ=fracci ó n de perturbaci ó n ( ¿ 0.01 ) , x 0=−1

DESARROLLO

a) Método de Newton (x0=-1)


La primera y la segunda derivada de la función que se está evaluando es:

f ' ( x)  6  10 x  9 x 2  16 x 3
(Primera Derivada)
f " ( x )  10  18 x  48 x 2
(Segunda Derivada)

Trabajando con el método de Newton-Raphson, el cual se resume en:

f ' ( x)
xi 1  xi 
f '' ( x )
; Valor inicial es x0=-1

6  10 x i  9 x i2  16 x i3  11
xi 1  xi   1   0.725
10  18 xi  48 x i2 40

El valor de la función es 1,24. La segunda iteración da -0,60703, que tiene un valor de la


función de 1,07233. El proceso se puede repetir, con los resultados tabulados a
continuación:

P á g i n a 3 | 11
i x f(x) f'(x) f"(x)

0 -1 3 -11 40

1 -0.725 1.24002 -2.61663 22.180

2 -0.60703 1.07233 -0.33280 16.76067

3 -0.58717 1.06897 -0.00781 15.97990

4 -0.58668 1.06897 -4.6E-06 15.96115

Así, dentro de cuatro iteraciones, el criterio de parada se cumple y el resultado está


convergiendo sobre el verdadero valor de f (x) = 1,06897 en x = -0.58668.

b) Método de Newton, pero con el uso de una aproximación en diferencias finitas para
las estimaciones de las derivadas

Las aproximaciones en diferencias finitas de los derivados se pueden calcular como

3.1120  2.8920
f ' ( x)   11.001
 0.01

3.1120  2(3)  2.8920


f " ( x)   40.001
  0.01 2

Trabajando con el método de Newton-Raphson, el cual se resume en:

f ' ( x)
xi 1  x i  '' δ =fracci ó n de perturbaci ó n ( ¿ 0.01 ) , x 0=−1
f ( x)
; Valores

P á g i n a 4 | 11
6  10 xi  9 xi2  16 xi3  11 .001
xi 1  xi   1   0.725
10  18 xi  48 xi2 40 .001

El valor de la función es 1,2399. La segunda iteración da -0,6070, que tiene


un valor de la función de 1,0723. El proceso se puede repetir, con los
resultados tabulados a continuación:

i xi f(xi)  xi xi  xi f(xi  xi) xi+ xi f(xi+ xi) f'(xi) f"(xi)

0 -1 3 -0.01 -0.99 2.8920 -1.0100 3.1120 -11.001 40.001

1 -0.7250 1.2399 -0.00725 -0.7177 1.2216 -0.7322 1.2595 -2.616 22.179

2 -0.6070 1.0723 -0.00607 -0.6009 1.0706 -0.6131 1.0746 -0.333 16.760

3 -0.5872 1.0690 -0.00587 -0.5813 1.0692 -0.5930 1.0693 -0.008 15.980

4 -0.5867 1.0690 -0.00587 -0.5808 1.0692 -0.5925 1.0692 -4.1E-06 15.961

Así, dentro de cuatro iteraciones, el criterio de parada se cumple y el resultado está


convergiendo sobre el verdadero valor de f (x) = 1,0690 en x = -0.5867.

13.13. Desarrolle un programa con el empleo de un lenguaje de programación o de macros,


para implantar el algoritmo de la búsqueda de la sección dorada. Diseñe el programa
expresamente para que localice un máximo. La subrutina debe tener las
características siguientes:
 Iterar hasta que el error relativo esté por debajo de un criterio de detención o
exceda un número máximo de iteraciones.
 Dar los valores óptimos tanto de x como de f(x).
P á g i n a 5 | 11
 Minimice el número de evaluaciones de la función.
Pruebe su programa con el mismo problema del ejemplo 13.1.

DESARROLLO

Utilizando el Matlab
Sub GoldMax()
Dim ier As Integer
Dim xlow As Double, xhigh As Double
Dim xopt As Double, fopt As Double
xlow = 0
xhigh = 4
Call GoldMx(xlow, xhigh, xopt, fopt, ier)
If ier = 0 Then
MsgBox "xopt = " & xopt
MsgBox "f(xopt) = " & fopt
Else
MsgBox "Does not appear to be maximum in [xl, xu]"
End If
End Sub

Sub GoldMx(xlow, xhigh, xopt, fopt, ier)


Dim iter As Integer, maxit As Integer, ea As Double, es As Double
Dim xL As Double, xU As Double, d As Double, x1 As Double
Dim x2 As Double, f1 As Double, f2 As Double
Const R As Double = (5 ^ 0.5 - 1) / 2
ier = 0
maxit = 50
es = 0.001
xL = xlow
xU = xhigh
iter = 1
d = R * (xU - xL)
x1 = xL + d
x2 = xU - d
f1 = f(x1)
f2 = f(x2)
If f1 > f2 Then
xopt = x1
fopt = f1
Else
xopt = x2
fopt = f2
End If
If fopt > f(xL) And fopt > f(xU) Then
Do
d = R * d
If f1 > f2 Then
xL = x2
x2 = x1
x1 = xL + d
f2 = f1
f1 = f(x1)
Else
xU = x1
x1 = x2
x2 = xU - d
f1 = f2
f2 = f(x2)

P á g i n a 6 | 11
End If
iter = iter + 1
If f1 > f2 Then
xopt = x1
fopt = f1
Else
xopt = x2
fopt = f2
End If
If xopt <> 0 Then ea = (1 - R) * Abs((xU - xL) / xopt) * 100
If ea <= es Or iter >= maxit Then Exit Do
Loop
Else
ier = 1
End If
End Sub

Function f(x)
f = 2 * Sin(x) - x ^ 2 / 10
End Function

13.14. Desarrolle un programa con el que se describe en el problema 13.13., pero haga que
ejecute una minimización o una maximización en función de la preferencia del
usuario.

DESARROLLO

Utilizando el Matlab
Sub GoldMinMax()
Dim ind As Integer 'Minimization (ind = -1); Maximization (ind =
1)
Dim xlow As Double, xhigh As Double
Dim xopt As Double, fopt As Double
xlow = 0.1
xhigh = 5

P á g i n a 7 | 11
Call GoldMnMx(xlow, xhigh, -1, xopt, fopt)
MsgBox "xopt = " & xopt
MsgBox "f(xopt) = " & fopt
End Sub

Sub GoldMnMx(xlow, xhigh, ind, xopt, fopt)


Dim iter As Integer, maxit As Integer, ea As Double, es As Double
Dim xL As Double, xU As Double, d As Double, x1 As Double
Dim x2 As Double, f1 As Double, f2 As Double
Const R As Double = (5 ^ 0.5 - 1) / 2
maxit = 50
es = 0.001
xL = xlow
xU = xhigh
iter = 1
d = R * (xU - xL)
x1 = xL + d
x2 = xU - d
f1 = f(ind, x1)
f2 = f(ind, x2)
If f1 > f2 Then
xopt = x1
fopt = f1
Else
xopt = x2
fopt = f2
End If
Do
d = R * d
If f1 > f2 Then
xL = x2
x2 = x1
x1 = xL + d
f2 = f1
f1 = f(ind, x1)
Else
xU = x1
x1 = x2
x2 = xU - d
f1 = f2
f2 = f(ind, x2)
End If
iter = iter + 1
If f1 > f2 Then
xopt = x1
fopt = f1
Else
xopt = x2
fopt = f2
End If
If xopt <> 0 Then ea = (1 - R) * Abs((xU - xL) / xopt) * 100
If ea <= es Or iter >= maxit Then Exit Do
Loop
fopt = ind * fopt
End Sub

Function f(ind, x)
f = 2 * x + 3 / x
f = ind * f
End Function

P á g i n a 8 | 11
13.17. En ciertos puntos atrás de un aeroplano se hacen mediciones de la presión. Los
datos tienen el mejor ajuste con la curva y=6*cosx-1.5*senx, desde x=0 hasta 6 s.
Utilice cuatro iteraciones del método de la búsqueda de la sección dorada para
encontrar la presión mínima. Elija xl=2 y xu=4

DESARROLLO

Primero, se utiliza la razón dorada para crear los puntos interiores:

5 1
d ( xu  xl )
2

P á g i n a 9 | 11
5 1
d (4  2)  1.2361
2

x1  xl  d

x1  2  1.2361  3.2361

x 2  xu  d

x 2  4  1.2361  2.7639

y=6*cosx-1.5*senx

f ( x1 )  f (3.2361)  5.8317 f ( x 2 )  f ( 2.7639 )  6.1303

El proceso se puede repetir y todas las iteraciones resumirse como

i xl f(xl) x2 f(x2) x1 f(x1) xu f(xu) d xopt

1 2 -3.8608 2.7639 -6.1303 3.2361 -5.8317 4 -2.7867 1.2361 2.7639

3.236
2 2 -3.8608 2.4721 -5.6358 2.7639 -6.1303 1 -5.8317 0.7639 2.7639

2.472 3.236
3 1 -5.6358 2.7639 -6.1303 2.9443 -6.1776 1 -5.8317 0.4721 2.9443

2.763 3.236
4 9 -6.1303 2.9443 -6.1776 3.0557 -6.1065 1 -5.8317 0.2918 2.9443

Después de cuatro iteraciones, el proceso está convergiendo sobre el verdadero mínimo


en x = 2,9443 donde la función tiene un valor de f (x) = -6.1776.

13.18.
DESARROLLO

Primero, se utiliza la razón dorada para crear los puntos interiores:

P á g i n a 10 | 11
5 1
d ( xu  xl )
2

5 1
d (60  0)  37.0820
2

x1  xl  d

x1  0  37.0820  37.0820

x 2  xu  d

x 2  60  37.0820  22 .9180

f ( x 2 )  f (22 .9180 )  18.336 f ( x1 )  f (37.0820 )  19.074

El proceso se puede repetir y todas las iteraciones resumirse como

i xl f(xl) x2 f(x2) x1 f(x1) xu f(xu) d xopt

1 0 1 22.9180 18.336 37.0820 19.074 60 4.126 37.0820 37.0820

2 22.9180 18.336 37.0820 19.074 45.8359 15.719 60 4.126 22.9180 37.0820

3 22.9180 18.336 31.6718 19.692 37.0820 19.074 45.8359 15.719 14.1641 31.6718

4 22.9180 18.336 28.3282 19.518 31.6718 19.692 37.0820 19.074 8.7539 31.6718

5 28.3282 19.518 31.6718 19.692 33.7384 19.587 37.0820 19.074 5.4102 31.6718

6 28.3282 19.518 30.3947 19.675 31.6718 19.692 33.7384 19.587 3.3437 31.6718

7 30.3947 19.675 31.6718 19.692 32.4612 19.671 33.7384 19.587 2.0665 31.6718

8 30.3947 19.675 31.1840 19.693 31.6718 19.692 32.4612 19.671 1.2772 31.1840

9 30.3947 19.675 30.8825 19.689 31.1840 19.693 31.6718 19.692 0.7893 31.1840

10 30.8825 19.689 31.1840 19.693 31.3703 19.693 31.6718 19.692 0.4878 31.3703

Después de cuatro iteraciones, el proceso está convergiendo sobre el verdadero mínimo


en x = 31.3713 donde la función tiene un valor de f (x)=19.6934

P á g i n a 11 | 11

También podría gustarte