Định lý được chứng minh... Cách chứng minh hoàn toàn tương tự chứng minh định lý 1.. Phương trình không có nghiệm dương, tương tự đối với nghiệm âm... *Ứng dụng vào giải phương trình đa
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ N I Ộ
Trang 2I SƠ ĐỒ HOOCNE Tính giá tr cị ủa đa thức
Tại 𝑥 = 𝑐; nếu 𝑓(𝑐) = 𝑝(𝑐) = 0 thì hiển c là nghiệm của phương trình (1) Nói chungvới c b t kấ ỳ thì 𝑝(𝑐) ≠ 0 Ta s tìm ẽ 𝑝(𝑐)
Do 𝑝(𝑥) = 𝑎0𝑥𝑛+ 𝑎1𝑥𝑛−1+ … + 𝑎 𝑥 + 𝑎𝑛−1 𝑛= (𝑎0𝑥 + 𝑎1)𝑥𝑛−1+ 𝑎2𝑥𝑛−2+ … = ((𝑎 𝑥 + 𝑎 )𝑥 + 𝑎 )𝑥0 1 2 𝑛−2+ … = (…((𝑎0𝑥 + 𝑎1)𝑥 + 𝑎2)𝑥 … + 𝑎𝑛) Khi 𝑥 = 𝑐 ta tính dần:
𝑎0= 𝑏0𝑎 + 𝑏1 0𝑐 = 𝑏1𝑎2+ 𝑏1𝑐 = 𝑏2
𝑎𝑛+ 𝑏𝑛−1𝑐 = 𝑏𝑛 thì 𝑏𝑛= 𝑝(𝑐)
Quá trình này được mô t b ng b ng sau Gả ằ ả ọi là sơ đồ Hoocne
Hệ số đa thức 𝑎0 𝑎1 𝑎2 𝑎𝑛−1 𝑎𝑛 𝑐𝑏0 𝑐𝑏1 𝑐𝑏𝑛−2 𝑐𝑏𝑛−1
c 𝑏0 𝑏1 𝑏2 𝑏𝑛−1 𝑏𝑛= 𝑝(𝑐)Ta th y các sấ ố 𝑏0, 𝑏1, 𝑏2, … , 𝑏𝑛−1 là h s cệ ố ủa đa thức thương Q(x) khi chia đa thức p(x) cho đơn thức 𝑥 − 𝑐
Trang 3Đồng nhất theo lũy thừa của x với phương trình (1)𝛽0= 𝑎0
𝛽1− 𝛽0𝑐 = 𝑎1
𝛽𝑛− 𝛽𝑛−1𝑐 = 𝑎𝑛
Hay 𝑎0= 𝛽0
𝑎 + 𝛽1 0𝑐 = 𝛽1
𝑎𝑛+ 𝛽𝑛−1𝑐 = 𝛽𝑛
So sánh v i hớ ệ có được khi thay 𝑥 = 𝑐 ta thấy:
𝑏 = 𝛽00, 𝑏1= 𝛽1, , 𝑏𝑛= 𝛽𝑛= 𝑝(𝑐) Hay nói cách khác
𝑝(𝑥) = (𝑥 − 𝑐 𝑏)[0𝑥𝑛−1+ 𝑏1𝑥𝑛−2+ … + 𝑏𝑛−1] + 𝑝(𝑐)
Như vậy sơ đồ Hoocne có thể tính được giá trị của đa thức p(x) tại điểm x=c, đồng thời cũng cho ta đa thức thương của đa thức p(x) chia cho x-c
Ví d : ụ Cho 𝑝(𝑥) = 𝑥 − 4𝑥 − 7𝑥432+ 22𝑥 +24Tính 𝑝(5) và tìm đa thức 𝑝1(𝑥) sao cho:
𝑝(𝑥) = (𝑥 − 5 𝑝)1(𝑥) + 𝑝(5) Lập sơ đồ Hoocne ta được:
(𝑎 ≠ 0, 𝑎0𝑖∈ 𝑅 với 𝑖 = 1, 𝑛)
Trang 4𝑛| < 𝐴| ||𝑥|𝑥 −1𝑛 ≤ |𝑎0𝑥𝑛|
Ta thấy số ạng đầ h u trội hơn hẳn các số hạng sau của đa thức Do đó x thỏa mãn (6) thì không th là nghi m cể ệ ủa phương trình (4) Định lý được chứng minh
Từ đây ta có hệ quả: S ố𝑁 = 1 +|𝑎𝐴
0|là c n trên c a modun các nghi m cậ ủ ệ ủa phương trình (4) Bây giờ ta xét trường hợp nghi m th c cệ ự ủa phương trình (4) Ta đã biết các nghi m âm ệcủa phương trình 𝑝(𝑥) = 0 cũng là nghiệm dương của phương trình 𝑝(−𝑥) = 0 Vì v y ta ch ậ ỉcần đề ập đế c n cận trên c a các nghiủ ệm dương.
Định lý 2: Nếu 𝑎0> 0, 𝑎𝑖> 0 với 𝑖 = 1, 𝑛 thì 𝑝(𝑥)> 0 ∀𝑥 > 0; phương trình (4) không có nghiệm dương
Giả ử s 𝑎0> 0, 𝑎𝑘(𝑘 ≥ 1) là hệ số âm đầu tiên tính từ 𝑘 = 1,2, … ọ g i B = max c a các tr ủ ịtuyệt đối của các h s âm Thì các nghiệ ố ệm dương của phương trình (4) thỏa mãn
𝑥 < 1 + √𝑘 𝑎𝐵
Trang 5Cách chứng minh hoàn toàn tương tự chứng minh định lý 1
VD: Cho phương trình
𝑝(𝑥) = 𝑥 − 5𝑥 − 3𝑥 − 2𝑥 + 1432
1 Tìm mi n ch a nghi m (th c và phề ứ ệ ự ức)2 Tìm c n trên, c n ậ ậ dưới mi n ch a nghi m th c ề ứ ệ ựGiải:
1 Mi n ch a nghi m: ề ứ ệ 𝑎0= 1,𝐴 = max{1,5,3,2} = 5Vậy 𝑁 = 1 +𝑎𝐴
Ta tìm cận dướ ủi c a các nghi m th c âm Tệ ự ừ phương trình (*) ta thay x bởi –x: 𝑝(−𝑥) = 𝑥4+ 5𝑥 − 3𝑥32+ 2𝑥 + 1 = 0
Hệ số âm đầu tiên 𝑏2= −3 → 𝑘 = 2 và 𝐵 = |−3 = 3|
→ −𝑥 < 𝑀 = 1 + √31= 2.733 hay 𝑥 > −𝑀 = −2.733 V y nghi m th c cậ ệ ự ủa phương trình (*) nằm trong kho ng ả −2.733 < 𝑥 < 6 *Nhược điểm: Ta không th phân biể ệt khi nào phương trình vô nghiệm
VD: Phương trình 𝑥2− 2𝑥 + 5 = 0 không có nghiệm th c Tuy nhiên khi áp dự ụng định lý trên, ta thấy 𝑘 = 1, 𝐵 = 2 → ậ C n trên c a nghiủ ệm thực dương là: 𝑀 = 1 + √121
= 3
Hoặc đối với phương trình 𝑥2+ 2𝑥 + 5 = 0 không tồn tại h sệ ố âm, trường hợp này khi lập trình ta mặc định c n trên c a nghi m thậ ủ ệ ực dương là 0 (Phương trình không có nghiệm dương), tương tự đối với nghiệm âm
Trang 6*Ứng dụng vào giải phương trình đa thức:
III PHƯƠNG PHÁP LOBACHEVSKY
Phương pháp này được áp dụng để tìm các nghi m gệ ần đúng của đa thức, mà không c n ầtìm mi n ch a nghiề ứ ệm cũng như không cần tìm kho ng phân ly nghiả ệm Sau đây lần lượt xét các trường h p sau ợ
3.1 Trường h p ch có nghi m th c phân bi t ợ ỉ ệ ự ệGiả ử s phương trình đa thức bậc n
(7) 𝑝(𝑥) = 𝑎0𝑥𝑛+ 𝑎1𝑥𝑛−1+ … + 𝑎 𝑥 + 𝑎 = 0𝑛−1 𝑛
(𝑎 ≠ 0, 𝑎0 𝑖∈ 𝑅, 𝑖 = 1, 𝑛) chỉ có các nghi m thệ ực 𝑥𝑖 v i trớ ị tuyệt đối khác nhau Ta đánh số các nghiệm đó thứ tự giảm d n theo trầ ị tuyệt đối:
|𝑥1| > |𝑥2| > … > |𝑥𝑛| (8) D a vào (7) ta xây dự ựng phương trình mới
𝑄(𝑥) = 𝑐0𝑥𝑛+ 𝑐1𝑥𝑛−1+ … + 𝑐 𝑥 + 𝑐𝑛−1 𝑛= 0 (𝑐0≠ 0) (9) Có nghiệm là −𝑥1𝑚,−𝑥2𝑚,… , −𝑥𝑛𝑚 Hay:
𝑄(𝑥) = 𝑐0(𝑥 + 𝑥1𝑚)(𝑥 + 𝑥2𝑚) … (𝑥 + 𝑥𝑛𝑚) = 0 (10) So sánh (9) v i (10) ta có ớ
𝑥1𝑚+ 𝑥2𝑚+ … + 𝑥𝑛𝑚=𝑐1
𝑥1𝑚𝑥2𝑚+ 𝑥2𝑚𝑥3𝑚+ … + 𝑥𝑛−1𝑚 𝑥𝑛𝑚=𝑐2
𝑐0
Trang 7𝑥1𝑚𝑥2𝑚[1 + (𝑥2𝑥3
𝑥1𝑥2)𝑚+ … + (𝑥𝑛−1𝑥𝑛
𝑥1𝑥2 )𝑚] =𝑐2
𝑥1𝑚𝑥2𝑚… 𝑥𝑛𝑚=𝑐𝑛
Từ đó → |𝑥1| ≈ √|𝑐1
, |𝑥2| ≈ √|𝑐2
, …, |𝑥𝑛| ≈ √|𝑐𝑛
tức là −𝑥𝑖𝑚 (với 𝑚 = 2𝑘) Trước h t ta xét kế ỹ bước đầu tiên Do 𝑝(𝑥) = 0 có nghiệm là nên: 𝑥𝑖
𝑝(𝑥) = 𝑎0(𝑥 − 𝑥1)(𝑥 − 𝑥2) … (𝑥 − 𝑥 )𝑛
Thay x bỏi –x
(−1)𝑛𝑝(−𝑥 = 𝑎) 0(𝑥 + 𝑥1)(𝑥 + 𝑥2) … (𝑥 + 𝑥𝑛) suy ra (−1)𝑛𝑝(−𝑥)𝑝(𝑥)= 𝑎0(𝑥2− 𝑥1)(𝑥2− 𝑥2) … (𝑥2− 𝑥𝑛) Thay b𝑥2 ởi –y
𝑝(𝑥) (−𝑥) = 𝑎𝑝 0(𝑦 + 𝑥1)(𝑦 + 𝑥2) … (𝑦 + 𝑥𝑛) = 𝑝1(𝑦) Vậy đa thức 𝑝1(𝑦) có nghiệm 𝑦𝑖= −𝑥𝑖2 Ta khai triển 𝑝1(𝑦)
𝑝1(𝑦) = 𝑎0(1)𝑦𝑛+ 𝑎(1)1 𝑦𝑛−1+ … + 𝑎𝑛(1) (11)
Trang 8Bây giờ ta tính cụ thể các 𝑎𝑖(1)
Do 𝑝(𝑥) = 𝑎0𝑥𝑛+ 𝑎1𝑥𝑛−1+ … + 𝑎 𝑥 + 𝑎𝑛−1 𝑛Nên 𝑝(−𝑥) = (−1)𝑛[𝑎0𝑥𝑛− 𝑎1𝑥𝑛−1+ … + −1( )𝑛𝑎𝑛] Hay (−1)𝑛𝑝(−𝑥 = 𝑎) 0𝑥𝑛− 𝑎1𝑥𝑛−1+ … + −1( )𝑛𝑎𝑛
𝑎0(1)= 𝑎0
𝑎1(1)= (𝑎1− 2𝑎0𝑎2)
𝑎2(1)= (𝑎2− 2𝑎1𝑎3+ 2𝑎0𝑎4) (12.1)
𝑎𝑛(1)= 𝑎𝑛
Vậy ta được đa thức (11) Thay y b i x ta có ở 𝑝1(𝑥)
Tiếp tục quá trình bình phương nghiệm Sau khi thực hiện k lần ta thu được 𝑝𝑘(𝑧) = 𝑎0(𝑘)𝑧𝑛+ 𝑎1(𝑘)𝑧𝑛−1+ … + 𝑎𝑛(𝑘)= 0
Có nghiệm là 𝑧𝑖= −𝑥𝑖2𝑘 nghĩa là 𝑧𝑖= −𝑥𝑖𝑚(với 𝑚 = 2𝑘)Khi k đủ ớn ta đượ l c dạng (9) với 𝑐𝑖= 𝑎𝑖(𝑘)
Và ta có: 𝑥𝑖2𝑘≈𝑎𝑖(𝑘)
𝑎𝑖−1(𝑘) 𝑖 = 1, 𝑛 (13) Vậy k thế nào là đủ lớn? Giả ử s đến bước thứ k ta có đa thức (9), ta tính tiếp bước k+1:
𝑎𝑖−1(𝑘+1) 𝑖 = 1, 𝑛 (14)Ta so sánh (13) và (14) Do 𝑎0(𝑘+1)= [𝑎0(𝑘)]2ta được
𝑎(𝑘+1)𝑖 ≈ [𝑎𝑖(𝑘)]2 𝑖 = 1, 𝑛 (15)
Trang 9Logarit hai v ế
lg 𝑎(𝑘+1)𝑖 ≈ 2 lg 𝑎𝑖(𝑘) 𝑖 = 1,𝑛 (16)Nghĩa là logarit của hệ số bước sau gấp 2 lần logarit c a h sủ ệ ố bước trước tương ứng T ừ(15) và (16) cho thấy phương trình (7) chỉ có các nghiệm thực đơn và nghiệm gần đúng được tìm từ (14)
Ví dụ: Giải phương trình 𝑝(𝑥) = 𝑥 − 𝑥32− 22𝑥 +40 = 0
Áp dụng quá trình bình phương nghiệm và công thức (I) ta được kết quả như bảng sau:
0 1 2 3 4 5 6
1 1 1 1 1 1 1
-1 45 897 4,56417.105
1,56883 1011
2,33015 1022
5,42101 1044
-22 564 1,74096.105
≈ 4,00000 |𝑥2| ≈ [3,40284.101,84469 10. 10283]
Trang 10Và quá trình này s d ng khi ẽ ừ𝑎1(𝑘+1)≈ [𝑎1(𝑘)]2𝑎2(𝑘+1)≈12[𝑎2(𝑘)]2𝑎3(𝑘+1)≈ [𝑎(𝑘)3 ]2
𝑎𝑛(𝑘+1)≈ [𝑎(𝑘)𝑛 ]2
Trong trường hợp phương trình (7) có s nghiệm th c b ng nhau ho c có trự ằ ặ ị tuyệt đối xấp xỉ nhau là 𝑥𝑖, 𝑥 , … ,𝑥𝑖+1𝑖+𝑠−1thì ta thay điều kiện th 2 c a h trên bứ ủ ệ ởi điều kiện:
3.3 Trường hợp phương trình (7) có nghiệm phức
Ta giả ử s phương trình có cặp nghiệm ph c là và : ứ 𝑥2 𝑥3
𝑥2= 𝑟 𝑐𝑜𝑠𝜑 + 𝑖𝑠𝑖𝑛𝜑( )𝑥3= 𝑟(𝑐𝑜𝑠𝜑 − 𝑖𝑠𝑖𝑛𝜑)Và các nghi m thệ ỏa mãn điều kiện
|𝑥1| > |𝑥2| = |𝑥3| > |𝑥4| > … > |𝑥𝑛| M t khác ta có: ặ
Trang 11𝑥2+ 𝑥 = 2𝑟𝑐𝑜𝑠𝜑3𝑥2𝑥3= 𝑟2
Hoàn toàn tương tự như trên, bằng phương pháp bình phương nghiệm liên tiếp và v i k ớđủ lớn:
𝑎𝑖(𝑘+1)≈ [𝑎(𝑘)𝑖 ]2 với 𝑖 ≠ 2Riêng với 𝑎2(𝑘), dựa vào hệ thức Viete ta có
Trang 121) Nếu k đủ ớn để l
𝑎𝑖(𝑘+1)≈ [𝑎(𝑘)𝑖 ]2 𝑖 = 0, 𝑛 Thì phương trình (7) chỉ có nghiệm th c phân biự ệt 2) Khi 1) không xảy ra, nhưng có i để
Với k đủ lớn, ta có th tin r ng (7) có mể ằ ột nghiệm th c bự ội là hay có s nghi m th c mà 𝑥𝑖 ệ ựcó trị tuyệt đối gần nhau Hiện tượng này có th x y ra v i 2, 3 h sể ả ớ ệ ố, lúc đó sẽ có 2, 3 nghiệm bội
3) N u có h sế ệ ố thay đổi không theo quy lu t thì có th tin rậ ể ằng phương trình (7) có một cặp nghiệm ph c N u có t i 2, 3 h sứ ế ớ ệ ố thay đổi không theo quy luật thì tương ứng sẽ có 2, 3 cặp nghiệm ph c liên hứ ợp
Tuy nhiên, những điều nói trên chỉ là nhận xét sơ bộ Mu n khố ẳng định được ta cần tính toán đến cùng và ki m tra b ng cách thay lể ằ ại vào phương trình (7) để biết giá trị nào th a mãn ỏ
*Ưu điểm: Có thể tìm được các nghi m ph c ệ ứ*Nhược điểm:
- Quá trình bình phương nghiệm dẫn đến hệ s rố ất lớn - Không kiểm soát được sai s c a nghiố ủ ệm phương trình
- Do phép đánh giá 𝑎𝑖(𝑘+1)≈ [𝑎𝑖(𝑘)]2 để ừ d ng quá trình l p d a trên ý ki n chặ ự ế ủ quan nên khi viết chương trình khó có thể dừng thuật toán một cách chính xác (Chẳng hạn như ta
muốn d ng lừ ặp sau k bước (k cho trước), khi lg 𝑎𝑖(𝑘+1)− 2 lg𝑎𝑖(𝑘) < epsilon (*) (v i epsilon ớcho trước) thì với m t sộ ố phương trình, (*) có thể không chính xác
Trang 13IV THU T TOÁN Ậ
Đối với phương pháp Lobachevsky, do khả năng lập trình còn y u kém nên nhóm em gế ặp phải mộ ốt s vấn đề khi lập trình Do v y em s dậ ử ụng phương pháp tìm miền ch a nghi m và các ứ ệđiểm c c tr ự ị
INPUT: B c cậ ủa đa thức n, các hệ số a[0], a[1], …, a[n]OUTPUT: Nghiệm của phương trình f(x)=0 *Các bi n toàn cế ục đượ ử ục s dng
- n Bậc c a ủ đa thức
- M ng a[100] ả Các h s cệ ố ủa đa thức theo b c gi m dậ ả ần
- a1, b1 Khoảng để tìm các cực trị trong gói min-max
- sign, map (ánh x ) ạ Dùng trong GDA
- M ng diem[100] ả Dùng để lưu trữ cận trên, cận dưới của nghiệm thực cùng các c c trự ị
- m Biến đếm của mảng diem[]
- N1, N2 Cận trên và cận dướ ủa nghiệm thực phương trìnhi c
*Một số hàm được sử dụng trong thuật toán
- Gói min-max bao g m các hàm: ồ+ ff(x) Nhập hàm f(x)
+ f1(x0) Trả ề v hàm f’(x0)
+ fixeta(x0) Trả ề v eta hợp lí
+ gda(x0) Gradient Desent Asent Tìm các c c tr– ự ị)
- canbac(a, n1) Dùng để tính căn bậc n1 của số a (với a dương và n1 nguyên dương)B1: Gán 𝑓 = 𝑒𝑛11ln (𝑎)= 𝑎1𝑛1= √𝑎𝑛1
B2:Trả về giá tr c a f ị ủ
- f(x) Tính giá tr c a hàm f(x) t i x b ng Hoocneị ủ ạ ằB1: Gán 𝑏0= 𝑎0
Trang 14B1: Tìm 𝐴 = max{|𝑎𝑖|,𝑖 = 1, 𝑛}B2: Tính 𝑅 = 1 +|𝑎𝐴
B3: Tìm 𝑘1(𝑎𝑘1là h sệ ố âm đầu tiên )
B4: Tìm 𝐵1 = max trị tuyệt đối các hệ số âm N u không t n tế ồ ại 𝐵1 thì báo về “phương trình không có nghiệm dương”, gán 𝑁1= 0rồi chuyển đến B6
B5: Tính 𝑁1= 1 + √𝐵1
B6: Với 𝑖 ≡ 1(𝑚𝑜𝑑 2) thì 𝑎𝑖= −𝑎𝑖 (Thay x bởi –x vào phương trình) B7: Tìm 𝑘2(𝑎𝑘2là h sệ ố âm đầu tiên )
B8: Tìm = max tr tuy𝐵2 ị ệt đối các hệ số âm N u không t n tế ồ ại 𝐵2 thì báo về “phương trình không có nghiệm âm”, gán 𝑁2= 0rồi chuyển đến B10
B9: Tính 𝑁2= 1 + √𝐵2
*Hàm main()
B1: Nhập input n, mảng a[n]
B2: Tìm miền nghi m (s d ng hàm timmiennghiem()) ệ ử ụ
B3: Dùng gói tìm min-max để tìm c c trự ị, lưu các cực trị vào m ng diem[] ảB4: Lưu hai giá trị -N1, N2 vào mảng diem[]
B5: S p x p mắ ế ảng theo th t ứ ự tăng dần bằng sort()
B6: Kh i t o biở ạ ến l p p = 0 ặ
B7: Ki m tra n u p m+1 thì k t thúc thu t toán ể ế > ế ậ
B8: Ki m tra f(diem[p]) = 0 ho c |f(diem[p])| < epsilon, n u sai chuyể ặ ế ển đến B10 B9: In ra p là nghi m, p = p+1 ệ
B10: Ki m tra f(diem[p],diem[p+1]) < 0) nể ếu sai chuyển đến B12
Trang 15B11: bisection(diem[p],diem[p+1]) (do đây là khoảng cách ly nghiệm) B12: p = p+1, quay lại B7
VD1: Giải phương trình 𝑥4+ 3𝑥3− 11𝑥2− 3𝑥 +10 = 0 Input:
Output: Chương trình đưa ra kết quả phương trình có 4 nghiệm thực -5, -1, 1 và 2 VD2: Giải phương trình (𝑥 + 1) = 03 (phương trình có nghiệm tại điểm uốn)Input:
Trang 16Output: Phương trình có nghiệm thực -1.000577
Nghiệm tìm được chỉ mang tính x p xấ ỉ so v i nghiớ ệm đúng của phương trình, do tính ch t cấ ủa gói min-max
Tuy nhiên có một nhược điểm khi step quá bé, m t sộ ố điểm cực tr s bị ẽ ị lưu lại nhiều l n v i các ầ ớkết quả x p xấ ỉ nhau, ví d khi cho step = 0.001 ụ ở chương trình trên chỉ cho 1 kết qu nghi m, ả ệnhưng khi thay step = 0.0001 thì sẽ được kết quả như dưới:
*Nhược điểm của chương trình: Ở B8 phép kiểm tra |f(diem[p])| < epsilon có th không ể
chính xác, vì gói min-max ch cho phép tính gỉ ần đúng các điểm c c trự ị Do đó đối với các
phương trình có nghiệm tại cực trị d xễ ảy ra trường hợp thi u k t qu ế ế ả
Bên cạnh đó do sử dụng phương pháp chia đôi nên đố ới các phương trìnhi v có khoảng nghiệm l n sớ ẽ rất m t thời gian ấ