dành cho các học sinh thuộc trung học cơ sở nắm rõ hơn về thuật toán horner, có thể thực hiện việc phân tích đa thức thành nhân tử được rễ ràng và nhanh chóng hơn .
Trang 1Thuậ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 ( )
nhanh chóng Đó là nhờ thuật toán Horner
2 Thuật toán Horner
P x = +a a x+ ×××+a x và λ∈R Ta cần tìm Pn( )λ
P λ =a +aλ+ ×××+a λ (1)
2
+ + + ×××+ = Ngoài ra còn cần n phép cộng
Mặt khác, nếu viết Pn( )λ dưới dạng:
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
( )
λ λ
λ
−
−
=
= +
= +
(3)
Phương pháp tính Pn( )λ 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 Pn( )λ
n
n 1 b
n 1
Bây giờ giả sử ta phải thực hiện phép chia đa thức P x cho đơn thức xn( ) −λ Ta có: P xn( ) (= x−λ)Qn 1− ( )x +r,
Trang 2trong đó r P= n( )λ , ( ) n 1
− = + + ×××+ −
Từ đây suy ra
So sánh hệ số đi với lũy thừa cùng bậc của x ở hai vế ta được:
( )
a
a a
a
a
a
β
β
β λβ
λ λβ
−
−
=
=
(4)
Từ công thức (3) và (4) ta suy ra βi =b , i 0, n 1i ( = − )
Như vậy có thể áp dụng thuật toán Horner để chia đa thức P x cho đơn thứcn( )
x−λ
Áp dụng thuật toán Horner liên tiếp ta được:
( ) ( ) ( ) ( ) ( ) ( )
( ) ( )
λ
−
=
Từ đây suy ra
( ) ( ) ( ) ( ) ( ) ( )2 ( ) ( )n
P x =R λ +R λ x−λ +R λ x−λ + ×××+R λ x−λ
Mặt khác theo công thức khai triển Taylor P x trong lân cận điểm n( ) λ, ta có
( ) ( )
n
So sánh hai biểu thức của P x ta được:n( )
( ) i ( ) ( ) ( )
i
trong đó Ri( )λ (i 0, n= ) tính được nhờ sơ đồ Horner
3 Ví dụ minh họa
Ví dụ 1
P x =3x −5x +x +8, λ= −2 Hãy tìm P( )λ và các đạo hàm của nó.
Ví dụ 2
Trang 3Cho ( ) 8 7 5 3 2
8
( ) ( ) 3 ( )
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