Найти в Дзене

Интерполяционный многочлен (полином) Лагранжа

Впервые интерполяционный многочлен (полином) Лагранжа был опубликован в 1795 году. Суть его в том, чтобы вычислять в известном наборе значений, отсутствующее значение, то есть производить интерполяцию. Но у меня возник вопрос: неужели за 230 лет, никто не удосужился вникнуть в механизм расчета, а вникнув, не ужаснулся от степени абсурдности вычислений? Или тех, кто это сделал уже давно сожгли на костре, а новые не рискуют? Ну что же, сожгите и меня.
Теперь по порядку: 1) Полином Лагранжа позволяет высчитать отсутствующее значение (ось Y) между двумя «точками» (по оси Х) на основе значений соседних точек. Причём «главная фишка» в том, что не только по значениям соседних точек, как это делается простой интерполяцией при расчёте высотных отметок в строительстве, а по значениям всей группы «точек». 2) Естественная проблема в том, что возникает погрешность: чем больше «точек», тем больше погрешность. Да, я знаю, что существуют "исправители" погрешности многочлена Лагранжа, но это не имеет
Интерполяционный многочлен (полином) Лагранжа
Интерполяционный многочлен (полином) Лагранжа

Впервые интерполяционный многочлен (полином) Лагранжа был опубликован в 1795 году. Суть его в том, чтобы вычислять в известном наборе значений, отсутствующее значение, то есть производить интерполяцию.

Но у меня возник вопрос: неужели за 230 лет, никто не удосужился вникнуть в механизм расчета, а вникнув, не ужаснулся от степени абсурдности вычислений? Или тех, кто это сделал уже давно сожгли на костре, а новые не рискуют? Ну что же, сожгите и меня.

Теперь по порядку:

1) Полином Лагранжа позволяет высчитать отсутствующее значение (ось Y) между двумя «точками» (по оси Х) на основе значений соседних точек. Причём «главная фишка» в том, что не только по значениям соседних точек, как это делается простой интерполяцией при расчёте высотных отметок в строительстве, а по значениям всей группы «точек».

2) Естественная проблема в том, что возникает погрешность: чем больше «точек», тем больше погрешность. Да, я знаю, что существуют "исправители" погрешности многочлена Лагранжа, но это не имеет смысла, т.к. сглаживать погрешность абсурда так же нелепо как и сам абсурд.

3) Для интерполяции нужно вычислить базисный множитель Лагранжа. Li(x).

4) А теперь самая главная фича, которую лично я считаю багом: базисный множитель Лагранжа это «коэффициент», который высчитывается (ВНИМАНИЕ!!!)
на основании «названий» «точек». «Точки» я беру в кавычки, так как они весьма абстрактны. Например, мы не можем присвоить точкам по оси Х — даты (например, 01.01.2025) или названия (например, Дом №1). Мы должны присваивать «точкам» условные числовые значение (!), причём можно даже и отрицательные и/или дробные. Например: 1, 101, -10, 5/6, -8/9.

То есть, если у нас есть результаты измерений температуры наружного воздуха от 01.01.2025 до 31.12.2025, то мы должны каждой дате дать условное числовое значение: хоть по порядку — 1, …, 365; хоть случайным образом — 65, - 3/75, 654. Причем задание «названиям» «точек» отрицательных чисел кажется мне первым абсурдом в условиях интерполяции, потому что мы не может принять за 0, например «сегодня», и то, что было «вчера» будет иметь минусовое значение, а то что будет «завтра» - плюсовое. Интерполяция это не экстраполяция, а значит никакого «завтра» не существует. Так же как не существует и «вчера». То есть, если мы измеряли температуру воздуха только весь 2025 год, то при помощи полинома Лагранжа мы не может высчитать температуру воздуха в 2024 или в 2026 году. Полином Лагранжа это инструмент интерполяции, то есть нахождение отсутствующих значений внутри массива известных данных.

5) И вот благодаря такому способу обозначения «точек» абсурд набирает обороты. В примере с замером температуры в течение 2025 года, чтобы полином Лагранжа работал, мы реальные даты заменили порядковыми числами дней в году. Имея «точки» с «названиями» 1, …, 154, (в 155 день замеры не производились), 156, …, 365, мы можем «высчитать» температуру воздуха на 155 день. А можем и на 1,5(!) день или на 300,3(!) день.

6) А вот и ГЛАВНЫЙ АБСУРД всего полинома Лагранжа: при изменении «названий» «точек» результат вычисления ИЗМЕНИТСЯ.

К этому посту я прикрепил
Excel-файл с запрограммированным полиномом Лагранжа. Для примера я взял историческую цену Биткоина за 365 дней (от 17.04.2024 до 17.05.2025), можно было бы взять и историю температуры атмосферного воздуха в Москве, но я её не нашел. Даты я заменил на порядковое число от 1 до 365. Значение на 299 день из таблицы я удалил (хотя знаю его по фактической истории) и прошу полином интерполировать мне цену на 299 день. У меня цена биткоина в 299 день из известных 365 получилась = -167 679 799 316 065 000 000 000 000 000 000 000 000 долларов (обратите внимание на минус), при фактически известной 96125 (см. приложенный *.xlsx).

В результате, чем больше количество «точек», в нашем случае — дней, тем абсурднее получается результат. Чем меньше «точек», тем результат более похож на реальность, но не достигает её.

Понять абсурдность полинома Лагранжа можно очень просто: в приложенном excel-файле попросите полином высчитать цену на любой известный (имеющийся в таблице) день. В это случае имеющийся день получит множитель Лагранжа Li(x) равный 1, а следовательно и абсолютно точную цену, то есть ту, которая указана в таблице, так как 1 умножить на цену = цена. Остальные дни, получат множитель Лагранжа Li(x) равный 0, а следовательно цену, равную нулю, так как 0 умножить на цену = 0.

В качестве гротескного примера для демонстрации степени абсурдности интерполяционного полинома Лагранжа приведу конкретный жизненный пример. Просто ужаснитесь масштабу абсурдности.

Пример: на улице стоит 10 старых домов, документации на которые не сохранилась, а следовательно площадь домов не известна. В целях кадастровой оценки, мэрия попросила владельцев домов пустить кадастровых инженеров в свои дома, чтобы те могли физически померить площадь домов. Девять владельцев пустили инженеров в дом, а один владелец отказался их пускать. В результате инженеры предоставили в мэрию такой отчёт:
№ дома 23, площадь - 80,51 кв.м.
№ дома 23/1, площадь - 120,35 кв.м.
№ дома 23/2, площадь - 750,55 кв.м.
№ дома 24, площадь - 45,26 кв.м.
№ дома 26, площадь - 85,32 кв.м.
№ дома 27. Владелец не впустил инженеров в дом для измерений
№ дома 28/3, площадь - 23,15 кв.м.
№ дома 28/4, площадь - 521,32 кв.м.
№ дома 29, площадь - 90,12 кв.м.
№ дома 30, площадь - 46,75 кв.м.

Мэрия решила высчитать площадь дома, в который не пустили инженеров, при помощи интерполяционного полинома Лагранжа, и получила площадь дома №27 равную 87,02 кв.м.

Идём дальше. В связи с тем, что дома 28/1, 28/2 разрушились от старости, а остались только дома с номерами 28/3 и 28/4, мэрия решила оставшимся домам присвоить номера разрушившихся. То есть дому 28/3 присвоили номер 28/1, а дому номер 28/4 присвоили номер 28/2. И, ба-бах, площадь дома №27 составила уже — 105,37 кв.м.

Математическая функция F(x) это ЗАВИСИМОСТЬ между входными и выходными данными. Что может быть общего у «точки» (входящие данные), которая может быть кадастровым номером дома, с площадью самого дома (выходные данные)? И это при том, что «точкой» может быть не только кадастровый номер дома, но и порядковые числа домов слева на право или справа на лево, или вообще любое число «с потолка».

- А?! А?!

Скачать интерполяционный многочлен (полином) Лагранжа в формате Excel *.xls

Интерполяционный многочлен (полином) Лагранжа.xlsx