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

KP_2_Russkikh_1323

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

```//Задание 2 вариант 28 стр 51

using System;

class Program

{

static void Main(string[] args)

{

// Заданные значения

double[] x = { 0.40, 0.46, 0.52 }; // x_i

double[] y = { 1.3366, 1.3521, 1.3677 }; // y_i

double xT = 0.229; // xT

// Вычисление приближенного значения функции с помощью интерполяции вперёд

double forwardResult = NewtonForwardInterpolation(x, y, xT);

Console.WriteLine("Приближенное значение функции f(xT) при xT = {0} (интерполяция вперёд): {1}", xT, forwardResult);

// Вычисление приближенного значения функции с помощью интерполяции назад

double backwardResult = NewtonBackwardInterpolation(x, y, xT);

Console.WriteLine("Приближенное значение функции f(xT) при xT = {0} (интерполяция назад): {1}", xT, backwardResult);

}

// Функция для вычисления приближенного значения функции по интерполяционной формуле Ньютона (интерполяция вперёд)

static double NewtonForwardInterpolation(double[] x, double[] y, double xT)

{

double result = 0;

// Разделенные разности

double[] deltaY = new double[y.Length - 1];

for (int i = 0; i < deltaY.Length; i++)

{

deltaY[i] = y[i + 1] - y[i];

}

// Сумма для интерполяции вперёд

double sum = deltaY[0];

double term = 1;

for (int i = 1; i < y.Length - 1; i++)

{

term *= (xT - x[i - 1]) / (i);

sum += term * deltaY[i];

}

result = y[0] + sum;

return result;

}

// Функция для вычисления приближенного значения функции по интерполяционной формуле Ньютона (интерполяция назад)

static double NewtonBackwardInterpolation(double[] x, double[] y, double xT)

{

double result = 0;

// Разделенные разности

double[] deltaY = new double[y.Length - 1];

for (int i = 0; i < deltaY.Length; i++)

{

deltaY[i] = y[i + 1] - y[i];

}

// Сумма для интерполяции назад

double sum = deltaY[y.Length - 2];

double term = 1;

for (int i = 1; i < y.Length - 1; i++)

{

term *= (xT - x[x.Length - i]) / (i);

sum += term * deltaY[y.Length - i - 1];

}

result = y[y.Length - 1] + sum;

return result;

}

}```

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