You are on page 1of 6

M?todo de la falsa posici?

n, ejemplo 3

November 30, 2019

[1]: # Algoritmo de falsa posicion para raices


# Los valores de [a,b] son seleccionados
# desde la gráfica de la función
# error = tolera

import numpy as np

def posicionfalsa_tabla(fx,a,b,tolera):
fa = fx(a)
fb = fx(b)
c = b - fb*(a-b)/(fa-fb)
fc = fx(c)
tramo = abs(c-a)

tabla = [[a,c,b,fa, fc, fb, tramo]]


while (tramo > tolera):

cambia = np.sign(fa)*np.sign(fc)
if (cambia > 0):
tramo = abs(c-a)
a=c
else:
tramo = abs(b-c)
b=c
fa = fx(a)
fb = fx(b)
c = b - fb*(a-b)/(fa-fb)
fc = fx(c)

tabla.append([a,c,b,fa, fc, fb, tramo])

tabla = np.array(tabla)

return(tabla)

# PROGRAMA ############################

1
# INGRESO
fx = lambda x: 25*x**3 + 72*x**2 + 19*x - 101

a = 1 ; b = 2
tolera = 0.000000000000001
tramos = 100

# PROCEDIMIENTO
tabla = posicionfalsa_tabla(fx,a,b,tolera)
n=len(tabla)
raiz = tabla[n-1,1]

xi = np.linspace(a,b,tramos+1)
fi = fx(xi)
pendiente = (fx(b)-fx(a))/(b-a)
desde = fx(a) - pendiente*a
gi = desde + pendiente* xi

# SALIDA
np.set_printoptions(precision=4)
for i in range(0,n,1):
print('i = ',i)
print(' [a,c,b]: ', tabla[i,0:3])
print('[fa,fc,fb]: ', tabla[i,3:6])
print(' tramo: ', tabla[i,6])
print('raiz:', raiz)

i = 0
[a,c,b]: [1. 0.9634 2. ]
[fa,fc,fb]: [ 15. 6.4882 425. ]
tramo: 0.03658536585365857
i = 1
[a,c,b]: [0.9634 0.9473 2. ]
[fa,fc,fb]: [ 6.4882 2.8719 425. ]
tramo: 0.03658536585365857
i = 2
[a,c,b]: [0.9473 0.9402 2. ]
[fa,fc,fb]: [ 2.8719 1.2841 425. ]
tramo: 0.016070253276332158
i = 3
[a,c,b]: [0.9402 0.937 2. ]
[fa,fc,fb]: [ 1.2841 0.5768 425. ]
tramo: 0.0071615890910099456
i = 4
[a,c,b]: [0.937 0.9355 2. ]
[fa,fc,fb]: [5.7679e-01 2.5960e-01 4.2500e+02]

2
tramo: 0.003211934078444667
i = 5
[a,c,b]: [0.9355 0.9349 2. ]
[fa,fc,fb]: [2.5960e-01 1.1695e-01 4.2500e+02]
tramo: 0.0014446466636324207
i = 6
[a,c,b]: [0.9349 0.9346 2. ]
[fa,fc,fb]: [1.1695e-01 5.2704e-02 4.2500e+02]
tramo: 0.000650597547939169
i = 7
[a,c,b]: [0.9346 0.9345 2. ]
[fa,fc,fb]: [5.2704e-02 2.3756e-02 4.2500e+02]
tramo: 0.0002931657976108504
i = 8
[a,c,b]: [0.9345 0.9344 2. ]
[fa,fc,fb]: [2.3756e-02 1.0709e-02 4.2500e+02]
tramo: 0.0001321377287981651
i = 9
[a,c,b]: [0.9344 0.9344 2. ]
[fa,fc,fb]: [1.0709e-02 4.8278e-03 4.2500e+02]
tramo: 5.9564999624228676e-05
i = 10
[a,c,b]: [0.9344 0.9344 2. ]
[fa,fc,fb]: [4.8278e-03 2.1765e-03 4.2500e+02]
tramo: 2.685210477659794e-05
i = 11
[a,c,b]: [0.9344 0.9343 2. ]
[fa,fc,fb]: [2.1765e-03 9.8119e-04 4.2500e+02]
tramo: 1.2105307859888725e-05
i = 12
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [9.8119e-04 4.4234e-04 4.2500e+02]
tramo: 5.457302091560479e-06
i = 13
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [4.4234e-04 1.9942e-04 4.2500e+02]
tramo: 2.4602670358753187e-06
i = 14
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [1.9942e-04 8.9902e-05 4.2500e+02]
tramo: 1.1091427520870667e-06
i = 15
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [8.9902e-05 4.0530e-05 4.2500e+02]
tramo: 5.00026555494415e-07
i = 16
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [4.0530e-05 1.8272e-05 4.2500e+02]

3
tramo: 2.2542334288111476e-07
i = 17
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [1.8272e-05 8.2374e-06 4.2500e+02]
tramo: 1.0162598984564397e-07
i = 18
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [8.2374e-06 3.7136e-06 4.2500e+02]
tramo: 4.581532042635672e-08
i = 19
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [3.7136e-06 1.6742e-06 4.2500e+02]
tramo: 2.065459536737535e-08
i = 20
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [1.6742e-06 7.5475e-07 4.2500e+02]
tramo: 9.311564630465341e-09
i = 21
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [7.5475e-07 3.4026e-07 4.2500e+02]
tramo: 4.197866498856229e-09
i = 22
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [3.4026e-07 1.5340e-07 4.2500e+02]
tramo: 1.892494383426424e-09
i = 23
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [1.5340e-07 6.9155e-08 4.2500e+02]
tramo: 8.531797490718418e-10
i = 24
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [6.9155e-08 3.1177e-08 4.2500e+02]
tramo: 3.8463299212310176e-10
i = 25
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [3.1177e-08 1.4055e-08 4.2500e+02]
tramo: 1.7340151536870962e-10
i = 26
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [1.4055e-08 6.3364e-09 4.2500e+02]
tramo: 7.817324565451145e-11
i = 27
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [6.3364e-09 2.8566e-09 4.2500e+02]
tramo: 3.524203151528127e-11
i = 28
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [2.8566e-09 1.2878e-09 4.2500e+02]

4
tramo: 1.588817966080569e-11
i = 29
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [1.2878e-09 5.8057e-10 4.2500e+02]
tramo: 7.16271486567166e-12
i = 30
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [5.8057e-10 2.6168e-10 4.2500e+02]
tramo: 3.2291946894247303e-12
i = 31
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [2.6168e-10 1.1798e-10 4.2500e+02]
tramo: 1.4559464744934303e-12
i = 32
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [1.1798e-10 5.3149e-11 4.2500e+02]
tramo: 6.561418075534675e-13
i = 33
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [5.3149e-11 2.3974e-11 4.2500e+02]
tramo: 2.9598545836506673e-13
i = 34
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [2.3974e-11 1.0786e-11 4.2500e+02]
tramo: 1.3322676295501878e-13
i = 35
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [1.0786e-11 4.8601e-12 4.2500e+02]
tramo: 6.017408793468348e-14
i = 36
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [4.8601e-12 2.1885e-12 4.2500e+02]
tramo: 2.708944180085382e-14
i = 37
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [2.1885e-12 1.0232e-12 4.2500e+02]
tramo: 1.2212453270876722e-14
i = 38
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [1.0232e-12 4.2633e-13 4.2500e+02]
tramo: 5.329070518200751e-15
i = 39
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [4.2633e-13 1.9895e-13 4.2500e+02]
tramo: 2.6645352591003757e-15
i = 40
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [1.9895e-13 4.2633e-14 4.2500e+02]

5
tramo: 1.1102230246251565e-15
i = 41
[a,c,b]: [0.9343 0.9343 2. ]
[fa,fc,fb]: [ 4.2633e-14 -1.4211e-14 4.2500e+02]
tramo: 6.661338147750939e-16
i = 42
[a,c,b]: [0.9343 0.9343 0.9343]
[fa,fc,fb]: [ 4.2633e-14 -1.4211e-14 -1.4211e-14]
tramo: 1.065658149662856
i = 43
[a,c,b]: [0.9343 0.9343 0.9343]
[fa,fc,fb]: [ 4.2633e-14 -1.4211e-14 -1.4211e-14]
tramo: 0.0
raiz: 0.9343418503371439

[ ]:

You might also like