Составить интерполяционный многочлен лагранжа расчет провести в ms excel
В задачах теории колебаний, электродинамики и других разделах прикладной математики широко применяется аппроксимация функций при описании физических параметров сред. В задачах вычислительной математики аппроксимация функций является основой для разработки многих методов и алгоритмов.
Аппроксимация, или приближение — научный метод, состоящий в замене одних объектов другими, в том или ином смысле близкими к исходным, но более простыми. Иными словами, аппроксимация некоторой функции y=f(x) заключается в замене другой функцией g(x, a0,a1,…, an) так, чтобы отклонение g от f(x) удовлетворяло в некоторой области (на множестве Х) определенному условию.
При этом функция g(x, a0,a1,…, an) обычно выбирается с учетом специфических особенностей рассматриваемой функции f(x). Если множество Х дискретно, то приближение называется точечным, если же Х есть отрезок a≤x≤b, то приближение называется интегральным.
Частным случаем аппроксимации является интерполяция.
Обычно задача аппроксимации распадается на две части:
1. Сначала устанавливают вид зависимости y=f(x) и, соответственно вид эмпирической формулы, то есть решают, является ли она линейной, квадратичной, логарифмической или какой-либо другой.
2. После этого определяются численные значения неизвестных параметров выбранной эмпирической формулы, для которых приближение к заданной функции оказывается наилучшим.
Иной подход к решению задачи аппроксимации:
- Если нет каких-либо теоретических соображений для подбора вида формулы, обычно выбирают функциональную зависимость из числа наиболее простых, сравнивая их графики с графиком заданной функции.
- После выбора вида формулы определяют ее параметры. Для наилучшего выбора параметров задают меру близости аппроксимации экспериментальных данных. Во многих случаях, в особенности если функция f(x) задана графиком или таблицей (на дискретном множестве точек), для оценки степени приближения рассматривают разности f(x)φ(xi) для точек x0, x1, …, xn.
Для практики важен случай аппроксимации функции многочленами, т.е.
Интерполяционный полином Лагранжа.
1.1. Теоретические основы метода.
Интерполяционный полином Лагранжа — многочлен минимальной степени, принимающий данные значения в данном наборе точек. Для n+1 пар чисел (x 0 , y 0 ),(x 1 , y 1 )… (xn , yn ), где все xj различны, существует единственный многочлен L ( x ) степени не более n, для которого L ( xj )= yj.
Интерполяционный полином Лагранжа имеет вид:
где li ( x ) – базисные полиномы, определяющиеся по формуле:
li ( x ) обладают следующими свойствами:
- являются многочленами степени n;
Отсюда следует, что L ( x ), как линейная комбинация li ( x ), может иметь степень не больше n, и L ( xi )= yi.
Оценку погрешности определяют по формуле:
| f ( x )- Ln ( x )| ≤ | Ln +1 ( x )- Ln ( x ) | (4)
Выполнить интерполяцию таблично заданной функции y = f ( x ).
i | Х | Y |
0 | 0.0 | 0.979498 |
1 | 0.1 | 1.060831 |
2 | 0.2 | 1.138837 |
3 | 0.3 | 1.213312 |
4 | 0.4 | 1.284076 |
5 | 0.5 | 1.350965 |
6 | 0.6 | 1.413842 |
7 | 0.7 | 1.472590 |
8 | 0.8 | 1.527116 |
9 | 0.9 | 1.577351 |
Вычислить значение интерполирующей функции в точке a=0.865. Оценить погрешность интерполяции.
1.2 Синтез полинома Лагранжа.
Перенумеруем узлы следующим образом: x 0 – ближайший к заданной точке a узел и т.д.
i | Х | Y |
0 | 0.9 | 1.577351 |
1 | 0.8 | 1.527116 |
2 | 0.7 | 1.472590 |
3 | 0.6 | 1.413842 |
4 | 0.5 | 1.350965 |
5 | 0.4 | 1.284076 |
6 | 0.3 | 1.213312 |
7 | 0.2 | 1.138837 |
8 | 0.1 | 1.060831 |
9 | 0.0 | 0.979498 |
Построим интерполяционный многочлен Лагранжа для n=2. В этом случае он будет иметь вид:
l0= ;
l1= ;
l2= ;
При увеличении порядка многочлена до n=4, полином Лагранжа будет выглядеть следующим образом:
При этом, все базисные полиномы необходимо полностью пересчитать:
l 0 = ;
l 1 = ;
l 2 = ;
l 3 = ;
l 4 = ;
И, наконец, составим полином Лагранжа при n=9:
Вновь пересчитываем базисные полиномы:
l 0 = ;
l 1 = ;
l 2 = ;
l 3 = ;
l 4 = ;
l 5 = ;
l 6 = ;
l 7 = ;
l 8 = ;
l 9 = .
Интерполяция полиномом Лагранжа возможна для произвольно заданных узлов интерполяции. Однако из приведенных выше расчетов видно, что добавление хотя бы одного нового узла интерполяции влечет за собой не только появление нового слагаемого, но и пересчет всех ранее вычисленных слагаемых.
Блок схема алгоритма интерполяции полиномом Лагранжа представлена на рис.1.
- количество узлов интерполяции N;
- значение аргумента х в заданной точке;
- массив известных значений аргументов х(i) и функции y(i), сведенных в один двумерный массив arg(i,j). При этом, в связи с тем что значения аргументов изменяются в заданном диапазоне с равным интервалом, их значения вычисляются автоматически и записываются в первый столбец массива arg(i,1). Значения функции вводятся с клавиатуры и сохраняются во втором столбце (arg(i,2));
- порядок многочлена Лагранжа k.
- массив табличных значений аргументов arg(i,1) и функции arg(i,2);
- массив значений многочленов Лагранжа L();
- погрешность вычислений Е.
Программа включает в себя функцию lagrange блок-схема алгоритма которой, представлена на рис. 2. Функция принимает входные данные: порядок полинома Лагранжа, значение аргумента в заданной точке, массив табличных значений аргументов и функции в виде двумерного массива. И возвращает значение многочлена Лагранжа порядка k в точке х.
В рамках подготовки курса для бакалавров МФТИ я понял, что в моем блоге не так много заметок по использованию Excel в математике и физике. Каково же было мое удивление, когда я обнаружил, что книг по этой теме на русском языке буквально единицы. Ранее я опубликовал Вильям Дж. Орвис. Excel для ученых, инженеров и студентов. В заметке представлены три варианта нахождения интерполяционного полинома Лагранжа: таблица на листе Excel, функция VBA, функция листа Excel на основе REDUCE и LAMBDA. В заметке использованы материалы книги Алексея Васильева Числовые расчеты в Excel. Бумажная и электронная версии книги доступны на сайте издательства.
Рис. 1. Вычисление интерполяционного полинома по методу Лагранжа; график табулируемой функции (штрихованная линия) и интерполяционного полинома (сплошная линия); чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке
Алгоритм
Задача интерполирования обычно решается для того, чтобы «восстановить» по набору дискретных данных аналитическую функциональную зависимость. Нередко в качестве функции, на основе которой строится интерполяционная зависимость, выбирают полиномиальные выражения. Предположим, имеется набор узловых точек х1, х2, …, хn и набор значений y1, y2, …, yn неизвестной функции в этих точках. Задача – построить зависимость f(x) такую, чтобы соответствующая кривая проходила через все точки (xk, yk) (k = 1, 2, …, n), т.е. необходимо, чтобы для всех k выполнялись соотношения f(xk) = yk.
Для однозначного определения коэффициентов интерполяционного полинома его степень должна быть на единицу меньше, чем количество точек, по которым выполняется интерполирование. Технически коэффициенты полинома можно вычислить несколькими методами. Наиболее популярны полином Лагранжа и полином Ньютона.
Полином имеет степень n, поскольку строится по n + 1 точке: индексация точек (хm, уm) начинается с нуля, а последний индекс равен n. Функции ϕm(х) являются полиномами степени n, причем такими, что в узловых точках xk имеют место соотношения: ϕm(хk) = 0, если k ≠ m, и ϕm(хk) = 1, если k = m. Эти полиномы вычисляются в виде произведений
Метод Лагранжа в таблице на листе Excel
Реализуем метод Лагранжа в Excel для табулированной по 11 равноудаленным узловым точкам (на интервале значений аргумента от -2π до 2 π) функции
См. рис. 1. В столбце А – аргумент, В – значение функции, С – значения интерполяционного полинома построенного по методу Лагранжа. Количество точек в столбце А зависит от целей интерполяции. Поскольку мы далее хотим построить график, точек выбрано много и они расположены равномерно на интервале интерполяции. Частота этих точек значительно выше, чем частота узловых точек, на основе которых создается полином.
Ячейки D4:N4 содержат значения узловых точек, на основе которых мы создаем интерполяционный полином. Значения полинома в узловых точках отображаются в ячейках D5:N5. В ячейках D3:N3 указаны индексы узловых точек.
Основные вычисления выполняются в ячейках D7:N107 и, как результат, в ячейках С7:С107 вычисляются значения интерполяционного полинома в точках, которые указаны в ячейках А7:А107. В ячейках D7:N107 содержатся значения функций ϕm(х) для разных аргументов интерполяционного полинома х и разных индексов узловых точек m. В каждой строке диапазона D7:N107 находятся значения функций ϕm(х) для одного и того же аргумента х, но разных индексов m. В столбцах диапазона D7:N107 содержатся значения для разных аргументов х, и одного и того же индекса m. В диапазоне D7:N107 три типа формул: для левого D7: D107 и правого N7:N107 краев и остальных столбцов Е7:М107. С формулами можно ознакомиться в приложенном Excel-файле.
Выделите диапазон А7:С107 и постройте график. Чтобы добавить узловые точки, скопируйте диапазон D4:N5 в буфер обмена, выделите диаграмму, пройдите Главная –> Вставить –> Специальная вставка. Настройте параметры в окне Специальная вставка. Нажмите Ok. Отформатируйте вставленный ряд: отмените линию и добавьте встроенный маркер.
Рис. 2. График функции f(x) = sin(x)/(1 + x 2 ), интерполяционный полином Лагранжа и узловые точки
Видно, что вычисленные нами значения интерполяционного полинома в узловых точках совпадают со значениями функции. В других точках совпадение не столь хорошее. К сожалению, значительные осцилляции на границах интервала интерполирования являются типичными для этого метода.
Функция VBA
Можно упростить вычисления и отказаться от громоздкой промежуточной таблицы с вычислениями, если воспользоваться кодом VBA.
Пояснение кода
Функция ЛАГРАНЖ() имеет три аргумента: диапазон ячеек со значениями узловых точек (Рх), диапазон ячеек со значениями интерполируемой функции в узловых точках (Ру), а также аргумент, для которого вычисляется значение интерполяционного полинома Лагранжа (z). Функция возвращает числовой результат типа Double.
Поскольку третий аргумент функции может быть как числовым значением, так и ссылкой на ячейку, в теле функции значение этого аргумента записываем в переменную х. Если третий аргумент – число, то процесс «переписывания» ничего не добавляет. Если же третий аргумент – ссылка на ячейку, то присваивание значения ячейки локальной числовой переменной позволяет снять неоднозначность в определении типа третьего аргумента.
Алгоритм использует количество узловых точек. Явно этот параметр в аргументе функции ЛАГРАНЖ() отсутствует. Но он вычисляется, как количество ячеек в диапазоне, переданном первым аргументом функции ЛАГРАНЖ(). Поэтому мы объявляем переменную n = Рх.Count. Свойство Count для диапазона возвращает количество ячеек.
Основные вычисления производятся в блоке из вложенных условных операторов. Для использования в этих операторах объявляются две целочисленные переменные i и j. В переменной L накапливается полиномиальная сумма, а в переменной phi произведение в соответствии с формулой (2).
Перед началом выполнения вложенных операторов цикла переменной L присваивается значение 0. Индексная переменная i во внешнем цикле пробегает значения от 1 до n. В начале каждой итерации переменной phi присваивается значение 1. После этого последовательно запускаются два идентичных цикла. Основное различие между ними – диапазон изменения индексной переменной j. Для первого цикла она изменяется от 1 до i-1, а для второго цикла — от i+1 до n. Таким образом, при фиксированном значении i переменная j пробегает все значения от 1 до n, за исключением значения i. За каждую такую итерацию переменная phi сначала умножается на величину (x-Px.Cells(j).Value), а затем делится на величину (Px.Cells(i).Value-Px.Cells(j).Value). Здесь следует учесть, что Рх.Сеlls(индекс).Value – это значение ячейки с указанным индексом в диапазоне Рх (т.е. это значение узловой точки).
После того как значение переменной phi (для данного значения i) вычислено, командой L = L+phi * Ру.Cells(i).Value к полиномиальной сумме добавляем очередное слагаемое. Здесь Py.Cells(i).Value – ссылка на значение ячейки в диапазоне Ру со значениями табулированной функции. В итоге значение переменной L возвращается как результат функции (команда ЛАГРАНЖ = L).
Работа функции ЛАГРАНЖ()
Функцию ЛАГРАНЖ() можно использовать на рабочем листе. Рассмотрим новый пример. Ячейки А4:В9 содержат данные об узловых точках и значениях функции f(x) = x*exp(-x). При этом в ячейках А4:А9 указаны несколько неравномерно распределенных на интервале от 0 до 7 точек.
Рис. 3. Пользовательская функции для вычисления интерполяционного полинома Лагранжа
Как мы отмечали ранее, интерполяционный полином не везде дает хорошее приближение для табулированной функции, даже с учетом того, что последняя достаточно плавная.
Вычисление полинома Лагранжа на основе функций REDUCE и LAMBDA
В декабре 2020 года Microsoft анонсировал функцию LAMBDA, которая позволяет определять пользовательские функции, написанные на языке формул Excel. А в июле 2021 г. объявил о создании новых функций, основанных на LAMBDA. Я недавно описал работу с LAMBDA и новыми функциями Excel. Не могу сказать, что написание сложных конструкций на основе этих функций проще, чем кода VBA, но как учебный пример, это весьма интересно.[1]
Пример. Построить многочлен Лагранжа 3-й степени, если заданы значения в 4-х узлах интерполяции:
xi | -1 |
yi | -1 |
Решение: Многочлен Лагранжа для четырех узлов интерполяции запишется так –
Для вычисления значения многочлена в точке х можно воспользоваться электронными таблицами Exel (рис. 18). В ячейки А3:А6 и В3:В6 записываются соответствующие значения yi и xi. В ячейки С3:С6 – формулы для вычисления pi(x). В столбце D3:D7 вычисляется значение
A | B | C | D |
Вычисление многочлена Лагранжа | |||
yi | xi | X | |
-1 | -1 | =$D$2-B3 | =A3*(C5*C4*C6)/((B3-B4)*(B3-B5)*(B3-B6) |
Копировать С3 в С6 | =A4*(C3*C5*C6)/((B4-B3)*(B4-B5)*(B4-B6) | ||
=A5*(C3*C4*C6)/((B5-B3)*(B5-B4)*(B5-B6) | |||
=A6*(C3*C4*C5)/((B6-B3)*(B6-B4)*(B6-B5) | |||
Значение L3(x) | =СУММ(D3:D6) |
4 .Варианты лабораторных работ для решения алгебраических и трансцендентных уравнений .
Задания: На отрезке [-10, 10] определить корни следующих уравнений:
8. x^3 – 0,1x^2+0,4x-1,5=0
5. Варианты лабораторных работ для решения систем линейных алгебраических уравнений .
Найти решение системы линейных уравнений методом итераций с точностью е=10-3:
Варианты лабораторных работ для решения систем линейных алгебраических уравнений .
Найти решение системы линейных уравнений методом итераций с точностью е=10-3:
Варианты лабораторных работ для решения систем линейных алгебраических уравнений .
Найти решение системы линейных уравнений методом итераций с точностью е=10-3:
Варианты лабораторных работ для решения систем линейных алгебраических уравнений .
Найти решение системы линейных уравнений методом итераций с точностью е=10-3:
6. Варианты лабораторных работ для решения задач интерполирования .
Задания. Построить интерполяционный полином Лагранжа L(x). Вычислить приближенное значение F(x) с помощью L(x) в точке х= , выполнить вычисления с помощью Exel.
xk | 0.1 | 0.3 | 0.4 | 0.6 |
yk | -0.1 | 0.5 | 0.8 | 1.7 |
xk | -1 | -0.5 | 0.1 | 0.4 |
yk | 1.0 | 2.2 | 1.7 | 0.8 |
xk | 1.1 | 1.2 | 1.4 | 1.7 |
yk | -2.0 | -1.8 | -1.3 | -1.0 |
xk | -1.0 | -0.5 | 0.3 | |
yk | 0.9 | 0.7 | 0.4 | 0.8 |
xk | 3.2 | 3.4 | 3.7 | |
yk | -14 | -10 | -8 | -12 |
xk | 1.0 | 3.0 | 7.0 | 10.0 |
yk | 0.3 | 0.7 | 0.9 | 1.0 |
xk | -10.0 | -8.0 | -5.0 | -2.0 |
yk | 6.0 | 3.0 | 0.0 | -4.0 |
xk | 2.0 | 3.0 | 5.0 | 6.0 |
yk | 0.7 | 1.2 | 2.2 | 3.0 |
xk | 0.7 | 1.2 | 2.2 | 3.0 |
yk | 0.8 | 1.0 | 1.3 | 1.2 |
xk | ||||
yk | 0.01 | 0.03 | 0.08 | 0.12 |
xk | -10 | -8 | -5 | -2 |
yk | -2 | |||
xk | ||||
yk | 0.1 | -0.2 | -0.3 | |
xk | 2.0 | 3.2 | 4.2 | 5.6 |
yk | -15 | -10 | -8 | -6 |
xk | -4 | -3 | -2 | |
yk | ||||
xk | 10.5 | 11.5 | 12.5 | 13.0 |
yk | -6 | -7 | -5 |
6. Варианты лабораторных работ для решения задач интерполирования .
Задания. Построить интерполяционный полином Лагранжа L(x). Вычислить приближенное значение F(x) с помощью L(x) в точке х= , выполнить вычисления с помощью Exel.
Для метода Лагранжа значение n+1=5, то есть порядок интерполяционного полинома n=4.
В общем случае интерполяционный полином Лагранжа представляется как:
где: yi – значение исходной таблицы данных.
Qi – вспомогательные функции.
Для нашего случая полином 4-го порядка равен:
1.2.4 Определение вспомогательных функций Qi(x)
Вспомогательные функции Qi(x) определяются как
Для нашего полинома вспомогательные функции будут следующими:
1.2.5 Определение интерполяционного полинома
Подставляя вспомогательные функции и значения ординат узлов интерполяции получаем необходимую интерполяционную функцию.
L4(x) = y0 + y1 +
+ y2 + y3 +
+ y4
Восстановление исходной функции в заданной точке, при помощи интерполяционного полинома
Примем точку, в которой будем восстанавливать исходную функцию за x = -2.
L4(-2) = -14.121 + +4.206 - 0.99 -
6.294 +9.031
1.2.7 Определение погрешности интерполяции путем сравнения значения х, полученного по интерполяционному полиному, и рассчитанного по f(x)
Рис.1 - Определение интерполяционного полинома Лагранжа
f(-2) = -2 +10sin(-2+1) = -10.4147
Для оценки погрешности между исходной и интерполяционной функции воспользуемся формулой:
R(-2)=|-10.4147 – (-5.6636)| = 4.75115
Вывод
Мы получили значительную погрешность и для того, чтобы её снизить необходимо увеличить число узлов на заданном интервале.
ЗАДАНИЕ 2
Используя полученные на предыдущем этапе точки построить аппроксимирующие полиномы второго порядка у = a2х 2 + a1x + a0 методом наименьших квадратов при всех одинаковых весовых коэффициентах и при весовом коэффициенте в третьей точке в 3 раза большем, чем в остальных (т.е. при 3=3). Получить среднеквадратичную погрешность аппроксимации, величину квадратичного критерия близости и расчётное значение y в третьей точке. Сравнить полученные результаты. Сделать выводы о том, устраивает ли полученное аппроксимирующее уравнение второго порядка по погрешности, сравнивая среднеквадратичную погрешность с заданной погрешностью в обоих случаях, т.е. и при всех одинаковых весовых коэффициентах и при 3=3. Если результат не устраивает, то наметить путь, что делать в таком случае дальше. Также проанализировать, как повлияло введение весового коэффициента 3=3 на точность аппроксимации в третьей точке (по величине абсолютной погрешности в этой точке) и на точность аппроксимации в целом, (по величине критерия близости).
Примечание: Задача аппроксимации, таким образом, выполняется дважды. В обоих случаях необходимо привести выводы всех расчётных формул и алгоритм расчёта, а не просто результат по готовому пакету программ.
Зачётная книжка № Д-12091; N10 = 91/10 остаток 1
2.2.1 Исходные данные из предыдущей задачи
f(x) = x + 10sin(x+1); интервал [-10;5/4]
Таблица 3 – исходные данные
Номер узла | Значение аргумента, x | Значение функции, f(x) |
0 | -10 | -14.1212 |
1 | -7 | -4,20585 |
2 | -4,5 | -0,99217 |
3 | -1.5 | -6,294 |
4 | 1,25 | 9,030732 |
2.2.2 Определение аппроксимирующей функции при помощи метода наименьших квадратов для равных весовых коэффициентов
В общем случае квадратичный критерий близости равен:
; (1)
; (2)
где - заданные табличные значения функции;
- расчетные значения по аппроксимирующей функции;
- весовые коэффициенты, учитывающие относительную важность i-й
В качестве аппроксимирующего уравнения выбираем уравнение второго порядка с n =5:
; (3)
В качестве критерия близости – критерий (1).
Из математического условия минимума функции R, после постановки уравнения (3) в выражение (1) принимает вид:
; (4)
R = f(d0; d1; d2) – является равенством 0, частных производных этой функции.
- математическое условие. (5)
Из решения системы (5) находим коэффициенты d0; d1; d2.
Þ
После преобразования (сокращения на два, раскрытия скобок, изменения порядка суммирования) получим:
Þ (6)
= 5d0;
= -10 – 7 - 4,5 - 1,5 + 1,25 = -21,75
= (-10) 2 + (-7) 2 + (-4,5) 2 + (-1,5) 2 +1,25 2 = 173,0625
= (-10) 3 + (-7) 3 + (-4,5) 3 + (-1,5) 3 +1,25 3 = -1435,547
= (-10) 4 + (-7) 4 + (-4,5) 4 + (-1,5) 4 +1,25 4 = 12818,566
= -14,1212 - 4,20585 - 0,99217 - 6,294 + 9,030732 = -16,58
= -14,1212×(-10)+(- 4,20585)×(-7)+(- 0,99217)×(-4,5)+(- 6,294)×(-1,5) +
= -14,1212×(-10) 2 +(- 4,20585)×(-7) 2 +(- 0,99217)×(-4,5) 2 +(- 6,294)×(-1,5) 2 +
+ 9,030732×1,25 2 = -1638,3
С учётом полученных данных система (6) принимает вид:
(7)
Из системы уравнений (7) находим:
Аппроксимирующий полином второго порядка при равенстве весовых коэффициентов имеет вид:
у = 0,014х 2 + 1,698x + 3,59.
Составим таблицу, в которую запишем как расчётные у, так и значения f(x).
Таблица 4 – Значения f(x), yрасч при равных коэффициентах.
Приобретение практических навыков в построении интерполяционного многочлена Лагранжа и использование его для вычисления приближенных значений функций вне узлов интерполяции.
Приобретение практических навыков построения аппроксимирующих функций (аналитических зависимостей) по совокупности дискретных экспериментальных данных об изменениях значений функции при изменениях значений аргумента.
Задание
Для функций, заданных в таблице 1:
· построить интерполяционный многочлен Лагранжа и вычислить по нему значения функции для заданных значений аргумента;
· изучить технологию расчетов интерполяционных многочленов в Excel;
Для функций, заданных в таблице 2:
· Вычислить коэффициенты аппроксимирующих многочленов 1-й и 2-й степени, записать многочлены и построить их графики, на которые нанести также заданные табличные точки (расчеты выполнить в виде таблиц);
· изучить технологию регрессионного анализа с помощью Excel.
Интерполирование функций
Постановка задачи
Для функций, заданных таблицами их значений на конечном интервале, возникает необходимость вычисления значений функций для значений аргументов, отсутствующих в таблице. Тогда строят функцию, которая в заданных точках принимает заданные значения, а в остальных точках интервала приближенно представляет заданную функцию. А затем вычисления значений функции для любых значений аргумента в области определения заданной таблично функции выполняют по построенной функции. Задача интерполирования – построение такой приближенной функции. Чаще всего интерполирующую функцию отыскивают в виде алгебраического многочлена. Геометрически задача интерполирования заключается в построении кривой , проходящей через заданную таблично систему точек.
Интерполяционная формула Лагранжа
Пусть функция в точках соответственно принимает значения .Требуется построить многочлен степени не выше n, принимающий в точках (узлах интерполирования) значения . Расстояние между узлами интерполирования может быть различным. Решение этой задачи – многочлен Лагранжа.
Интерполяционная формула Лагранжа в общем виде
где – базисные функции, числитель которых содержит все разности , а знаменатель – все разности за исключением .
При этом в точках значения многочлена и функции совпадают. При других значениях разность в общем случае отлична от нуля и представляет собой истинную ошибку метода. Величина является остаточным членом интерполяции.
Пример 1.1. Запишем интерполяционный многочлен для функции, заданной тремя точками:
Построить интерполяционный многочлен Лагранжа и вычислить приближенно значение функции для .
Для построения интерполяционного многочлена воспользуемся формулой при :
Проверяем значения функции для узлов интерполяции:
Интерполяционную формулу в Ехсеl можно построить достаточно простым способом. С практической точки зрения главная проблема заключается в вычислении в произвольной точке значений базисных функций.
Пример 1.2. Запишем интерполяционный многочлен для функции, заданной шестью точками:
X0 | X1 | X2 | X3 | X4 | X5 | Y0 | Y1 | Y2 | Y3 | Y4 | Y5 | X |
1,1 | 1,2 | 1,3 | 1,4 | 1,5 | 1,6 | 0,88 | 0,91 | 0,93 | 0,95 | 0,96 | 0,97 | 1,54 |
На рис. 1.1 представлены исходные данные, по которым будет выполняться интерполяция. На этом же рисунке проиллюстрирован процесс определения первой базисной функции.
В диапазоне ячеек А6:А11представлены заданные значения аргументов функции, а в диапазоне ячеек В6:В11– значения функции для узловых точек аргумента. В ячейку А2вводится значение аргумента, для которого необходимо вычислить значение интерполяционного полинома. Значение полинома будет выводиться в ячейке В2.Важным моментом является заполнение ячеек в диапазоне С6:С11,где будут отображаться значения базисных функций в точке, указанной в ячейке А2.Именно по этим значениям и значениям ячеек из диапазона А6:А11определяется значение интерполяционного полинома (ячейка В2).
Диапазон С6:С11заполняется так: отдельно первая и последняя ячейки диапазона, а все остальные ячейки — распространением одной формулы. В частности, в ячейку С6вводится формула
согласно которой определяется первая базисная функция. Сразу следует отметить, что и эта формула, и все прочие формулы из диапазона С6:С11,вводятся как формулы для диапазонов, т.е. с помощью нажатия комбинации клавиш Ctrl+Shift+Enter.Причина состоит в том, что аргументами функции ПРОИЗВЕД() указываются результаты арифметическихопераций с диапазонами.
Далее заполняются ячейки из диапазона С7:С10.Для этого в ячейку С7вводится формула
Абсолютные и относительные ссылки в формуле подобраны так, чтобы при ее копировании в следующие ячейки, ссылки на начальную А6 и конечную А11ячейки диапазона, равно как и на ячейку А2со значением переменной, для которой вычисляется базисная функция (и весь полином), оставались неизменными. Это абсолютные ссылки. Вместе с тем, в процессе копирования формулы произведения в ней вычисляются без учета значения аргумента в той строке, где размещена формула. После ввода формулы в ячейку С7данная формула с помощью маркера заполнения копируется во все ячейки, вплоть до С10 (Рис. 1.2).
Наконец, в ячейку С11необходимо ввести формулу
Поскольку формулы из начальной С6 и конечной С11ячеек диапазона С6:С11никуда копировать не предполагается, то и ссылки там относительные. Результат можно видеть на рис. 1.3.
После этого осталось только вычислить интерполяционный полином. Для этого достаточно в ячейку В2ввести формулу
Эта формула вводится как обычная, то есть нужно нажать клавишу Enter.Результат представлен на рис. 1.4.
Чтобы посчитать значение полинома в какой-то точке, соответствующее значение следует ввести в ячейку А2. В ячейке В2практически сразу появится результат.
На рис. 1.5 проиллюстрирована ситуация, когда в качестве аргумента указано узловое значение. Как и следовало ожидать, в узловой точке значение интерполяционного полинома равно табличному значению функции в этой точке, а все базисные функции, кроме той, что соответствует указанному узлу, равны нулю. Отличная от нуля базисная функция равна единице.
Читайте также: