def secante_tabla(fx, xa, tolerancia):
dx = 4 * tolerancia
xb = xa + dx
tramo = dx
tabla = []
while (tramo >= tolerancia):
fa = fx(xa)
fb = fx(xb)
xc = xa - fa * (xb - xa) / (fb - fa)
tramo = abs(xc - xa)
tabla.append([xa, xb, xc, tramo])
xb = xa
xa = xc
return tabla
a = 3.592
b = 0.04267
# L atm/mol k
R = 0.082054
p = 10
xa = 1.5
tolerancia = 0.001
tramos = 100
# Temperatura predefinida
T = 300 # Cambia este valor según la temperatura deseada
fx = lambda x: (p + a / x**2) * (x - b) - R * T
dfx = lambda x: p - (a / x**2) + (2 * a * b / x**3)
tabla = secante_tabla(fx, xa, tolerancia)
n = len(tabla)
raiz = tabla[n - 1][2]
print('[xa ,\t xb , \t xc , \t tramo]')
for i in range(0, n, 1):
print(tabla[i])
print('raíz en: ', raiz)
ZGVmIHNlY2FudGVfdGFibGEoZngsIHhhLCB0b2xlcmFuY2lhKToKICAgIGR4ID0gNCAqIHRvbGVyYW5jaWEKICAgIHhiID0geGEgKyBkeAogICAgdHJhbW8gPSBkeAogICAgdGFibGEgPSBbXQogICAgd2hpbGUgKHRyYW1vID49IHRvbGVyYW5jaWEpOgogICAgICAgIGZhID0gZngoeGEpCiAgICAgICAgZmIgPSBmeCh4YikKICAgICAgICB4YyA9IHhhIC0gZmEgKiAoeGIgLSB4YSkgLyAoZmIgLSBmYSkKICAgICAgICB0cmFtbyA9IGFicyh4YyAtIHhhKQogICAgICAgIAogICAgICAgIHRhYmxhLmFwcGVuZChbeGEsIHhiLCB4YywgdHJhbW9dKQogICAgICAgIHhiID0geGEKICAgICAgICB4YSA9IHhjCgogICAgcmV0dXJuIHRhYmxhCgphID0gMy41OTIKYiA9IDAuMDQyNjcKIyBMIGF0bS9tb2wgawpSID0gMC4wODIwNTQKcCA9IDEwCnhhID0gMS41CnRvbGVyYW5jaWEgPSAwLjAwMQp0cmFtb3MgPSAxMDAKCiMgVGVtcGVyYXR1cmEgcHJlZGVmaW5pZGEKVCA9IDMwMCAgIyBDYW1iaWEgZXN0ZSB2YWxvciBzZWfDum4gbGEgdGVtcGVyYXR1cmEgZGVzZWFkYQoKZnggPSBsYW1iZGEgeDogKHAgKyBhIC8geCoqMikgKiAoeCAtIGIpIC0gUiAqIFQKZGZ4ID0gbGFtYmRhIHg6IHAgLSAoYSAvIHgqKjIpICsgKDIgKiBhICogYiAvIHgqKjMpCnRhYmxhID0gc2VjYW50ZV90YWJsYShmeCwgeGEsIHRvbGVyYW5jaWEpCm4gPSBsZW4odGFibGEpCnJhaXogPSB0YWJsYVtuIC0gMV1bMl0KcHJpbnQoJ1t4YSAsXHQgeGIgLCBcdCB4YyAsIFx0IHRyYW1vXScpCmZvciBpIGluIHJhbmdlKDAsIG4sIDEpOgogICAgcHJpbnQodGFibGFbaV0pCnByaW50KCdyYcOteiBlbjogJywgcmFpeikKCg==
[xa , xb , xc , tramo]
[1.5, 1.504, 2.4079914908459217, 0.9079914908459217]
[2.4079914908459217, 1.5, 2.352499646674397, 0.05549184417152464]
[2.352499646674397, 2.4079914908459217, 2.354492683241415, 0.0019930365670179917]
[2.354492683241415, 2.352499646674397, 2.3544955808627037, 2.8976212886888675e-06]
('ra\xc3\xadz en: ', 2.3544955808627037)