Tải bản đầy đủ (.doc) (3 trang)

Thuật toán HORNER

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (77.59 KB, 3 trang )

Thuật toán Horner
1. Bài toán
Trong quá trình giải phương trình
( )
f x 0=
bằng các phương pháp: lặp đơn,
Newton, tiếp tuyến … ta thường phải tính giá trị của
f
và đạo hàm của nó. Nếu
f
là một đa thức thì có thể tính giá trị
( )
f x
và đạo hàm các cấp
( )
( )
k
f x
một cách
nhanh chóng. Đó là nhờ thuật toán Horner.
2. Thuật toán Horner
Giả sử cho đa thức
( )
n
n 0 1 n
P x a a x a x= + +×××+

R
λ

. Ta cần tìm


( )
n
P
λ
.
Theo thói quen ta thường viết
( )
n
n 0 1 n
P a a a
λ λ λ
= + +×××+
(1)
Khi đó số phép nhân sẽ là:
( )
n n 1
1 2 n
2
+
+ + ×××+ =
. Ngoài ra còn cần
n
phép cộng
Mặt khác, nếu viết
( )
n
P
λ
dưới dạng:
( ) ( )

( )
( )
n 0 1 n 2 n 1 n
P a a a a a
λ λ λ λ λ
− −
= + +×××+ + +
(2)
ta thấy số phép nhân trong (2) là
n
và số phép cộng cũng bằng
n
.
Đặt

( )
n 1 n
n 2 n 1 n 1
i 1 i i
0 1 1
n 0 0
b a
b a b

b a b

b a b
P a b
λ
λ

λ
λ λ

− − −


=

= +




= +



= +


= +


(3)
Phương pháp tính
( )
n
P
λ
theo công thức (3) được gọi là thuật toán Horner.

Có thể sử dụng bảng sau để tính nhanh
( )
n
P
λ
n
a
n 1
a

n 2
a


1
a
0
a
n 1
b
λ

n 2
b
λ


1
b
λ

0
b
λ
n 1
b

n 2
b

n 3
b


0
b
( )
n
P
λ
Bây giờ giả sử ta phải thực hiện phép chia đa thức
( )
n
P x
cho đơn thức
x
λ

. Ta
có:
( ) ( ) ( )

n n 1
P x x Q x r
λ

= − +
,
trong đó
( )
n
r P
λ
=
,
( )
n 1
n 1 0 1 n 1
Q x x x
β β β

− −
= + +×××+
.
Từ đây suy ra
( ) ( )
( )
( )
n n 1
n n 1 n 2 n 1 0 1 n 0
P x x x x P
β β λβ β λβ λ λβ


− − −
= + − +×××+ − + −
.
So sánh hệ số đi với lũy thừa cùng bậc của
x
ở hai vế ta được:
( )
n n 1
n 1 n
n 1 n 2 n 1
n 2 n 1 n 1
1 0 1
0 1 1
0 n 0
a
a
a
a


a
a
a P
β
β
β λβ
β λβ
β λβ
β λβ

λ λβ


− − −
− − −

=
=


= −


= +
 

 
 
= −
 
= +


= −

(4)
Từ công thức (3) và (4) ta suy ra
( )
i i
b , i 0,n 1

β
= = −
.
Như vậy có thể áp dụng thuật toán Horner để chia đa thức
( )
n
P x
cho đơn thức
x
λ

.
Áp dụng thuật toán Horner liên tiếp ta được:
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( )
n n 1 0 0 n
n 1 n 2 1 1 n 1
1 0 n 1 n 1 1
0 n
P x x Q x R ,R P
Q x x Q x R ,R Q

Q x x Q x R ,R Q
Q x R
λ λ λ λ
λ λ λ λ
λ λ λ λ
λ


− − −
− −
= − + =
= − + =
= − + =
=
Từ đây suy ra
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
2 n
n 0 1 2 n
P x R R x R x R x
λ λ λ λ λ λ λ
= + − + − + ×××+ −
.
Mặt khác theo công thức khai triển Taylor
( )
n
P x
trong lân cận điểm
λ
, ta có
( ) ( ) ( ) ( )
( )
( )
( )
( )
( )
n
2 n

n n
n n n
P P
P x P P x x x
2! n!
λ λ
λ λ λ λ λ
′′

= + − + − +×××+ −
So sánh hai biểu thức của
( )
n
P x
ta được:
( )
( ) ( )
( )
i
i
P i!R , i 0,n
λ λ
= =
,
trong đó
( )
( )
i
R i 0,n
λ

=
tính được nhờ sơ đồ Horner.
3. Ví dụ minh họa
Ví dụ 1
Cho
( )
4 3 2
P x 3x 5x x 8, 2
λ
= − + + = −
. Hãy tìm
( )
P
λ
và các đạo hàm của nó.
Ví dụ 2
Cho
( )
8 7 5 3 2
8
P x x 8x 5x 6x 2x x 10, 1
λ
= − + − + + − = −
. Hãy tìm
( )
( )
( )
3
8 8
P ,P

λ λ
.
4. Sơ đồ khối và chương trình minh họa cụ thể
Horner
P:=0
i = 0, 1, …,
n
Input ai, λ,
n
P := a[n-i] + λP
Print P
End

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×