Тут такие задания почти никто и не делает, потому что программисты сюда, в эту рубрику, заходят очень и очень редко, если появляются здесь вообще. Разве что только кому-нибудь срочно приспичит несколько поразмяться в решении интеллектуальных задач или сверкнуть своим умом - тогда совсем другое дело! И мне тоже что-то не очень хочется всё это писать. Короче, это задание для людей, которые действительно хоть что-то понимают в компьютерном программировании или по крайней мере изучают его всерьёз, а вовсе не для кого попало - вот поэтому охотников решать такие вещи здесь как правило и не находится. Но примерно так:
from fractions import Fraction as fr
from math import log as ln
def fun(x): return ln(1 + 1 / x)
def f(x, ε):
global q; y = 1 / (2 * x + 1)
yy = y * y; s, p, q, e = y, y, 1, 1e303
while abs(e) > ε: q += 2; p *= yy; e = p / q; s += e
return 2 * s
print('\033[1m', 5 * ' ', 18 * '︹')
print(4 * ' ', '〔 ТАБЛИЦА ФУНКЦИИ Y(X) = ㏑(X+1)/X) 〕')
print(6 * ' ', 18 * '︺')
Xнач, Xкон, dx, ε = map(float, input('Xнач Xкон dx ε: ').split())
n = int((fr(str(Xкон)) - fr(str(Xнач))) / dx)
print(56 * '=')
print('%7s%20s%16s%13s' % ('X:', 'Y(X):', 'ε:', 'N:'), '\n' + 56 * '=')
for i in range(n + 1):
x = Xнач + i * dx; y = f(x, ε)
print('%12.8f%22.16f%13.3e%8d' % (x, y, y - fun(x), (q+1)//2))
print(56 * '=')
Аргументы можно брать или больше единицы или меньше минус единицы:

Точность несколько портится при стремлении х→-1:

А в общем точность вполне сносная.
Y(X) = ㏑((X+1)/X)
или с разными скобками:
Y(X) = ㏑[(X+1)/X]
или так:
Y(X) = ㏑(1 + 1/X)
И ещё вид картинки в целом можно заметно улучшить. А ещё точность ε задаётся с клавиатуры какой она должна быть, а в таблице печатается колонка абсолютных погрешностей ε какими они являются на самом деле в сравнении с эталонной функцией, чего, кстати, в задании не требуется, но я на всякий случай сделала такой вывод для наглядности. Если это не нужно, тогда код программы можно чуть-чуть подсократить...