В основе большинства численных методов математического анализа лежит подмена одной функции f(x) (известной, неизвестной или частично известной) другой функцией φ(х) близкой к f(x) и обладающей «хорошими» свойствами, позволяющими легко производить над нею те или иные аналитические или вычислительные операции. Будем называть такую подмену аппроксимацией или просто приближением функции f (x) функцией φ(х). Для того, чтобы построить какую-то разумную теорию таких приближений и предложить конкретные способы получения аппроксимирующих функций φ (х) по заданным тем или иным образом аппроксимируемым функциям f(x), предварительно следует ответить на ряд вопросов.
1) Что известно о функции f(x)? Задана ли она своим аналитическим выражением или таблицей своих значений, какова степень ее гладкости и доступны ли значения ее производных, как расположены точки в интересующей части области определения f(x), где известны ее значения, и можно ли их задавать по своему усмотрению, и т.п.
2)Какому классу {семейству) функций должна принадлежать функция φ(х)? Какие дополнительные требования предъявляются к φ(х), выделяющие ее из заданного класса?
3) Что понимать под близостью между f(x) и φ(х); иначе, какой принять критерий согласия между ними? Говоря языком функционального анализа, по метрике какого пространства должно быть малым расстояние между f(x) и φ(х)?
Как видим, задача аппроксимации функции f(x) функцией φ(х) состоит в построении для заданной функции f(x) такой функции φ(х), что
(1)
причем левая часть приближенного равенства (1) должна быть обусловлена ответами на вопросы первой группы, правая часть — второй группы, а ответ на вопрос 3) должен уточнить значение связывающего f(x) и φ(х) символа «≈».
Прежде всего, определимся с ответом на второй вопрос. Договоримся использовать в качестве аппроксимирующих функций φ(х) только многочлены или функции, составленные из многочленов в таком случае будем говорить о полиномиальной аппроксимации или кусочно-полиномиальной аппроксимации соответственно.
По сравнению с другими семействами функций, пригодных для построения теории приближений, например, таких, как тригонометрические или показательные функции, рациональные функции, для вычислительной математики многочлены привлекательны тем, что они являются линейными функциями своих параметров (коэффициентов), и их вычисление сводится к выполнению конечного числа простейших арифметических операций — сложения и умножения.
Будем считать, что аппроксимация функции f(x) производится с помощью многочленов степени п∈N0. Тогда в зависимости от выбора критерия согласия и, в частности, от количества точек согласования f(x) с φ(х) (будем называть их узлами), т.е. точек, в которых известна информация об f(x) и, возможно, ее производных, можно рассмотреть разные конкретные способы аппроксимации.
Таблица 1
Интерполяционный многочлен Лагранжа
Пусть в точках таких, что известны значения функции у=f(x), т.е. на отрезке [а, b] задана табличная (сеточная) функция
(2)
Функция φ(х) называется интерполирующей или интерполяционной для f(x) на [а, b], если ее значения в заданных точках х0, х1, …, хп, называемых узлами интерполяции, совпадают с заданными значениями функции f(x), т.е. с у0, у1, …, уn соответственно. Геометрически факт интерполирования означает, что график функции φ(х) проходит так, что, по меньшей мере, в n+1 заданных точках он пересекает или касается графика функции f (х) (рис.1).
Рис.1. Геометрическая интерпретация задачи интерполирования
Легко представить, что таких графиков φ( х), проходящих через заданные точки, можно изобразить сколько угодно, и они могут отличаться от графика f(x) сколь угодно сильно, если не накладывать на φ(х) и f(x) определенных ограничений.
Будем считать, что интерполяционная функция φ(х) есть многочлен степени п. Тогда задача интерполяции, точнее, полиномиальной, алгебраической или параболической интерполяции (поскольку график любого многочлена называют параболой) формулируется так:
для функции f(x), заданной таблицей (2), найти многочлен Рп(х) такой, что выполняется совокупность условий интерполяции
(3)
Найти многочлен Рп(х) — это значит, учитывая его каноническую форму
(4)
найти его n+ 1 коэффициент. Для этого имеется как раз n+ 1 условие (3). Таким образом, чтобы многочлен (4) был интерполяционным для функции (2), нужно, чтобы его коэффициенты удовлетворяли системе уравнений
Из курса алгебры известно, что определитель этой линейной системы (так называемый определитель Вандермонда) отличен от нуля, т.е. решение этой системы существует и единственно. Однако практическое построение интерполяционного многочлена таким путем малоэффективно. Поэтому изберем другой путь.
Будем строить многочлен п-й степени Ln(x) в виде линейной комбинации многочленов п-й же степени li(x) (i = 0,1,..., п). Для того, чтобы такой многочлен был интерполяционным для функции f (x), достаточно зафиксировать в качестве коэффициентов сi, этой линейной комбинации заданные в табл.2 значения yi = f(xi), а от базисных многочленов li(x) потребовать выполнения условия
(5)
В таком случае для многочлена в каждом узле xj (j=0, 1, …, п), в силу (5), справедливо.
т.е. выполняются условия интерполяции (3).
Чтобы конкретизировать базисные многочлены li(x), учтем, что они должны удовлетворять условиям (5). Равенство нулю i -го многочлена во всех узлах, кроме i -го, означает, что li(x) можно записать в виде
а коэффициент Аi этого представления легко получается из содержащегося в (5) требования li(x) =1. Подставляя в выражение li(x) значение х=хi и приравнивая результат единице, получаем
Таким образом, базисные многочлены Лагранжа имеют вид
а искомый интерполяционный многочлен Лагранжа есть
(6)
Пример. Рассмотрим квадратичную интерполяцию функции y=sinx на отрезке [0, π/2] по ее трем значениям: sin0 = 0, sinπ/4= , sinπ/2=1.
По формуле (8) строим многочлен Лагранжа второй степени
или после преобразований
Подставим в полученный интерполяционный многочлен контрольную точку Получим приближенное значение отличающееся от значения sinπ/6= 0.5 на величину ≈0.017.
Интерполяционная схема Эйткена
Пусть функция f(x) и расположение узлов x0, x1,..., xn на отрезке интерполяции [a, b] таковы, что имеет место сходимость процесса интерполяции. Пусть требуется найти не общее выражение Ln(x), а лишь его значения при конкретных x, т.е. решается частная задача вычисления отдельных приближенных значений функции f(x) с помощью вычисления соответствующих им значений интерполяционного многочлена Лагранжа Ln(x). Для построения эффективного способа решения такой частной задачи интерполяции учтем следующее:
1) использование многочлена Лагранжа в виде (6) неудобно из-за его громоздкости, что ведет к большим вычислительным затратам;
2) заранее не известно, многочлены какой степени нужно использовать для интерполирования данной функции с требуемой точностью. А постепенное улучшение точности за счет вычислений Ln(x) с большим показателем степени n невыгодно, т.к. Ln-1(x) плохо перестраивается в Ln(x);
3)функция f(x) задается таблицей своих приближенных значений. Процесс сходимости Ln(x) к f(x) при больших значениях n будет нарушен влиянием на результат исходных ошибок.
Построим вычислительную схему для получения приближенного значения сеточной функции f(x) в заданной точке , в основу которой будет положена интерполяция Лагранжа на сетке узлов Организация вычислений по этой схеме будет иметь итерационный характер. Каждый шаг заключается в вычислении некоторого определителя второго порядка.
Пусть даны две точки на кривой Построим функцию
Т.е. совпадает с интерполяционным многочленом Лагранжа первой степени, построенным по двум данным точкам (сравните с 6).
Построим через определитель функцию для точек
Она тоже является многочленом Лагранжа первой степени, построенным по двум точкам
Если на кривой y=f(x) заданы три точки (xo,yo), (x1, y1), (x2, y2), то, используя введенные линейные функции образуем новую функцию:
Эта функция есть многочлен второй степени, решающий задачу параболической интерполяции по трем точкам (x0, y0), (x1,y1), (x2,y2). Но такой многочлен единственный, следовательно, где - многочлен Лагранжа.
Продолжая процесс рассуждения, получим рекуррентное задание последовательности интерполяционных многочленов Лагранжа, которое составляет суть интерполяционной схемы Эйткена:
(7)
где i=1, 2,…, n и по определению P0(x)=y0, P1(x)=y1.
Схема Эйткена легко реализуется на ЭВМ. Организация вычислений по формуле (7) должна быть такова, что если заранее неизвестна степень интерполяционного многочлена, который нужно использовать для вычисления y(x), то должно происходить постепенное повышение степени k интерполирующих ее многочленов за счет подключения новых узлов. Счет ведется до тех пор, пока идет уточнение приближенного значения y(x).
Об этом можно судить по уменьшению величины при увеличении k и подходящем фиксировании i.
Пример. Пусть некоторая функция y=y(x) задана таблицей своих значений, округленных до двух знаков после запятой:
Рассмотрим процесс вычисления двух значений этой функции по схеме Эйткена в точках: а) б) Результаты промежуточных вычислений (в которых один знак запасной) сведем в табл. 3, 4. Числа в столбцах, помеченных посредством представляют собой значения многочленов Лагранжа k-ой степени, построенных по узлам от i-го до (i+k)-го рекуррентно по формуле:
(8)
где k=1, 2, …, в соответствии с интерполяционной схемой Эйткена.
Порядок получения этих значений показан проставленными в каждой клетке номерами.
Таблица 3.
Вычисление по схеме Эйткена значения y(0.1)
Таблица 4.
Вычисление по схеме Эйткена значения y(0.25)
Процесс вычисления значений многочленов Лагранжа ведется до тех пор, пока идет уточнение приближенного значения т.е. уменьшается величина ) при увеличении k и подходящем фиксировании i.
Например, для подсчета приближенного значения данной функции в точке расположенной между узлами xo=0.0 и xi=0.2, целесообразно в качестве основной последовательности значений многочленов Лагранжа брать строку таблицы 3, соответствующую значению i=0, т.е. числа
Вычислив разности между последующими и предыдущими числами этой строки, а именно:
0.005 0.004 0.010,
видим, что дальнейший счет бессмыслен; разность перестала уменьшаться. Т.е. по данной информации о функции y(x) более точное значение y(0.1), чем y(0.1)=1.001, получаемое с помощью L3(0.1), найти не удастся.
В случае б) вычисление по схеме Эйткена дает следующий результат: y(0.25)≈1.038, полученный с помощью L3(0.25).
Задания: выполнить задание 1 ИДЗ№2.