
KP_2_Mansurov_1323
.docx```//Задание 2 вариант 28 стр 51
def newton_forward_interpolation(x, y, xT):
deltaY = [y[i + 1] - y[i] for i in range(len(y) - 1)]
# Sum for forward interpolation
sum = deltaY[0]
term = 1
for i in range(1, len(y) - 1):
term *= (xT - x[i - 1]) / i
sum += term * deltaY[i]
result = y[0] + sum
return result
def newton_backward_interpolation(x, y, xT):
# Calculate first-order divided differences
deltaY = [y[i + 1] - y[i] for i in range(len(y) - 1)]
# Sum for backward interpolation
sum = deltaY[len(y) - 2]
term = 1
for i in range(1, len(y) - 1):
term *= (xT - x[len(x) - i]) / i
sum += term * deltaY[len(y) - i - 1]
result = y[len(y) - 1] + sum
return result
if __name__ == "__main__":
# Given values
x = [0.40, 0.46, 0.52] # x_i
y = [1.3366, 1.3521, 1.3677] # y_i
xT = 0.229 # xT
forward_result = newton_forward_interpolation(x, y, xT)
print(f"Approximate value of the function f(xT) at xT = {xT} (forward interpolation): {forward_result}")
backward_result = newton_backward_interpolation(x, y, xT)
print(f"Approximate value of the function f(xT) at xT = {xT} (backward interpolation): {backward_result}")