Professional Documents
Culture Documents
x2
f (x) f (0) f ' (0)x f "(0)
2
x2
f (x) 1 x
2
(b)
h2 h3
f (xi1 ) e xi e xi h e xi e xi
2 6
Oden cero:
Primer Orden:
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
Orden cero:
cos 1
3
0.5 1
t 100% 100%
0.5
Primer Orden:
cos 1
/ 32 0.451689
3 2
0.451689 1
t 9.66% a 100% 121.4%
0.451689
Segundo Orden:
cos 0.451689
/ 34 0.501796
3 24
0.501796 0.451689
t 0.359% a 100% 9.986%
0.501796
Tercer Orden:
cos 0.501796
/ 36 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
sin 1.047198
3 3
Primer Oden:
sin 1.047198
/ 33
0.855801
3 6
0.855801 1.047198
t 1.18% a 100% 22.36%
0.855801
Segundo Orden:
sin 0.855801
/ 35
0.866295
3 120
0.866295 0.855801
t 0.031% a 100% 1.211%
0.866295
Tercer Orden:
sin 0.866295
/ 37
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
Orden cero:
554 (62)
t 100% 111.191%
554
Primer Orden:
Segundo Orden:
f "(1) 138
f (3) 78 (3 1) 2 78 4 354 t 36.101%
2 2
Tercer Oden:
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:
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
Valores de funcion:
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
288
Et 0.2 28.8
2
Esto está muy cerca del error real que ocurrió en las aproximaciones
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.
f "(x) 150 x 12
f "(2) 150(2) 12 288
h = 0.25:
h = 0.125:
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
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
4AeT 3 4(0.15)0.9(5.67 10 8 )650 3 8.408
T
~
H (T ) 8.408(20) 168.169
Error exacto:
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
H 4r 2 eT 4
H ~ H ~ H ~
H r e T
r e T
H
8reT 4 17,603.84
r
H
4r 2T 4 1466.987
e
H
16r 2 eT 3 9.6021
T
~
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
10 5
10(e ) 10(4.54 105 )
(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
xe x e x 1
x
(d) CN x2 0.001(0.499667 )
x 0.9995 0.0005
e 1
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
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
2a
bxi1 c axi2 bxi c (2ax i b)(x i1 xi ) 2x i1 xi x i2 )
2 2
axi1 (x i1
2!
Recoger
terminos
axi1 bxi1 c axi 2axi (xi1 xi ) a(xi1 2xi1 xi xi ) bxi b(xi1 xi ) c
2 2 2 2
axi1 bxi1 c axi 2axi xi1 2axi axi1 2axi1 xi axi bxi bxi1 bxi c
2 2 2 2 2
axi1 bxi1 c (axi 2axi axi ) axi1 (2axi xi1 2axi1 xi ) (bxi bxi ) bxi1 c
2 2 2 2 2
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
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
4.17
d sin 0
sin 0
d
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
0.25
sin 0 (1 0.25) 1 4 0.559017
1 0.25
Por lo tanto,
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) 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) 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
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
Cuarto orden:
(4)
f (a)
f 4 (x) f 3 (x) (x a) 4
24
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)
5 10
xr 7.5
2
6.40512 7.5 10 5
t 100% 17.09% a 100% 33.33%
6.40512 10 5
Segunda interacion:
5 7.5
xr 6.25
2
Tercera iteración:
x r 6.25 7.5 6.875
2
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
0 1
xr 0.5
2
1 0
a 100% 100%
1 0
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.
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
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.
Primera interacion:
3.7(0.5 1)
xr 1 0.64273
1.47813 3.7
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.
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
1 0
xr 0.5
2
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
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%.
12(1 0)
x r 0 0.287425
29.75 (12)
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
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
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
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:
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
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
0.5 2
xr 1.25
2
2 0.5
a 100% 60%
2 0.5
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
0.875 1.25
a 100% 42.86%
0.875
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%
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:
Después de tres iteraciones, obtenemos una estimación de raíz de 1.21753 con un error
aproximado de 4.414%.
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
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
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:
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
7(4 5)
xr 5 4.22222
27
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
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
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
7(4.5 6)
x r 6 5.01754
3.6875 7
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
La segunda iteración es
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)
(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%:
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 (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:
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
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
Combinando ecuaciones:
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
400
f ( y) 1 (3 y)
9.81(3y y 2 / 2) 3
10
-20
-30
-40
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
Después de ocho iteraciones, obtenemos una estimación de raíz de 1.5078125 con un error
aproximado de 0.52%.
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
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.
f (h) Rh 2 h 3 V
3
Aquí hay un resumen de los resultados obtenidos con tres iteraciones de posición falsa:
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
(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;
>> 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 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 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í:
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 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í:
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
For Example 5.6, the Excel worksheet used for input looks like:
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 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.16103 %. 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.