def f(x):
return x**4 - x - 1
a = -1.1
b = -0.1
h = 0.1
# Узлы
x = []
cur = a
while cur <= b + 1e-12:
x.append(round(cur, 10))
cur += h
# Значения функции
y = [f(xi) for xi in x]
n = len(x)
# Конечные разности
dy = [y[i + 1] - y[i] for i in range(n - 1)]
d2y = [dy[i + 1] - dy[i] for i in range(n - 2)]
d3y = [d2y[i + 1] - d2y[i] for i in range(n - 3)]
d4y = [d3y[i + 1] - d3y[i] for i in range(n - 4)]
print("Таблица конечных разностей:")
print(" i x y Δy Δ²y Δ³y Δ⁴y")
print("-" * 95)
for i in range(n):
print(
f"{i:2d} "
f"{x[i]:8.3f} "
f"{y[i]:14.10f} "
f"{dy[i] if i < len(dy) else '':>14} "
f"{d2y[i] if i < len(d2y) else '':>14} "
f"{d3y[i] if i < len(d3y) else '':>14} "
f"{d4y[i] if i < len(d4y) else '':>14}"
)
# Конечная точка xn
xn = x[-1]
# Формулы из фото
y1_xn = (dy[n - 2] + 0.5 * d2y[n - 3]) / h
y2_xn = (d2y[n - 3] + d3y[n - 4]) / h**2
# Остаточные члены из фото
R1_xn = (1 / (3 * h)) * d3y[n - 4]
R2_xn = (11 / (12 * h**2)) * d4y[n - 5]
print("\nРасчёт для конечной точки x_n:")
print(f"x_n = {xn}")
print(f"y'(x_n) ≈ {y1_xn:.10f}")
print(f"R3'(x_n) = {R1_xn:.10f}")
print(f"\ny''(x_n) ≈ {y2_xn:.10f}")
print(f"R3''(x_n) = {R2_xn:.10f}")
# Точные значения для проверки
exact_y1 = 4 * xn**3 - 1
exact_y2 = 12 * xn**2
print("\nТочные значения для проверки:")
print(f"y'(x_n) = {exact_y1:.10f}")
print(f"y''(x_n) = {exact_y2:.10f}")