Sở dĩ em chọn môn phương pháp tính để ứng dụng mô hình trên vì: việc ra đề phương pháp tính có lẽ là vất vả nhất trong tất cả các môn vì phải tính toán rất nhiều với những con số dài, hơ
Trang 1Lời nói đầu
Trong quá trình giảng dạy, ngoài việc chuẩn bị giáo án, lên bục giảng thì việc ra đề thi, ra bài tập cho sinh viên luyện tập là việc làm không thể thiếu đối với mỗi thầy cô Và công việc của các thầy cô còn vất vả hơn gấp bội khi phải ra những đề đòi hỏi khối lượng tính toán lớn, đòi hỏi độ chính xác đến 6-7 số lẻ sau dấu phảy Mặc dù hiện nay các thầy cô có máy tính điện tử cùng các chương trình phần mềm tính toán rất mạnh hỗ trợ như: Mathematica, Maple, Mathlap Nhưng các chương trình này chỉ hỗ trợ tính toán ra kết quả cuối cùng trong khi đó đáp án của một đề thi thì lại đòi hỏi giải theo từng bước Do đó các thầy cô lại phải tính tay vật lộn với những con số, và mồ hôi lại tiếp tục lăn dài mỗi khi mùa thi tới
Sau năm năm học tập, em sắp phải xa mái trường Bách Khoa thân yêu, xa thầy cô không quản vất vả cho em những kiến thức để vững chắc bước vào đời Với những tình cảm sâu sắc mà các thầy cô giành cho em, đã giúp em vượt qua rất nhiều khó khăn để hoàn thành đồ án tốt nghiệp với chương trình: “Trợ giúp ra đề
phương pháp tính ExamMaker (Examination Maker) Đề tài này chính là món
quà nhỏ em dành tặng các thầy cô giúp các thầy cô vơi đi nỗi vất vả trong công việc ra đề thi, ra bài tập Chương trình có thể trợ giúp các thầy cô ra đề tự động, tạo đáp án đầy đủ…
Do thời gian làm đồ án có hạn nên em không thể tạo hệ thống trợ giúp ra đề cho tất cả các môn học Nhưng em cũng đã xây dựng được một mô hình ra đề có tính mở cho phép ra đề bất cứ môn học nào bằng việc viết thêm các môdun cho môn học đó Hệ thống sẽ tự động cập nhật môdun đó vào Sở dĩ em chọn môn phương pháp tính để ứng dụng mô hình trên vì: việc ra đề phương pháp tính có lẽ
là vất vả nhất trong tất cả các môn vì phải tính toán rất nhiều với những con số dài, hơn thế nữa việc tính toán còn đòi hỏi độ chính xác cao Mặt khác môn phương pháp tính là môn học cơ sở mà tất cả sinh viên trường kỹ thuật nào cũng phải học
Do đó cần một khối lượng lớn đề thi và bài tập cho sinh viên luyện tập và thi Nh vậy yêu cầu có một chương trình trợ giúp ra đề phương pháp tính là hết sức cần thiết và cấp bách
Qua đồ án tốt nghiệp này, em cũng đã được nghiên cứu, học tập và thử sức mình với một đề tài thực tế, với rất nhiều kỹ thuật khó Trong báo cáo này
em xin trình bày năm phần lớn sau:
Trang 2Phần 1 Tổng quan: phần này giới thiệu một cách tổng quan đồ án tốt nghiệp Tổng quan về chương trình trợ giúp ra đề phương pháp tính, về các kỹ thuật đặc biệt mà em đã sử dụng để tạo ra chương trình.
Phần 2 Cơ sở toán học : phần này cung cấp cơ sở toán vững chắc cho đồ án tốt nghiệp, đồng thời cung cấp các thuật toán(dưới dạng sơ đồ khối) cho chương trình.Phần 3 Khảo xát và xác lập giải pháp : phần này sẽ trình bày về những nghiên cứu
về mô hình ra đề hiện tại, khảo xát thực tế Và từ đó đưa ra những giải pháp cho chương trình
Phần 4 Phân tích thiết kế: phần này sẽ trình bày chi tiết về việc phân tích và thiết
Em xin chân thành cảm ơn!
Hà nội tháng 5 năm 2005
Trang 3
Lời cảm ơn
Sau mười bảy năm ăn học chuẩn bị đầy đủ hành trang bước vào đời, em đã từng bước qua rất nhiều những nấc thang để tiến tới thành công Và người đã dìu dắt em lên những bậc thang đó không ai khác chính là tất cả những thầy cô đã dạy
em trong nhiều năm qua Em xin gửi lời cảm ơn chân thành nhất tới tất cả các thầy cô!
Em xin được bày tỏ lòng biết ơn sâu sắc tới cô giáo hướng dẫn của em cô Phạm Huyền Linh!!! Cô là người đã dìu dắt em bước lên nấc thang quan trọng nhất của cuộc đời Cô đã đưa em đến với đề tài này, tiếp cận với những vấn đề thực tế và nhiệt tình dẫn dắt em trong suốt quá trình làm đồ án, ngay cả khi sức khoẻ cô không được tốt Cô chính là chỗ dựa tinh thần và kiến thức vững chắc nhất cho em hoàn thành đồ này
Bên cạnh đó em còng xin cảm ơn tất cả các thầy cô giáo trong khoa Tin đã đóng góp ý kiến và động viên em trong những ngày tháng em học ở khoa
Toán-Để cho em được nh ngày hôm nay là cả một sự tảo tần, hy sinh của mẹ Em xin được gửi lời cảm ơn sâu sắc tới mẹ của em! Và em xin hứa sẽ đạt kết quả cao trong học tập để mẹ vui lòng
Cuối cùng em xin gửi lời cảm ơn chân thành tới các anh chị, bạn bè đã luôn
ở bên cạnh động viên, giúp đỡ em trong những lúc khó khăn Cảm ơn các anh chị
ở nhóm Yapi, líp Tin quản lý K44 đã cung cấp cho em những kinh nghiệm quý báu của những người đi trước Cảm ơn bạn Phạm Quang Huy! bạn đã luôn động viên giúp đỡ em trong việc nghiên cứu các kỹ thuật lập trình khó
Đồ án tốt nghiệp của em chính là món quà em giành tặng cho thầy cô, mẹ, anh chị và bạn bè Một lần nữa em xin cảm ơn tất cả!!
Trang 4
Sơ đồ tóm tắt đồ án tốt nghiệp
Trang 5Mục lục
L i nói ờ đầ 1u
L i c m nờ ả ơ 3
S ơ đồ tóm t t ắ đồ án t t nghi p ố ệ 4
M c l cụ ụ 5
T ng quan ổ 6
C s toán h c cho chơ ơ ọ ương trình ExamMaker .12
Xây d ng chự ương trình ExamMaker 51
K t lu nế ậ 63
T i li u tham kh oà ệ ả 64
Trang 6Tổng quan
Trang 7Ch¬ng 1 Tổng quan về chương trình ExamMaker
Chương trình ExamMaker là một chương trình trợ giúp ra đề, ra bài tập cho môn phương pháp tính Ý tưởng của ExamMaker là tạo ra một chương trình có thể trợ giúp thầy cô ra đề thi, hoặc ra bài tập, tạo một đáp án đầy đủ với lời giải cụ thể theo từng bước của bài toán Đồng thời chương trình còn có khả năng quản lý ngân hàng đề
1.1 Những điểm nổi bật của chương trình ExamMaker
Nhìn một cách tổng quan, chương trình ExamMaker có các điểm nổi bật sau:
ThiÕt kÕ theo c«ng nghÖ COM
TÝch hîp nhiÒu kü thuËt khã
Trang 81.1.1 ExamMaker cho phép tạo đề một cách tự động.
Môn phương pháp tính là một môn cơ sở bắt buộc đối với sinh viên kỹ thuật, là môn giúp sinh viên rèn luyện các phương pháp và kỹ năng tính toán chính xác Do đó khối lượng bài tập giao cho sinh viên luyện tập và đề thi là rất lớn Để giảm tối thiểu thời gian ra đề, các thầy cô có thể nhờ chương trình sinh ngẫu nhiên
đề bài
Do đặc trưng của môn phương pháp tính có rất nhiều dạng bài, và mỗi một dạng bài có nhiều phương pháp tính khác nhau Ví dụ các dạng bài nh: Tính gần đúng nghiệm thực của phương trình đại số và siêu việt; Giải hệ phương trình đại
số tuyến tính…Như vậy với mỗi dạng bài ExamMaker phải có cách sinh ngẫu nhiên khác nhau Nhưng sinh ngẫu nhiên mà vẫn đảm bảo tính hợp lý của đề bài quả thật là việc vô cùng phức tạp
Trong trường hợp đề bài được sinh tự động không vừa ý các thầy cô các thầy cô có thể chuyển sang phần ra đề bán tự động
1.1.2 ExamMaker cho phép tạo đề bán tự động.
ExamMaker cho phép các thầy cô tạo đề bán tự động bằng các cách nh sau:
Cho trước một vài tham sè sau đó nhờ chương trình tìm nốt các tham số còn lại với điều kiện nào đó
Ví dô nh trong trường hợp giải gần đúng hệ phương trình đại số tuyến tính Ax=b: các thầy cô cho hệ số ma trận A, véctơ b, yêu cầu sai số giả sử là 4
10− Các thầy cô có thể nhờ chương trình xác định được x(0) sao cho số bước lặp chỉ là 3
Trợ giúp xác định khoảng phân ly bằng đồ thị hàm số đối với dạng bài Tính gần đúng nghiệm thực của phương trình đại số và siêu việt
Trợ giúp ra đề từ đề đã có sẵn bằng việc thay đổi một số hệ số
1.1.3 ExamMaker có khả năng tự động giải đề theo từng bước.
Khi đề bài đã được tạo, các thầy cô sẽ nhờ ExamMaker tự động giải bài toán đó Đây là một chức năng rất độc đáo của chương trình vì các phần mềm tính toán hiện nay hầu như chỉ đưa ra được kết quả cuối cùng mà không trình bày được những kết quả trung gian ở từng bước giải của bài toán Dưới đây là những khả
Trang 9ExamMaker hỗ trợ giải bài toán một cách đầy đủ theo từng bước một, giống nh làm thủ công.
Chương trình cũng trợ giúp chức năng tạo đáp án cho một đề thi hoàn chỉnh
ExamMaker còn hỗ trợ giải lấy kết quả ngay trong trường hợp các thầy cô chỉ muốn xem kết quả để điều chỉnh đề bài
1.1.4 ExamMaker cho phép quản lý ngân hàng đề.
ExamMaker hỗ trợ cơ chế bảo mật, lưu trữ, tìm kiếm , sắp xếp đề một cách khoa học Cho nên nó giúp cho các thầy cô quản lý ngân hàng đề một cách an toàn
và dễ dàng Chương trình còn cho phép kết hợp các ngân hàng đề cá nhân thành một kho đề chung cho khoa
1.1.5 ExamMaker được thiết kế theo công nghệ COM.
Để tiện cho việc nâng cấp, thích ứng với nhiều loại dạng bài, nhiều thuật toán giải, có thể tổng hợp các dạng bài khác nhau thành một đề hoàn chỉnh, chương trình đã được thiết kế theo công nghệ COM (Component Object Model Technologies) của Microsoft Theo công nghệ này thì ExamMaker được cấu thành
từ nhiều modun Các modun này có chung mét interface để tương tác với chương trình ExamMaker và tương tác với nhau ExamMaker tự động thêm một modun nào đó nếu nó được cài Do đó chương trình ExamMaker hết sức linh động
1.1.6 ExamMaker tích hợp nhiều kỹ thuật khó.
Việc xây dựng chương trình ExamMaker đòi hỏi em phải sử dụng rất nhiều công nghệ khó thì mới đáp ứng được với những yêu cầu mà bài toán đặt ra Ví dụ nh: Kỹ thuật lập trình COM, kỹ thuật liên kết giữa Net với Mathematica, kỹ thuật lập trình Mathematica, kỹ thuật trình VBA(Visual Basic for Application)…
1.1.7 ExamMaker có giao diện đẹp, tiện dùng.
Việc thiết kế giao diện cho chương trình ExamMaker sao cho tiện dùng, đẹp quả là khó Vì môn phương pháp tính có rất nhiều công thức toán học, việc trình bày đề gặp phải rất nhều khó khăn Tuy nhiên với việc kết hợp các công nghệ, các control giao diện mạnh như bộ Developer Express Inc.NET, em đã xây dựng được một hệ thống tương tác với người dùng hết sức thân thiện và bắt mắt
Trang 101.2 Ứng dụng của ExamMaker
ExamMaker sẽ là một công cụ mạnh giúp các thầy cô ra đề, ra bài tập phương pháp tính Thông qua đó nó sẽ góp phần làm tăng chất lượng dạy và học Các thầy cô sẽ nhàn hơn trong công việc ra đề, và sinh viên sẽ có nhiều bài tập hơn để luyện tập Với tính thiết thực của chương trình, em hy vọng ExamMaker sẽ được ứng dụng rộng rãi trong các trường đại học kỹ thuật
1.3 Mục tiêu của ExamMaker
Mục tiêu thứ nhất của chương trình là tạo ra một hệ thống ra đề thi phương pháp tính trợ giúp được các thầy cô trong việc ra đề
Mục tiêu quan trọng nhất của chương trình ExamMaker, là đã cho em cơ hội học tập phương pháp làm việc khoa học để giải quyết một vấn đề thực tế Ngoài ra sau khi hoàn thành chương trình ExamMaker em cũng đã nắm bắt được rất nhiều kỹ thuật thiết kế, lập trình khó, và cũng đã rót ra được nhiều kinh nghiệm cho bản thân
1.4 Hướng phát triển của ExamMaker
Chương trình ExamMaker là một chương trình mở Do đó việc phát triển chương trình rất dễ dàng, bằng việc viết thêm modun (các modun này được viết độc lập với chương trình), chương trình sẽ tự động cập nhật modun trên
Chương trình ExamMaker được thiết kế thành một mô hình ra đề hoàn thiện Nếu áp dụng mô hình này, thì ta có thể tạo được chương trình ra đề cho bất
kỳ một môn nào đó chứ không chỉ riêng môn phương pháp tính Trong tương lai không xa, ExamMaker sẽ trở thành chương trình mà có thể ra đề bất cứ môn học nào
Trang 11
Ch¬ng 2 Những kỹ thuật đặc biệt dùng trong chương
Trang 12Cơ sơ toán học cho chương trình ExamMaker
Trang 13Cơ sở toán học cho chươngtrình ExamMaker chính là lý thuyết môn phương pháp tính Nó cung cấp rất nhiều định nghĩa, định lý, phương pháp tính đảm bảo cho việc xây dựng các thuật toán trên máy tính.
Lý thuyết môn phương pháp tính đã được trình bày chi tiết ở các sách giáo trình Ở đây em chỉ nêu lên các khái niệm, định lý, công thức tính và công thức sai
sè [1] nhằm xây dựng sơ đồ khối của thuật toán mà không đi sâu vào việc chứng minh
Ch¬ng 3 Sai số_số xấp xỉ
Chương này sẽ giới thiệu cho chóng ta các khái niệm về sai số, số xấp xỉ Bởi môn phương pháp tính cung cấp các công cụ tính toán gần đúng nên việc xem xét sai số, số xấp xỉ là vô cùng quan trọng
3.1 Khái niệm số xấp xỉ, sai số tuyệt đối và tương đối.
3.1.1 Số xấp xỉ
Trong thực tế chúng ta làm việc chủ yếu với số xấp xỉ
được dùng thay cho A trong tính toán.
Nếu a<A thì a gọi là xấp xỉ thiếu của A Nếu a>A thì a gọi là xấp xỉ thưa của A.
a = −
∆
=
∆
gọi là sai số tuyệt đối của số xấp xỉ a.
Trong thực tế, ta không thể xác định được số đúng A, do vậy mà ta cũng
không thể có được sai số tuyệt đối của số xấp xỉ a Vì vậy, cùng với khái niệm sai
số tuyệt đối người ta thêm vào khái niệm sai số tuyệt đối giới hạn.
Trang 14Sai số tuyệt đối giới hạn của một số xấp xỉ a là số không nhỏ hơn sai số tuyệt đối của số xấp xỉ a.
Do đó, nếu gọi ∆a là sai số tuyệt đối giới hạn của số xấp xỉ a thì :
A = ± ∆
Trong thực hành, người ta thường chọn ∆alà sè nhỏ nhất có thể được, thoả mãn (*)
3.1.3 Sai số tương đối
Trong một số trường hợp sai số tuyệt đối, sai số tuyệt đối giới hạn không thể hiện được mức độ chính xác của phép đo hoặc tính toán Do đó người ta đưa vào những khái niệm sau:
A
a A A
−
=
∆
= δ
số tương đối của số xấp xỉ a Do đó:
Trong thực hành, người ta thường sử dụng sai số tương đối và sai số tương
Trang 15Phép đo thứ nhất có a1=10m , ∆1 =0.02 suy ra δ1= 0 002
10
02 0
Phép đo thứ hai có a2=2m , ∆2 =0.02 suy ra δ2= 0 01
2
02 0
10 10
m m
m m
m m
110 2
Rõ ràng nếu αm−n+1 là chữ số đáng tin thì những chữ số ở bên trái nó cũng
là những chữ số đáng tin, nếu αm−n+1 là chữ số nghi ngờ thì những chữ số ở bên phải nó cũng là những số nghi ngờ
Trang 16Cách này thường được dùng để biểu diễn các kết quả tính toán hoặc phép đo.
Cách thứ hai: viết số xấp xỉ a theo quy ước: mọi chữ số có nghĩa đồng thời là những chữ số đáng tin Điều đó có nghĩa là sai số tuyệt đối giới hạn ∆akhông lớn hơn một nửa đơn vị của chữ số ở hàng cuối cùng bên phải
Ví dô: 50.25 thì ∆ ≤a (1/2).10-2
Cách này thường dùng trong các bảng số nh bảng các hàm số lượng giác, bảng lôgarit…
3.3 Sù quy tròn số và sai sè quy tròn.
3.3.1 Khái niệm về sự quy tròn và sai sè quy tròn
Sù quy tròn: trong trường hợp số a có quá nhiều chữ số làm cho việc tính toán, ghi chép trở nên khó khăn, ngưòi ta phải ngắt bỏ đi một vài chữ số ở cuối và nhận được số a1 Việc làm đó được gọi là sự quy tròn số
Sai sè quy tròn tuyệt đối : chính là trị tuyệt đối của hiệu a1-a, ký hiệu là θ 1
a a
a1= 1− θ
Sai sè quy tròn tuyệt đối giới hạn của số đã quy tròn a1, ký hiệu ∆ 1
Trang 17Ví dô: quy tròn số 3=1.732050875688…đến chữ số có nghĩa thứ 6, thứ
∆ …, và sai số tương đối giới hạn là δx1, δx2, δx3,…
3.4.1 Sai số của một tổng, hiệu
Xét tổng(hiệu) sau: u = ± x1± x2 ± x3±
Sai số tuyệt đối giới hạn của tổng(hiệu) trên là : ∆u = ∆x1+ ∆x2 + ∆x3+
Sai số tương đối giới hạn của tổng(hiệu) trên là : u
3.4.2 Sai số của một tích
Xét tích sau: u = x1 x2 x3
Sai số tương đối giới hạn của tích trên là :δu = δx1+ δx2 + δx3 +
Sai số tuyệt đối giới hạn của tích trên là : ∆u = u δu
3.4.3 Sai số của một thương
Sai số tương đối giới hạn của thương trên là :δu = δx1+ δx2
Sai số tuyệt đối giới hạn của thương trên là : ∆u = u δu
3.4.4 Tổng quát
Xét trường hợp tổng quát : u=f(x1, x2, x3,…,xn) trong đó f liên tục, khả vi theo các biến xi
Trang 18Sai số tuyệt đối giới hạn của u là : x i
3.5 Sai số phương pháp_sai số tính toán.
Sai số phương pháp sinh ra do dùng phương pháp gần đúng Sai số tính toán sinh ra do quá tình tính phải làm tròn số Sai số của bài toán là tổng hai sai số trên
Ví dụ: tính chuỗi đan dấu B =∑∞
n
nn
Tính BN bá RN thì bài toán có sai số phương pháp
Trong khi tính BN ta làm tròn số có sai số tính toán
Sai số cuẩ bài toán trên là tổng sai số phương pháp và sai số tính toán
Trang 19Ch¬ng 4 Tính gần đúng nghiệm thực của phương
trình đại số và siêu việt
4.1 Đặt vấn đề
Bài toán tìm nghiệm của phương trình f(x)=0, trong đó f là hàm số đại số hoặc hàm số siêu việt bất kỳ, đóng một vai trò quan trọng trong khoa học kỹ thuật Tuy nhiên việc giải chính xác nghiệm của phương trình lại không hề đơn giản, hay không giải được đối với phương trình đại số bậc cao, hoặc siêu việt Mặt khác các thông số trong kỹ thuật cũng chỉ là số xấp xỉ Nh vậy việc giải chính xác nghiệm cũng không còn ý nghĩa Do đó việc giải gần đúng nghiệm và đánh giá sai số của
nó là việc vô cùng quan trọng
Chóng ta hãy cùng xem xét về khoảng phân ly nghiệm và các phương pháp giải gần đúng nghiệm trong chương này Đồng thời em cũng đã xây dựng được sơ
đồ khối cho mỗi phương pháp nhằm cung cấp thuật toán cho việc lập trình
4.2 Khoảng phân ly nghiệm.
Khoảng [a,b] được gọi là khoảng phân ly nghiệm nếu nó chỉ chứa một nghiệm của phương trình
Ví dô: cho phương trình :x3-x-1=0
Đồ thị hàm số là:
Từ đồ thị hàm số ta có khoảng phân ly nghiệm của phương trình trên là (1, 2)
-2.5 -2 -1.5 -1 -0.5 0.5
Trang 20Định lý sau cho ta cách xác định khoảng phân ly nghiệm của phương trình.
//Định lý: Cho y=f(x) liên tục trong (a,b) có đạo hàm f’(x)
Nếu + f(a), f(b) trái dấu ((f(a).f(b)<0)
+f’(x) không đổi dấu trên khoảng (a,b)
thì (a,b) là khoảng phân ly nghiệm của phương trình
Có hai cách xác định khoảng phân ly nghiệm:
4.3.1 Phương pháp chia đôi
4.3.1.1 Nội dung phương pháp
Ta chia đôi khoảng (a, b) :
Ta lại chia đôi khoảng (a1, b1) và tiếp tục làm nh trên…
4.3.1.2 Sự hội tụ của phương pháp.
Dễ dàng thấy phương pháp chia đôi hội tụ khi ta thực hiện vô hạn lần việc chia đôi liên tiếp khoảng phân ly (a, b)
4.3.1.3 Sai số của nghiệm gần đúng
Trang 21Trong thực hành ta không thể thực hiện phương pháp chia đôi vô hạn lần,
mà ta chỉ có thể thực hiện được n phép chia đôi và lấy nghiệm gần đúng mà thôi (n nguyên dương và hưu hạn) Khi đó : an ≤ ξ ≤ bn và ( )
2
1
a b a
bn − n = n −
Ta có thể lấy nghiệm gần đúng nh sau:
x≈an khi đó sai số của nghiệm gần đúng là:
) ( 2
1
a b a
b
an − ξ ≤ n − n = n −
x≈bn khi đó sai số của nghiệm gần đúng là:
) ( 2
1
a b a
1 ) (
n n
Trang 22Lưu đồ thuật toán tìm nghiệm gần đúng bằng phương pháp chia đôi
4.3.1.5 Ưu nhược điểm của phương pháp
Ưu điểm: phương pháp chia đôi là đơn giản, dễ cài đặt trên máy tính, vì mỗi lần áp
dụng phương pháp chia đôi ta chỉ phải tính một giá trị của hàm số tại điểm giữa
của khoảng
Nhược điểm: Phương pháp chia đôi có tốc độ hội tụ chậm
4.3.2 Phương pháp lặp
Phương pháp là một trong những phương pháp quan trọng để giải gần đúng
nghiệm của phương trình f(x)=0, có khoảng phân ly nghiệm (a, b)
4.3.2.1 Nội dung phương pháp
-
Trang 23+-Bước 2: chọn x0 ∈[a, b] làm nghiệm gần đúng ban đầu Thay x=x0 vào phương trình x=ϕ (x ), ta nhận được nghiệm gần đúng thứ nhất: x1 =ϕ ( x0).
Bước 3: Từ bước hai ta có x1, thay x=x1 vào phương trình x=ϕ (x ) ta được nghiệm gần đúng thứ hai là x2=ϕ ( x1)
Lặp lại nhiều lần bước 3, ta nhận được các nghiệm gần đúng:
) (
→ +∞
n
n n
n n
x x
Hay : ξ = ϕ ( ξ )
4.3.2.2 Sự hội tụ của phương pháp lặp.
Sự hội tụ của phương pháp lặp phụ thuộc vào cách chọn hàm số ϕ (x ) Định lý sau đây sẽ cho ta cách chọn ϕ (x ) để dãy{xn}, n=1,2, hội tụ về nghiệm đúng ξ
//Định lý : Giả sử (a, b) là khoảng phân ly nghiệm của phương trình f(x)=0; ϕ (x )
và ϕ ' x ( ) là những hàm số liên tục trong (a, b), với ϕ (x )được xác định bởi phương trình x= ϕ (x ), tương đương với phương trình f(x)=0 Nếu ϕ ' ( x ) ≤ q < 1
đối với ∀ x ∈ [ a , b ], x0∈ [ a , b ] thì dãy {xn}, n=1,2,3…nhận được từ (*) hội tụ về nghiệm đúng ξ
4.3.2.3 Sai số của nghiệm gần đúng
Để đánh giá độ lệch giữa nghiệm gần đúng xn, nhận được bằng phương pháp lặp, và nghiệm đúng ξ ta có các công thức sau:
Công thức thứ nhất:
Trang 24Công thức thứ hai: công thức này cho phép ta xác định được số bước lặp cần thiết
để có được xn với sai sè mong muốn
0 1
Hàm ϕ(x) của phương trình x=ϕ(x) là dạng thay thế của phương trình f(x)=0
Nghiệm gần đúng ban đầu x0
x1=ϕ(x)
Trang 25Ưu điểm : tốc độ hội tụ nhanh, dễ cài đặt trên máy tính.
Nhược điểm: Tính toán phức tạp hơn phương pháp chia dôi
4.3.3 Phương pháp dây cung (còn gọi là phương pháp cát tuyến)
4.3.3.1 Nội dung phương pháp
Cho f(x)=0 và khoảng phân ly nghiệm (a, b):
Để dễ cho việc tính toán ta thêm điều kiện f’(x), f”(x) không đổi dấu trên khoảng phân ly (a, b)
Bước 1: Chọn x0=a và d=b nếu f(b) cùng dấu với f”(x) ( chọn x0=b và d=a nếu f(a) cùng dấu với f”(x))
Bước 2: Cát tuyến nối điểm (x0, f(x0)) và (d, f(d)) cắt Ox tại x1 (nh hình vẽ trên).Bước 3 : Lại nối tiếp các điểm (x1, f(x1)) và (d, f(d)) cắt Ox tại x2
…
Bước n : Cát tuyến nối (xn-1, f(xn-1) và (d, f(d)) cắt Ox tại xn
Dãy {xn} n=1,2,3… là nghiệm gần đúng của phương trình f(x)=0
Công thức tính xn: Từ phương trình cát tuyến nối (xn-1, f(xn-1) và (d, f(d)) ta có công thức tính xn là:
Trang 26))(
(
1
1 1
n
x d x f x x
4.3.3.2 Sự hội tụ của phương pháp dây cung.
Nếu f(x) có f’(x), f’’(x) không đổi dấu trên khoảng phân ly (a, b), nếu chọn x0 sao cho f(x0) khác dấu với f”(x) thì phương pháp dây cung hội tụ về nghiệm đúng ξ
4.3.3.3 Sai số của nghiệm gần đúng
Để đánh giá độ lệch giữa nghiệm gần đúng xn, nhận được bằng phương pháp dây cung và nghiệm đúng ξ ta có các công thức sau:
1) Nếu f ' ( x ) ≥ m > 0 với ∀ x ∈ ( b a , ) thì ta có công thức tính sai
sè sau:
m
x f
Trang 27Lưu đồ thuật toán tìm nghiệm gần đúng bằng phương pháp dây cung
4.3.3.5 Ưu nhược điểm của phương pháp
Ưu điểm : Số lương tính toán Ýt ( khi đã biết xn để tính xn+1 ta chỉ phải tính một giá trị của hàm f tại điểm xn với n>0 )
Nhược điểm : Tốc độ hội tụ chậm chỉ hội tụ tuyến tính
4.3.4 Phương pháp tiếp tuyến(còn gọi là phương pháp Niutơn)
4.3.4.1 Nội dung phương pháp
Cho f(x)=0 và khoảng phân ly nghiệm (a, b): chọn x
Tiếp tuyến tại (x0, f(x0)) cắt Ox tại x1
Tiếp tuyến tại (x1, f(x1)) cắt Ox tại x2
…
Tiếp tuyến tại (xn-1, f(xn-1)) cắt Ox tại xn
Dãy {xn} n=1,2,3… là nghiệm gần đúng của phương trình f(x)=0
+ -
Trang 28-Công thức tính xn: Từ phương trình tiếp tuyến tại (xn-1, f(xn-1) ta có công thức tính
xn là:
)('
)(
1
1 1
x f x x
Quá trình dừng lại khi nhận được nghiệm gần đúng đạt độ chính xác yêu cầu
4.3.4.2 Sự hội tụ của phương pháp tiếp tuyến.
Nếu f(x) có f’(x), f’’(x) không đổi dấu trên khoảng phân ly (a, b), nếu chọn x0 sao cho f(x0) cùng dấu với f”(x) thì phương pháp dây cung hội tụ về nghiệm đúng ξ
4.3.4.3 Sai số của nghiệm gần đúng
Để đánh giá độ lệch giữa nghiệm gần đúng xn, nhận được bằng phương pháp tiếp tuyến và nghiệm đúng ξ ta có các công thức sau:
1) Nếu f ' ( x ) ≥ m > 0 với ∀ x ∈ ( b a , ) thì ta có công thức tính sai
sè sau:
m
x f
xn− ξ ≤ ( n)
2) Nếu f ' ( x ) ≥ m > 0 với ∀ x ∈ ( b a , ) và nếu f"(x) ≤M với
) ,
( b a
x ∈
∀ thì ta có công thức tính sai sè sau:
2 1
Trang 29Lưu đồ:
Lưu đồ thuật toán tìm nghiệm gần đúng bằng phương pháp tiếp tuyến
4.3.4.5 Ưu nhược điểm của phương pháp
Ưu điểm : của phương pháp tiếp tuyến là tốc độ hội tụ nhanh
Nhược điểm: Tính toán phức tạp ( vì biết xn-1, để tính xn ta phải tính một giá trị của hàm f và một giá trị của đạo hàm f’ tại điểm xn-1
B¾t ®Çu
f(x)<=
ξ
KÕt thócNghiÖm lµ x
+ -
x=x0
Trang 30Ch¬ng 5 Giải hệ phương trình đại số tuyến tính
5.1 Đặt vấn đề
Ở chương này, chúng ta cùng xem xét việc giải hệ phương trình đại số tuyến tính với n phương trình, n Èn:
Ax=bTrong đó ma trận A=(aij) , (i,j =1,n ) là ma trận hệ số của hệ phương trình
2 1
và viectơ Èn số của hệ phương trình là
2 1
Ta có thể sử dụng các phương pháp đại số để giải hệ trên Song khối lượng tính toán là rất lớn Nh là dùng phương pháp Crame, số phép tính phải thực hiện là Sn=n! phép tính Hay dùng phương pháp Gauss thì ta cần thực hiện n3 phép tính
Do đó ta có thể giải hệ trên bằng phương pháp gần đúng, số lượng phép tính giảm
đi đáng kể, và kết quả tương đối chính xác
5.2 Các phương pháp tính gần đúng nghiệm
5.2.1 Phương pháp lặp đơn.
5.2.1.1 Nội dung phương pháp
Bước 1: Đưa hệ phương trình Ax=b về dạng tương đương sau:
β
α +
= x x
n
n n
αα
α
αα
α
αα
αα
2 22
21
1 12
2 1
Bước 2: Chọn viectơ xấp xỉ đầu x(0) ( thường chọn x(0) = β), rồi tính dần x(k) theo công thức sau:
Trang 31) (
*lim k k
x x
+∞
→
=
thì giới hạn đó chính là nghiệm đúng của hệ phương trình Ax=b
5.2.1.2 Sự hội tụ của phương pháp lặp đơn.
Quá trình lặp đơn hội tụ đến nghiệm duy nhất của hệ phương trình Ax=b khi :
1
<
p
α
mà không phụ thuộc vào việc chọn viectơ xấp xỉ đầu x(0)
5.2.1.3 Sai số của nghiệm gần đúng
Để đánh giá độ lệch giữa nghiệm gần đúng x(k), nhận được bằng phương pháp lặp đơn và nghiệm đúng x* ta có các công thức sau:
r
r x
Trang 32Lưu đồ thuật toán tìm nghiệm gần đúng bằng phương pháp lặp đơn
5.2.2 Phương pháp lặp Dâyđen.
Phương pháp này được xem nh một biến dạng của phương pháp lặp đơn
5.2.2.1 Nội dung phương pháp
Bước 1: Đưa hệ phương trình Ax=b về dạng tương đương sau:
β
α +
= x x
n
n n
αα
α
αα
α
αα
αα
2 22
21
1 12
2 1
+ -
x1=x0
x1=x