Вычисление значений аналитической функции

advertisement
Вычисление значений
многочлена. Схема
Горнера
При аппроксимации функций,
а также в некоторых других задачах
приходится вычислять значения многочленов вида
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  b0x n  1  b2 x n  2  b1x n  2  b3 x n  3  b2x n  3  
  bn  1 x  bn  2x  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 0x 
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  
Остаточный член ряда имеет вид
ex
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
при
02x 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
0x

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  12 k v k

k  1,2 , , n  1
k  1,2 , , n  1
Так как в промежутке
 
 0 ,  ряд
 4
2k  1
x
sin x    1k
2k  1!
k 0

   x  
знакочередующийся с монотонно убывающими
по модулю членами, то для его остатка справедлива оценка
x 2n  1
Rn 
 un 1
2n  1!
Аналогично для ряда

2k
x
cos x    1k
2k !
k 0
   x  
Rn  un  1
Следовательно, процесс вычисления
sin x
и
cos x
можно прекратить, как только очередной
полученный член ряда по модулю будет меньше
допустимой погрешности 
Download