Bài giảng Phương pháp số - Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến

Khoảng phân ly nghiệm

Định nghĩa. Khoảng [a,b] được gọi là khoảng phân ly nghiệm của phương trình (4.1) nếu

nó chứa một và chỉ một nghiệm của phương trình đó.

Định lý. Nếu hàm số f(x) liên tục, đơn điệu trên đoạn [a,b] và f(a)f(b)<0 thì="" đoạn="" [a,b]="">

một khoảng phân ly nghiệm của phương trình (4.1).

Ví dụ. Xét phương trình

f(x) = x2 - 2 =0

Ta thấy hàm số f(x) liên tục, và f'(x) = 2x.

Ta xét đoạn [1,2]. Ta có f(1) = -1; f(2) = 2. Vậy f(1)f(2)<0. hàm="" số="" f(x)="" liên="" tục="" và="" đơn="">

vì f'(x) = 2x >0 trên đoạn [1,2]. Vậy đoạn [1,2] là khoảng phân ly nghiệm của phương trình trên.

Tuy nhiên ví dụ sau đây chứng tỏ rằng điều kiện liên tục, đơn điệu chỉ là điều kiện đủ. Hàm

số không đơn điệu trong một khoảng nào đó vẫn có thể chỉ có một nghiệm duy nhất.

pdf 21 trang kimcuc 16820
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phương pháp số - Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Phương pháp số - Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến

Bài giảng Phương pháp số - Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
CHƯƠNG 4 
TÍNH GẦN ĐÚNG NGHIỆM CỦA 
PHƯƠNG TRÌNH PHI TUYẾN 
MỤC ĐÍCH, YÊU CẦU 
Sau khi học xong chương 4, yêu cầu sinh viên: 
1. Hiểu được thế nào là nghiệm và khoảng phân ly nghiệm 
2. Nắm được một số phương pháp lặp để tìm nghiệm gần đúng của phương trình phi tuyến. 
3. Biết vận dụng các phương pháp trên vào các bài toán thực tế. 
4.1. NGHIỆM VÀ KHOẢNG PHÂN LY NGHIỆM 
4.1.1. Nghiệm của phương trình một ẩn 
Xét phương trình một ẩn 
 f(x) = 0 (4.1) 
trong đó f(x) là một hàm số cho trước của đối số x. 
Giá trị x0 được gọi là nghiệm của (4.1) nếu 
 f(x0) = 0 
Nghiệm của phương trình (4.1) có thể là số thực hoặc số phức, nhưng ở đây ta chỉ khảo sát 
các nghiệm thực. 
4.1.2. Sự tồn tại nghiệm của phương trình 
Định lý. Nếu hàm số f(x) liên tục trên đoạn [a,b] và f(a) và f(b) trái dấu, tức là 
f(a)f(b)<0 (4.2) 
Thì phương trình (4.1) có ít nhất một nghiệm trong khoảng [a,b]. 
4.1.3. Khoảng phân ly nghiệm 
Định nghĩa. Khoảng [a,b] được gọi là khoảng phân ly nghiệm của phương trình (4.1) nếu 
nó chứa một và chỉ một nghiệm của phương trình đó. 
Định lý. Nếu hàm số f(x) liên tục, đơn điệu trên đoạn [a,b] và f(a)f(b)<0 thì đoạn [a,b] là 
một khoảng phân ly nghiệm của phương trình (4.1). 
Ví dụ. Xét phương trình 
 f(x) = x2 - 2 =0 
Ta thấy hàm số f(x) liên tục, và f'(x) = 2x. 
 68 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
Ta xét đoạn [1,2]. Ta có f(1) = -1; f(2) = 2. Vậy f(1)f(2)<0. Hàm số f(x) liên tục và đơn điệu 
vì f'(x) = 2x >0 trên đoạn [1,2]. Vậy đoạn [1,2] là khoảng phân ly nghiệm của phương trình trên. 
Tuy nhiên ví dụ sau đây chứng tỏ rằng điều kiện liên tục, đơn điệu chỉ là điều kiện đủ. Hàm 
số không đơn điệu trong một khoảng nào đó vẫn có thể chỉ có một nghiệm duy nhất. 
Ví dụ. Xét phương trình 
 f(x) = x3 - x -1 =0 (4.3) 
Ta sẽ chứng tỏ rằng phương trình này có nghiệm thực và xác định khoảng phân ly nghiệm. 
Ta thấy hàm số f(x) liên tục, và f'(x) = 3x2 - 1 =0 tại x = ±
3
1 . 
Ta có bảng biến thiên sau: 
 x 
- ∞ -
3
1 
3
1 +∞ 
f'(x) + 0 - 0 + 
f(x) 
 +∞ 
 M 
- ∞ m 
trong đó f(M) = f(-
3
1 ) = -
33
1 + 
3
1 -1 = 
33
2 -1 <0 
Vậy đồ thị chỉ cắt trục hoành tại một điểm duy nhất và do đó phương trình (4.3) chỉ có một 
nghiệm duy nhất (Mặc dù trên đoạn [ -
3
1 ;2] hàm số không đơn điệu) 
Ngoài ra theo bảng biến thiên ta có: hàm số f(x) liên tục,đơn điệu trên đoạn [1;2] và 
f(1) = 13 -1 -1 =-1 < 0 
f(2) = 23 -2 -1 = 5 > 0 
Tức là f(1)*f(2)<0 
Vậy khoảng [1,2] chính là khoảng phân ly nghiệm. 
4.1.4. Về vấn đề đánh giá sai số nghiệm xấp xỉ 
Cũng như các phương pháp gần đúng nói chung, khi tìm nghiệm gần đúng của phương trình 
siêu việt, ta thường thiết lập cả một dãy x0, x1,...,xn,... sao cho xn -> α khi n-> ∞, trong đó α là 
nghiệm đúng của phương trình (4.1). Do giả thiết liên tục của hàm f(x) ta có 
+∞>−nlim f(xn) = f(α) = 0 
Điều này có nghĩa là khi xn khá gần α thì f(xn) khá gần f(α) và có thể xem f(xn) ≈ 0, hay xn 
thực sự có thể xem là xấp xỉ của nghiệm. 
 69
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
Người ta thường cho trước số ε>0 đủ nhỏ và nếu 
|xn-α| ≤ ε (4.4) 
thì chọn xn làm nghiệm xấp xỉ và dừng quá trình tính toán. Một câu hỏi đặt ra là với cách 
chọn như vậy thì f(xn) đã có thể thực sự xem là xấp xỉ của f(α) không, có bảo đảm rằng |f(xn)-
f(α)| = |f(xn)| là khá gần 0 không? Cũng có lúc ta chỉ quan tâm là xn xấp xỉ α tốt như thế nào 
thôi, như trong ví dụ áp dụng tính 2 mà ta sẽ xét đến chẳng hạn, khi đó ta không cần quan 
tâm đến câu hỏi này lắm. Nhưng cũng có những trường hợp ta lại quan tâm là f(xn) có thể coi là 
gần 0 không, (Ví dụ để có thể bỏ qua trong quá trình tính toán) thì lúc này sự xấp xỉ của xn so 
với α chưa đủ, mà ta còn phải xét cả giá trị |f(xn)| nữa. Chính vì lý do này mà trong các chương 
trình tính toán chúng tôi đưa thêm điều kiện dừng về f(xn). Quá trình tính toán sẽ dừng nếu điều 
kiện (4.4) và 
|f(xn)| < δ (4.5) 
thỏa mãn. 
Để bạn đọc hiểu rõ hơn những điều chúng tôi vừa trình bày, chúng ta xét ví dụ sau đây: 
Ví dụ. 
Ta xét 2 hàm sau đây: 
f(x) = (3363 - 2378 2 ) - (x-1)10 
g(x) = (3363 - 2378x) - ( 2 -1)10
và xét 2 phương trình 
f(x) = 0 (4.6) 
 g(x) = 0 (4.7) 
Ta có thể thấy rằng 
f( 2 ) = g( 2 ) =0 
Vì không tính được α = 2 nên chúng ta sẽ dùng kết quả độ chính xác gấp đôi do máy tính 
thực hiện bằng hàm sqrt(2). Giá trị này vào khoảng 1.41421356237309551454746218. Ta định 
nghĩa dãy xn như sau 
x0 =1 | x0 -α | < 0.5e+01 
x1 =1.4 | x1 -α | < 0.5e-01 
x2 =1.41 | x2 -α | < 0.5e-02 
x3 =1.414 | x3 -α | < 0.5e-03 
x4 =1. 4142 | x4 -α | < 0.5e-04 
. . . 
Rõ ràng dãy xn hội tụ đến α. 
Ta có bảng sau đây biểu diễn mối liên hệ giữa dãy xn , sai số trên dãy xn là εn, hàm f(xn) và 
hàm g(xn). 
 70 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
n xn εn f(xn) g(xn) 
0 1 0.5 0.0001486768 985 
1 1.4 0.5e-01 0.0000438191 34 
2 1.41 0.5e-02 0.0000144501 10 
3 1.414 0.5e-03 0.0000007647 0.5 
4 1.4142 0.5e-04 0.0000000488 0.03 
5 1.41421 0.5e-05 0.0000000128 0.008 
6 1.414213 0.5e-06 0.0000000002 0.001 
7 1.4142135 0.5e-07 0.0000000002 0.0001 
Rõ ràng nếu chỉ dựa vào độ lệch | xn -α |, hay trong thực tế là | xn - xn-1 | để chọn nghiệm xấp 
xỉ, ta sẽ có những kết quả rất khác biệt giữa 2 phương trình (4.6) và (4.7). Với phương trình (4.6) 
thì tất cả các giá trị xn trong bảng trên đều có thể xem là nghiệm gần đúng, và như vậy ε = 0.5 
cũng là đủ. Ngược lại nếu ta nói rằng giá trị xn = 1.41 là nghiệm xấp xỉ của phương trình (4.7) 
với độ chính xác 0.5% thì rõ ràng không ổn, vì giá trị g(1.41) =10 còn là giá trị quá lớn so với 0. 
Thậm chí khi ε đạt độ chính xác 0.0005 thì g(1.4142) = 0.03 vẫn còn lớn so với 0, nên nếu ta nói 
rằng 1.4142 là nghiệm xấp xỉ của (4.7) thì cũng không ổn. 
Nếu bây giờ ta thay điều kiện (4.4) bằng điều kiện (4.5) thì ta không còn gặp điều phiền toái 
trên đây nữa. Với phương trình (4.6) ta chỉ cần chọn n rất bé là đủ, còn với phương trình (4.7) thì 
ta phải chọn n lớn hơn nếu muốn đạt được độ chính xác như mong muốn. Trong thực hành việc 
thử điều khiện (4.5) được thực hiện rất dễ dàng. Vì vậy chúng tôi nghĩ rằng trong những bài toán 
tìm nghiệm xấp xỉ ta nên thêm một cột f(xn), chúng ta sẽ thấy được tốc độ hội tụ đến 0 của f(xn) 
và vì vậy sẽ dừng bước tính toán ở thời điểm thích hợp hơn. 
4.2. MỘT SỐ PHƯƠNG PHÁP LẶP GIẢI PHƯƠNG TRÌNH 
4.2.1. Mở đầu 
Ý tưởng chung của phương pháp lặp tìm nghiệm của phương trình (4.1) là xây dựng một 
dãy các số x0, x1,..., xn,... với x0 là giá trị xuất phát sao cho 
+∞>−n
lim xn = α 
Như vậy với n khá lớn, ta có thể xem xn là xấp xỉ của nghiệm α. 
Ta có thể đưa ra một đánh giá về sai số tổng quát cho hầu hết các phép lặp như sau: 
Định lý. Với hàm f(x) liên tục và khả vi trên đoạn [a,b], ngoài ra 
∃ m1 sao cho 0 < m1 ≤ |f'(x)| với ∀ x∈ [a,b] (4.8) 
khi đó ta có đánh giá 
 |xn - α| ≤ 
1
|)(|
m
xf n (4.9) 
 71
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
4.2.2. Phương pháp chia đôi (bisection) 
a. Mô tả phương pháp 
Giả sử f(x) liên tục trên [a,b] và f(a), f(b) trái dấu (đoạn [a,b] không cần phải là khoảng 
phân ly). Như vậy trong khoảng này phải có một nghiệm α. Ta sẽ tìm nghiệm này bằng cách chia 
đôi khoảng [a,b], chọn khoảng con chứa nghiệm, rồi chia đôi tiếp khoảng con chứa nghiệm này 
cho đến khi tìm thấy nghiệm hoặc khoảng con đã đủ nhỏ để bảo đảm rằng mọi giá trị trong 
khoảng đó đều có thể xem là xấp xỉ nghiệm. Cụ thể trước hết ta đặt a0 = a, b0 =b và cho trước một 
giá trị ε > 0 đủ nhỏ để dùng làm điều kiện xấp xỉ nghiệm và dừng quá trình tính toán. Sau đó ta 
thực hiện các bước sau: 
- Bước 0: Đặt x0 = 2
00 ba + 
 Vì f(a0)f(b0)<0, do đó một trong 2 trường hợp sau xảy ra: 
 a. f(x0) = 0. Ta có x0 là nghiệm và kết thúc. 
 b. f(x0) ≠ 0. Nếu f(a)f(x0)<0 thì nghiệm sẽ ở trong khoảng [a, x0] do đó ta đặt 
 a1 = a0 , b1 = x0 
 Nếu f(x0)f(b)<0 thì nghiệm sẽ ở trong khoảng [x0,b] do đó ta đặt 
 a1 = x0 , b1 = b 
 Vì nghiệm α ∈[a1,b1], ta có | x0- α| ≤ | b1-a1| = 
2
ab − 
 Chuyển sang bước 1. 
- Bước 1: Đặt x1 = 2
11 ba + 
 Vì f(a1)f(b1)<0, do đó một trong 2 trường hợp sau xảy ra: 
 a. f(x1) = 0. Ta có nghiệm là x1 và kết thúc. 
b. f(x1) ≠ 0. 
 Nếu f(a1)f(x1)<0 thì nghiệm sẽ ở trong khoảng [a1, x1] do đó ta đặt 
 a2 = a1 , b2 = x1 
 Nếu f(x1)f(b1 )<0 thì nghiệm sẽ ở trong khoảng [x1,b1] do đó ta đặt 
 a2 = x1 , b2 = b1 
 Vì nghiệm α ∈[a2,b2], ta có | x1- α| ≤ | b2-a2| = 22
ab − 
 Chuyển sang bước 2. 
. . . 
- Bước n: Đặt xn = 2
nn ba + 
 72 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
 Vì f(an)f(bn)<0, do đó một trong 2 trường hợp sau xảy ra: 
 a. f(xn) = 0. Ta có nghiệm là xn và kết thúc. 
 b. f(xn) ≠ 0. 
 Nếu f(an)f(xn)<0 thì nghiệm sẽ ở trong khoảng [an, xn] do đó ta đặt 
 an+1 = an , bn+1 = xn 
 Nếu f(xn)f(bn )<0 thì nghiệm sẽ ở trong khoảng [xn,bn] do đó ta đặt 
 an+1 = xn , bn+1 = bn 
 Vì nghiệm α ∈[an+1,bn+1], ta có | xn - α| ≤ | bn+1-an+1| = 12 +
−
n
ab 
 Ta kiểm tra xem nếu 12 +
−
n
ab ≤ ε thì kết thúc, nếu không thì 
 Chuyển sang bước n+1. 
b. Sự hội tụ của phương pháp và sai số 
Dãy a0,a1,...,an đơn điệu tăng và bị chặn bởi b, bãy b0,b1,...,bn đơn điệu giảm và bị chặn bởi 
a mặt khác dãy bn-an dương và giảm dần đến 0, như vậy khi n -> ∞ ta có 
 a
+∞>−nlim n = b+∞>−nlim n = x+∞>−nlim n = α 
Do tính liên tục của hàm f và f(an)f(bn)<0 ta có 
 f(a
+∞>−nlim n)f(bn) = |f(α)|
2 ≤ 0 
Suy ra f(α) = 0, hay α chính là nghiệm của phương trình (4.1). 
Tóm lại xuất phát từ a0 = a và b0 = b, cho n = 0,1,2,... nếu ta lấy nghiệm gần đúng là xn = an 
hoặc xn = bn thì sai số là 
 |xn - α| ≤ n
ab
2
− (4.10) 
Còn nếu ta lấy nghiệm gần đúng là 
2
nn ba + thì sai số là 
 |xn - α| ≤ 12 +
−
n
ab (4.11) 
(4.9) chính là đánh giá sai số của nghiệm xấp xỉ tính bằng thuật toán đã trình bày ở trên đây. 
c. Ví dụ 
Ta xét phương trình f(x) = sin(x) - x2cos(x) =0. 
Phương trình này có nghiệm đúng là x = 0. 
Ta thấy nếu a= -0.5, b = 2 thì f(a) = -0.6988, f(b) = 2.5739, tức là trái dấu. Vậy ta có thể áp 
dụng phương pháp chia đôi. Đặt ε = 1.0e-03 ta có sau 8 bước lặp ta nhận được nghiệm là 0.0005. 
d. Nhận xét về thuật toán chia đôi 
Ưu điểm của phương pháp chia đôi là đơn giản. Nhược điểm là tốc độ hội tụ chậm, không 
tận dụng được tính chất của hàm số f(x). Dù hàm số có dạng gì thì chúng ta cũng chỉ chia đôi, xét 
 73
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
giá trị của hàm tại các điểm chia rồi quyết định chọn đoạn nào để chia tiếp. Nếu khoảng [a,b] ban 
đầu lớn thì phải khá nhiều bước mới đạt được độ chính xác cần thiết. 
e. Cài đặt chương trình cho thuật toán chia đôi 
Phương pháp chia đôi đòi hỏi phải biết hàm f(x) và 2 giá trị a và b là 2 điểm cận dưới và 
cận trên của khoảng quan sát. Trong chương trình chúng tôi dùng chương trình con chiadoi 
(double (*f)(double),double &x) để thực hiện thuật toán chia đôi. Ở đây chúng tôi dùng con trỏ tới 
hàm là f, như vậy chúng ta không phụ thuộc vào một dạng hàm cụ thể. Sau này ta có thể gọi thủ 
tục chia đôi cho một hàm do ta định nghĩa hoặc có sẵn, ví dụ chiadoi(sin,xx), chiadoi(g,x),... Thủ 
tục chiadoi được viết dưới dạng hàm. Khi chạy thủ tục này ta sẽ phải nhập giá trị a,b. Chương 
trình sẽ kiểm tra điều kiện f(a)f(b)<0; nếu không thỏa mãn hoặc số bước lặp đã vượt quá số bước 
lặp tối đa thì hàm trả về giá trị false. Trong trường hợp thành công thì hàm trả về giá trị true và giá 
trị x là nghiệm xấp xỉ. 
 Sau đây là đoạn chương trình chính thể hiện thuật toán: 
/*Phuong phap tim nghiem bang cach chia doi lien tiep khoang [a,b]*/ 
int chiadoi(double (*f)(double),double a,double b,double &x, 
 double &errx,double &erry,int &buoclap) 
/*Phuong phap chia doi de tim nghiem f(x)=0 trong khoang trai dau [a,b]. 
 Neu co nghiem thi tra ve gia tri true, neu khong thi tra ve gia tri false. 
 x la nghiem, errx, erry sai so tren x va tren y, buoclap la so buoc lap 
 da thuc hien*/ 
{clrscr(); 
 if(f(a)==0) {x=a;errx=erry=0;buoclap=0;return true;} 
 if(f(b)==0) {x=b;errx=erry=0;buoclap=0;return true;} 
 if(f(a)*f(b)>0) 
 {cout<<endl<<"f(a) va f(b) khong trai dau";delay(1000);return false;} 
 int k=1;double c,aa,bb;aa=a;bb=b; 
 kvecto xc; 
 xc[0]=a;xc[1]=b; 
 while(true) 
 {c = (a+b)/2; 
 if(f(a)*f(c)<0) b=c;else a=c; 
 xc[++k]=c; 
 if(b-a<epsix && fabs(f(c))<epsiy) break;//f(c) = 0 
 if(k>kmax) 
 {cout<<endl<<"Lap chua hoi tu sau "<<kmax<<" buoc"; 
 delay(1000);return false; 
 } 
 } 
 74 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
 x=c; 
 errx=b-a;erry=fabs(f(c));buoclap=k; 
 return true; 
 } 
4.2.3. Phương pháp dây cung 
a. Mô tả phương pháp 
Điều kiện để thực hiện phương pháp dây cung cũng giống như phương pháp chia đôi, là 
f(x) liên tục trên [a,b] và f(a), f(b) trái dấu. 
Về nguyên tắc phương pháp dây cung cũng giống như phương pháp chia đôi, nghĩa là dựa 
vào hai điểm a0 = a, b0 = b ban đầu ta sẽ chọn tiếp các điểm xn nằm trong khoảng [an,bn], sao cho 
khoảng chọn luôn luôn chứa nghiệm đúng của phương trình. Ở phương pháp chia đôi, xn được 
chọn là điểm giữa của khoảng [an ,bn ] và khoảng [an+1 ,bn+1] tiếp theo sẽ là khoảng chứa nghiệm 
trong 2 khoảng con [an ,xn ] hoặc [xn,bn]. Như vậy khoảng [an,bn] sẽ nhỏ dần tới 0, cho đến lúc ta 
có thể xem tất cả các điểm nằm trong khoảng là xấp xỉ của nghiệm. 
Còn ở phương pháp dây cung giá trị xn được chọn tiếp theo lại là giao điểm của dây cung 
nối 2 điểm biểu diễn đồ thị tại 2 đầu khoảng con với trục hoành. 
Ta lưu ý là trong phương pháp chia đôi độ dài khoảng con [an,bn] tiến tới 0, nhưng trong 
phương pháp dây cung nói chung điều này không đúng. Có thể một trong 2 giá trị a hoặc b sẽ giữ 
nguyên. Giá trị này sẽ luôn đóng vai trò là an hoặc bn . Ví dụ nếu b giữ nguyên và luôn luôn đóng 
vai trò bn thì an sẽ thay đổi và chính là xn-1, n=1,2,...Dãy x0,x1,...,xn,... là dãy đơn điệu tăng hoặc 
giảm và hội tụ đến nghiệm đúng. Không như ở phương pháp chia đôi, điều kiện dừng ở đây không 
còn là độ dài khoảng [an,bn], mà là độ dài khoảng [xn, xn-1]. Ta sẽ dừng thuật toán và xem xn là 
nghiệm xấp xỉ nếu |xn - xn-1| ≤ ε hoặc (và) |f(xn)| ≤ δ. 
Ta biết rằng phương trình đường thẳng đi qua 2 điểm (a,f(a)) và (b,f(b) là 
ab
ax
−
− = 
)()(
)(
afbf
afy
−
− 
Điểm cắt trục hoàng có tọa độ (c,0) do đó ta có 
ab
ac
−
− = 
)()(
)(
afbf
af
−
− 
Từ đây 
 c = a - 
)()(
])[(
afbf
abaf
−
− = 
)()(
)()(
afbf
abfbaf
−
− (4.12) 
Trước hết ta đặt a0 = a, b0 =b và cho trước một giá trị ε > 0 và δ>0 đủ nhỏ để dùng làm 
điều kiện xấp xỉ nghiệm và dừng quá trình tính toán. Ta cũng cho trước một số kmax để làm số 
bước lặp tối đa. Sau kmax bước mà ...  Mô tả phương pháp 
Giả sử phương trình (4.1) có nghiệm trong khoảng [a,b] và ta biến đổi được về dạng tương đương 
 x = ϕ(x) (4.17) 
Tiếp theo ta chọn một giá trị x0 ∈ [a,b] làm giá trị xấp xỉ ban đầu rồi tính dần các nghiệm 
xấp xỉ xn theo quy tắc 
 xn = ϕ(xn-1), n=1,2,... (4.18) 
Phương pháp này gọi là phương pháp lặp và hàm ϕ gọi là hàm lặp. 
b. Điều kiện hội tụ của phương pháp và đánh giá sai số 
Điều kiện hội tụ của phương pháp lặp: 
Định lý. Giả sử phương pháp lặp (4.17) và (4.18) thỏa mãn các điều kiện sau: 
(1) [a,b] là khoảng phân ly nghiệm α của phương trình (4.17) 
(2) Mọi xn tính theo (4.18) đều ∈ [a,b]. 
(3) Hàm ϕ(x) có đạo hàm ϕ'(x) và thỏa mãn: | ϕ'(x) | ≤ q < 1, x∈ (a,b) 
 Khi đó phương pháp lặp (4.18) hội tụ, tức là: xn → α khi n → ∞ 
Chứng minh. 
Chúng ta sẽ dùng đến công thức Lagrange như sau: 
Cho hàm số g(x) liên tục trên [a,b] và có đạo hàm trong (a,b). Khi đó tồn tại c ∈ (a,b) sao 
cho g(b)-g(a) = g'(c)(b-a). 
Bây giờ ta chứng minh định lý trên. 
Vì α là nghiệm của (4.4) ta có: α = ϕ(α) 
theo công thức lặp thì xn = ϕ(xn-1) 
Trừ 2 đẳng thức này vế với vế ta có 
 α -xn = ϕ(α) - ϕ(xn-1) (4.19) 
Áp dụng công thức Lagrange vào vế phải của (4.19) ta có 
 α -xn = ϕ'(c)(α - xn-1) 
 79
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
Từ đây suy ra 
| α -xn | = | ϕ'(c) | |α - xn-1| ≤ q |α - xn-1| (4.20) 
Vì bất đẳng thức này đúng với mọi n, do đó cho n giảm dần đến 1 ta có 
| α -xn | = | ϕ'(c) | |α - xn-1| ≤ qn |α - x0| → 0 khi n → ∞. (4.21) 
Vậy ta có | α -xn | → 0 khi n → ∞, là điều cần chứng minh. 
Đánh giá sai số phương pháp lặp: 
Ta có thể dùng công thức (4.21) để đánh giá sai số của phương pháp lặp đơn. Tuy nhiên 
trong thực tế giá trị α lại chưa biết nên ta phải thay khoảng [α,x0] bằng khoảng [a,b], và như vậy 
| α -xn | ≤ qn | b - a | (4.22) 
Tuy nhiên công thức này phụ thuộc vào a, b và không sát với thực tế, nhất là khi khoảng 
[a,b] lớn. 
Sau đây chúng ta sẽ đưa ra một cách đánh giá khác, sát với thực tế hơn. 
Từ (4.20) ta có 
| α -xn | ≤ q |α - xn-1| = q | α -xn + xn - xn-1| ≤ q | α -xn | + q | xn - xn-1| 
Vậy 
(1-q) | α -xn | ≤ q | xn - xn-1| 
Hay 
| α -xn | ≤ 
q
q
−1 | xn - xn-1| (4.23) 
Mặt khác vì 
 | ϕ'(x) | ≤ q < 1, x∈ (a,b) 
Do đó 
| xn -xn-1 | = | ϕ(xn-1) - ϕ(xn-2)| = | ϕ'(c) | | xn-1 - xn-2| ≤ q | xn-1 - xn-2| 
Từ đây suy ra 
| xn -xn-1 | ≤ qn-1 | x1 - x0| 
Tức là | xn -xn-1 | hội tụ đến 0. 
Kết hợp với (4.22) ta có 
| α -xn | ≤ 
q
q
−1 | xn - xn-1| ≤ q
n 
q−1
1 | x1 - x0| (4.24) 
Áp dụng (4.24) ta có thể đánh giá sai số | xn - α | qua các giá trị lặp vừa tính. Về sau này 
khi xét điều kiện để dừng quá trình lặp người ta thường đánh giá qua |xn-xn-1|. Nếu sai số cho 
phép là ε thì quá trình lặp sẽ dừng nếu |xn-xn-1| ≤ ε. 
Ví dụ. 
Ta xét phương trình: 
 f(x) = x3 - x - 1 = 0 (4.25) 
 80 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
Theo ví dụ ở phần (4.1.3) hàm số này luôn đơn điệu, liên tục trên [1;2] và f(1) = -1, f(2) =5. 
Vậy khoảng [1,2] chính là khoảng phân ly nghiệm. Ta sẽ dùng phương pháp lặp để tính gần đúng 
nghiệm α của nó. Ta sẽ biến đổi (4.25) về dạng (4.17). Ví dụ ta có thể viết 
 ϕ(x) = x3 -1 
Nhưng lúc đó 
 ϕ'(x) = 3x2 ≥ 3 tại mọi x ∈ [1,2] 
Với cách chọn như vậy phương pháp lặp không có hy vọng hội tụ. Điều này có thể thấy rõ 
trong bảng sau: 
n x0 =1 
xn = ϕ(xn-1) 
0 1 
1 0 
2 -1 
3 -2 
4 -9 
5 -730 
Bây giờ ta viết (4.25) dưới dạng sau 
 x3 = x +1 
 x = (x+1)1/3
 ϕ(x) = (x+1)1/3
Lúc đó 
 ϕ'(x) = (1/3)(x+1)-2/3 = (1/3)(1/ 3 )1( +x 2) ≤ 1/3 tại mọi x ∈ [1,2] 
Ngoài ra ϕ'(x) > 0, như vậy hàm ϕ(x) thỏa mãn định lý trên đây do đó ta có thể thực hiện 
quá trình lặp với giá trị bắt đầu là x0 =1 chẳng hạn.Ta có bảng giá trị như sau: 
n x0 =1 
xn = ϕ(xn-1) 
0 1 
1 1.2599 
2 1.3122 
3 1.3223 
4 1.3242 
5 1.3246 
 81
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
Ta có thể lấy nghiệm xấp xỉ là 1.3246 
4.2.5. Phương pháp Newton-Rapson hay còn gọi là phương pháp tiếp tuyến 
a. Mô tả phương pháp 
Điều kiện để thực hiện phương pháp Newton có phần chặt hơn 2 phương pháp ta vừa khảo 
sát trên đây. Ta giả thiết rằng hàm f(x) trái dấu tại 2 vị trí a và b, đồng thời tồn tại đạo hàm cấp 
một f'(x) ≠ 0 trong khoảng [a,b], và đạo hàm cấp 2 tại x∈ (a,b). 
Ý chủ đạo của phương pháp Newton là thay phương trình (4.1) phi tuyến đối với x bằng 
phương trình gần đúng, tuyến tính đối với x. 
Trước hết ta nhắc lại định lý về khai triển Taylo của một hàm như sau: 
Định lý. Cho hàm số f(x) xác định và có đạo hàm đến cấp n+1 tại x0 và lân cận của x0. 
Giả sử h là một giá trị sao cho x0 + h cũng thuộc lân cận này. Ta có công thức sau đây được gọi là 
khai triển Taylor bậc n của f(x) tại x0: 
f(x0 +h) = f(x0) + 
!1
h f'(x0) + 
!2
2h
f''(x0) + . . .+ 
!n
hn
f(n)(x0) +
)!1(
1
+
+
n
h n
f(n+1)(c) 
Trong đó c∈ (x0,x0+h) 
Dựa vào khai triển Taylo, ta sẽ xác định một hàm ϕ(x) và tìm nghiệm của (4.1) bằng phép lặp: 
 xn+1 = ϕ(xn) 
Giả sử x là nghiệm đúng của (4.1), còn xn là nghiệm xấp xỉ tại bước lặp thứ n. Ta đặt 
x=xn+Δxn. Theo khai triển Taylo ta có 
f(x) = f(xn + Δxn) = f(xn) + Δxnf'(xn) +
!2
2
nxΔ f''(c) = 0 
Nếu Δxn đủ nhỏ thì ta có công thức gần đúng: 
f(xn) + Δxnf'(xn) ≈ f(x) = 0 
Từ đây 
Δxn ≈ )('
)(
n
n
xf
xf− 
Vì Δxn = x - xn
Do đó 
 x ≈ xn )('
)(
n
n
xf
xf− 
Và ta suy ra công thức lặp cho phép lặp Newton: 
 xn+1 = xn )('
)(
n
n
xf
xf− (4.25) 
Về ý nghĩa hình học xn+1 chính là giao điểm của tiếp tuyến đường cong y = f(x) tại điểm 
(xn,f(xn)) với trục hoành. Do đó phương pháp này còn được gọi là phương pháp tiếp tuyến. 
 82 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
Từ điểm (xn,f(xn)) ta vẽ tiếp tuyến của đồ thị y = f(x). Phương trình đồ thị này là 
y = f(xn) + f'(xn)(x-xn). 
Giả sử đường tiếp tuyến này cắt trục hoành tại xn+1, ta có 
0 = f(xn) + f'(xn)(xn+1-xn) 
Từ đây suy ra 
 xn+1 = xn )('
)(
n
n
xf
xf− 
Công thức này cũng chính là công thức (4.25) ở trên. 
b. Điều kiện hội tụ của phương pháp Newton và đánh giá sai số 
Định lý. Điều kiện đủ để phương pháp tiếp tuyến hội tụ: 
Giả sử những điều kiện sau đây thỏa mãn: 
f(a)f(b) < 0, tức là giá trị hàm f(x) trái dấu tại hai đầu đoạn [a,b]. 
Hàm f(x) có đạo hàm bậc nhất và bậc 2 f'(x) và f''(x), với f(x) và f'(x) liên tục trên [a,b], f' 
và f'' không đổi dấu trong (a,b) (tức là hàm f(x) đơn điệu, lồi hoặc lõm trong đoạn [a,b]). 
Xấp xỉ đầu x0 được chọn ∈ [a,b], sao cho f(x0) cùng dấu với f''(x), tức là f(x0)f''(x) > 0 
(hàm lồi thì chọn phía giá trị hàm âm, hàm lõm thì chọn phía giá trị dương). 
Khi đó dãy xn được định nghĩa bởi (4.25) sẽ hội tụ tới α. 
Đánh giá sai số của nghiệm gần đúng. 
Ngoài công thức đanh giá sai số (4.9), nếu thêm điều kiện về f''(x) ta có thể đánh giá sai số 
của nghiệm gần đúng xn thông qua 2 gần đúng liên tiếp xn và xn-1. 
Định lý. 
Giả sử f'(x) liên tục và không đổi dấu trên [a,b] và thỏa mãn: 
∃ m1 , M2 dương sao cho m1 ≤ |f'(x)| ; f''(x) ≤ M2 với ∀ x∈ [a,b] (4.28) 
khi đó ta có 
 |xn - α| ≤ 
1
2
2m
M
|xn - xn-1| 2 (4.29) 
Chứng minh. 
Dùng công thức khai triển Taylor cho f(xn) tại xn-1 ta có 
f(xn) = f(xn-1) + !1
1−− nn xx f'(xn-1) + 
!2
)( 21−− nn xx f''(c) (4.30) 
trong đó c ∈ (xn-1,xn) 
Theo (4.25) 
xn = xn-1 - )('
)(
1−
−
n
n
xf
xf
 83
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
Từ đây 
 f(xn-1) + (xn - xn-1)f'(xn-1) = 0 
Thay vào (4.30) ta có 
f(xn) = 
!2
)( 21−− nn xx f''(c) 
Như vậy theo (4.27) và (4.28) 
|xn - α| ≤ 
1
|)(|
m
xf n = 
1
2
1
2
)(
m
xx nn −− f''(c) ≤ 
1
2
2m
M
|xn - xn-1|2 (4.31) 
Là điều cần chứng minh. 
c. Ví dụ về phương pháp Newton 
Tính 2 bằng cách giải phương trình sau: 
 f(x) = x2 - 2 =0 (4.32) 
Giải: 
Ta thấy f(1) = -1, f(2) = 2, như vậy điều kiện 1) thỏa mãn. 
f'(x) = 2x > 2 với mọi x ∈ [1,2] 
f’'(x) = 2 > 1 với mọi x ∈ [1,2] , vậy điều kiện 2) thỏa mãn 
Vì f(2) = 2, nên ta chọn x0 =2, như vậy thì f(2)f’’(x) = 2.2 = 4 >0 và điều kiện 3) thỏa mãn. 
Vậy ta có thể áp dụng phương pháp lặp Newton để tính nghiệm xấp xỉ của phương trình 
(4.32). Ta có bảng sau 
n x0 = 2 
xn+1 = xn - f(x)/f’(xn) 
0 2 
1 1.5 
2 1.417 
3 1.41421 
Ta có thể lấy nghiệm xấp xỉ là 1.41421. Ta biết rằng 2 = 1.414213562, như vậy phương 
pháp lặp Newton hội tụ rất nhanh. 
d. Nhận xét về phương pháp Newton 
Nhờ việc sử dụng đạo hàm của hàm số f(x) nên nói chung phương pháp Newton hội tụ 
nhanh hơn phương pháp chia đôi và phương pháp dây cung. Tuy nhiên việc kiểm tra điều kiện để 
áp dụng phương pháp Newton phức tạp hơn. Những điều kiện để phương pháp Newton hội tụ là 
quan trọng và cần thiết phải kiểm tra khi áp dụng phương pháp này. Ví dụ tương ứng với hình vẽ 
sau đây chỉ ra rằng có trường hợp nếu áp dụng các phương pháp chia đôi hoặc dây cung thì quá 
trình lặp sẽ hội tụ, còn nếu ta áp dụng phương pháp Newton nhưng chọn điểm xuất phát không 
thích hợp thì không đạt được kết quả như mong muốn. 
 84 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
e. Chương trình minh họa phương pháp Newton (tiếp tuyến) 
 Sau đây là đoạn chính của chương trình thể hiện (mô tả) phương pháp newton : 
/*Phuong phap tim nghiem bang phuong Newton tren khoang [a,b]*/ 
/*Phuong phap Newton de tim nghiem f(x)=0 trong khoang trai dau [a,b]. 
 Neu co nghiem thi tra ve gia tri true, neu khong thi tra ve gia tri false. 
 x la nghiem, errx, erry sai so tren x va tren y, buoclap la so buoc lap 
 da thuc hien*/ 
int ttuyen(double (*f)(double),double (*f1)(double),double a,double b, 
double &x,double &errx,double &erry,int &buoclap) 
{clrscr(); 
 if(f(a)==0) {x=a;errx=erry=0;buoclap=0;return true;} 
 if(f(b)==0) {x=b;errx=erry=0;buoclap=0;return true;} 
 if(f(a)*f(b)>0) 
 {cout<<endl<<"f(a) va f(b) khong trai dau";delay(1000);return false;} 
 int k=0; 
 kvecto xb;double xp,xn;//previouse x; 
 xb[0]=b; 
 xn=b; 
 while(true) 
 {if(f1(xn)<epsiy1) 
 {cout<<endl<<"Dao ham qua be";delay(1000);return false;} 
 xp=xn; 
 xn = xn-f(xn)/f1(xn); 
 k++; 
 xb[k]=xn; 
 if(fabs(xn-xp)<epsix && fabs(f(xn))<epsiy) break; 
 if(k>kmax) 
 {cout<<endl<<"Lap chua hoi tu sau "<<kmax<<" buoc"; 
 delay(1000);return false; 
 } 
 } 
 errx=fabs(xn-xp);erry=fabs(f(xn));buoclap=k; 
 x=xn; 
} 
 85
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
4.3. BÀI TẬP 
Bài 1. Hãy mô tả phương pháp chia đôi để tìm nghiệm gần đúng của phương trình phi tuyến. 
Bài 2. Hãy mô tảp hương pháp dây cung để tìm nghiệm gần đúng của phương trình phi tuyến. 
Bài 3. Hãy mô tả phương pháp tiếp tuyến để tìm nghiệm gần đúng của phương trình phi tuyến. 
Bài 4. Hãy mô tả phương pháp lặp đơn để tìm nghiệm gần đúng của phương trình phi tuyến. 
Bài 5. Giải gần đúng phương trình: 
 x-1/2sinx = 0,25 
 bằng phương pháp lặp với 4 lần lặp. 
Bài 6. Dùng phương pháp chia đôI tính nghiệm gần đúng của phương trình: x3-x-1 qua 4 bước 
lặp. Đánh giá sai số |x 4-α | 
Bài 7. Dùng phương pháp dây cung tính nghiệm gần đúng của phương trình: x3-x-1 qua 4 bước 
lặp. Đánh giá sai số |x4-α | 
Bài 8. Dùng phương pháp chia đôi tính gần đúng 5 qua 4 bước lặp. Đánh giá sai số |x4- 5 | 
Bài 9. Dùng phương pháp lặp hãy tính gần đúng nghiệm dương lớn nhất của phương trình: 
 x3 - x - 1000 =0 
 với sai số tuyệt đối không lớn hơn 10-5. 
Bài 10. Thử lại hoặc viết mới các chương trình cài đặt các thuật toán rồi chạy thử để kiểm tra các 
kết quả trên đây. 
 86 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
TÓM TẮT NỘI DUNG CHƯƠNG 4 
Trong chương này chúng ta cần chú ý nhất là các vấn đề sau: 
1. Khoảng phân ly nghiệm 
Định nghĩa. Khoảng [a,b] được gọi là khoảng phân ly nghiệm của phương trình (4.1) nếu 
nó chứa một và chỉ một nghiệm của phương trình đó. 
Định lý. Nếu hàm số f(x) liên tục, đơn điệu trên đoạn [a,b] và f(a)f(b)<0 thì đoạn [a,b] là 
một khoảng phân ly nghiệm của phương trình (4.1) 
2.Phương pháp chia đôi (bisection): 
- Phương pháp: 
+ Xác định khoảng phân ly nghiệm [a,b] 
+Tính giá trị của nghiệm gần đúng ở bước lặp thứ i trên khoảng phân ly nghiệm [ai,bi ] 
(i=0,1,2...) theo công thức xi= (ai+bi )/2 với a0=a;b0=b. Sau đó là xác định khoảng phân ly mới 
cho nghiệm ở bước mới thứ i+1 là [ai+1,bi+1 ]. Cứ tiếp tục phép lặp như thế cho đến khi nào 
thoả mãn điều kiện dừng của phương pháp. 
- Đánh giá sai số: 
Giả sử ở bước lặp cuối cùng là bước thức n (i=n) ta đã xác định được nghiệm gần đúng 
xn. Khi đó sai số được đánh giá như sau:|xn - α|≤ 12
||
+
−
n
ba . (Trong đó α là nghiệm đúng của 
phương trình (4.1) 
3.Phương pháp dây cung 
- Phương pháp: 
+ Xác định khoảng phân ly nghiệm [a,b] 
+Tính giá trị của nghiệm gần đúng ở bước lặp thứ i trên khoảng phân ly nghiệm [ai,bi ] 
(i=0,1,2...) theo công thức xi= )()(
)()(
i
iiii
afbif
afbbfa
−
−
 với a0=a;b0=b. Sau đó là xác định khoảng 
phân ly mới cho nghiệm ở bước mới thứ i+1 là [ai+1,bi+1 ]. Cứ tiếp tục phép lặp như thế cho 
đến khi nào thoả mãn điều kiện dừng của phương pháp. 
- Đánh giá sai số: 
Giả sử ở bước lặp cuối cùng là bước thức n (i=n) ta đã xác định được nghiệm gần đúng 
xn. Khi đó sai số được đánh giá như sau: |xn - α| ≤ 
1
|)(|
m
xf n . (Trong đó α là nghiệm đúng của 
phương trình (4.1), và 0 < m1 ≤ |f'(x)| với ∀ x∈ [a,b]). Hoặc ta có đánh giá sai số thức 2 
là:|xn - α| ≤ 
1
11
m
mM −
|xn - xn-1|. 
 87
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Tính gần đúng nghiệm của phương trình phi tuyến 
4 Phương pháp lặp đơn 
- Phương pháp: 
 +Xác định khoảng phân ly nghiệm [a,b] của (4.1), phương trình (4.1) chuyển về 
dạng x = ϕ(x), với điều kiện :|ϕ’(x)| ≤q<1 trên (a,b).Tiếp theo ta chọn một giá trị x0 ∈ [a,b] 
làm giá trị xấp xỉ ban đầu rồi tính dần các nghiệm xấp xỉ xi theo quy tắc: 
 xi = ϕ(xi-1), i=1,2,.. cho tới khi nào thảo mãn điều kiện dừng của phương pháp. 
- Đánh giá sai số: 
Giả sử ở bước lặp cuối cùng là bước thức n (i=n) ta đã xác định được nghiệm gần đúng xn. 
Khi đó sai số được đánh giá như sau: |xn - α| ≤ qn | b - a | hoặc |xn - α| ≤ qn 
q−1
1 | x1 - x0| . 
5 Phương pháp tiếp tuyến 
- Phương pháp: 
 + Xác định khoảng phân ly nghiệm [a,b] của phương trình (4.1). 
+Tính giá trị của nghiệm gần đúng ở bước lặp thứ i theo công thức 
xi+1 = xi )('
)(
i
i
xf
xf− . 
Xấp xỉ đầu x0 được chọn ∈ [a,b], sao cho f(x0) cùng dấu với f''(x), tức là f(x0)f''(x) > 0 
(hàm lồi thì chọn phía giá trị hàm âm, hàm lõm thì chọn phía giá trị dương). 
- Đánh giá sai số : 
Giả sử ở bước lặp cuối cùng là bước thức n (i=n) ta đã xác định được nghiệm gần 
đúng xn. Khi đó sai số được đánh giá như sau: |xn - α| ≤ 
1
|)(|
m
xf n hoặc 
|xn - α| ≤ 
1
2
2m
M |xn - xn-1| 2 
 88 
CuuDuongThanCong.com https://fb.com/tailieudientucntt

File đính kèm:

  • pdfbai_giang_phuong_phap_so_chuong_4_tinh_gan_dung_nghiem_cua_p.pdf