Схема Эйткена

Материал из testwiki
Перейти к навигации Перейти к поиску

Схема Эйткена — итерационный способ вычисления интерполяционного многочлена Лагранжа, позволяющий за квадратичное относительно количества узлов интерполяции время внедрять в многочлен информацию о новых точках.

Определение

Обозначим через Pi,,j(x) многочлен Лагранжа, полученный интерполяцией базовых точек (xi,yi),(xi+1,yi+1),,(xj,yj). Тогда верно следующее соотношение

Pi(x)=yi (вырожденный случай, многочлен нулевой степени — константа)

Pi,,j(x)=1xjxi|xxiPi,,j1(x)xxjPi+1,,j(x)|

Доказательство

Доказательство легко произвести по индукции. Не ограничивая общности, для удобства примем i=0, j=n.

Пусть P0,,n1(x) и P1,,n(x) — многочлены Лагранжа для соответствующих наборов точек. Это значит, что P0,,n1(x)=i=0n1yij=0;j=in1xxjxixj и P1,,n(x)=i=1nyij=1;j=inxxjxixj

Если обозначить Ai=j=0;j=in(xxj); Ti=yij=0;j=inxxjxixj и Xi=j=1;j=in1(xixj), то очевидно, что

1xnx0|xx0P0,,n1(x)xxnP1,,n(x)|=T0+Tn+i=1n1yi(AiXi(xixn)(xnx0)AiXi(xix0)(xnx0))=

=T0+Tn+i=1n1yiAixnAix0Xi(xixn)(xix0)(xnx0)=T0+Tn+i=1n1yiAiXi(xixn)(xix0)=i=0nTi,

что совпадает с многочленом Лагранжа.

Производительность

Время вычисления

При известных коэффициентах многочленов P0,,n1(x) и P1,,n(x) вычисление многочлена P0,,n(x) возможно за линейное время непосредственно по формуле.

Однако, если рассматривать применение схемы Эйткена при добавлении новой точки (xn,yn) в набор базовых точек, то в этом случае P1,,n(x) также будет неизвестным и его надо будет вычислить за линейное время на основе P1,,n1(x) и P2,,n(x). Для этого надо будет предварительно вычислить P2,,n(x), и так далее.

Таким образом, добавление точки возможно только за квадратичное время путём последовательного получения полиномов Pn1,n(x),Pn2,n1,n(x),,P2,,n(x),P1,,n(x). Если при этом в программе уже будут храниться P1,,n1(x),P2,,n1(x),,Pn2,n1(x),Pn1(x), то вычисление каждого из требуемых полиномов осуществимо за линейное относительно количества точек-параметров время. Это даёт в сумме асимптотически O(n2) времени для добавления новой точки и, соответственно, O(n3) для вычисления полинома Лагранжа по заранее заданному набору из n точек.

Расходы памяти

Если использовать оптимальный по времени способ вычисления, то необходимым является хранение многочленов вида Pi,,n(x)(i=0,,n). i-й из этих многочленов требует O(ni) памяти для хранения коэффициентов, что требует в сумме O(n2) памяти.

Следует заметить, что объём памяти O(n2) необходим, даже если нет расчёта на последующее добавление точек — хранение многочленов Pi,,n(x) неизбежно по ходу расчёта самого многочлена.

См. также

Шаблон:Rq