You are on page 1of 44

CAPÍTULO 4

4.1 (a) Para este caso xi = 0 y h = x. Así,

x2
f (x)  f (0)  f ' (0)x  f "(0)    
2

f (0)  f ' (0)  f "(0)  e 0  1

x2
f (x)  1  x     
2

(b)

h2 h3
f (xi1 )  e  xi  e  xi h  e  xi  e  xi    
2 6

Para xi = 0.2, xi+1 = 1 y h = 0.8. Valor verdadero = e–1 = 0.367879.

Oden cero:

f (1)  e 0.2  0.818731

t  0.367879 0.818731 100%  122.55%


0.367879

Primer Orden:

f (1)  0.818731  0.818731(0.8)  0.163746

t  0.367879 0.163746 100%  55.49%


0.367879

Segundo Orden:

0.8 2
f (1)  0.818731  0.818731(0.8)  0.818731  0.42574
2
t  0.367879 0.42574 100%  15.73%
0.367879

Tercer Orden:

0.8 2 0.8 3
f (1)  0.818731  0.818731(0.8)  0.818731  0.818731  0.355875
2 6
t  0.367879 0.355875 100%  3.26%
0.367879
4.2 Use criterio de parada

 s  0.510 22 %  0.5%

Valor verdadero: cos(/3) = 0.5

Orden cero:

  
cos   1
 3 

0.5  1
 t  100%  100%
0.5

Primer Orden:

  
cos   1 
 / 32  0.451689
 3  2

0.451689  1
 t  9.66%  a  100%  121.4%
0.451689

Segundo Orden:

  
cos   0.451689 
 / 34  0.501796
 3  24

0.501796  0.451689
 t  0.359%  a  100%  9.986%
0.501796

Tercer Orden:

  
cos   0.501796 
 / 36  0.499965
 3  720

0.499965  0.501796
 t  0.00709 %  a  100%  0.366%
0.499965

Dado que el error aproximado esta por de bajo 0.5%, el calculo es terminado

4.3 Use el criterio de parada:  s  0.51022%  0.5%

Valor verdadero: sin(/3) = 0.866025…


Oden cero:

   
sin     1.047198
 3  3

t  0.866025  1.047198 100%  20.92%


0.866025

Primer Oden:

  
sin    1.047198 
 / 33
 0.855801
 3  6

0.855801  1.047198
 t  1.18%  a  100%  22.36%
0.855801

Segundo Orden:

  
sin    0.855801 
 / 35
 0.866295
 3  120

0.866295  0.855801
 t  0.031%  a  100%  1.211%
0.866295

Tercer Orden:

  
sin    0.866295 
 / 37
 0.866021
 3  5040

0.866021  0.866295
 t  0.000477 %  a  100%  0.0316%
0.866021

Dado que el valor aproximado esta por debajo de 0.5%, el calculo es terminado

4.4 Valor verdadero: f(3) = 554.

Orden cero:

f (3)  f (1)  62

554  (62)
 t  100%  111.191%
554
Primer Orden:

f (3)  62  f ' (1)(3 1)  62  70(2)  78  t  85.921%

Segundo Orden:

f "(1) 138
f (3)  78  (3  1) 2  78  4  354  t  36.101%
2 2

Tercer Oden:

f (3) (1) 150


f (3)  354  (3  1) 3  354  8  554  t  0%
6 6

Por lo tanto, el resultado de tercer orden es perfecto porque la función original es un tercer
orden
polinomio
.
4.5 Valor verdadero: f(2.5) = ln(2.5) = 0.916291...

Orden cero:

f (2.5)  f (1)  0

0.916291  0
 t  100%  100%
0.916291

Primer Orden:

f (2.5)  f (1)  f ' (1)(2.5  1)  0  1(1.5) 1.5

0.916291  1.5
 t  100%  63.704%
0.916291

Segundo Orden:

f "(1) 1
f (2.5)  1.5  (2.5  1) 2  1.5  1.5 2  0.375
2 2

0.916291  0.375
 t  100%  59.074%
0.916291

Tercer Orden:

(3) (1)
2
f (2.5)  0.375  f (2.5  1) 3  0.375  1.5 3  1.5
6 6
0.916291  1.5
 t  100%  63.704%
0.916291

Cuarto Orden:

(4) (1) 6
f (2.5)  1.5  f (2.5  1) 4  1.5  1.5 4  0.234375
24 24

t  0.916291 0.234375 100%  74.421%


0.916291
Por lo tanto, el proceso parece ser divergente, lo que sugiere que se requeriría un paso más pequeño para
convergencia.

4.6 Valor verdadero:

f ' (x)  75x 2  12x  7

f ' (2)  75(2) 2  12(2)  7  283

Valores de funcion:

xi–1 = 1.8 f(xi–1) = 50.96


xi = 2 f(xi) = 102
xi+1 = 2.2 f(xi+1) = 164.56

adelante:

164.56  102
f ' (2)   312.8
0.2

283  312.8
 t  100%  10.53%
283

atraz:

102  50.96
f ' (2)   255.2
0.2

283  255.2
 t  100%  9.823%
283

centro:
164 .56 50.96
f ' (2)   284
2(0.2)

283  284
 t  100%  0.353%
283

Tanto el avance como el retroceso tienen errores que pueden aproximarse mediante:

f "(x i )
Et  h
2

f "(2) 150x 12 150(2)  12  288

288
Et  0.2  28.8
2

Esto está muy cerca del error real que ocurrió en las aproximaciones

adelante: Et  283  312.8  29.8


atraz: Et  283  255.2  27.8

La aproximación centrada tiene un error que puede ser aproximado por:

f (3) (x ) 150
Et   i
h2   0.2 2  1
6 6

Que es exacto: Et = 283 - 284 = -1. Este resultado se produce porque la función original es
una ecuación cúbica que tiene cero cuarta y más altas derivadas.

4.7 Valor verdadero:

f "(x)  150 x  12
f "(2)  150(2)  12  288

h = 0.25:

f (2.25) 2 f (2) f (1.75) 182 .1406 2(102 ) 39.85938


f "(2)    288
0.25 2 0.25 2

h = 0.125:

f (2.125) 2 f (2) f (1.875) 139 .6738 2(102 ) 68.82617


f "(2)    288
0.125 2 0.125 2
Ambos resultados son exactos porque los errores son una función de la cuarta y más altas
derivadas que son cero para un polinomio de tercer orden.

4.8

v cgte

(c / m)t

 gm 1 e (c / m)t 
 1.38666
c c2

v
v(c~)  c~  1.38666(1.5)  2.079989
c

v(12.5) 
9.8(50)
12.5
 
1  e 12.5(6) / 50  30.4533

v  30.4533  2.079989

Por lo tanto, los límites calculados con el análisis de primer orden van desde 28.3733 a
32.5333. Esta el resultado se puede verificar calculando los valores exactos como:

v(c  c) 
9.8(50)
11
 
1  e (11/ 50)6  32.6458

v(c  c) 
9.8(50)
14
 
1  e (14 / 50)6  28.4769

Por lo tanto, el rango de2.0844 esta cerca a la estimacion de primer orden:

4.9

v(12.5) 
9.8(50)
12.5
 
1  e 12.5(6) / 50  30.4533

~ )  v c~  v m
v(c~, m ~
c m


v cgte(c / m)t gm 1 e (c / m)t
 
 1.38666
c c2

v gt (c / m)t g
 e
m m
 
 1  e (c / m)t  0.871467
c

v(c~, m
~ )   1.38666 (1.5)  0.871467 (2)  2.079989  1.742934  3.822923

v  30.4533  3.822923
~
4.10 Para T =20,

~ H T~
H (T ) 
T

H
 4AeT 3  4(0.15)0.9(5.67 10 8 )650 3  8.408
T
~
H (T )  8.408(20)  168.169

Error exacto:

H (670) H (630) 1542 .468  1205 .81


H verd    168.3286
2 2

Por lo tanto, la aproximación de primer orden está cerca del resultado


exacto
~
For T =40,
~
H (T )  8.408(40)  336.3387

Error exacto:

H verd H (690) H (610) 1735 .055  1059 .83  337.6124
2 2

Nuevamente, la aproximación de primer orden está cerca del resultado exacto. Los
resultados son buenos porque H (T) es casi lineal en los rangos que estamos examinando.
Esto se ilustra con el siguiente gráfico.
2000

1600

1200

800
550 600 650 700 750

4.11 Para una esfera, A = 4r2. Por lo tanto:

H  4r 2 eT 4

En los valores medios de los parámetro,


H (0.15,0.9,550)  4 (0.15) 2 0.90(5.67 10 8 )(550) 4  1320.288

H ~ H ~ H ~
H  r  e  T
r e T

H
 8reT 4  17,603.84
r

H
 4r 2T 4  1466.987
e

H
 16r 2 eT 3  9.6021
T

H  17603.84(0.01)  1466.987(0.05)  9.6021(20)  441.4297

Para verificar este resultado, podemos calcular:

H (0.14,0.85,530)  4 (0.14) 2 0.85(5.67 10 8 )(530) 4  936.6372

H (0.16,0.95,570)  4 (0.16) 2 0.95(5.67 10 8 )(570) 4  1829.178

1829 .178 936.6372


H verd   446.2703
2

4.12 El número de condición se calcula como

~
xf ' ( ~
x)
CN  ~
f (x )

 1 
1.00001  
  2 1.00001  1  1.00001(158 .1139 )
(a) CN    157.617
1.00001  1  1 1.003162

El resultado está mal acondicionado porque la derivada es grande cerca x = 1.

10 5
10(e ) 10(4.54 105 )
(b) CN   4.54 10  10
e 10
El resultado está mal acondicionado porque x es grande.
 300 
300  1
6
  300 2 1  300 (5.555556 10 )
(c) CN    0.99999444
300 2  1  300 0.0016667

El resultado está bien acondicionado.

 xe  x  e  x  1
x
(d) CN  x2 0.001(0.499667 )
  x    0.9995  0.0005
e 1 
 x 

 

El resultado está bien acondicionado.

(1 c os x) cos x sin x(sin x)


x 2
(1 c os x) 3.141907 (20,264,237 )
(e) CN  sin x  6366.2  10,001
1  cos x

El resultado está mal acondicionado porque, como en la siguiente gráfica, la función tiene
una singularidad en x = .

2000

1000

0
. 3 08 3.1 3.12 3.14 3.16 3.18 3.2
-1000

-2000

4.13 Suma y resta:

f (u, v)  u  v

f ~ f ~
f  u  v
u v

f f
u  1 v  1

f (u~, ~
v )  u~  v~
Multiplication:

f (u, v)  u  v

f f
u  v v  u

f (u~, ~
v)  ~
v u~  u~ v~

Division:

f (u, v)  u / v

f 1 f u
u  v v  v 2

1 u
f (u~, ~
v )  u~  v~
v v2
~ ~
~ ~ v u u v
f (u , v )  v2

4.14

f (x)  ax 2  bx  c
f ' (x)  2ax  b

f "(x)  2a

Sustituir en ecuacion (4.4)

2a
 bxi1  c  axi2  bxi  c  (2ax i  b)(x i1  xi )   2x i1 xi  x i2 )
2 2
axi1 (x i1
2!

Recoger
terminos
axi1  bxi1  c  axi  2axi (xi1  xi )  a(xi1  2xi1 xi  xi )  bxi  b(xi1  xi )  c
2 2 2 2

axi1  bxi1  c  axi  2axi xi1  2axi  axi1  2axi1 xi  axi  bxi  bxi1  bxi  c
2 2 2 2 2

axi1  bxi1  c  (axi  2axi  axi )  axi1  (2axi xi1  2axi1 xi )  (bxi  bxi )  bxi1  c
2 2 2 2 2

axi1  bxi1  c  axi1  bxi1  c


2 2
4.15 El análisis de error de primer orden se puede escribir
como
Q Q
Q  n  S
n S

5/3 5/3
Q 1 (BH ) S 0.5  50.74 Q 1 (BH ) 1
 2536 .9
n   n 2 (B  2H ) 2 / 3 
S n (B  2H ) 2/3
2S 0.5

Q   50.740.003 2536.9 0.00003 0.152  0.076  0.228

El error de la rugosidad es aproximadamente 2 veces el error causado por la incertidumbre en la


pendiente.Por lo tanto, mejorar la precisión de la medición de la rugosidad sería la mejor estrategia.

4.16 Use el criterio de parada

 s  0.510 22 %  0.5%

Valor verdadero: 1/(1 – 0.1) = 1.111111….

Orden cero:

1
1
1 x

1.11111  1
 t  100%  10%
1.11111

Primer orden:

1
 1  0.1  1.1
1 x

1.1  1
 t  1%  a  100%  9.0909%
1.1

Segundo orden:

1
 1  0.1  0.01  1.11
1 x

1.11  1.1
 t  0.1%  a  100%  0.9009009 %
1.11
Tercer orden:

1
 1  0.1  0.01  0.001  1.111
1 x

1.111  1.11
 t  0.01%  a  100%  0.090009 %
1.111

Dado que el error aproximado es inferior al 0,5%, el cálculo puede finalizarse

4.17

d sin 0
sin  0   
d

d sin 0   


d  2 (1   )(1     )  1  1  

Donde  = (ve/v0)2 = 4 y  = 0.25

0.25(4)
d sin 0  4  1  3.1305
d  2 (1  0.25)(1  0.25  0.25(4))  1  0.25

sin 0   3.1305

For  = 0.25(0.02) = 0.005,

sin 0   3.1305(0.005)  0.015652

0.25
sin 0  (1  0.25) 1  4  0.559017
1  0.25

Por lo tanto,

max sin 0  0.559017  0.015652  0.574669

min sin 0  0.559017  0.015652  0.543365

180
max 0  arcsin(0.574669 )   35.076


180
min  0  arcsin(0.543365)   32.913

4.18 Los derivados se pueden calcular como

f (x)  x  1  0.5sin x

f ' (x)  1  0.5 cos x

f "(x)  0.5sin x

f (3)
(x)  0.5 cos x

f (4)
(x)  0.5sin x

Las expansiones de la serie Taylor de la primera a la cuarta orden se pueden calcular en función de la
ecuación. 4.5 como
Primer orden

f1 (x)  f (a)  f ' (a)(x  a)

      
f1 (x)   1  0.5sin  1  0.5 cos  x    x  1.5
2 2  2  2 

Segundo orden

f " (a)
f 2 (x)  f1 (x)  (x  a) 2
2

f 2 (x)  x  1.5  0.25 sin(  / 2)(x   / 2)


2

Tercer orden

f (3) (a)
f 3 (x)  f 2 (x)  (x  a) 3
6

0.5 cos(/ 2)
f 3 (x)  x  1.5  0.25 sin(  / 2)(x   / 2) 
2
(x  a) 3
6

f 3 (x)  x 1.5  0.25 sin(  / 2)(x   / 2)


2

Cuarto orden:

(4)
f (a)
f 4 (x)  f 3 (x)  (x  a) 4
24

0.5 sin( / 2)


f 4 (x)  x  1.5  0.25 sin(  / 2)(x   / 2) 
2
(x   / 2) 4
24
1
f 4 (x)  x  1.5  0.25 sin(  / 2)(x   / 2) 2  (x   / 2) 4
48

Tenga en cuenta que las funciones de la serie Taylor de segunda y tercera orden son las
mismas. El siguiente archivo de script MATLAB que implementa y traza cada una de las
funciones indica que la expansión de cuarto orden satisface los requisitos del problema.

x=0:0.001:3.2;
f=x-1-0.5*sin(x);
subplot(2,2,1);
plot(x,f);grid;title('f(x)=x-1-0.5*sin(x)');hold on

f1=x-1.5;
e1=abs(f-f1); %Calculates the absolute value of the
difference/error
subplot(2,2,2);
plot(x,e1);grid;title('1st Order Taylor Series Error');

f2=x-1.5+0.25.*((x-0.5*pi).^2);
e2=abs(f-f2);
subplot(2,2,3);
plot(x,e2);grid;title('2nd/3rd Order Taylor Series Error');

f4=x-1.5+0.25.*((x-0.5*pi).^2)-(1/48)*((x-0.5*pi).^4);
e4=abs(f4-f);
subplot(2,2,4);
plot(x,e4);grid;title('4th Order Taylor Series Error');hold off

4.19 Aquí están las hojas de cálculo y los cuadros de Excel que se han configurado
para resolver este problema:
12

8
Exacto

4 Atraz
centered
delante
0
-2 0 2
-4
12

8
exact
backward
4
centered
forward
0
-2 0 2
-4
CAPITULO 5

5.1 (a) Un gráfico indica que las raíces se producen a aproximadamente x = -1.4 y 6.4

0
-5 0 5 10
-4

-8

(b)

 2.5  (2.5) 2  4(0.5)(4.5)  1.40512


x  
2(0.5) 6.40512

(c) Primera iteración:

5  10
xr   7.5
2

6.40512  7.5 10  5
 t  100%  17.09%  a  100%  33.33%
6.40512 10  5

f (5) f (7.5)  4.5(4.875)  21.9375

Por lo tanto, el paréntesis es xl = 5 y xu = 7.5

Segunda interacion:

5  7.5
xr   6.25
2

6.40512  6.25 7.5  5


 t  100%  2.42%  a  100%  20.00%
6.40512 7.5  5

f (5) f (6.25)  4.5(0.59375)  2.672

En consecuencia, el nuevo paréntesis es xl = 6.25 y xu = 7.5

Tercera iteración:
x r  6.25 7.5  6.875
2

t  6.40512 6.875 100%  7.34%


6.40512

7.5  6.25
 a  100%  9.09%
7.5  6.25

5.2 (a) Un diagrama indica que una sola raíz real ocurre a aproximadamente x = 0.42
8

0
-1 0 1
-4

-8

(b) primera interacion:

0 1
xr   0.5
2

1 0
 a  100%  100%
1 0

f (0) f (0.5)  2(0.375)  0.75

Por lo tanto, el nuevo paréntesis es xl = 0 y xu = 0.5.

El proceso puede repetirse hasta que el error aproximado caiga por debajo del 10%. Como se resume a
continuación, esto ocurre después de 5 iteraciones que arrojan una estimación de raíz de 0.40625.

iteration xl xu xr f(xl) f(xr) f(xl)f(xr) a


1 0 1 0.5 -2 0.375 -0.75
2 0 0.5 0.25 -2 -0.73438 1.46875 100.00%
3 0.25 0.5 0.375 -0.73438 -0.18945 0.13913 33.33%
4 0.375 0.5 0.4375 -0.18945 0.08667 -0.01642 14.29%
5 0.375 0.4375 0.40625 -0.18945 -0.05246 0.009939 7.69%

5.3 (a) Un diagrama indica que una sola raíz real ocurre a proximadamente x = 0.58.
8

0
0 0.5 1 1.5
-4

-8

(b) Biseccion:

Primera interacion:

0.5  1
xr   0.75
2

1  0.5
 a  100%  33.33%
1  0.5

f (0.5) f (0.75)  1.47813(2.07236)  3.06321

Por lo tanto, el nuevo paréntesis es xl = 0.5 y xu = 0.75.

El proceso puede repetirse hasta que el error aproximado caiga por debajo del 10%. Como se resume a
continuación, esto ocurre después de 4 iteraciones que arrojan una estimación de raíz de 0.59375.

iteration xl xu xr f(xl) f(xr) f(xl)f(xr) a


1 0.50000 1.00000 0.75000 -1.47813 2.07236 -3.06321
2 0.50000 0.75000 0.62500 -1.47813 0.68199 -1.00807 20.00%
3 0.50000 0.62500 0.56250 -1.47813 -0.28199 0.41682 11.11%
4 0.56250 0.62500 0.59375 -0.28199 0.22645 -0.06386 5.26%

(c) Falsa posicion:

Primera interacion:

xl = 0.5 f(xl) = –1.47813


xu = 1 f(xu) = 3.7

3.7(0.5 1)
xr  1  0.64273
1.47813  3.7

f (0.5) f (0.64273)  1.47813(0.91879)  1.35808

Por lo tanto, el paréntesis es xl = 0.5 y xu = 0.64273.


Segunda interacion:

xl = 0.5 f(xl) = –1.47813


xu = 0.64273 f(xu) = 0.91879

xr  0.64273  0.91879 (0.5 0.64273)  0.58802


1.47813  0.91879

a  0.58802 0.64273 100%  9.304%


0.58802

El proceso puede repetirse hasta que el error aproximado caiga por debajo del 0.2%. Como se resume a
continuación, esto ocurre después de 4 iteraciones que arrojan una estimación de raíz de 0.57956.

iteration xl xu f(xl) f(xu) xr f(xr) f(xl)f(xr) a


1 0.5 1.00000 -1.47813 3.70000 0.64273 0.91879 -1.35808
2 0.5 0.64273 -1.47813 0.91879 0.58802 0.13729 -0.20293 9.304%
3 0.5 0.58802 -1.47813 0.13729 0.58054 0.01822 -0.02693 1.289%
4 0.5 0.58054 -1.47813 0.01822 0.57956 0.00238 -0.00351 0.169%

5.4 (a) El gráfico indica que las raíces se encuentran a alrededor de -0.4, 2.25 y 4.7.

40

20

-2 2 4 6
-20

(b) Usando la bisección, la primera iteración es

1 0
xr   0.5
2

f (1) f (0.5)  29.75(3.34375)  99.47656

Por lo tanto, la raíz está en el segundo intervalo y la estimación más baja se redefine como
xl = -0.5. La segunda iteración es

 0.5  0
xr   0.25
2

a  0.25 (0.5) 100%  100%


 0.25

f (0.5) f (0.25)  3.34375(5.5820313)  18.66492


En consecuencia, la raíz está en el primer intervalo y la conjetura superior se redefine como
xu = -0.25. Todas las iteraciones se muestran en la siguiente tabla:

i xl f(xl) xu f(xu) xr f(xr) a


1 1 29.75 0 12 0.5 3.34375
2 0.5 3.34375 0 12 0.25 5.5820313 100.00%
3 0.5 3.34375 0.25 5.5820313 0.375 1.4487305 33.33%
4 0.5 3.34375 0.375 1.4487305 0.4375 0.8630981 14.29%
5 0.4375 0.863098 0.375 1.4487305 0.40625 0.3136673 7.69%
6 0.4375 0.863098 0.40625 0.3136673 0.421875 0.2694712 3.70%
7 0.42188 0.269471 0.40625 0.3136673 0.414063 0.0234052 1.89%
8 0.42188 0.269471 0.41406 0.0234052 0.417969 0.1227057 0.93%

Por lo tanto, después de ocho iteraciones, obtenemos una estimación de raíz de -0.417969
con un error aproximado de 0.93%, que está por debajo del criterio de detención del 1%.

(c) Usando la posición falsa, la primera iteración es

 12(1  0)
x r  0   0.287425
29.75  (12)

f (1) f (0.287425)  29.75(4.4117349 )  131.2491

Por lo tanto, la raíz está en el primer intervalo y la conjetura superior se redefine como xu = -0.287425.
La segunda iteración es

x r  0.287425  4.4117349 (1 (0.287425 ))  0.3794489


29.75  (4.4117349 )

a  0.3794489 (0.2874251) 100%  24.25%


-0.3794489

f (1) f (0.3794489 )  29.75(1.2896639 )  38.3675

En consecuencia, la raíz está en el primer intervalo y la conjetura superior se redefine como


xu = -0.379449. Todas las iteraciones se muestran en la siguiente tabla

i xl f(xl) xu f(xu) xr f(xr) a


1 1 29.75 0 12 0.287425 4.4117349
2 1 29.75 0.28743 4.4117349 0.379449 1.2896639 24.25%
3 1 29.75 0.37945 1.2896639 0.405232 0.3512929 6.36%
4 1 29.75 0.40523 0.3512929 0.412173 0.0938358 1.68%
5 1 29.75 0.41217 0.0938358 0.414022 0.0249338 0.45%

Por lo tanto, después de cinco iteraciones, obtenemos una estimación de raíz de -0.414022 con una
aproximación error de 0.45%, que está por debajo del criterio de detención del 1%.
5.5 Un gráfico indica que una raíz no trivial (es decir, distinta de cero) se encuentra a aproximadamente 0,93.

0.5

0
0 0.5 1 1.5
-0.5

-1

-1.5

Usando la bisección, la primera


iteración es
0.5  1
xr   0.75
2

f (0.5) f (0.75)  0.354426(0.2597638 )  0.092067

Por lo tanto, la raíz está en el segundo intervalo y la menor conjetura se redefine como xl = 0.75.
La segunda iteración es

0.75  1
xr   0.875
2

0.875  0.75
 a  100%  14.29%
0.875

f (0.75) f (0.875)  0.259764 (0.0976216 )  0.025359

Debido a que el producto es positivo, la raíz está en el segundo intervalo y la menor conjetura es
redefinido como xl = 0.875. Todas las iteraciones se muestran en la siguiente tabla:

i xl f(xl) xu f(xu) xr f(xr) a


1 0.5 0.354426 1 -0.158529 0.75 0.2597638
2 0.75 0.259764 1 -0.158529 0.875 0.0976216 14.29%
3 0.875 0.097622 1 -0.158529 0.9375 -0.0178935 6.67%
4 0.875 0.097622 0.9375 -0.0178935 0.90625 0.0429034 3.45%
5 0.90625 0.042903 0.9375 -0.0178935 0.921875 0.0132774 1.69%

En consecuencia, después de cinco iteraciones, obtenemos una estimación de raíz de 0.921875 con
una aproximación error de 1.69%, que está por debajo del criterio de detención del 2%. El resultado
puede verificarse sustituyéndolo en la ecuación original para verificar que esté cerca de cero

f (x)  sin( x)  x3  sin(0.921875)  0.921875 3  0.0132774

5.6 (a) Un gráfico de la función indica una raíz real positiva a aproximadamente x = 1.2.
10

0
-2 -1 0 1 2
-10

-20

(b) Usando la bisección, la primera iteración es

0.5  2
xr   1.25
2

2  0.5
 a  100%  60%
2  0.5

f (0.5) f (1.25)  3.47259(0.19257)  0.66873

Por lo tanto, la raíz está en el primer intervalo y la conjetura superior se redefine como
xu = 1.25. La segunda iteración es

xr  0.5 1.25  0.875


2

0.875 1.25
 a  100%  42.86%
0.875

f (0.5) f (0.875)  3.47259(1.23413)  4.28561

En consecuencia, la raíz está en el segundo intervalo y la estimación más baja se redefine


como xl = 0.875. Todas las iteraciones se muestran en la siguiente tabla:

i xl xu xr f(xl) f(xr) f(xl)f(xr) a


1 0.50000 2.00000 1.25000 -3.47259 0.19257 -0.66873
2 0.50000 1.25000 0.87500 -3.47259 -1.23413 4.28561 42.86%
3 0.87500 1.25000 1.06250 -1.23413 -0.4575 0.56461 17.65%

Por lo tanto, después de tres iteraciones, obtenemos una estimación de la raíz de 1.0625
con un error aproximado de 17.65%

(c) Usando la posición falsa, la primera


iteración es
xr  2  2.07259 (0.5 2)  1.43935
 3.47259  2.07259

f (0.5) f (1.43935)  3.47259(0.75678)  2.62797


Por lo tanto, la raíz está en el primer intervalo y la conjetura superior se redefine como
xu = 1.43935.La segunda iteración es

xr  1.43935  0.75678(0.5 1.43935)  1.27127


 3.47259  0.75678

a  1.27127 1.43935 100%  13.222%


1.27127

f (0.5) f (1.27127)  3.47259(0.26007)  0.90312

En consecuencia, la raíz está en el primer intervalo y la conjetura superior se redefine como xu = 1.27127.
Todas las iteraciones se muestran en la siguiente tabla:

iteration xl xu f(xl) f(xu) xr f(xr) f(xl)f(xr) a


1 0.5 2.00000 -3.47259 2.07259 1.43935 0.75678 -2.62797
2 0.5 1.43935 -3.47259 0.75678 1.27127 0.26007 -0.90312 13.222%
3 0.5 1.27127 -3.47259 0.26007 1.21753 0.08731 -0.30319 4.414%

Después de tres iteraciones, obtenemos una estimación de raíz de 1.21753 con un error
aproximado de 4.414%.

5.7 (a) (0.8  0.3x)  0

0.8
x  2.666667
0.3

(b) El gráfico de la función indica una raíz entre x = 2 y 3. Tenga en cuenta que la forma
de la la curva sugiere que puede ser inadecuada para la solución con el método de posición
falsa (consulte la Fig. 5.14)

6
4
2
0
-2 0 1 2 3 4 5

(c) Usando la posición falsa, la primera iteración es

xr  3  0.03333 (1 3)  2.875


0.5  (0.03333)

t  2.66667 2.875 100%  7.81%


2.66667
f (1) f (2.875)  0.5(0.02174)  0.01087

Por lo tanto, la raíz está en el primer intervalo y la conjetura superior se redefine como xu = 2.875.
La segunda iteración es

xr  2.875  0.03333 (1 2.875)  2.79688


0.5  (0.03333)

a  2.79688 2.875 100%  2.793%


2.79688

t  2.66667 2.79688 100%  4.88%


2.66667

f (1) f (2.79688)  0.5(0.01397 )  0.00698

En consecuencia, la raíz está en el primer intervalo y la conjetura superior se redefine como xu = 2.79688.
Todas las iteraciones se muestran en la siguiente tabla:

i xl xu f(xl) f(xu) xr f(xr) f(xl)f(xr) a t


1 1 3.00000 0.5 -0.03333 2.87500 -0.02174 -0.01087 7.81%
2 1 2.87500 0.5 -0.02174 2.79688 -0.01397 -0.00698 2.793% 4.88%
3 1 2.79688 0.5 -0.01397 2.74805 -0.00888 -0.00444 1.777% 3.05%

Por lo tanto, después de tres iteraciones, obtenemos una estimación de raíz de 2.74805 con una aproximación
error de 1.777%. Tenga en cuenta que el error verdadero es mayor que el error aproximado. Esto no es
bueno porque significa que podríamos detener el cálculo en base a la suposición errónea de que el error
verdadero es al menos tan bueno como el error aproximado. Esto se debe a la convergencia lenta que resulta
de la forma de la función.

5.8 La raíz cuadrada de 18 se puede configurar como un problema de raíces al determinar la raíz
positiva de función

f (x)  x 2 18  0

Usando la posición falsa, la primera iteración es

7(4  5)
xr  5   4.22222
27

f (4) f (4.22222)  2(0.17284)  0.34568

Por lo tanto, la raíz está en el segundo intervalo y la estimación más baja se redefine como xl = 4.22222.
La segunda iteración es
7(4.22222  5)
xr  4.22222   4.24096
 0.17284  7

a  4.24096 4.22222 100%  0.442%


4.24096

Por lo tanto, el cálculo se puede detener después de solo dos iteraciones porque 0.442% <0.5%. Nota
que el verdadero valor es 4.2426. La técnica converge tan rápido porque la función está muy cerca de
ser una línea recta en el intervalo entre las suposiciones como en la trama de la función mostrado a
continuación.

10

0
4 4.5 5
-5

5.9 Un gráfico de la función indica una raíz real positiva a aproximadamente x = 3.7.

10

0
0 1 2 3 4 5

-10

Usando la posición falsa, la primera iteración es

xr  5  10.43182 (0 5)  1.62003


 5 10.43182

f (0) f (1.62003)  5(4.22944)  21.147

Por lo tanto, la raíz está en el segundo intervalo y la estimación más baja se redefine como
xl = 1.62003. Las iteraciones restantes se resumen a continuación

i xl xu f(xl) f(xu) xr f(xr) f(xl)f(xr) a


1 0 5.00000 -5 10.43182 1.62003 -4.22944 21.14722
2 1.62003 5.00000 -4.2294 10.43182 2.59507 -4.72984 20.00459 37.573%
3 2.59507 5.00000 -4.7298 10.43182 3.34532 -2.14219 10.13219 22.427%
4 3.34532 5.00000 -2.1422 10.43182 3.62722 -0.69027 1.47869 7.772%
5 3.62722 5.00000 -0.6903 10.43182 3.71242 -0.19700 0.13598 2.295%
6 3.71242 5.00000 -0.197 10.43182 3.73628 -0.05424 0.01069 0.639%
El resultado final, xr = 3.73628, puede verificarse sustituyéndolo en la función original
para obtener un resultado cercano a cero

f (3.73628)  (3.73628) 2 cos 3.73628  5  0.05424

5.10 Usando la posición falsa, la primera iteración es

7(4.5  6)
x r  6   5.01754
3.6875  7

f (4.5) f (5.01754)  3.6875(1.00147)  3.69294

Por lo tanto, la raíz está en el segundo intervalo y la conjetura más baja se redefine como xu = 5.01754.
El error verdadero se puede calcular como

t  5.60979 5.01754 100%  10.56%


5.60979

La segunda iteración es

x r  6  7(5.01754 6)  5.14051


 1.00147  7

t  5.60979 5.14051 100%  8.37%


5.60979

a  5.14051 5.01754 100%  2.392%


5.14051

f (5.01754) f (5.14051)  1.00147(1.06504)  1.06661

En consecuencia, la raíz está en el segundo intervalo y la conjetura más baja se redefine


como xu = 5.14051. Todas las iteraciones se muestran en la siguiente tabla:

i xl xu f(xl) f(xu) xr f(xr) f(xl)f(xr)  a, % t, %


1 4.50000 6 -3.68750 7.00000 5.01754 -1.00147 3.69294 10.56
2 5.01754 6 -1.00147 7.00000 5.14051 -1.06504 1.06661 2.392 8.37
3 5.14051 6 -1.06504 7.00000 5.25401 -1.12177 1.19473 2.160 6.34
4 5.25401 6 -1.12177 7.00000 5.35705 -1.07496 1.20586 1.923 4.51
5 5.35705 6 -1.07496 7.00000 5.44264 -0.90055 0.96805 1.573 2.98
6 5.44264 6 -0.90055 7.00000 5.50617 -0.65919 0.59363 1.154 1.85
7 5.50617 6 -0.65919 7.00000 5.54867 -0.43252 0.28511 0.766 1.09

Tenga en cuenta que los resultados tienen la característica indeseable de que el error verdadero es mayor que
el error aproximado Esto no es bueno porque significa que podríamos detener el cálculo basado en la
suposición errónea de que el error verdadero es al menos tan bueno como el aproximado
error. Esto se debe a la convergencia lenta que resulta de la forma de la función como se
muestra en la siguiente gráfica (recuérdese la Fig. 5.14).

8
6
4
2
0
-2 4 4.5 5 5.5 6
-4
-6

5.11 (a)

x r  (80)1/ 3.5  3.497357

(b) Aquí hay un resumen de los resultados obtenidos con la posición falsa hasta el
punto de que el el error aproximado cae por debajo del criterio de detención del 2.5%:

i xl xu f(xl) f(xu) xr f(xr) f(xl)f(xr) a


1 2 5 -68.68629 199.5085 2.76832 -44.70153 3070.382
2 2.768318 5 -44.70153 199.5085 3.17682 -22.85572 1021.686 12.859%
3 3.176817 5 -22.85572 199.5085 3.36421 -10.16193 232.258 5.570%
4 3.364213 5 -10.16193 199.5085 3.44349 -4.229976 42.985 2.302%

5.12 Un gráfico de la función indica un máximo en aproximadamente 0.87.

10

0
-0 .5 0 0.5 1 1.5
-5

-10

Para determinar el máximo con una técnica de ubicación de raíz, primero debemos diferenciar
la función de ceder

f ' (x)  12x 5  6x 3  10

La raíz de esta función representa un extremo. Usando bisección y el recomendado


las conjeturas iniciales dan:

i xl xu xr f(xl) f(xr) f(xl)f(xr) a


1 0.00000 1.00000 0.50000 10.00000 8.87500 88.75000
2 0.50000 1.00000 0.75000 8.87500 4.62109 41.01221 33.33%
3 0.75000 1.00000 0.87500 4.62109 -0.17444 -0.80610 14.29%
4 0.75000 0.87500 0.81250 4.62109 2.53263 11.70351 7.69%
5 0.81250 0.87500 0.84375 2.53263 1.26437 3.20217 3.70%

El máximo se puede determinar sustituyendo la raíz en la ecuación original para dar

f (0.84375)  2(0.84375) 6  1.5(0.84375) 4  10(0.84375)  2  8.956

5.13 La masa correcta puede determinarse encontrando la raíz de

f (m) 
9.8m
15
 
1  e (15 / m)9  35  0

Estos son los resultados de usar una posición falsa con conjeturas iniciales de 50 y 70 kg:

i xl xu f(xl) f(xu) xr f(xr) f(xl)f(xr) a


1 50 70.00000 -4.52871 4.085733 60.51423 0.288464 -1.30637
2 50 60.51423 -4.52871 0.288464 59.88461 0.018749 -0.08491 1.051%
3 50 59.88461 -4.52871 0.018749 59.84386 0.001212 -0.00549 0.068%

Por lo tanto, después de 3 iteraciones, se determina un valor de 59.84386 kg con un error aproximado de
0.068%. Este resultado se puede verificar sustituyéndolo en la ecuación de velocidad para dar

v
9.8(59.84386)
15
 
1  e (15 / 59.84386)9  35.00121
m
s

5.14 Resuelve para las reacciones:

R1=265 lbs. R2= 285 lbs.

Escribir ecuaciones de haz:


x
M  (16.667 x 2 )  265 x  0
0<x<3 3
(1) M  265 x  5.5555556 x 3

x 3 2
M  100(x  3)( )  150(x  (3))  265x  0
3<x<6 2 3
(2) M  50x 2  415x 150

2
M  150(x  (3))  300(x  4.5)  265 x
6<x<10 3
(3) M  185 x  1650

M 100(12  x)  0
10<x<12
(4) M  100 x 1200
Se puede generar un diagrama de estas
ecuaciones:

1000

500

0
0 4 8 12
-500

0<x<3 3<x<6 6<x<10 10<x<12

Combinando ecuaciones:

Como la curva cruza el eje entre 6 y 10, usa (3).

(3) M  185 x  1650

Set x L  6; xU  10

M (x L )  540 xr  x L xU  8
M (xU )  200 2
M (x R )  170  Remp. xL

M (x L )  170 xr  8 10  9
M (xU )  200 2
M (x R )  15  Remp. xU

M (x L )  170 xr  8 9  8.5


M (xU )  15 2
M (x R )  77.5  Remp. x L

M (x L )  77.5 xr  8.5 9  8.75


M (xU )  15 2
M (x R )  31.25  Remp. x L

M (x L )  31.25 xr  8.75 9  8.875


M (xU )  15 2
M (x R )  8.125  Remp. x L

M (x L )  8.125 xr  8.875 9  8.9375


M (xU )  15 2
M (x R )  3.4375  Remp. xU
M (x L )  8.125 xr  8.875 8.9375  8.90625
M (xU )  3.4375 2
M (x R )  2.34375  Remp. x L

M (x L )  2.34375 xr  8.90625 8.9375  8.921875


M (xU )  3.4375 2
M (x R )  0.546875  Remp. xU

M (x L )  2.34375 xr  8.90625 8.921875  8.9140625


M (xU )  0.546875 2
M (x R )  0.8984 Por lo tanto, x  8.91 pies

5.15 (a) La función a evaluar es

400
f ( y)  1  (3  y)
9.81(3y  y 2 / 2) 3

Un gráfico de la función indica una raíz real positiva en aproximadamente 1.5.

10

-10 0 0.5 1 1.5 2 2.5

-20

-30

-40

(b) Usando la bisección, la primera iteración es

x r  0.5 2.5  1.5


2

f (0.5) f (1.5)  32.2582(0.030946)  0.998263

Por lo tanto, la raíz está en el segundo intervalo y la conjetura más baja se redefine como
xl = 1.5. La segunda iteración es

x r  1.5 2.5  2
2

2  1.5
 a  100%  25%
2

f (1.5) f (2)  0.030946 (0.601809 )  0.018624


Por lo tanto, la raíz está en el primer intervalo y la conjetura superior se redefine como
xu = 2. Todas las iteraciones se muestran en la siguiente tabla:

i xl f(xl) xu f(xu) xr f(xr) a


1 0.5 32.2582 2.5 0.813032 1.5 0.030946
2 1.5 0.03095 2.5 0.813032 2 0.601809 25.00%
3 1.5 0.03095 2 0.601809 1.75 0.378909 14.29%
4 1.5 0.03095 1.75 0.378909 1.625 0.206927 7.69%
5 1.5 0.03095 1.625 0.206927 1.5625 0.097956 4.00%
6 1.5 0.03095 1.5625 0.097956 1.53125 0.036261 2.04%
7 1.5 0.03095 1.53125 0.036261 1.515625 0.003383 1.03%
8 1.5 0.03095 1.515625 0.003383 1.5078125 0.013595 0.52%

Después de ocho iteraciones, obtenemos una estimación de raíz de 1.5078125 con un error
aproximado de 0.52%.

(c) Usando la posición falsa, la primera iteración es

x r  2.5  0.81303(0.5 2.5)  2.45083


32.2582  0.81303

f (0.5) f (2.45083)  32.25821(0.79987)  25.80248

Por lo tanto, la raíz está en el primer intervalo y la conjetura superior se redefine como
xu = 2.45083. La segunda iteración es

x r  2.45083  0.79987 (0.5 2.45083)  2.40363


 32.25821  0.79987

a  2.40363 2.45083 100%  1.96%


2.40363

f (0.5) f (2.40363)  32.2582(0.78612)  25.35893

La raíz está en el primer intervalo y la conjetura superior se redefine como xu =


2.40363. Todas las iteraciones se muestran en la siguiente tabla:

i xl f(xl) xu f(xu) xr f(xr) a


1 0.5 32.2582 2.50000 0.81303 2.45083 0.79987
2 0.5 32.2582 2.45083 0.79987 2.40363 0.78612 1.96%
3 0.5 32.2582 2.40363 0.78612 2.35834 0.77179 1.92%
4 0.5 32.2582 2.35834 0.77179 2.31492 0.75689 1.88%
5 0.5 32.2582 2.31492 0.75689 2.27331 0.74145 1.83%
6 0.5 32.2582 2.27331 0.74145 2.23347 0.72547 1.78%
7 0.5 32.2582 2.23347 0.72547 2.19534 0.70900 1.74%
8 0.5 32.2582 2.19534 0.70900 2.15888 0.69206 1.69%
9 0.5 32.2582 2.15888 0.69206 2.12404 0.67469 1.64%
10 0.5 32.2582 2.12404 0.67469 2.09077 0.65693 1.59%

Después de diez iteraciones obtenemos una estimación de raíz de 2.09077 con un error proximado de
1.59%. Por lo tanto, después de diez iteraciones, el método de posición falsa está convergiendo a un ritmo
muy lento y todavía está lejos de la raíz en las proximidades de 1.5 que hemos detectado gráficamente.

Discusión: este es un ejemplo clásico de un caso en el que la posición falsa tiene un rendimiento deficiente
y inferior a la bisección. Se puede obtener una idea de estos resultados al examinar la trama que se
desarrolló en la parte (a). Esta función viola la premisa sobre la cual la posición falsa era basado, es decir,
si f (xu) está mucho más cerca de cero que f (xl), entonces la raíz está más cerca de xu que de xl (recuerde
las figuras 5.12 y 5.14). Debido a la forma de la función presente, lo opuesto es cierto.

5.16 La ecuación a ser resuelta es

  
f (h)  Rh 2   h 3  V
 3 

Aquí hay un resumen de los resultados obtenidos con tres iteraciones de posición falsa:

i xl xu f(xl) f(xu) xr f(xr) f(xl)f(xr) a


1 0 3.00000 -30 26.54867 1.59155 -10.3485 310.45424
2 1.59155 3.00000 -10.348 26.54867 1.98658 -1.01531 10.50688 19.885%
3 1.98658 3.00000 -1.0153 26.54867 2.02390 -0.07591 0.07708 1.844%

El resultado se puede verificar sustituyéndolo en la ecuación de volumen para dar

3(3)  2.0239
V   (2.0239) 2  29.92409
3

5.17 (a) La ecuación (5.5) se puede usar para determinar el número de iteraciones

 0   40 
n  log  x   log 2    9.6439
2 
 Ea,d   0.05 

que se puede redondear hasta 10 interaciones.

(b) Aquí hay una M-file que evalúa la temperatura en oC usando 11 iteraciones de bisección basadas
en un valor dado de la concentración de saturación de oxígeno en agua dulce:

function TC = TempEval(osf)
% function to evaluate the temperature in degrees C based
% on the oxygen saturation concentration in freshwater (osf).
xl = 0 + 273.15;
xu = 40 + 273.15;
if fTa(xl,osf)*fTa(xu,osf)>0 %if guesses do not bracket
error('no bracket') %display an error message and terminate
end
xr = xl;
for i = 1:10
xrold = xr;
xr = (xl + xu)/2;
if xr ~= 0, ea = abs((xr - xrold)/xr) * 100; end
test = fTa(xl,osf)*fTa(xr,osf);
if test < 0
xu = xr;
elseif test > 0
xl = xr;
else
ea = 0;
end
end
TC = xr - 273.15;

function f = fTa(Ta, osf)


f = -139.34411 + 1.575701e5/Ta - 6.642308e7/Ta^2;
f = f + 1.2438e10/Ta^3 - 8.621949e11/Ta^4;
f = f - log(osf);

La función se puede usar para evaluar los casos de prueba:

>> TempEval(8)

ans =
26.7578

>> TempEval(10)

ans =
15.3516

>> TempEval(12)

ans =
7.4609

Tenga en cuenta que estos valores se pueden comparar con los valores verdaderos para
verificar que los errores sean menos
de 0.05:
osf Approximation Exact Error
8 26.75781 26.78017 0.0224
10 15.35156 15.38821 0.0366
12 7.46094 7.46519 0.0043

5.18 Aquí hay un programa de VBA para implementar la función de bisección (Fig. 5.10) de
forma fácil de usar formato:

Option Explicit

Sub TestBisect()
Dim imax As Integer, iter As Integer
Dim x As Double, xl As Double, xu As Double
Dim es As Double, ea As Double, xr As Double
Dim root As Double
'input information from the user
Sheets("Sheet1").Select
Range("b4").Select
xl = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
xu = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
es = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
imax = ActiveCell.Value
Range("b4").Select
If f(xl) * f(xu) < 0 Then
'if the initial guesses are valid, implement bisection
'and display results
root = Bisect(xl, xu, es, imax, xr, iter, ea)
MsgBox "The root is: " & root
MsgBox "Iterations: " & iter
MsgBox "Estimated error: " & ea
MsgBox "f(xr) = " & f(xr)
Else
'if the initial guesses are invalid,
'display an error message
MsgBox "No sign change between initial guesses"
End If
End Sub

Function Bisect(xl, xu, es, imax, xr, iter, ea)


Dim xrold As Double, test As Double
iter = 0
Do
xrold = xr
'determine new root estimate
xr = (xl + xu) / 2
iter = iter + 1
'determine approximate error
If xr <> 0 Then
ea = Abs((xr - xrold) / xr) * 100
End If
'determine new bracket
test = f(xl) * f(xr)
If test < 0 Then
xu = xr
ElseIf test > 0 Then
xl = xr
Else
ea = 0
End If
'terminate computation if stopping criterion is met
'or maximum iterations are exceeded
If ea < es Or iter >= imax Then Exit Do
Loop
Bisect = xr
End Function

Function f(c)
f = 9.8 * 68.1 / c * (1 - Exp(-(c / 68.1) * 10)) - 40
End Function

Para el ejemplo 5.3, la hoja de cálculo de Excel utilizada para la entrada se ve como:
El programa produce una raíz de 14.78027 después de 12 iteraciones. El error aproximado
en este punto es 6.6x10^(-3)%. Todos estos resultados se muestran como cuadros de
mensaje. Por ejemplo, la verificación de la solución se muestra como

5.19 Aquí hay un programa de VBA para implementar la función de bisección que
minimiza la función evaluaciones (Fig. 5.11) en un programa fácil de usar:

Option Explicit

Sub TestBisectMin()
Dim imax As Integer, iter As Integer
Dim x As Double, xl As Double, xu As Double
Dim es As Double, ea As Double, xr As Double
Dim root As Double
'input information from the user
Sheets("Sheet1").Select
Range("b4").Select
xl = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
xu = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
es = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
imax = ActiveCell.Value
Range("b4").Select
If f(xl) * f(xu) < 0 Then
'if the initial guesses are valid, implement bisection
'and display results
root = BisectMin(xl, xu, es, imax, xr, iter, ea)
MsgBox "The root is: " & root
MsgBox "Iterations: " & iter
MsgBox "Estimated error: " & ea
MsgBox "f(xr) = " & f(xr)
Else
'if the initial guesses are invalid,
'display an error message
MsgBox "No sign change between initial guesses"
End If
End Sub

Function BisectMin(xl, xu, es, imax, xr, iter, ea)


Dim xrold As Double, test As Double, fl As Double, fr As Double
iter = 0
fl = f(xl)
Do
xrold = xr
'determine new root estimate
xr = (xl + xu) / 2
fr = f(xr)
iter = iter + 1
'determine approximate error
If xr <> 0 Then
ea = Abs((xr - xrold) / xr) * 100
End If
'determine new bracket
test = fl * fr
If test < 0 Then
xu = xr
ElseIf test > 0 Then
xl = xr
fl = fr
Else
ea = 0
End If
'terminate computation if stopping criterion is met
'or maximum iterations are exceeded
If ea < es Or iter >= imax Then Exit Do
Loop
BisectMin = xr
End Function

Function f(x)
f = x ^ 10 - 1
End Function

Para el ejemplo 5.6, la hoja de cálculo de Excel utilizada para la entrada se ve así:

Después de 14 iteraciones, el programa rinde


El número de evaluaciones de funciones por iteración puede determinarse inspeccionando el código.
Después de la evaluación inicial de la función en el límite inferior (fl = f (xl)), hay una única
evaluación adicional por iteración (fr = f (xr)). Por lo tanto, el número de evaluaciones de función es
igual al número de iteraciones más 1. En contraste, el pseudocódigo de la Fig.5.10 que no intenta
minimizar la función da como resultado evaluaciones de funciones que equivalen al doble de las
iteraciones. Por lo tanto, el código de la figura 5.11 debería ejecutarse aproximadamente dos veces
más rápido que la figura 5.10.

5.20 Aquí hay un programa de VBA para implementar una posición falsa que es similar en
estructura al algoritmo de bisección descrito en la figura 5.10:

Option Explicit

Sub TestFP()
Dim imax As Integer, iter As Integer
Dim x As Double, xl As Double, xu As Double
Dim es As Double, ea As Double, xr As Double
Dim root As Double
'input information from the user
Sheets("Sheet1").Select
Range("b4").Select
xl = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
xu = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
es = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
imax = ActiveCell.Value
Range("b4").Select
If f(xl) * f(xu) < 0 Then
'if the initial guesses are valid, implement bisection
'and display results
root = FalsePos(xl, xu, es, imax, xr, iter, ea)
MsgBox "The root is: " & root
MsgBox "Iterations: " & iter
MsgBox "Estimated error: " & ea
MsgBox "f(xr) = " & f(xr)
Else
'if the initial guesses are invalid,
'display an error message
MsgBox "No sign change between initial guesses"
End If
End Sub

Function FalsePos(xl, xu, es, imax, xr, iter, ea)


Dim xrold As Double, test As Double
iter = 0
Do
xrold = xr
'determine new root estimate
xr = xu - f(xu) * (xl - xu) / (f(xl) - f(xu))
iter = iter + 1
'determine approximate error
If xr <> 0 Then
ea = Abs((xr - xrold) / xr) * 100#
End If
'determine new bracket
test = f(xl) * f(xr)
If (test < 0) Then
xu = xr
ElseIf (test > 0) Then
xl = xr
Else
ea = 0#
End If
'terminate computation if stopping criterion is met
'or maximum iterations are exceeded
If ea < es Or iter >= imax Then Exit Do
Loop
FalsePos = xr
End Function

Function f(c)
f = 9.8 * 68.1 / c * (1 - Exp(-(c / 68.1) * 10)) - 40
End Function

Para el ejemplo 5.5, la hoja de cálculo de Excel utilizada para la entrada se ve así:

El programa produce una raíz de 14.78036 después de 4 iteraciones. El error aproximado en


este punto es9.015103 %. Todos estos resultados se muestran como cuadros de
mensaje. Por ejemplo, la verificación de la solución se muestra como

5.21 Aquí hay un procedimiento Sub de VBA para implementar el método de posición falsa
que minimiza evaluaciones de funciones. Está configurado para evaluar el Ejemplo 5.6.

Option Explicit

Sub TestFP()
Dim imax As Integer, iter As Integer
Dim x As Double, xl As Double, xu As Double
Dim es As Double, ea As Double, xr As Double
Dim root As Double
'input information from the user
Sheets("Sheet1").Select
Range("b4").Select
xl = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
xu = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
es = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
imax = ActiveCell.Value
Range("b4").Select
If f(xl) * f(xu) < 0 Then
'if the initial guesses are valid, implement bisection
'and display results
root = FalsePosMin(xl, xu, es, imax, xr, iter, ea)
MsgBox "The root is: " & root
MsgBox "Iterations: " & iter
MsgBox "Estimated error: " & ea
MsgBox "f(xr) = " & f(xr)
Else
'if the initial guesses are invalid,
'display an error message
MsgBox "No sign change between initial guesses"
End If
End Sub

Function FalsePosMin(xl, xu, es, imax, xr, iter, ea)


Dim xrold As Double, test As Double
Dim fl As Double, fu As Double, fr As Double
iter = 0
fl = f(xl)
fu = f(xu)
Do
xrold = xr
'determine new root estimate
xr = xu - fu * (xl - xu) / (fl - fu)
fr = f(xr)
iter = iter + 1
'determine approximate error
If xr <> 0 Then
ea = Abs((xr - xrold) / xr) * 100#
End If
'determine new bracket
test = fl * fr
If (test < 0) Then
xu = xr
fu = fr
ElseIf (test > 0) Then
xl = xr
fl = fr
Else
ea = 0#
End If
'terminate computation if stopping criterion is met
'or maximum iterations are exceeded
If ea < es Or iter >= imax Then Exit Do
Loop
FalsePosMin = xr
End Function
Function f(x)
f = x ^ 10 - 1
End Function

For Example 5.6, the Excel worksheet used for input looks like:

El programa produce una raíz de 0.9996887 después de 39 iteraciones. El error aproximado


en este el punto es9.5103 %. Todos estos resultados se muestran como cuadros de mensaje.
Por ejemplo, la verificación de la solución se muestra como

El número de evaluaciones de funciones para esta versión es n + 2. Esto es mucho más pequeño que el
número de evaluaciones de funciones en el método de posición falsa estándar (5n).

5.22 Aquí hay un procedimiento Sub de VBA para implementar el método de posición falsa
modificado. Está configurado para evaluar el Ejemplo 5.5.

Option Explicit

Sub TestModFP()
Dim imax As Integer, iter As Integer
Dim x As Double, xl As Double, xu As Double
Dim es As Double, ea As Double, xr As Double
Dim root As Double
'input information from the user
Sheets("Sheet1").Select
Range("b4").Select
xl = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
xu = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
es = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
imax = ActiveCell.Value
Range("b4").Select
If f(xl) * f(xu) < 0 Then
'if the initial guesses are valid, implement bisection
'and display results
root = ModFalsePos(xl, xu, es, imax, xr, iter, ea)
MsgBox "The root is: " & root
MsgBox "Iterations: " & iter
MsgBox "Estimated error: " & ea
MsgBox "f(xr) = " & f(xr)
Else
'if the initial guesses are invalid,
'display an error message
MsgBox "No sign change between initial guesses"
End If
End Sub

Function ModFalsePos(xl, xu, es, imax, xr, iter, ea)


Dim il As Integer, iu As Integer
Dim xrold As Double, fl As Double
Dim fu As Double, fr As Double, test As Double
iter = 0
fl = f(xl)
fu = f(xu)
Do
xrold = xr
xr = xu - fu * (xl - xu) / (fl - fu)
fr = f(xr)
iter = iter + 1
If xr <> 0 Then
ea = Abs((xr - xrold) / xr) * 100
End If
test = fl * fr
If test < 0 Then
xu = xr
fu = f(xu)
iu = 0
il = il + 1
If il >= 2 Then fl = fl / 2
ElseIf test > 0 Then
xl = xr
fl = f(xl)
il = 0
iu = iu + 1
If iu >= 2 Then fu = fu / 2
Else
ea = 0#
End If
If ea < es Or iter >= imax Then Exit Do
Loop
ModFalsePos = xr
End Function

Function f(x)
f = x ^ 10 - 1
End Function

Para el ejemplo 5.6, la hoja de cálculo de Excel utilizada para la entrada se ve así:
El programa produce una raíz de 1.0000057 después de 12 iteraciones. El error aproximado en
este el punto es1.16103 %. Todos estos resultados se muestran como cuadros de mensaje. Por
ejemplo, la verificación de la solución se muestra como

Tenga en cuenta que el método de posición falsa estándar requiere 39 iteraciones para
obtener resultados comparables con exactitud.

You might also like