Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 Курс лекций ВМ.doc
Скачиваний:
92
Добавлен:
03.03.2015
Размер:
11.97 Mб
Скачать

9.Вычисление значений функции.

9.1 Постановка задачи.

Постановка задачи.

При вычислении с помощью ЭВМ значений функции, заданных формулами, далеко не безразлично, в каком виде записана формула.

Предварительное вычисление всех нужных степеней аргумента х2, х3,... обычно не выгодно, так как требует довольно большого числа операций. При вычислении значений многочлена n-ой степени для получения степеней до хn требуется n–1 умножений. Кроме этого нужно ещё n умножений на коэффициенты, т.е. всего 2n–1 умножений к n сложений. Меньшего количества действий – n умножений и n сложений – требует вычисление многочлена по так называемой схеме Горнера, с которой мы сейчас познакомимся.

9.2 Схема горнера для вычисления

ЗНАЧЕНИЙ ПОЛИНОМА.

Из курса алгебры известна теорема Безу, которая утверждает, что остаток от деления многочлена f(x) на двучлен x-α равен значению многочлена при x=α, т.е. f(α).

Обозначив частное от деления полинома n-ой степени f(x) на x-α через φ(x), а остаток через bn, можно записать.

f(x)= (x-α)φ(x)+ bn, где bn=f(α) (9.1)

Если f(x)=a0xn+a1xn-1+...+an-1x+an; и φ(x)=b0xn-1+...+bn-2x+bn-1, то мы имеем тождество:

a0xn+a1xn-1+...+an-1x+an = (x-α) (b0xn-1+...+bn-2x+bn-1)+bn (9.2)

Раскрывая скобки в правой части тождества (9.2) и сравнивая коэффициенты в левой и правой частях тождества, находим:

a0=b0

a

(9.3)

1=b1– αb0

a2=b2-αb1

. . . . . . . . . . . . .

an-1=bn-1-αbn-2

an=bn-αbn-1

Равенство (9.3) перепишем в виде:

b0=a0

b

(9.4)

1=a1+αb0

b2=a2+αb1

. . . . . . . . . . . . . .

bn-1=an-1+αbn-2

bn=an+αbn-1

С помощью полученных выражений можно вычислить последовательно все коэффициенты частного и остаток bn, равный f(α). Эта схема вычисления f(α) и называется схемой Горнера.

При ручном счёте (при нахождении одного значения многочлена) вычисления записывают с помощью схемы.

a0

a1

a2

...

an-1

an

α

b0

b1

b2

...

bn-1

bn

Числа в нижней строке вычисляются последовательно слева направо с использованием равенств (9.4) .

ПРИМЕР: Вычислить частное и остаток от деления многочлена x4+3x3+2x2+x+3, на (x-1,3). Пользуясь приведённой схемой, находим:

1

–3

2

1

3

1,3

1

–3 +1*1,3=–1,7

2+(–1,7)*1,3= –0,21

1+(–0,21)*1,3=0,727

3+0,727*1,3=3,9451

Итак, частное есть многочлен x3-1,7x2-0,21x+0,727, а остаток, равный значению многочлена в точке х=1,3 есть 3,9451.

Таким образом, формулы (9.4) позволяют, не производя деления, определять коэффициенты частного φ(x), а также остаток bn = f(α). Практически вычисления осуществляются по следующей схеме, называемой схемой Горнера.

+

a0 a1 a2 … an

α

b0α b1α … bn-1α

b0 b1 b2 … bn =f(α)

ПРИМЕР вычислить значение полинома:

P(x) = 3x3 + 2x2 – 5x +7 при х = 3.

РЕШЕНИЕ Составляем схему Горнера:

+

3 2 –5 7

3

9 33 84

3 11 28 91=f(3)

Итак, частное есть φ(x) = 3x2 + 11x + 28 и остаток равный значению полинома в точке x=3 есть 91.

Если в формулах (9.4) подставить каждую предыдущую формулу в последующую, то получатся такие равенства:

b1 = a1 + αa0

b2 = a2 + α(a1 + αa0)

b3 = a3 + α(a2 + α(a1 + αa0))

……………………………...

Дойдя до последней формулы и переписав правую часть в обратном порядке, получим:

bn = f(α) = ( … ((a0α + a1)α + a2)α + … + an-1)α + an

Таким образом, для вычисления многочлена

f(x) = a0xn + a1xn-1 + … + an-1x + an

его следует представить в виде:

f(x) = ( … ((a0x + a1)x + a2)x + … + an-1)x + an.

ПРИМЕР. Составить таблицу значений многочлена x4 – 3x3 + 2x2 + x +3 для значений x от 1 до 2 с шагом 0,2.

РЕШЕНИЕ. Представим заданный многочлен в виде:

(((x – 3)x + 2)x + 1)x + 3

Расписку для выполнения вычислений вручную осуществим в виде таблицы:

(1)

(2)

(3)

(4)

(5)

x

(1) – 3

(2) ∙ (1) + 2

(3) ∙ (1) + 1

(4) ∙ (1) + 3

1,0

1,2

1,4

1,6

1,8

2,0

– 2,0

–1,8

–1,6

–1,4

–1,2

–1,0

0,00

–0,16

–0,24

–0,24

–0,16

0

1,000

0,808

0,664

0,616

0,712

1,000

4,0000

3,9696

3,9296

3,9856

4,2816

5,0000

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]