import math
# Вариант 6
def f(x):
return x**4 - x - 1
a = -1.1
b = -0.1
h = 0.1
# Значения x и y
x = []
y = []
n = int(round((b - a) / h))
for i in range(n + 1):
xi = round(a + i * h, 10)
x.append(xi)
y.append(f(xi))
# Таблица конечных разностей
dy1 = [] # Δy
dy2 = [] # Δ²y
dy3 = [] # Δ³y
dy4 = [] # Δ⁴y
for i in range(len(y) - 1):
dy1.append(y[i + 1] - y[i])
for i in range(len(dy1) - 1):
dy2.append(dy1[i + 1] - dy1[i])
for i in range(len(dy2) - 1):
dy3.append(dy2[i + 1] - dy2[i])
for i in range(len(dy3) - 1):
dy4.append(dy3[i + 1] - dy3[i])
print("Таблица значений и конечных разностей:")
print(f"{'i':>2} {'x':>8} {'y':>12} {'Δy':>12} {'Δ²y':>12} {'Δ³y':>12} {'Δ⁴y':>12}")
for i in range(len(x)):
s_dy1 = f"{dy1[i]:.8f}" if i < len(dy1) else ""
s_dy2 = f"{dy2[i]:.8f}" if i < len(dy2) else ""
s_dy3 = f"{dy3[i]:.8f}" if i < len(dy3) else ""
s_dy4 = f"{dy4[i]:.8f}" if i < len(dy4) else ""
print(f"{i:>2} {x[i]:>8.2f} {y[i]:>12.8f} {s_dy1:>12} {s_dy2:>12} {s_dy3:>12} {s_dy4:>12}")
print("\nПроизводные по формулам с фото:")
print(f"{'i':>2} {'x_n':>8} {'yʹ(x_n)':>15} {'Rʹ3':>15} {'yʺ(x_n)':>15} {'Rʺ3':>15}")
# Формулы работают начиная с i >= 4,
# потому что нужны Δ³y_{n-3} и Δ⁴y_{n-4}
for i in range(4, len(x)):
# y'(x_n) ≈ 1/h * (Δy_{n-1} + 1/2 * Δ²y_{n-2})
y1 = (dy1[i - 1] + 0.5 * dy2[i - 2]) / h
# y''(x_n) ≈ 1/h² * (Δ²y_{n-2} + Δ³y_{n-3})
y2 = (dy2[i - 2] + dy3[i - 3]) / (h ** 2)
# Остаточные члены
# R'3(x_n) = 1/(3h) * Δ³y_{n-3}
R1 = dy3[i - 3] / (3 * h)
# R''3(x_n) = 11/(12h²) * Δ⁴y_{n-4}
R2 = 11 * dy4[i - 4] / (12 * h ** 2)
print(f"{i:>2} {x[i]:>8.2f} {y1:>15.8f} {R1:>15.8f} {y2:>15.8f} {R2:>15.8f}")