Алгоритм вычисления полиномиальных коэффициентов
В математике , разделенные разности является алгоритм , исторически использовался для вычисления таблиц логарифмов и тригонометрических функций . Чарльз Бэббидж «s разница двигатель , ранний механический калькулятор , был разработан , чтобы использовать этот алгоритм в своей работе.
Разделенные различия - это рекурсивный процесс деления . Метод может быть использован для вычисления коэффициентов в интерполяционном полиноме в форме Ньютона .
Определение
Учитывая k + 1 точек данных

Эти вперед разделенные разности определены как:
![[y _ {\ nu}]: = y _ {\ nu}, \ qquad \ nu \ in \ {0, \ ldots, k \}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/f0b559f584afa31efe09d04b4be0e091807e66c6)
![[y _ {\ nu}, \ ldots, y _ {\ nu + j}}]: = {\ frac {[y _ {{\ nu +1}}, \ ldots, y _ {{\ nu + j}}] - [y _ {{\ nu}}, \ ldots, y _ {{\ nu + j-1}}]} {x _ {{\ nu + j}} - x _ {\ nu}}}, \ qquad \ nu \ в \ {0, \ ldots, kj \}, \ j \ in \ {1, \ ldots, k \}.](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/a3fbf429b65bad77486a9d90314d4af6e5edf0c1)
В обратном направлении разделенных разностей определяются следующим образом:
![[y _ {\ nu}]: = y _ {{\ nu}}, \ qquad \ nu \ in \ {0, \ ldots, k \}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/f0b559f584afa31efe09d04b4be0e091807e66c6)
![[y _ {\ nu}, \ ldots, y _ {\ nu -j}}]: = {\ frac {[y _ {\ nu}, \ ldots, y _ {{\ nu -j + 1}}] - [ y _ {{\ nu -1}}, \ ldots, y _ {{\ nu -j}}]} {x _ {\ nu} -x _ {{\ nu -j}}}}, \ qquad \ nu \ in \ {j, \ ldots, k \}, \ j \ in \ {1, \ ldots, k \}.](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/a9ca4b8abdebfbfaf509c340f8aa07f1508e8c8b)
Обозначение
Если точки данных заданы как функция ƒ ,

иногда пишут
![f [x _ {\ nu}]: = f (x _ {{\ nu}}), \ qquad \ nu \ in \ {0, \ ldots, k \}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/7d88b6aba15e3cd2f79af1376a2d5e9b1df1c416)
![f [x _ {\ nu}, \ ldots, x _ {{\ nu + j}}]: = {\ frac {f [x _ {{\ nu +1}}, \ ldots, x _ {{\ nu + j}] }] - f [x _ {\ nu}, \ ldots, x _ {{\ nu + j-1}}]} {x _ {{\ nu + j}} - x _ {\ nu}}}, \ qquad \ nu \ in \ {0, \ ldots, kj \}, \ j \ in \ {1, \ ldots, k \}.](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/424ee9e0456399b61b1ed8c66e90ca761fa7dc3e)
Используются несколько обозначений разделенной разности функции ƒ на узлах x 0 , ..., x n :
![[x_ {0}, \ ldots, x_ {n}] f,](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/52676412ab23500b8def307e74643ea7146220fe)
![[x_ {0}, \ ldots, x_ {n}; f],](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/8a0edff404a8cd6ec5f52354e4988a9dfe8badce)
![D [x_ {0}, \ ldots, x_ {n}] f](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/025c36fb7047d8abf731cb19957cca1f7bd2b23a)
и т.п.
Пример
Разделенные различия для первых нескольких значений :


![{\ begin {align} {\ mathopen [} y_ {0}] & = y_ {0} \\ {\ mathopen [} y_ {0}, y_ {1}] & = {\ frac {y_ {1} - y_ {0}} {x_ {1} -x_ {0}}} \\ {\ mathopen [} y_ {0}, y_ {1}, y_ {2}] & = {\ frac {{\ mathopen [} y_ {1}, y_ {2}] - {\ mathopen [} y_ {0}, y_ {1}]} {x_ {2} -x_ {0}}} = {\ frac {{\ frac {y_ { 2} -y_ {1}} {x_ {2} -x_ {1}}} - {\ frac {y_ {1} -y_ {0}} {x_ {1} -x_ {0}}}} {x_ {2} -x_ {0}}} = {\ frac {y_ {2} -y_ {1}} {(x_ {2} -x_ {1}) (x_ {2} -x_ {0})}} - {\ frac {y_ {1} -y_ {0}} {(x_ {1} -x_ {0}) (x_ {2} -x_ {0})}} \\ {\ mathopen [} y_ {0 }, y_ {1}, y_ {2}, y_ {3}] & = {\ frac {{\ mathopen [} y_ {1}, y_ {2}, y_ {3}] - {\ mathopen [} y_ {0}, y_ {1}, y_ {2}]} {x_ {3} -x_ {0}}} \ end {выровнено}}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/c7c5a021041c0405a351383f2e34f0de88e4e58b)
Чтобы сделать рекурсивный процесс более понятным, разделенные различия можно представить в виде таблицы:
![{\ begin {matrix} x_ {0} & y_ {0} = [y_ {0}] &&& \\ && [y_ {0}, y_ {1}] && \\ x_ {1} & y_ {1} = [y_ {1}] && [y_ {0}, y_ {1}, y_ {2}] & \\ && [y_ {1}, y_ {2}] && [y_ {0}, y_ {1}, y_ { 2}, y_ {3}] \\ x_ {2} & y_ {2} = [y_ {2}] && [y_ {1}, y_ {2}, y_ {3}] & \\ && [y_ {2} }, y_ {3}] && \\ x_ {3} & y_ {3} = [y_ {3}] &&& \\\ end {matrix}}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/d60ef92b00038923edcedaecccbadd25373b07c1)
Характеристики
![(f + g) [x_ {0}, \ dots, x_ {n}] = f [x_ {0}, \ dots, x_ {n}] + g [x_ {0}, \ dots, x_ {n} ]](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/f9f98450062d604d6056db6fed7a9294708084a8)
![(\ lambda \ cdot f) [x_ {0}, \ dots, x_ {n}] = \ lambda \ cdot f [x_ {0}, \ dots, x_ {n}]](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/5285d5f07af1a864344dc27d700002afb4e4e82e)
![{\ displaystyle (f \ cdot g) [x_ {0}, \ dots, x_ {n}] = f [x_ {0}] \ cdot g [x_ {0}, \ dots, x_ {n}] + f [x_ {0}, x_ {1}] \ cdot g [x_ {1}, \ dots, x_ {n}] + \ dots + f [x_ {0}, \ dots, x_ {n}] \ cdot g [x_ {n}] = \ sum _ {r = 0} ^ {n} f [x_ {0}, \ ldots, x_ {r}] \ cdot g [x_ {r}, \ ldots, x_ {n} ]}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/7eb7cdd2db0caf752548b0e82bc8cd744a30cb18)
- Разделенные разности симметричны: если это перестановка, то

![{\ displaystyle f [x_ {0}, \ dots, x_ {n}] = f [x _ {\ sigma (0)}, \ dots, x _ {\ sigma (n)}]}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/02ce355ce667f1d9c4825733b42075bb74702610)
-
где находится в открытом интервале, определяемом наименьшим и наибольшим из них .

Матричная форма
Схема разделенных разностей может быть помещена в верхнюю треугольную матрицу . Пусть .
![T_ {f} (x_ {0}, \ dots, x_ {n}) = {\ begin {pmatrix} f [x_ {0}] & f [x_ {0}, x_ {1}] & f [x_ {0} , x_ {1}, x_ {2}] & \ ldots & f [x_ {0}, \ dots, x_ {n}] \\ 0 & f [x_ {1}] & f [x_ {1}, x_ {2}] & \ ldots & f [x_ {1}, \ dots, x_ {n}] \\\ vdots & \ vdots & \ vdots & \ ddots & \ vdots \\ 0 & 0 & 0 & \ ldots & f [x_ {n}] \ end {pmatrix }}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/eeb0275a0992c3ac7b1a7d1e99efeb617d13e65b)
Тогда он держит


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


- Пусть - дельта- подобная функция Кронекера, т. Е.


- Очевидно , значит , это собственная функция поточечного умножения функций. То есть это как - то « eigenmatrix » из : . Однако, все столбцы кратны друг друга, матрица ранга из равен 1. Таким образом , вы можете составить матрицу всех собственных векторов из -м столбце каждого . Обозначим матрицу собственных векторов через . Пример











- Диагонализация из можно записать в виде

-
.
Альтернативные определения
Расширенная форма
С помощью полиномиальной функции с этим можно записать в виде


![f [x_ {0}, \ dots, x_ {n}] = \ sum _ {{j = 0}} ^ {{n}} {\ frac {f (x_ {j})} {q '(x_ { j})}}.](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/d70d0adea806c0745ea62425edf7d02bc19b4215)
В качестве альтернативы мы можем разрешить отсчет в обратном порядке от начала последовательности, указав всякий раз, когда или . Это определение позволяет интерпретировать как , интерпретировать как , интерпретировать как и т. Д. Таким образом, расширенная форма разделенной разницы становится









Еще одна характеристика использует ограничения:
Неполные фракции
Вы можете представить частичные дроби, используя развернутую форму разделенных разностей. (Это не упрощает вычисления, но интересен сам по себе.) Если и являются полиномиальные функции , где и дается в терминах линейных множителей с помощью , то из фракции разложения частичному этого





![{\ frac {p (\ xi)} {q (\ xi)}} = \ left (t \ to {\ frac {p (t)} {\ xi -t}} \ right) [x_ {1}, \ точки, x_ {n}].](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/4c501f97857416ab97cd46a2c7f4ee82c02095e4)
Если пределы разделенных разностей приняты, то эта связь сохраняется, если некоторые из них совпадают.

Если это полиномиальная функция с произвольной степенью и разлагается с использованием полиномиального деления на на , то




![{\ frac {p (\ xi)} {q (\ xi)}} = \ left (t \ to {\ frac {f (t)} {\ xi -t}} \ right) [x_ {1}, \ точки, x_ {n}].](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/39b3eb5698ac665c2256ae18c6f25ae8c798e4d5)
Форма Пеано
Разделенные различия могут быть выражены как
![f [x_ {0}, \ ldots, x_ {n}] = {\ frac {1} {n!}} \ int _ {{x_ {0}}} ^ {{x_ {n}}} f ^ { {(n)}} (t) B _ {{n-1}} (t) \, dt](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/4ae40d8692899cbc0fdcb156a32205e51c00250b)
где - B-сплайн степени для точек данных и - -я производная функции .






Это называется Пеано формой из разделенных разностей и называется ядром Пеана для разделенных разностей, названного в честь Джузеппе Пеано .

Форма Тейлора
Первый заказ
Если узлы накапливаются, то численное вычисление разделенных разностей неточно, потому что вы делите почти два нуля, каждый из которых с высокой относительной ошибкой из-за разностей схожих значений . Однако мы знаем, что коэффициенты разности аппроксимируют производную и наоборот:
-
для
Это приближение можно превратить в тождество всякий раз, когда применима теорема Тейлора .


Вы можете устранить нечетные степени , расширив ряд Тейлора в центре между и :



-
, это



Более высокого порядка
Ряд Тейлора или любое другое представление с функциональным рядом в принципе можно использовать для аппроксимации разделенных разностей. Ряды Тейлора представляют собой бесконечные суммы степенных функций . Преобразование функции в разделенную разность - это линейный функционал . Мы также можем применить этот функционал к слагаемым функциям.

![f [x_ {0}, \ dots, x_ {n}]](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/683c749df05d7cf790d0a90a9b90a8e4006d8b5d)
Выразите обозначение мощности с помощью обычной функции:
Регулярный ряд Тейлора представляет собой взвешенную сумму степенных функций:
Ряд Тейлора для разделенных разностей:
Мы знаем, что первые члены исчезают, потому что у нас более высокий порядок разности, чем полиномиальный порядок, а в следующем члене разделенная разность равна единице:

![{\ begin {array} {llcl} \ forall j <n & p_ {j} [x_ {0}, \ dots, x_ {n}] & = & 0 \\ & p_ {n} [x_ {0}, \ dots, x_ {n}] & = & 1 \\ & p _ {{n + 1}} [x_ {0}, \ dots, x_ {n}] & = & x_ {0} + \ dots + x_ {n} \\ & p _ {{ n + m}} [x_ {0}, \ dots, x_ {n}] & = & \ sum _ {{a \ in \ {0, \ dots, n \} ^ {m} {\ text {with} } a_ {1} \ leq a_ {2} \ leq \ dots \ leq a_ {m}}} \ prod _ {{j \ in a}} x_ {j}. \\\ end {array}}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/5744582c2f328c1801bd971953ad4f418e94dd9a)
Отсюда следует, что ряд Тейлора для разделенной разности по существу начинается с того, что также является простой аппроксимацией разделенной разности в соответствии с теоремой о среднем значении для разделенных разностей .

Если бы нам пришлось вычислять разделенные разности для степенных функций обычным способом, мы бы столкнулись с теми же числовыми проблемами, что и при вычислении разделенной разности . Приятно то, что есть способ попроще. Он держит

![t ^ {n} = (1-x_ {0} \ cdot t) \ dots \ cdot (1-x_ {n} \ cdot t) \ cdot (p_ {0} [x_ {0}, \ dots, x_ { n}] + p_ {1} [x_ {0}, \ dots, x_ {n}] \ cdot t + p_ {2} [x_ {0}, \ dots, x_ {n}] \ cdot t ^ {2 } + \ точки).](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/c28497f7cc37231c42f6e0766dac9ac1aa777a90)
Следовательно, мы можем вычислить разделенных разностей от с разделением на формальных степенных рядов . Посмотрите, как это сводится к последовательному вычислению степеней, когда мы вычисляем для нескольких .

![p_ {n} [h]](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/a5b14665a90a4b859361d12d54272917d4c20ba5)

Если вам нужно вычислить всю схему разделенных разностей относительно ряда Тейлора, см. Раздел о разделенных разностях степенных рядов .
Полиномы и степенные ряды
Разделенные разности многочленов особенно интересны, потому что они могут извлечь выгоду из правила Лейбница. Матрица с


содержит схему разделенных разностей для функции идентичности по отношению к узлам , таким образом, содержит разделенные разности для функции мощности с показателем . Следовательно, вы можете получить разделенные разности для полиномиальной функции
относительно полинома
, применяя (точнее: соответствующую матричную полиномиальную функцию ) к матрице .






-
![= {\ begin {pmatrix} \ varphi (p) [x_ {0}] & \ varphi (p) [x_ {0}, x_ {1}] & \ varphi (p) [x_ {0}, x_ {1 }, x_ {2}] & \ ldots & \ varphi (p) [x_ {0}, \ dots, x_ {n}] \\ 0 & \ varphi (p) [x_ {1}] & \ varphi (p) [x_ {1}, x_ {2}] & \ ldots & \ varphi (p) [x_ {1}, \ dots, x_ {n}] \\\ vdots & \ ddots & \ ddots & \ ddots & \ vdots \\ 0 & \ ldots & 0 & 0 & \ varphi (p) [x_ {n}] \ end {pmatrix}}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/e2d023602c65ea4569c811cb08cf09805ba12e81)
Это известно как формула Опица .
Теперь рассмотрим увеличение степени до бесконечности, т.е. превратим многочлен Тейлора в ряд Тейлора . Позвольте быть функцией, которая соответствует степенному ряду . Вы можете вычислить схему разделенных разностей, вычислив соответствующий матричный ряд, к которому применяется . Если все узлы равны, то это жорданов блок, и вычисление сводится к обобщению скалярной функции на матричную функцию с использованием разложения Жордана .





Прямые различия
Когда точки данных распределены равноудаленно, мы получаем особый случай, называемый прямыми разностями . Их легче вычислить, чем более общие разделенные разности.
Обратите внимание, что «разделенная часть» из прямой разделенной разности все равно должна вычисляться, чтобы восстановить прямую разделенную разницу из прямой разницы .
Определение
Учитывая n точек данных

с

разделенные разницы можно рассчитать с помощью форвардных разниц, определяемых как


Связь между разделенными разностями и прямыми разностями:
![{\ displaystyle f [x_ {0}, x_ {1}, \ ldots, x_ {k}] = {\ frac {1} {k! h ^ {k}}} \ Delta ^ {(k)} f ( x_ {0}).}](/criselda-https-wikimedia.org/api/rest_v1/media/math/render/svg/2877faf8afce76e86dfec5b133eb20230f37c155)
Пример

Смотрите также
использованная литература
-
Луи Мелвилл Милн-Томсон (2000) [1933]. Исчисление конечных разностей . American Mathematical Soc. Глава 1: Разделенные различия. ISBN 978-0-8218-2107-7.
-
Майрон Б. Аллен; Эли Л. Исааксон (1998). Численный анализ для прикладных наук . Джон Вили и сыновья. Приложение A. ISBN 978-1-118-03027-1.
-
Рон Голдман (2002). Алгоритмы пирамиды: подход динамического программирования к кривым и поверхностям для геометрического моделирования . Морган Кауфманн. Глава 4: Интерполяция Ньютона и разностные треугольники. ISBN 978-0-08-051547-2.
внешние ссылки