Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / ЧМ 12 вариант / ЛР2. Интерполяция функций. Полином Ньютона и Лангржа 12 вариант.odt
Скачиваний:
7
Добавлен:
18.10.2025
Размер:
26.5 Кб
Скачать

2.4. Формы таблиц для занесения результатов

Таблица 2–3

k

0

1

2

n

xk

x0

x1

x2

xn

yk

y0

y1

y2

yn

Таблица 2–4

(для многочлена Ньютона)

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

Pk(x)

Погрешность

1

P1(x)

|P1(x) – P2(x)|

2

P2(x)

|P2(x) – P3(x)|

3

P3(x)

Таблица 2-5

(для многочлена Лагранжа)

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

Lk(x)

Погрешность

1

L1(x)

|L1(x) – L2(x)|

2

L2(x)

|L2(x) – L3(x)|

3

L3(x)

2.5. Содержание отчета

1. Фамилия и имя студента, номер группы.

2. Название и цель лабораторной работы.

3. Индивидуальный вариант задания к работе.

4. Таблицы 2–3 с перенумерованными узлами интерполяции.

5. Интерполяционные формулы для ручных расчетов и результаты расчетов в таблицах 2–4 и 2-5.

6. Схема алгоритма и программа.

7. Выводы.

1)Точка интерполяции для формулы Лангража b = 0.96.

Выбор и нумерация узлов.

Для ручной интерполяции в точке x = b = 0.96 по 1 формуле Лангража выбираем 4 узла из таблицы 2–2 так, чтобы точка b = 0.96 оказалась между узлами с номерами с 1 по 2 и добавляем узлы симметрично относительно x0 = 0.95:

Таблица 2-1

Номера выбранных узлов (k)

xk

yk

17

0.90

-1.0770

18

0.95

-0.6565

19

1.00

-0.2000

20

1.05

0.2940

Выбор точек определяется тем, чтобы при решении задачи интерполяции в точке с заданной точностью добавлять узлы симметрично относительно точки x.

Перенумеруем узлы интерполяции симметрично относительно точки x=bдля использования их в интерполяционных формулах и занесем в таблицы вида 2–3:

Таблица 2 — 3:

k

0

1

2

3

xk

0.95

1.00

0.90

1.05

yk

-0.6565

-0.2000

-1.0770

0.2940

Ручной расчет по формуле Лагранжа.

Запишем интерполяционные многочлены Лагранжа 1–й, 2–й и 3–й степени и вычислим их значения в точке x = b = 0.96:

L1(x) = (x – 1)*(-0.6565)/(0.95 – 1) + (x – 0.95)*(-0.2)/(1 – 0.95) = -0.5652

L2(x) = (x – 1)*(x – 0.9)*(-0.6565)/((0.95 – 1)*(0.95 – 0.9)) + (x – 0.95)(x – 0.9)*(-0.2)/((1 – 0.95)*(1 – 0.9) + (x – 0.95)(x – 1)*(-1.077)/((0.9– 0.95)*( 0.9 – 1) = -0.56808

L3(x) = -0.56812

Выражение в явном виде:

f(x) = 2*x^3 + 1.5*x^2 + 0.5*x – 4.2

Занесем результаты в таблицу и вычислим оценки погрешности полученных значений для многочленов 1–й и 2–й степени:

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

Lk(x)

Погрешность

1

-0.5652

0.00288

2

-0.56808

0.00004

3

-0.56812

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

|f(x) – Ln (x)| <= |Ln+1(x) - Ln (x)|

|-0.568128 - (-0.56808)| <= |-0.568128 - (-0.56808)|

0.000048<=0.000048

3) Программа (Метод Ньютона)

print('Метод Ньютона') print('Линейная интерполяция') A1 = 0.12 X = [0.1, 0.15] Y = [-4.133, -4.0845] h = 0.05 a1 = (Y[1] - Y[0])/(X[1] - X[0]) print(a1) print('Линейная интерполяция в точке') def Line_inter(A,h): X = [0.1, 0.15] Y = [-4.133, -4.0845] q = (A - X[0]) / h y01 = Y[0] dy01 = Y[1] - Y[0] P11 = y01 + dy01 * q return P11 Li = Line_inter(0.12, 0.05) print(Li) print('Квадрат. интерполяция в точке') def Qvadrat_inter(A,h): X = [0.1, 0.15, 0.20] Y = [-4.133, -4.0845, -4.0240] q = (A - X[0]) / h y02 = Y[0] dy02 = Y[1] - Y[0] ddy02 = Y[2] - 2 * Y[1] + Y[0] P2 = y02 + dy02 * q + ddy02 * q * (q - 1) return P2 Qi = Qvadrat_inter(0.12, 0.05) print(Qi) print('кубич. интерполяция в точке') def Qubic_inter(A,h): X = [0.1, 0.15, 0.20, 0.25] Y = [-4.133, -4.0845, -4.0240, -3.9500] q = (A - X[0]) / h y0_3 = Y[0] dy0_3 = Y[1] - Y[0] ddy0_3 = Y[2] - 2 * Y[1] + Y[0] dddy0_3 = Y[3] - 2 * Y[2] + Y[0] P3 = y0_3 + dy0_3 * q + ddy0_3 * q * (q - 1) + dddy0_3 * q * (q - 1) * (q - 2) return P3 Qubi = Qubic_inter(0.12, 0.05) print(Qubi)

print('f(x) Метод Ньютона') a = 0.12 f1 = 2*a**3 + 1.5*a**2 + 0.5*a - 4.2 print(f1)

И ее результат:

Метод Ньютона

Линейная интерполяция

0.9699999999999955

Линейная интерполяция в точке

-4.1136

Квадрат. интерполяция в точке

-4.11648

кубич. интерполяция в точке

-4.12992

f(x)

-0.5681280000000002 -4.113600000000001