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

2 вар23 / Работа2_отчет

.docx
Скачиваний:
2
Добавлен:
01.06.2024
Размер:
129.65 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникация Российской Федерации

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

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

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

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

Лабораторная работа №2

По дисциплине «Численные методы»

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

Вариант 23

Выполнил: студент группы

Проверил: преподаватель

Москва, 2024

Цель работы

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. Решить задачу интерполяции в точке на компьютере.

Вычислять модули разности между текущим Pk(x) (Lk(x)) и

следующим Pk+1(x) (Lk+1(x)) значением многочлена в т. Х до тех пор, пока эта разность не станет <=0.001.

• Примечание. Для функции, заданной в таблице 2-1, четырех узлов

будет достаточно для решения данной задачи. В общем случае, для

решения задачи интерполяции в точке, может понадобится добавить

большее количество узлов, хотя и это не гарантирует решение.

Индивидуальное задание

0.23 - Ньютон

0.81 - Лагранж

Выполнение задания

Часть 1 - формула Ньютона, ручной расчет

Находим 4 подходящих узла для построения многочлена

Заполнение таблицы конечных разностей

0

1

2

3

X0

0.2

0.25

0.3

0.35

Y0

-4.024

-3.95

-3.861

-3.7555

dX1

0.05

0.05

0.05

0.05

dY1

0,074

0,089

0,1055

0,1235

dY2

0.015

0,0165

0,018

dY3

0,0015

0,0015

Производим расчет в Mathcad

Запишем результаты в таблицу

степень

P(x)

погрешность

1

-3.98

0.001

2

-3.981

0

3

-3.981

Часть 2 - формула Лагранжа, расчет на ПК

Находим 4 подходящих узла

Меняем нумерацию узлов

X0

0.85

X1

0.8

X2

0.9

X3

0.75

Расчет на ПК

def interpolation(xi, x, y):

    n = len(x)

    result = 0

    for i in range(n):

        term = y[i]

        for j in range(n):

            if j != i:

                term *= (xi - x[j]) / (x[i] - x[j])

        result += term

    return result

x = [0.85, 0.8, 0.9, 0.75]

y = [-2.1375, -1.816, -1.463, -1.077]

x0 = 0.83

x01 = 0.85

x02 = 0.8

x03 = 0.9

x04 = 0.75

interpolation_1 = interpolation(x02, x, y)

interpolation_2 = interpolation(x03, x, y)

interpolation_3 = interpolation(x04, x, y)

y01 = (interpolation_1)

y02 = (interpolation_2)

y03 = (interpolation_3)

z1 = abs(y01-y02)

z2 = abs(y02-y03)

print(f"x={x0}")

print(f"y={y01}")

print(f"y={y02}")

print(f"y={y03}")

print(f"погрешность_1 = {z1} погрешность_2 = {z2}")

Результат расчета

Схема работы алгоритма

Вывод

В данной работе мною были изучена интерполяция функций методами Лагранжа и Ньютона. Были проведены интерполяции каждым методом

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