чм 2 / чм 2
.docxОрдена Трудового Красного Знамени федеральное государственное бюджетное
образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра информатики
ЛАБОРАТОРНАЯ РАБОТА №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;
}