Системное администрирование

Вычислить и вывести на экран в виде таблицы значения функции Python

Вычислить и вывести на экран монитора в виде таблицы значения
функции, заданной с помощью ряда Тейлора, на интервале от Xнач до Xкон
с шагом dx и точностью ε. Таблицу снабдить заголовком и шапкой. Каждая
строка таблицы должна содержать значение аргумента, значение функции и
количество просуммированных членов ряда
Deav Balyanev
Deav Balyanev
272
Тут такие задания почти никто и не делает, потому что программисты сюда, в эту рубрику, заходят очень и очень редко, если появляются здесь вообще. Разве что только кому-нибудь срочно приспичит несколько поразмяться в решении интеллектуальных задач или сверкнуть своим умом - тогда совсем другое дело! И мне тоже что-то не очень хочется всё это писать. Короче, это задание для людей, которые действительно хоть что-то понимают в компьютерном программировании или по крайней мере изучают его всерьёз, а вовсе не для кого попало - вот поэтому охотников решать такие вещи здесь как правило и не находится. Но примерно так:
 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:А в общем точность вполне сносная.
Вадим Сысков
Вадим Сысков
66 572
Лучший ответ
Вадим Сысков В заголовке функция записано несколько неправильно. Надо так:
Y(X) = ㏑((X+1)/X)
или с разными скобками:
Y(X) = ㏑[(X+1)/X]
или так:
Y(X) = ㏑(1 + 1/X)
И ещё вид картинки в целом можно заметно улучшить. А ещё точность ε задаётся с клавиатуры какой она должна быть, а в таблице печатается колонка абсолютных погрешностей ε какими они являются на самом деле в сравнении с эталонной функцией, чего, кстати, в задании не требуется, но я на всякий случай сделала такой вывод для наглядности. Если это не нужно, тогда код программы можно чуть-чуть подсократить...
Олег Потапов Как интересно, количество строк хвастовства в начале практически совпадает с количеством строк кода. А, и это очень сложная задача, светлейшие умы её не могли решить, но тут пришли вы. Гордитесь!
Денис Виговский Что за бред, вы хоть сами поняли что написали ахахах
Вадим Сысков Вот ещё психически больных шизофреников (кстати, ничего не смыслящих ни в математике, ни в компьютерном программировании !) тут только не хватало...))