Вычисление значений многочлена. Схема Горнера При аппроксимации функций, а также в некоторых других задачах приходится вычислять значения многочленов вида Pn x a0 x n a1 x n 1 a2 x n 2 an 1 x an При непосредственном вычислении потребуется выполнить большое число операций n 2 n умножений и п сложений 2 Теорема Безу Остаток от деления многочлена x на двучлен Pn x равен значению этого многочлена при x Доказательство: Пусть Pn x x g x r , где Pn x g x – многочлен степени на единицу меньшей, чем Найдем значение Pn x при x Pn g r r что и требовалось доказать Рассмотрим более простой метод деления многочлена Pn x на линейный двучлен x Представим многочлен Pn x a0 x n a1 x n 1 a2 x n 2 an 1 x an в виде Pn x x g x bn , где g x b0 x n 1 b1 x n 2 b2 x n 3 bn 1 или Pn x x b0 x n 1 b1 x n 2 b2 x n 3 bn 1 bn Раскрывая скобки в последнем равенстве имеем a0 x n a1 x n 1 a2 x n 2 an 1 x an b0 x n b1 x n 1 b0x n 1 b2 x n 2 b1x n 2 b3 x n 3 b2x n 3 bn 1 x bn 2x bn bn 1 После приведения подобных членов имеем a0 x n a1 x n 1 a2 x n 2 a3 x n 3 an 1 x an b0 x n b1 b0 x n 1 b2 b1 x n 2 b3 b2 x n 3 bn 1 bn 2 x bn bn 1 Приравнивая коэффициенты при одинаковых степенях получим равенства a0 b0 , a1 b1 b0 , b0 a0 , b1 b0 a1 , a 2 b2 b1 , a3 b3 b2 , b2 b1 a 2 , b3 b2 a3 , a4 b4 b3 , a n 1 bn 1 bn 2 , a n bn bn 1 , или b4 b3 a4 , bn 1 bn 2 a n 1 , bn bn 1 a n r Pn . Вычисления удобно располагать по следующей схеме (называемой схемой Горнера): a0 b0 a1 a2 b0 b1 b1 a3 a4 … an 1 an b2 b3 … bn 2 bn 1 bn b2 b3 b4 … bn 1 Этот метод требует n умножений и n сложений. Вычисление значений аналитической функции Действительная функция f(x) называется аналитической в точке если в некоторой окрестности x R этой точки функция разлагается в степенной ряд (ряд Тейлора): f f n 2 f x f f x x x n 2! n! При 0 получаем ряд Маклорена f 0 2 f n 0 n f x f 0 f 0x x x 2! n! Разность f k Rn x f x x k k! k 0 n называется остаточным членом и представляет собой ошибку при замене функции f(x) полиномом Тейлора f k Pn x x k k! k 0 n Как известно, f n 1 x Rn x x n 1 n 1! где 0 1 В частности, для ряда Маклорена имеем f n 1 x n 1 Rn x x n 1! где 0 1 Имеются также другие формы остаточных членов. Вычисление значений показательной функции Для показательной функции справедливо разложение 2 n x x ex 1 x 2! n! x Остаточный член ряда имеет вид ex Rn x x n 1 n 1! 0 1 Приближенное вычисление для малых x удобно вести , пользуясь следующей рекуррентной записью: x e x uk uk 1 k uk k 0 S k S k 1 u k где Число (k = 1, 2, …, n), S0 1 u0 1 xk Sn k 0 k! n приближенно дает искомый результат. Для остатка ряда может быть получена следующая оценка: Rn x u n при 02x n Поэтому процесс суммирования может быть прекращен, как только очередной вычисленный член ряда будет по модулю меньше заданной допустимой погрешности: u n , если только x n 2 Для больших по модулю значений x этот ряд мало пригоден для вычислений Вычисление значений логарифмической функции Пользуемся разложением по степеням 1 1 z ln z 2 k 1 2k 1 1 z 2k 1 0 z Пусть x – положительное число. Представим его в виде x 2m z где m – целое число и 1 z 1 z 1 z 1 2 Тогда, полагая 1 z , получим 1 z 1 ln x ln 2m z m ln 2 ln z m ln 2 2 2k 1 k 1 2k 1 где 1 0 3 Обозначив uk 2k 1 2k 1 k 1,2 , , n получаем рекуррентную запись n ln x m ln 2 2 u k Rn k 1 u1 , uk 1 2k 1 2 2k 1 uk Процесс суммирования прекращается, как только выполнится неравенство u n 4 где – допустимая погрешность. Вычисление значений синуса и косинуса. Для вычисления значений функций sin x и cos x пользуемся степенными разложениями sin x 1 k 0 cos x k x 2k 1 2k 1! x x 2k 2k ! x 1 k 0 k Эти ряды при больших x сходятся медленно, но, учитывая периодичность функции sin x и cos x и формулы приведения тригонометрических функций, легко заключить, что достаточно уметь вычислять sin x и для промежутка cos x 0x 4 При этом можно использовать следующие рекуррентные формулы: n sin x u k Rn x , k 1 x2 u1 x , u k 1 2 k 2 k 1 u k n cos x v k Rn x , k 1 x2 v1 1, u k 1 2 k 12 k v k k 1,2 , , n 1 k 1,2 , , n 1 Так как в промежутке 0 , ряд 4 2k 1 x sin x 1k 2k 1! k 0 x знакочередующийся с монотонно убывающими по модулю членами, то для его остатка справедлива оценка x 2n 1 Rn un 1 2n 1! Аналогично для ряда 2k x cos x 1k 2k ! k 0 x Rn un 1 Следовательно, процесс вычисления sin x и cos x можно прекратить, как только очередной полученный член ряда по модулю будет меньше допустимой погрешности