Русская Википедия:Интерполяционная формула Брахмагупты
Интерполяционная формула Брахмагупты — интерполяционная формула второго полиномиального порядка, найденная индийским математиком и астрономом Брахмагуптой (598—668) в начале VII века нашей эры. Поэтическое описание этой формулы на санскрите находится в дополнительной части «Кхандакхадьяки» — труда, завершённого Брахмагуптой в 665 году[1]. Такой же куплет имеется в более ранней его работе «Дхьяна-граха-адхикара», точная дата создания которой не установлена. Однако внутренняя взаимосвязь работ позволяет предположить, что она была создана ранее завершённого в 628 году основного труда учёного — «Шаблон:Нп5», поэтому создание интерполяционной формулы второго порядка может быть отнесено к первой четверти VII века[1]. Брахмагупта был первым, кто нашёл и использовал формулу в конечных разностях второго порядка в истории математики[2][3].
Формула Брахмагупты совпадает с интерполяционной формулой второго порядка Ньютона, которая была найдена (переоткрыта) спустя более тысячи лет.
Задача
Будучи астрономом, Брахмагуптта был заинтересован в получении точных значений синуса на основе небольшого количества известных табулированных значений этой функции. Таким образом, перед ним стояла задача найти величину <math>f(x)</math>, <math>x_r < x < x_{r+1}</math> по имеющимся в таблице значениям функции:
<math>x</math> | <math>x_1</math> | <math>x_2</math> | … | <math>x_r</math> | <math>x_{r+1}</math> | <math>x_{r+2}</math> | … | <math>x_n</math> |
<math>f(x_r)</math> | <math>f_1</math> | <math>f_2</math> | … | <math>f_r</math> | <math>f_{r+1}</math> | <math>f_{r+2}</math> | … | <math>f_n</math> |
При условии, что значения функции вычислены в точках с постоянным шагом <math>h</math>, (<math>x_{r+1}-x_r=h</math> для всех <math>r</math>), Ариабхата предложил использовать для расчётов (табличные) первые конечные разности:
- <math>D_r=f_{r+1}-f_r</math>
Математики до Брахмагупты использовали очевидную формулу линейной интерполяции
- <math>f(x)=f_r+ t D_r</math>,
где <math>t=(x-x_r)/h</math>.
Брахмагупта заменил в этой формуле <math>D_r</math> дугой функцией конечных разностей, которая позволяет получать более точные по порядку значения интерполируемой функции.
Алгоритм вычислений Брахмагупты
В терминологии Брахмагупты разность <math>D_{r-1}</math> называется прошлый отрезок (गत काण्ड), <math>D_r</math> называется полезный отрезок (भोग्य काण्ड). Длина отрезка <math>x-x_r</math> до точки интерполирования в минутах называется обрубком (विकल). Новое выражение, которое должно заменить <math>D_r</math> называется правильным полезным отрезком (स्फुट भोग्य काण्ड). Вычисление правильного полезного отрезка описано в куплете[4][1]:
Согласно комментарию Бхуттопалы (X век) стихи переводятся так[1][5]: Умножь обрубок на полуразность полезного и прошлого отрезков и раздели результат на 900. Добавь результат к полусумме полезного и прошлого отрезков, если эта полусумма меньше полезного отрезка. Если больше, то вычти. Получишь правильную полезную разность[6].
900 минут (15 градусов) — это интервал <math>h</math> между аргументами табличных значений синуса, которыми пользовался Брахмагупта.
Формула Брахмагупты в современных обозначениях
В современных обозначениях алгоритм вычислений Брахмагупты выражается формулами:
- <math>
\begin{align} f(x) & = f_r + t( \frac{D_r + D_{r-1}}{2} + t\frac{D_{r} - D_{r-1}}{2})\\ & = f_r + t \frac{D_r + D_{r-1}}{2} + t^2\frac{D_{r} - D_{r-1}}{2}. \end{align} </math>
Это интерполяционная формула Ньютона второго порядка[7][8].
Доказательство
Неизвестно как Брахмагупта получил эту формулу[1]. В наше время такие формулы доказывают с помощью разложения функций <math>f(x+kh), k=1,2,...</math> в правой расти равенства в ряд Тейлора в точке <math>x</math>. Однако доказать формулу можно и элементарными методами: после замены <math>t=(x-x_r)/h</math> формула Брахмагупты задаёт параболу проходящую через три точки <math>(x_{r-1},f_{r-1}), (x_r,f_r), (x_{r+1},f_{r+1})</math>. Для вывода этой формулы достаточно найти коэффициенты этой параболы с помощью решения системы трёх линейных уравнений, определяемых этими точками.
Точность формулы
Компьютерный расчёт показывает, что имея таблицу из 7 значений синуса в узлах с шагом 15 градусов, Брахмагупта мог вычислять эту функцию с максимальной ошибкой не более 0,0012 и средней ошибкой не более 0,00042.
Примечания
- ↑ 1,0 1,1 1,2 1,3 1,4 Шаблон:Статья
- ↑ Шаблон:Книга (p.111)
- ↑ Шаблон:Статья
- ↑ Dhyana-Graha-Upadesa-Adhyaya, 17; Khandaka Khadyaka, IX, 8
- ↑ Шаблон:Книга
- ↑ Завершающая часть алгоритма связана с тем, что математики до Брахмагупты и длительное время после него не пользовались понятием отрицательного числа. Поэтому реально вычислялась не разность, а модуль разности <math>\frac{|D_{r-1}-D_{r}|}{2}</math>, а потом это неотрицательное число прибавлялось или вычиталось, в зависимости от знака разности, определяемого с помощью неравенства.
- ↑ Шаблон:Книга
- ↑ Шаблон:Книга