Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

KP_2_Mansurov_1323

.docx
Скачиваний:
0
Добавлен:
21.06.2024
Размер:
13.38 Кб
Скачать

```//Задание 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}")

Соседние файлы в предмете Конструирование программ