nextupprevious
 

Next:4.3.4 Упражнения
Up:4.3 Программы вычисления элемента последовательности
Previous:4.3.2 Вычисление числа е


4.3.3 Схема Горнера

Задача. По данной последовательности чисел $L,Y,A_1,A_2,\ldots,A_L$ вычислить значение полинома
$A_1 X^{L-1} + A_2 X^{L-2} + \ldots +A_L$
в точке $Y$.

Решение. Введем обозначение Полином$Полином(Y,K)$ для $\sum^{K}_{i=1} A_iY^{K-i}$, где $0\leq K\leq L$. Тогда очевидно имеем

Указанные соотношения позволяют получить эффективную программу $СхемаГорнера$ для вычисления полинома в заданной точке; в ней переменная POL используется для хранения значения функции Полином$Полином(Y,K)$. Поскольку число повторений цикла известно до его выполнения, он реализован как цикл с параметром.

module СхемаГорнера;
        var L,K : integer; Y,POL,A : real;
begin
        read(L,Y); POL := 0; (* {POL=Полином(Y, 0)} *)
        for K := 1 to L do
                Read(A); POL := POL $*$ Y+A
                (* {POL=Полином(Y, K)} *)
        end;
        (* {POL=Полином(Y, L)} *)
        writeln ('Значение полинома в точке ',Y,' равно':10,POL)
end СхемаГорнера.
 

Next:4.3.4 Упражнения
Up:4.3 Программы вычисления элемента последовательности
Previous:4.3.2 Вычисление числа е



© В.Н. Касьянов, Е.В.Касьянова, 2004