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

чм 2 / чм 2

.docx
Скачиваний:
22
Добавлен:
09.04.2023
Размер:
58.36 Кб
Скачать

Ордена Трудового Красного Знамени федеральное государственное бюджетное

образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра информатики

ЛАБОРАТОРНАЯ РАБОТА №2

«Интерполяция функций»

Выполнил: БИН2008 Ядринцев С.М.

Проверил: Воробейчиков Л. А.

Москва 2022 г.

Основное задание: 1. Выбрать из таблицы 2–1 индивидуальное задание для интерполяции:

• точку интерполяции x=a для интерполяции многочленом Ньютона;

• точку интерполяции x=b для интерполяции многочленом Лагранжа;

2. Для интерполяции в точке x=a выбрать из таблицы 2–2 с интерполируемой функцией 4 подходящих узла для построения многочленов 1, 2 и 3-ей степени.

3. Перенумеровать узлы интерполяции для каждого из методов интерполяции. Занести перенумерованные узлы в таблицы вида 2–3.

4. Выполнить вручную интерполяцию по заданной формуле в заданной точке x=a или x=b многочленами 1–й, 2–й и 3–й степени:

• заполнить таблицу конечных разностей (для интерполяционной формулы Ньютона);

• записать интерполяционные формулы для 1, 2 и 3-ей степени многочлена;

• выполнить расчеты по интерполяционным формулам для каждой степени многочлена; все промежуточные вычисления производить с сохранением всех значащих цифр, окончательные результаты округлять до 4 знаков после десятичной точки.

• занести полученные результаты в таблицу вида 2–4;для многочленов 1–й и 2–й степени вычислить и занести в таблицы 2-4 и 2-5 оценки погрешности интерполяции: модули разности между текущим Pk(x) (Lk(x)) и следующимPk+1(x) (Lk+1(x)) значением многочлена.

5. Решить задачу интерполяции в точке с точностью 0.0001 на компьютере.

6. Объяснить полученные результаты и сделать выводы.

Пункт 1 Индивидуальное задание Выбрать из таблицы 2–1 индивидуальное задание для интерполяции:

• точку интерполяции x=a для интерполяции многочленом Ньютона;

• точку интерполяции x=b для интерполяции многочленом Лагранжа;

Пункт 2 Выбор и нумерация узлов для формулы Ньютона Для ручной интерполяции в точке по 1-й формуле Ньютона выбираем 4 узла из таблицы 2-2 так, чтобы точка оказалась между узлами с номерами с 1 по 2 и добавляем узлы вправо.

№ узла

1

2

3

4

Пункт 3 Перенумеровать узлы интерполяции для каждого из методов интерполяции. Занести перенумерованные узлы в таблицы вида 2–3.

Пункт 4 Ручной расчёт по 1-й формуле Ньютона Заполним таблицу конечных разностей:

Запишем 1-ю интерполяционную формулу Ньютона: для многочленов 1-й, 2-й и 3-й степени и выполним расчёты по ним.

Определим значение :

Значение многочлена 1-й степени в точке x=0.23

Значение многочлена 2-й степени в точке x=0.23

Значение многочлена 3-й степени в точке x=0.23

Выражения для многочленов 1-й, 2-й и 3-й степеней могут быть получены после соответствующих преобразований формулы:

В нашем случае они будут иметь вид:

Степень многочлена

Погрешность

1

2

3

Вывод: получены выражения для интерполяционных многочленов 1-й, 2-й и 3-й степеней и их значения в точке . Оценку погрешности проведём в соответствие с неравенством:

Можно утверждать, что разность между точным значением функции и значением функции в точке после 3-х итераций не превышает . Точка интерполяции для формулы Лагранжа: Выбор и нумерация узлов для формулы Лагранжа

Для ручной интерполяции в точке по формуле Лагранжа выбираем из таблицы 2-2 4 узла так, чтобы точка оказалась в центре отрезка интерполяции: узлы с номерами с 20 по 23. Выбор точек определяется тем, чтобы при решении задачи интерполяции в точке с заданной точностью добавлять узлы симметрично относительно точки .

№15

№16

№17

№18

Следует отметить, что формула Лагранжа может использоваться как для таблиц с постоянным шагом, так и для таблиц с непостоянным шагом. Выбор точек определяется тем, чтобы при решении задачи интерполяции в точке с заданной точностью добавлять узлы симметрично относительно точки . Изменим нумерацию узлов интерполяции симметрично относительно точки для использования их в интерполяционных формулах и занесём в таблицу вида 2-3:

Компьютерный расчёт по формуле Лагранжа

Схема алгоритма приведена в разделе 2.2 пособия по алгоритмам. #include <iostream>

#include <cmath>

using namespace std;

double lgr(int n, double y[], double x[], double z) {

double r[4];

double b = 0;

for (int i = 0; i<n; i++) {

r[i] = y[i];

b = r[0];

}

for (int j = 0; j<(n-1); j++) {

for (int i = (j +1); i<n; i++) {

r[i] = ((z-x[j]) * r[i] - ((z - x[i]) * r[j])) / (x[i] - x[j]);

b = r[i];

}

}

return b;

}

int main () {

double y [] = {-2.1375, -1.8610, -1.4630, -1,0770};

double x [] = {0.75, 0.80, 0.85, 0.90};

double LL, d=1, eps=1E-3, z= 0.81, n=2;

double L = lgr (1, y, x, z);

cout << "Степень " << "Pk(x) " << "Погрешность" << endl;

do {

if (n > sizeof(y)) break;

LL = L;

L = lgr(n, y, x, z);

d = abs(LL - L);

n++;

cout << " " << n - 2 << " " << L << " " << d << endl;

} while (d>eps);

cout << "3a n-2 (" << n-2<<") итерации получено значение " << L << " с точностью " << d << endl;

return 0;

}

Соседние файлы в папке чм 2