You are on page 1of 35

Giải Tích Số 1

Phạm Quốc Thắng và Nguyễn Từ Huy

17TTH1TN

Ngày 30 tháng 4 năm 2019

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 1 / 35
Phương pháp số tìm nghiệm xấp xĩ của phương trình một
biến bằng thuật toán Newton và Halley

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 2 / 35
Nội dung

1 Newton-Raphson

2 Halley’s Method

3 Newton-Halley

4 Thuật toán, hàm và tốc độ hội tụ

5 Chứng minh sự hội tụ

6 Ví dụ - Nhận xét

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 3 / 35
Newton-Raphson

Ta tiếp tục với phương pháp điểm bất động. Câu hỏi quan trọng đặt ra ở
phương pháp này là làm sao từ phương trình f (x) = 0 ta tìm được hàm
F (x) sao cho x = F (x) có tốc độ hội tụ nhanh và thỏa mãn định lý điểm
bất động.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 4 / 35
Newton-Raphson

Ta sẽ tìm một hàm h sao cho nghiệm của f (x) = 0 có thể được xấp xỉ
bởi nghiệm của h (x) = 0 và ta có thể dễ dàng tìm nghiệm của h (x) = 0.
Ta sẽ chọn hàm h xấp xỉ theo f thông qua định lý sau:

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 5 / 35
Newton-Raphson

Định lý 1.
Nếu hàm f liên tục trên (a, b) và có đạo hàm đến cấp n ≥ 1 trên (a; b) thì
ta có thể xấp xỉ hàm f tại điểm x0 ∈ (a; b) như sau
n
X f (k) (x0 )
f (x) ≈ f (x0 ) + (x − x0 )k + Rn (x) .
k!
k=1

trong đó Rn (x) là phần dư bậc n của khai triển.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 6 / 35
Newton-Raphson

Ta gọi xk là một xấp xỉ của nghiệm của f (x) = 0. Ta sẽ chọn hàm h


thành một hàm tuyến tính có nghiệm x = xk và h (xk ) = f (xk ). Ta xấp
xỉ h bởi f theo khai triển Taylor đến cấp 1 tại điểm xk .

h (x) = f (xk ) + f 0 (xk ) (x − xk ) .

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 7 / 35
Newton-Raphson

f (xk )
Phương trình h (x) = 0 tương đương với x = xk − .
f 0 (xk )
Do xk+1 cũng là 1 xấp xỉ của nghiệm phương trình nên ta có thể xây dựng
dãy lặp như sau:
f (xk )
xk+1 = F (xk ) = xk − 0
f (xk )
(Newton-Raphson’s Iteration).

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 8 / 35
Newton-Raphson

Ngoài ra ta còn có thể xây dựng dãy lặp theo hướng đại số như sau.
Ta sẽ đi tìm hàm h sao cho

x = F (x) = x + f (x) h (x) .

Với x0 là nghiệm của f (x) = 0 ta cố gắng tìm h để F 0 (x0 ) < 1 hay tốt
hơn hết là F 0 (x0 ) = 0 (làm tăng tốc độ hội tụ). Ta có

F 0 (x0 ) = 1 + f 0 (x0 ) h (x0 ) + h0 (x0 ) f (x0 ) = 1 + f 0 (x0 ) h (x0 ) .

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 9 / 35
Newton-Raphson

Để F 0 (x0 ) = 0 thì
1
h (x0 ) = − .
f 0 (x 0)

với f 0 (x0 ) 6= 0.
Lúc này cách đơn giản nhất là chọn
1
h (x) = − .
f (x)

Từ đây ta lại có

f (xk )
xk+1 = F (xk ) = xk + f (xk ) h (xk ) = xk −
f 0 (xk )

(Newton-Raphson’s Iteration).

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 10 / 35
Halley’s Method

Thay vì tìm hàm h bằng cách xấp xỉ bằng định lý Taylor đến cấp 1, ta xét
hàm h như sau:
a
h (x) = + c.
x+b
Ta cần chọn hàm h thỏa mãn h và f đều bằng nhau tại xk từ đạo hàm
bậc 0 đến 2. Do đó
a
h (xk ) = f (xk ) = + c.
xk + b
a
h0 (xk ) = f 0 (xk ) = − .
(xk + b)2
2a
h00 (xk ) = f 00 (xk ) = .
(xk + b)3

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 11 / 35
Halley’s Method

Từ hệ trên ta sẽ đi tìm mối quan hệ giữa các đạo hàm cấp 0, 1, 2 của f
như sau:
 
2a a
+c
f (xk ) f 00 (xk ) (xk + b)3 xk + b −c (xk + b)
1− 2 = 1 − 2 = .
0
2 f (xk ) 2a a
(xk + b)4
 
f (xk ) 1 a (xk + b) a
0
. 00 = +c . = + xk + b.
f (xk ) 1 f (xk ) f (xk ) xk + b c c
1− . 2
2 f 0 (xk )

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 12 / 35
Halley’s Method

Do phương trình h (x) = 0 có nghiệm


a
x = − − b.
c

Do xk+1 cũng là một giá trị xấp xỉ của nghiệm phương trình h (x) = 0 nên

a f (xk ) 1
xk+1 = − − b = xk − 0 . .
c f (xk ) 1 f (xk ) f 00 (xk )
1− . 2
2 f 0 (xk )

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 13 / 35
Halley’s Method

Do đó ta xét dãy lặp

f (xk ) 1
xk+1 = F (xk ) = xk − . .
f 0 (xk ) 1 f (xk ) f 00 (xk )
1− . 2
2 f 0 (xk )

(Halley’s Iretation).

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 14 / 35
Halley’s Method

Ta quay lại bước lặp của Newton. Giả sử còn tồn tại hàm g 6= f thỏa mãn
bước lặp của Newton. Lúc này

g (x)
x− = F (x) .
g 0 (x)

Hay là
g 0 (x) 1
= .
g (x) x − F (x)
Giải phương trình vi phân này ta được
 
R dx
 

g (x) = e x − F (x)
.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 15 / 35
Newton-Halley

Định lý 2.
Bước lặp Halley cho phương trình f (x) = 0 chính là bước lặp Newton cho
f (x)
phương trình p = 0.
f 0 (x)

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 16 / 35
Newton-Halley

Chứng minh
Xét phương trình f (x) = 0.
Lúc này bước lặp Halley cho phương trình này chính là

f 00 (x) .f (x) .x − 2f 0 (x)2 x + 2f 0 (x) f (x)


F (x) = .
f (x) f 00 (x) − 2f 0 (x)2

Ta tìm hàm g để bước lặp Halley cho g (x) = 0 chính là bước lặp Newton
cho g (x) = 0. Tức là

g(x) 2f 0 (x) f (x)


x− = F (x) = x + .
g 0 (x) f (x) f 00 (x) − 2f 0 (x)2

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 17 / 35
Newton-Halley

Lúc này ta có
g 0 (x) f 0 (x) 1 f 00 (x)
= −
g (x) f (x) 2 f 0 (x)
Giải phương trình vi phân này bằng cách lấy nguyên hàm 2 vế ta được

1 0 f (x)
ln g (x) = ln f (x) − ln f (x) = ln p

2 f 0 (x)

Do đó bước lặp Halley cho phương trình f (x) = 0 chính là bước lặp
f (x)
Newton cho phương trình p = 0.
f 0 (x)

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 18 / 35
Thuật toán Newton

Thuật toán
INPUT sai số T OL; số vòng lặp tối đa N0 ; hàm f , giá trị p0 .
OUTPUT Nghiệm xấp xỉ p hoặc thông báo thuật toán thất bại.
Step 1 Gán i = 1.
Step 2 While i ≤ N0 do Steps 3–6.
Step 3 Đặt p = p0 − f (p0 ) /f 0 (p0 ); (Tính pi .)
Step 4 Nếu |p − p0 | < T OL thì:
Xuất ra p; (Thuật toán thành công)
Thoát khỏi chương trình.
Step 5 i = i + 1.
Đặt p0 = p. (Cập nhật p0 )
Step 7 Xuất ra (Thuật toán thất bại).

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 19 / 35
Newton

Hàm Newton trong Matlab:


1 function p=Newton(f,p0,N0,tol)
2 i=1;
3 while (i≤N0)
4 p=p0-f(p0)/df(p0);
5 if(abs(p-p0)<tol)
6 fprintf('nghiem xap xi= ',p)
7 break;
8 end
9 i=i+1;
10 p0=p;
11 end
12 if(abs(p-p0)>tol)
13 fprintf('thuat toan that bai');
14 end

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 20 / 35
Tốc độ hội tụ đối với thuật toán Newton

Định nghĩa 1.
Phép lặp pk+1 = F (pk ) hội tụ bậc n nếu

F 0 (p) = F 00 (p) = ... = F (n−1) (p) = 0; F (n) (p) 6= 0.

Định nghĩa 2.
Với p là nghiệm của phương trình f (x) = 0 thì tốc độ hội tụ của phép lặp
pk+1 = F (pk ) là:
(bậc 1) linear: nếu F 0 (p) 6= 0 và F 0 (p) < 1.

(bậc 2) quadratic: nếu F 0 (p) = 0 và F 00 (p) 6= 0.


(bậc 3) cubic: nếu F 0 (p) = F 00 (x) = 0 và F 000 (p) 6= 0.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 21 / 35
Tốc độ hội tụ đối với thuật toán Newton

Xét phương trình f (x) = 0 có nghiệm p. Khi đó

f (x)
F (x) = x − .
f 0 (x)

Ta có
f 0 (x)2 − f (x) .f 00 (x) f (x) f 00 (x)
F 0 (x) = 1 − = .
f 0 (x)2 f 0 (x)2
Do đó
f (p) f 00 (p)
F 0 (p) = = 0.
f 0 (p)2

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 22 / 35
Tốc độ hội tụ đối với thuật toán Newton

Mặt khác

00 f 0 (x)2 .f 00 (x) − 2f (x) f 00 (x)2 + f (x) f 0 (x) f (3) (x)


F (x) = .
f 0 (x)3

Do đó
f 0 (p)2 .f 00 (p) f 00 (p)
F 00 (p) = 3 = 0 .
f 0 (p) f (p)

Đến đây ta nhận xét nếu f 00 (p) 6= 0 thì phép lặp hội tụ bậc 2.
Ta thấy rằng còn tùy vào hàm f ban đầu nhưng phép lặp này cho ta bậc
hội tụ ít nhất là 2.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 23 / 35
Thuật toán Halley

Thuật toán
INPUT sai số T OL; số vòng lặp tối đa N0 ; hàm f , giá trị p0 .
OUTPUT Nghiệm xấp xỉ p hoặc thông báo thuật toán thất bại.
Step 1 Gán i = 1.
Step 2 While i ≤ N0 do Steps 3–6.
2f 0 (p0 ) f (p0 )
Step 3 Đặt p = p0 + .; (Tính pi .)
f (p0 ) f 00 (p0 ) − 2f 0 (p0 )2
Step 4 Nếu |p − p0 | < T OL thì:
Xuất ra p; (Thuật toán thành công)
Thoát khỏi chương trình.
Step 5 i = i + 1.
Đặt p0 = p. (Cập nhật p0 )
Step 7 Xuất ra (Thuật toán thất bại).

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 24 / 35
Halley

Hàm Halley trong Matlab


1 function p=Halley(f,df,dff,p0,N0,tol)
2 i=1;
3 while (i≤N0)
4 p=p0+(2*df(p0)*f(p0))/(f(p0)*dff(p0)-2*(df(p0))^2);
5 if(abs(p-p0)<tol)
6 fprintf('nghiem xap xi=',p);
7 break;
8 end
9 i=i+1;
10 p0=p;
11 end
12 if(abs(p-p0)>tol)
13 fprintf('thuat toan that bai');
14 end

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 25 / 35
Tốc độ hội tụ đối với thuật toán Halley

Xét phương trình f (x) = 0 có nghiệm p. Khi đó

2f 0 (x) f (x)
F (x) = x + .
f (x) f 00 (x) − 2f 0 (x)2

Do đó ta có
 
f (x)2 3f 00 (x)2 − 2f 0 (x) f (3) (x)
F 0 (x) =  2
f (x) f 00 (x) − 2f 0 (x)2

Do đó F 0 (p) = F 00 (p) = 0.
Do đó tùy vào hàm f ban đầu nhưng ta có nhận xét là thuật toán này hội
tụ ít nhất là bậc 3.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 26 / 35
Sự hội tụ

Định lý 3.
Cho f ∈ C 2 [a; b] sao cho tồn tại nghiệm p ∈ (a; b) của phương trình
f (x) = 0 và f 0 (p) 6= 0. Khi đó tồn tại dãy (pn )n≥0 tạo bởi dãy lặp
Newton hội tụ về p.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 27 / 35
Sự hội tụ

Chứng minh
Ta có
f (x)
F (x) = x − .
f 0 (x)

f (x) f 00 (x)
F 0 (x) = .
f 0 (x)2
Do F xác định như trên là liên tục trên p ∈ [a; b] nên

∀ε > 0, ∃δ > 0 : x ∈ (p − δ; p + δ) ⇒ F (x) ∈ F (p) − ε; F (p) + ε .

Hay là

∀ε > 0, ∃δ > 0 : x ∈ (p − δ; p + δ) ⇒ F (x) ∈ (p − ε; p + ε) .

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 28 / 35
Sự hội tụ

Chọn ε = δ ta có

∀ε > 0, ∃δ > 0 : x ∈ (p − δ; p + δ) ⇒ F (x) ∈ (p − δ; p + δ) .

Do f (p) = 0 nên F 0 (p) = 0.


Do đó

∃δ1 ∈ (0; δ) , ∃k ∈ (0; 1) : ∀x ∈ (p − δ1 ; p + δ1 ) : F 0 (x) < k.


Do đó bằng cách chọn p0 ∈ (p − δ1 ; p + δ1 ) ta sẽ tạo được dãy

pn = F (pn−1 ) , n ≥ 1

hội tụ về p.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 29 / 35
Sự hội tụ

Định lý 4.
Cho f ∈ C 2 [a; b] sao cho tồn tại nghiệm p ∈ (a; b) của phương trình
f (x) = 0 và f (p) f 00 (p) − 2f 0 (p)2 6= 0. Khi đó tồn tại dãy (pn )n≥0 tạo
bởi dãy lặp Halley hội tụ về p.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 30 / 35
Sự hội tụ
Chứng minh.
Ta có
2f 0 (x) f (x)
F (x) = x + .
f (x) f 00 (x) − 2f 0 (x)2
Do đó ta có
 
f (x)2 3f 00 (x)2 − 2f 0 (x) f (3) (x)
F 0 (x) =  2 .
00 0 2
f (x) f (x) − 2f (x)

Do F xác định như trên là liên tục trên p ∈ [a; b] nên



∀ε > 0, ∃δ > 0 : x ∈ (p − δ; p + δ) ⇒ F (x) ∈ F (p) − ε; F (p) + ε .

Hay là

∀ε > 0, ∃δ > 0 : x ∈ (p − δ; p + δ) ⇒ F (x) ∈ (p − ε; p + ε) .

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 31 / 35
Sự hội tụ

Chọn ε = δ ta có

∀ε > 0, ∃δ > 0 : x ∈ (p − δ; p + δ) ⇒ F (x) ∈ (p − δ; p + δ) .

Do f (p) = 0 nên F 0 (p) = 0.


Do đó

∃δ1 ∈ (0; δ) , ∃k ∈ (0; 1) : ∀x ∈ (p − δ1 ; p + δ1 ) : F 0 (x) < k.


Do đó bằng cách chọn p0 ∈ (p − δ1 ; p + δ1 ) ta sẽ tạo được dãy

pn = F (pn−1 ) , n ≥ 1

hội tụ về p.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 32 / 35
Ví dụ - Nhận xét
3 2 −12
r x + 4x − 10 = 0 trên [1; 2] với p0 = 1, 5;T OL = 10 .
Xét phương trình
10
Ta xét g (x) = đối với phương pháp Fixed-point.
4+x

n Bisection Fixed-point Newton Halley


1 1.50000000000 1.34839972493 1.37333333333 1.37333333333
2 1.37500000000 1.36737637199 1.36526201487 1.36523001342
3 1.31250000000 1.36495701540 1.36523001392 1.36523001341
4 1.34375000000 1.36526474811 1.36523001341
5 1.35937500000 1.36522559416
10 1.36474609375 1.36523001356
15 1.36521911621 1.36523001341
20 1.36523008347
30 1.36523001315
38 1.36523001341

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 33 / 35
Ví dụ - Nhận xét
Xét phương trình 2sin (x) + ex = 0 trên [−2; 0] với
p0 = −1;T OL = 10−12 . x 
−1 e
Ta xét g (x) = sin − đối với phương pháp Fixed-point.
2

n Bisection Fixed-point Newton Halley


1 -0.5000000000 -0.1849930688 -0.0921111449 -0.4473233752
2 -0.2500000000 -0.4285529222 -0.3428552594 - 0.3574495458
3 -0.3750000000 -0.3317790345 -0.3572713722 - 0.3573274113
4 -0.3125000000 -0.3670065494 -0.3573274105
5 -0.3437500000 -0.3537334960 -0.3573274113
10 -0.3564453125 -0.3573535226
15 -0.3573303223 -0.3573272219
20 -0.3573274612 -0.3573274127
30 -0.3573274119 -0.3573274113
40 -0.3573274113

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 34 / 35
Ví dụ - Nhận xét

Từ hai ví dụ trên ta có thể thấy sự hiệu quả của phương pháp Newton và
Halley. Trong 4 phương pháp đã học thì phương pháp Halley mang cho ta
tốc độ hội tụ nhanh nhất và tiếp theo đó là phương pháp Newton.
Còn phương pháp Bisection thì tốn khá nhiều bước lặp mới có thể tìm
được nghiệm chính xác.
Phương pháp Fixed-point thì gặp trở ngại về vấn đề chọn hàm. Cho nên
có thể nói là phương pháp Newton và Halley chính là cách để khắc phục
nhược điểm của Fixed-point.

Phạm Quốc Thắng và Nguyễn Từ Huy (17TTH1TN) Giải Tích Số 1 Ngày 30 tháng 4 năm 2019 35 / 35

You might also like