GIẢI TÍCH SỐ I

c Trịnh Anh Ngọc

1/9/2009

i
Mục đích của giải tích số: phát triển các phương pháp hiệu quả và chính xác để tính xấp xỉ các đại
lượng mà khó hoặc không thể nhận được bằng các phương tiện giải tích.
Mục đích
1. Cung cấp kiến thức cơ sở về phương pháp tính.
2. Sinh viên biết áp dụng, thực hiện (bằng máy tính) và phân tích kết quả tính toán.
3. Sinh viên có thể tự đọc các sách, bài báo về phương pháp tính.
Nội dung
1. Sai số và số học dấu chấm động
2. Hệ phương trình đại số tuyến tính
3. Nội suy
4. Các phương trình phi tuyến
5. Đạo hàm và tích phân số
6. Phương trình vi phân thường

Tài liệu đọc thêm
David Kincaid and Ward Cheney, Numerical Analysis Mathematics of Scientific Computing, Brooks/Co
Publishing Company 1991

ii

. . . . . . . . . . . . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.4. . . . . .6 Ma trận có cấu trúc đặc biệt .1 Ma trận băng . . . . . . . . . . . . . 2. . . . . . . . . . .2 Biểu diễn số trong máy tính .1 Phương pháp khử Gauss . . . . . . 1. . . . . . .2 Các chặn sai số . . . .4 Sự chính xác . . . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 4 4 7 7 8 10 12 18 19 22 23 . . . . . . .2 Phân tích sự làm tròn . . . . . . . . 2. . . . . 1. . 1.6. . . . 2. . . . . . . . . . . . . 1. . . . . . . . . . . . . . . . . . . . . . . . .sự truyền sai số . . . . . . 1. . . . . . . . . . . . . . . . . . . . . .1 Factor . . . . . . . . . . . . . . . . . . . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. iii . . . . . . .8 Vấn đề nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Thuật toán chuyển đổi giữa các hệ thống số 1. . . . . . . . . 1. . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Các thí dụ tính toán số dấu chấm động . . . . .3 Ma trận đối xứng . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Nội suy đa thức . . . . . .5. . .4. . . . . 1. . . . 2. . . . . . .1 Các khái niệm cơ bản . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Chương trình . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . .1 Số dấu chấm động . . . .1 Phân tích sai số lùi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Phép nhân tử hóa ma trận (matrix factorization) 2. . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . .2 Solve . . . . 2. . . . . . . .Mục lục 1 2 3 Sai số và số học dấu chấm động 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Số học dấu chấm động . . . . . . . . . . . . . . . . . . 29 29 33 34 36 36 38 41 43 43 46 46 47 48 49 50 51 52 Nội suy 3. . . . . . . . .7 Biểu diễn số dấu chấm động 64-bit IEEE . . . . .2 Ma trận ba đường chéo . . 2. . . . . . . . . . . . . .7 Các phương pháp lặp . .5. . . . . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Số điều kiện . Câu hỏi và bài tập . . . . . . . . . . .2. 2. . . . . . . . . .6 Phân tích sai số thuật toán . . . . . . . . . . . . . . . . . . . . . . 1. . . . . . . . . . .3 Ước lượng chuẩn cho sai số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . . . . . . . . . . . . . . . . . . . . .3 Ảnh hưởng của sai số làm tròn . . .2 Thuật toán khử Gauss . . .2. . . . . . . . . . . . . . . . . . . . . 55 55 61 Hệ phương trình đại số tuyến tính 2. . . . . . Câu hỏi và bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . 3. .8 Vấn đề nghiên cứu .

1 Nhập môn . . . . . . . . . . . . . . . . . . . . . . .3 Các phương pháp một bước . . . Hướng dẫn & Đáp số bài tập . . . . . . . . . . . . . . . . . . . . . . . . A Matlab A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Tiêu chuẩn dừng phép lặp . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Đạo hàm cấp hai liên tục . . . . . . . . . . .1 Chữ số có nghĩa . A. . . . . . . . Câu hỏi và bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Tích phân của bảng dữ liệu . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Sai số địa phương và toàn cục . Câu hỏi và bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Các hàm Matlab dùng trong tài liệu A.2 Đạo hàm cấp một liên tục . . . . . . 4. . . . . . . . . . . . . . . . . . 79 79 81 84 89 93 94 . . . . . . Câu hỏi và bài tập . . . . . . . Tài liệu tham khảo . . . . . . . . . . . . . .2. . . . . 3. . . . . . . . . . . . .3 Tính toán với số gần đúng . . . . . . . . . . . . . . . . . . . 6.2 Quy tắc làm tròn . . . . . . . .MỤC LỤC iv 3. . . . . . . . . . . . . . . . . . . . . .2 Một sơ đồ số đơn giản . . . . . . . . .1 Cơ sở lý thuyết . . . . . 127 127 127 127 128 128 131 150 . . . . . . . . . . . . . . . . . . . . . Định giá sự chính xác . . . . . . . . . . . . . . . . . . . . 4. Phương trình vi phân thường 6. . . . . . . . . . . . 109 109 112 116 121 125 . . . . . Câu hỏi và bài tập . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Hệ phương trình phi tuyến . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Các chương trình con . . . . . . . . . . . . . . . .1 Các quy tắc cầu phương cơ bản 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . . . . .5 4 5 6 Dạng Newton của đa thức nội suy . . . . . . . .3 3. A. . . . . . . . .2 Số gần đúng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nội suy spline . . . . . . . Nghiệm phương trình phi tuyến 4. . . . . 4. . . . . . . . . . . . . . . . . . . . . . .5. . 64 67 68 69 71 72 76 . . . . . . . . . . . . . . . . . . . . 95 95 104 106 106 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . .2. . . . . . . . . Tích phân số 5. . . . . . . . . . . . . . . . . . . . . 6. . . . . . . .2 Phương pháp chia đôi . . . . . . . . . . . . . . . . . . . . . . . .phương pháp cát tuyến 4. . . . .4 3.3 Phương pháp Newton . . .2. . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Spline gián đoạn và spline liên tục 3. . . . . . . . . . . . . . . .

Q x x xQ D : x x Sai số tương đối thể hiện độ chính xác tốt hơn. . Phương pháp số (numerical method) là một thủ tục để xấp xỉ một bài toán toán học bằng một bài toán số hay để giải một bài toán số (hay ít nữa là dẫn nó về một bài toán đơn giản hơn). gọi là sai số làm tròn (roundoff error). .sai số khi thiết lập mô hình (toán học). Bài toán số (numerical problem) là mối quan hệ hàm giữa dữ liệu nhập (input data) . Thì sai số tuyệt đối trong xQ là x D x và nếu x 6D 0 sai số tương đối là x.Chương 1 Sai số và số học dấu chấm động Các loại sai số: .và dữ liệu xuất (output data) .1 Các khái niệm cơ bản Hai cách đo độ chính xác của một đại lượng xấp xỉ: sai số tuyệt đối (absolute error) và sai số tương đối (relative error). 1.sai số do phương pháp tính.sai số do phép đo dữ liệu của bài toán. nhưng sai số tuyệt đối lại có ích khi giá trị chính xác gần bằng không. . Thuật toán (algorithm) cho một bài toán số là sự mô tả đầy đủ các phép toán xác định tốt qua đó mỗi vectơ dữ liệu nhập chấp nhận được chuyển thành một vectơ dữ liệu xuất. Một phương pháp số 1 . Mối quan hệ hàm có thể biểu diễn dưới dạng ẩn hoặc hiển. Định nghĩa 1 Cho xQ là giá trị xấp xỉ của x."biến độc lập" trong bài toán . Các"phép toán" ở đây được hiểu là các phép toán số học và lôgic mà máy tính có thể thực hiện được. gọi là sai số rời rạc hóa (discretization error) hay sai số chặt cụt (truncation error). Dữ liệu nhập và xuất gồm một số hữu hạn các đại lượng thực (hoặc phức) và như vậy được biểu diễn bởi các vectơ có kích thước hữu hạn. hoặc là tham chiếu đến thuật toán đã biết.kết quả cần tìm.sai số do phép biểu diễn số (bằng một số hữu hạn các bit) và tính toán trong máy tính. Thường ta đòi hỏi dữ liệu xuất phải được xác định duy nhất và phụ thuộc liên tục vào dữ liệu nhập.

Một thuật toán là ổn định (stable) nếu những thay đổi "nhỏ" trong dữ liệu nhập dẫn đến những thay đổi "nhỏ" trong dữ liệu xuất. Khi x lớn. bài toán được gọi là (ở trong) điều kiện xấu (ill-condition). Về phương diện tính toán. SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 2 nên có tính tổng quát hơn một thuật toán (phạm vi áp dụng rộng hơn).2) Áp dụng công thức tích phân từng phần. khi đó sai số tuyệt đối trong giá trị xuất của F .CHƯƠNG 1. ta được công thức truy hồi. Tuy nhiên.x/ D x : F .1 Cho hàm F . và nhấn mạnh ít hơn vào sự đầy đủ các chi tiết tính toán. Thí dụ. sai số tuyệt đối trong giá trị của hàm mũ gây ra do sai số x trong đối số x được xấp xỉ bỡi xex .3) .x/ được gọi là điều kiện tốt (wellconditioned) nếu những thay đổi "nhỏ" trong x dẫn đến những thay đổi "nhỏ" trong y.x/ F . Giả sử đối số nhập x có sai số tương đối bằng .x/ D cos. (1.x/ khả vi.x/ là F .x/ F . điều kiện của phép (bài toán) đánh giá hàm này đối với sai số tương đối  nhỏ phụ thuộc rất nhiều vào việc chọn cách đo sai số.x/ D ex . các giá trị chính xác cos. ở gần x D =2. ta nói thuật toán không ổn định (unstable). Sai số tương đối tại =2 không xác định. Điều kiện tốt hay xấu có thể phụ thuộc vào cách đo sự thay đổi.1:57079/ D 0:63268  10 5 .1:57078/ D 1:6327  10 5 cho thấy một thay đổi rất nhỏ trong đối số gần =2 có thể dẫn tới sai số tương đối trong giá trị hàm rất lớn (61%) ı Thí dụ 1. Trường hợp F . En D 1 nEn 1 : Thành phần đầu E1 D 1 Z 0 1 ex 1 dx D 1=e.x C x/ F 0 . Trường hợp ngược lại.1) Từ (1. xét En D Z 1 0 x nex 1 dx với n D 1.1) ta có ngay E1 > E2 > : : : > 0: (1.2 Tích phân từng phần thường được dùng để thiết lập công thức truy hồi. cos. điều kiện của bài toán có liên hệ với tính ổn định (stability) của thuật toán. Thí dụ 1.x/ Sai số tương đối là Trường hợp F . 2. sau một số biến đổi. Một bài toán số với dữ liệu nhập x và dữ liệu xuất y D F .x/  =2.x C x/  xF 0 . Nếu sự thay đổi trong y lớn. : : : (1. sai số tuyệt đối do sự nhiễu x thành x C x xấp xỉ bằng x sin.x/.x/: F . và sai số tương đối áng chừng x.x/ F .

từ bất đẳng thức 0 < En < Z 0 1 x ndx D 1 nC1 ta thấy có thể chọn N để cho sai số tuyệt đối của En cần tính không vượt quá giới hạn cho trước ı 1 IEEE.N 1/ :: :  D E1 ˙ : NŠ D 1  D EN N 1  N Bằng công thức (1. ta có thể đánh giá tích phân theo công truy hồi ngược: En 1 D 1 En n D N.1. CÁC KHÁI NIỆM CƠ BẢN 3 dùng Matlab (IEEE-641 . Thật vậy.1. viết tắt của Institute of Electrical and Electronics Engineers. : : : . và các tính toán theo sau không có sai số. là một hiệp hội thế giới các chuyên gia kỹ thuật.4) ta có thể tính xấp xỉ En bắt đầu từ EO N với N đủ lớn. 2: Nghiên cứu sự ổn định của thuật toán giống như trên. Phân tích: Giả sử ta bắt đầu bằng EO 1 D E1 C ı. EO 3 D 1 3EO 2 D 1 3EO 2 C 6ı D E3 C 6ı. Giả sử ta biết giá trị xấp xỉ EO N của EN với N nào đó. chính xác đơn) ta tính được: E1 E2 ::: E16 E17 E18 ::: E20 D 0:3679 D 0:2642 D 0:0555 D 0:0572 En không giảm! D 0:0295 En không dương! 30:1924 En không nằm giữa 0 và 1! D Đây là một thí dụ về thuật toán không ổn định. 1/n 1 nŠı: Một thay đổi nhỏ trong giá trị đầu E1 "lớn lên" rất nhanh trong En sau đó. . Nếu EO N D EN C  thì EO N 1 EO N 2 EO 1 EO N 1 EN D N N  D EN 2 C N.4) 1. ::: EO n D En C . Thì EO 2 D 1 2EO 1 D 1 2EO 1 2ı D E2 2ı. N n (1. Một phương pháp thường dùng để cải thiện tính ổn định là viết lại công thức hoặc thay đổi thứ tự tính toán. Ảnh hưởng này là "xấu" vì các đại lượng En giảm khi n tăng.

gán cho kết quả bằng không rồi tiếp tục.2 1.b/ có trái dấu không. Khi số mũ e trong (1. ˙0:2  10 1 . một cách tự nhiên. Như vậy có tất cả 55 con số ı Hình 1.b/ khá gần không và dấu của nó không xác định! ı .a/ và f . M D 1.a/f . 9. trong trường hợp này. một số khác thì dừng chương trình.a/f . (1.CHƯƠNG 1. m D 1. ˙0:1  100 . : : : . Khi sử dụng các ngôn ngữ lập trình hoặc các phần mềm tính toán ta cần lưu ý đến hệ thống số dấu chấm động mà nó sử dụng để tránh những kết quả không đáng có. 3.3 Nếu s D 1.5) trong đó d1 > 0 và mỗi di (i D 2.2. SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 4 1.x/ D 0 là thuật toán chia đôi khoảng. Đây là hệ thống số dùng một số hữu hạn các con số để xấp xỉ hệ thống số thực (vô hạn). Các hệ điều hành khi gặp trường hợp này sẽ dừng lại việc tính toán. M D 1. ˙0:9  100 . ký hiệu F . thì tập hợp các số dấu chấm động là ˙0:1  10 1 . ta có thể xấp xỉ x bằng không. ˙0:2  100 . Tuy nhiên.4 Một thuật toán đơn giản dùng để giải phương trình f . khi a hay b khá gần nghiệm của phương trình thì f . Trong thuật toán này cần phải xác định xem f . m D 1. Thí dụ 1. Tất cả các số thuộc hệ thống với s con số dùng cơ số 10 có dạng x D ˙:d1 d2 : : : ds  10e (1. là hữu hạn nên một số dấu chấm động biểu diễn (xấp xỉ) nhiều số thực.‹/ Thí dụ 1. Phần :d1d2 : : : được gọi là phần định trị (mantissa). s D 1. Nếu trong quá trình tính toán xuất hiện số với e > M thì ta nói tính toán đã overflow.b/ < 0 đúng hay sai.5) lớn hơn M thì x không thể được biểu diễn trong hệ thống dấu chấm động này. nghĩa là f . ˙0:9  10 1 .6) trong đó m  e  M . Do tập hợp số dấu chấm động. nó được viết như là 0:0 : : : 0  10m . : : :) nhận một trong các giá trị 0. : : : . Trường hợp khi e < m. ˙0:2  101 . ˙0:1  101 . Số không là một trường hợp đặc biệt.1 Biểu diễn số trong máy tính Số dấu chấm động Số thực x 6D 0 bất kỳ có thể được biểu diễn trong hệ thập phân như sau x D ˙:d1d2 : : : ds dsC1 : : :  10e . : : : . Khi tính toán gặp số như vậy ta nói tính toán đã underflow.1: Phân bố số dấu chấm động với ˇ D 4. ˙0:9  101 cùng với số không 0:0  10 1 . :d1d2 : : : D d1  10 1 C d2  10 2 C : : : Các tính toán trên máy tính được thực hiện trên hệ thống số dấu chấm động (floating point). Một số hệ điều hành. : : : .

sC1/ vào (1.A/. 1i n vì nó tránh được các overflow và underflow ı Nếu một số thực x có số mũ trong phạm vi cho phép thì có hai cách xấp xỉ x thành số dấu chấm động.a1  a2 /  a3 là overlow trong khi a1  . Giả sử jxj  jyj. x 2 sẽ overflow và ta không thể tính được jzj ngay cả trường hợp nó là điểm dấu chấm động có hiệu lực. khi n lớn điều này có thể gây ra overflow hay underflow.2. Nhưng . tất cả các số ai còn lại đều thuộc phạm vi biểu diễn được và det D 1080 .x/. Một số người lập trình phần mềm toán học đề nghị dùng chuẩn maximum kvk1 D max jvi j.a2  a3 / lại thực hiện được. truncated) của x. v2 .1. Điều này cho thấy các số dấu chấm động không tuân theo luật kết hợp của phép nhân trong hệ thống số thực. Việc đánh giá chuẩn Euclide của vectơ v D . i D1 cùng một kiểu tính toán như trên. a2 D 1060 . vn /. Một vấn đề cũng cơ bản không kém là sự "nhạy cảm" của định thức khi nhân ma trận với một số. với hệ thống dấu chấm động M D 100. a3 D 10 30 .ln j det j/: Nếu điều này dẫn đến overflow thì là vì bản thân kết quả không biểu diễn được trong hệ thống số dấu chấm động ı Thí dụ 1.cA/ D c n det. ký hiệu fl.5) thì fl. Để giải quyết vấn đề ở đây.x/ theo cách này gọi là làm tròn số (rounding). Xác định fl.x/ là kết quả của việc loại bỏ tất cả các chữ số sau s chữ số đầu trong (1.5 Định thức của ma trận chéo được tính theo công thức det D a1 a2    an : Trong nhiều trường hợp khi dùng công thức này ta gặp underflow hay overflow. p jzj D x 2 C y 2 .6 Khi tính môđun của số phức z D x C iy.5) rồi chặt cụt thì ta được một số dấu chấm động gần với x hơn (biểu diễn chặt cụt). BIỂU DIỄN SỐ TRONG MÁY TÍNH 5 Thí dụ 1. x chướng ngại được vượt qua. a1 D 1050 . ta gặp trở ngại khi x hay y lớn. Nếu A là ma trận vuông cấp n thì det. phần mềm LINPACK mở rộng phạm vi hiệu lực của số mũ. .v1 . Chẳng hạn. Nếu fl. Một cách làm khác là dùng hàm lôgarit và hàm mũ ln j det j D n X i D1 ln jai j det D exp. Nếu x đủ lớn. Nếu tính toán được thực hiện như sau r  y 2 jzj D jxj 1 C . Nếu cộng thêm 5  10 . : : : . !0:5 n X kvk2 D vi2 .x/ được gọi là biểu diễn chặt cụt (chopped.

x/ ˇ ˇ D 0:00 : : : 0dsC1dsC2 : : :  10 ˇ ˇ ˇ x 0:d1d2 : : : ds dsC1dsC2 : : :  10e 0:00 : : : 099 : : :  0:10 : : : 000 : : : 0:00 : : : 100 : : :  D 101 s : 0:10 : : : 000 : : : Trong hệ thập phân./ D 0:31416  101 Nếu dùng biểu diễn chặt cụt thì sai số tương đối của fl. con số 101 roundoff). Các trình bày trên có thể thực hiện cho cơ số ˇ bất kỳ. khi phép chặt cụt được dùng. Số u là chặn trên của sai số tương đối trong phép biểu diễn dấu chấm động của một số khác không.CHƯƠNG 1. làm tròn: .1: Các thí dụ về hệ thống số dấu chấm động. M D 99. s. SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 6 máy ˇ s VAX 2 24 VAX 2 48 CRAY-1 2 56 IBM 3081 16 6 IBM 3081 16 14 IEEE single 2 24 double 2 53 m M u 128 127 6:0  10 128 127 1:4  10 16384 16383 3:6  10 64 63 9:5  10 64 63 2:2  10 125 1021 128 6:0  10 1024 1:1  10 08 17 15 07 16 08 16 Bảng 1.  1 s ˇ .1 C ı/ thì ı  u. s D 5 và  D 3:1415926 : : : thì số chặt cụt fl.x/ D x.1 Trong hệ thống số dấu chấm động F cơ số ˇ giữ s chữ số với m < e < M . ký hiệu u.x/ ˇ 1 1 ˇ ˇ  10 ˇ ˇ 2 x s được định nghĩa là đơn vị làm tròn (unit s và u D 0:5  101 s . Nếu dùng phép làm tròn thì ˇ ˇ ˇ x fl. ký hiệu F D F . Thí dụ 1. Các cơ số ˇ D 2 (nhị phân).x/: ˇ ˇ e ˇ x fl. Định lý 1. m./ D 0:31415  101 trong khi là số làm tròn ı fl.ˇ. chặt cụt uD (1. mọi số thực trong phạm vi của F có thể được biểu diễn với sai số tương đối không vượt quá đơn vị làm tròn u.7 Nếu m D 99. Nếu biểu diễn fl. ˇ D 16 (thập lục phân) thường được dùng trong máy tính hơn là cơ số 10.7) 1 s 0:5ˇ . M /.

2. .11) Vì một phân số hữu hạn trong hệ thống số với cơ số ˇ thường không tương ứng với một phân số hữu hạn trong hệ thống số với cơ số ˇ nên cần thiết phải làm tròn. Với phần nguyên ta có 173=3 D 58 dư 2. Khi chuyển đổi bằng tay giữa hệ thập phân và. Tiếp tục ta nhận được . . fl. .2. 2. .8 Chuyển đổi số thập phân 176:524 thành dạng tam phân (ternary) (cơ số ˇ D 3). nghĩa là xấp xỉ kết quả nhận được của phép tính tương ứng trong hệ thống số thực. 19=3 D 6 dư 1. Mô hình phần cứng thỏa các điều kiện trên gọi là mô hình chuẩn. :716  3 D 2:148.2.20112/3 . Ta cần xác định biểu diễn của nó trong hệ thống số với cơ số ˇ: a D bn ˇ n C bn 1 ˇ n 1 C : : : C b0 .8) Các phép tính trong (1. fl. Các chữ số này nhận được như phần nguyên khi nhân liên tiếp c với ˇ: Đặt p 1 D c. 6=3 D 2 dư 0. Ta giả sử các thủ tục số học của phần cứng sinh ra các kết quả thỏa x˚y x y x˝y x˛y D D D D fl. và pk  ˇ D bk C pk 1 . các phép tính được làm trong hệ nhị phân (˛ D 2 và ˇ D 10). k D 1. BIỂU DIỄN SỐ TRONG MÁY TÍNH 1. ta viết a D b C c.176/10 D . Các kết quả khi thực hiện phép C. Thí dụ 1. chẳng hạn. hệ nhị phân tất cả các phép tính được làm trong hệ thập phân (˛ D 10 và ˇ D 2).2 7 Thuật toán chuyển đổi giữa các hệ thống số Cho a là số nguyên trong hệ thống số với cơ số ˛. = trong hệ thống số dấu chấm động luôn kèm theo một phép "làm tròn" nào đó.) Nếu a không là số nguyên. Với phần phân số ta tính :524  3 D 1:572. k D 0. .:112010222 : : :/3 . sự chuyển đổi được thực hiện trên một máy nhị phân. : : : : (qkC1 là thương còn bk là dư trong phép chia.x  y/.x=y/ miễn là kết quả tính nằm trong phạm vi hệ thống số dấu chấm động.9) (1. 0  bi < ˇ: (1.3 Số học dấu chấm động Số chấm động cũng là số thực. . : : : : (1. . . 1. Sự chuyển đổi được thực hiện bằng cách chia liên tiếp của a cho ˇ: Đặt q0 D a.:524/10 D . và qk D qkC1 ˇ C bk .1. Nếu ngược lại.8) phải được thực hiện trong hệ thống số với cơ số ˛ và cũng vậy ˇ được biểu diễn trong hệ thống số này. fl. :572  3 D 1:716. ˛ để chỉ xấp xỉ dấu chấm động (floating point approximation) của các phép tính C. = trong hệ thống số thực. Như vậy. Số thập phân hữu hạn không tương ứng với phân số hữu hạn trong hệ tam phân! ı 1. 58=3 D 19 dư 1. 2=3 D 0 dư 2. trong đó b là phần nguyên (integer part) và c D b 1ˇ 1 C b 2ˇ 2 C::: (1.10) là phần phân số (fractional part) phải được xác định. ˝. . .x C y/.x y/. . Sau này ta dùng các ký hiệu ˚.

x/ ta có . cái chặn cho sai số tuyệt đối trong kết quả được cho bởi tổng của các chặn cho sai số tuyệt đối của các toán hạng yD n X i D1 ˙xi .  và =.xk /=f 0 . Dùng một cách khác. sai số trong dữ liệu nhập được truyền đi trong quá trình tính toán gây ra sai số trong dữ liệu xuất.xk / ı . Tổng quát hơn. với mỗi phép tính C.CHƯƠNG 1. jıj  u.14) Chứng minh.ln.3 Ảnh hưởng của sai số làm tròn . 1. . (1.13) Để nhận được kết quả tương ứng cho phép nhân và chia. Ngoài ra sai số làm tròn ở mỗi bước tính cũng được truyền đi và xuất hiện trong kết quả cuối cùng.x2 / C : : : C mn ln.12) trong đó u là đơn vị làm tròn và "op" thay cho một trong bốn phép tính C. Chứng minh bằng cách lấy đạo hàm ln. jyj  n X i D1 jxi j: (1. cho y D x1m1 x2m2    xnmn .9 Trong phương pháp Newton giải phương trình phi tuyến f .x/ D 0 một hiệu chỉnh xk (từ nghiệm xấp xỉ ở bước k.x op y/. Ảnh hưởng của sai số làm tròn lên kết quả cuối cùng có thể được đánh giá bằng cách dùng các bổ đề sau. .1 C ı/.xk / và f 0 .xk / chính xác thế nào để có độ chính xác cao hơn? Vì giới hạn của sai số tương đối trong y bằng tổng của các chặn cho sai số tương đối trong f .xk /. nên sẽ không có lợi nếu cố gắng đạt sai số tương đối trong f 0 . dữ liệu nhập thường không chính xác. Trong mô hình chuẩn ta có fl. Để thực hiện các phép tính trong mô hình số học này bằng tay.2 Trong phép nhân và phép chia. Giả sử rằng f . Bổ đề 1. ˇ ˇ ˇ ˇ n ˇ y ˇ < X ˇ xi ˇ ˇ ˇ ˇ: jmi j ˇˇ ˇ y ˇ ˇ x i i D1 (1.1 Trong phép cộng và phép trừ.sự truyền sai số Trong tính toán các bài toán khoa học. xk ) phải được tính như là tỉ số y D f . tính kết quả và chuyển đổi nó thành biểu diễn trong máy trước khi tiếp tục phép tính kế tiếp.xk /.y/ D m1 ln. thực hiện phép toán bằng số học chính xác. =. ta bắt đầu bằng nhận định rằng với y D ln. Từ nhận xét này ta có: Bổ đề 1.x op y/ D . và làm tròn (chặt cụt) nó. . Phát biểu bằng lời: sai số tương đối trong một đại lượng xấp xỉ bằng sai số tuyệt đối trong logarit tự nhiên của nó.xk / "rất ít hơn" sai số tương đối trong f . cái chặn xấp xỉ cho sai số tương đối được nhận bằng cách cộng các sai số tương đối của các toán hạng. ta nên tính f 0 .xk / chỉ được biết với độ chính xác tương đối nào đó.x1/ C m2 ln. chuẩn hóa kết quả. với mỗi phép tính.x//  x=x. y 2 F .xn/ rồi đánh giá nhiễu trong từng số hạng Thí dụ 1. SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 8 Định nghĩa 2 Giả sử x.

1.3. ẢNH HƯỞNG CỦA SAI SỐ LÀM TRÒN - SỰ TRUYỀN SAI SỐ

9

Bây giờ ta nghiên cứu sự truyền sai số trong các biểu thức phi tuyến tổng quát hơn. Giả sử ta cần tính
hàm y D f .x/ của một biến độc lập x. Sai số trong x truyền tới y như thế nào? Cho x D x x.
Q Bởi
định lý giá trị trung gian,
y D f .x/ f .x/
Q D f 0 ./x;
trong đó  nằm giữa x và x.
Q Giả sử jxj   thì

jyj  max jf 0 ./j;  2 Œx  

; x C :

Trong thực hành, thường ta thay  bằng đánh giá có hiệu lực của x là đủ. Ngay cả nếu cần sự chính xác
cao trong giá trị của f .x/, hiếm khi cần sự chính xác tương đối cao trong cái chặn sai số hoặc đánh giá
sai số. Chỉ cần cẩn thận hơn khi  nằm trong lân cận của không điểm của f 0 .x/.

Hình 1.2: Sai số truyền trong hàm y D f .x/.
Trường hợp y là hàm ẩn của x xác định bởi phương trình g.x; y/ D 0. Nếu @g=@y 6D 0 thì
ˇ
ˇ
ˇ
ˇ @g
@g
./ˇˇ ;  2 Œx ; x C :
jyj  max ˇˇ ./ W 

@x
@y
Thí dụ 1.10 Trong thí dụ 1.18 bên dưới, giải phương trình bậc hai
ax 2 C bx C c D 0;
ta thấy nghiệm tính toán rất "nhạy cảm" với sai số của c. Đạo hàm phương trình x 2 C bx C c D 0, trong
đó x D x.c/ đối với c ta được
.2ax C b/

dx
dx
C1D0)
D
dc
dc

1
:
2ax C b

Lấy x D x1 và dùng các hệ thức liên hệ giữa nghiệm x1;2 với các hệ số a; b; c ta có
dx1
D
dc

c=a
dx1
)
D
c.2x1 C b=a/
x1

dc x2
:
c x1 x2

Điều này chứng tỏ khi jx1 x2 j << jx2j có thể rất nhạy cảm với nhiễu tương đối nhỏ trong c.
Khi x1 D x2 D r, phương trình có nghiệm kép, phân tích
ptrên không còn hiệu lực. Tuy nhiên, dễ thấy
2
rằng phương trình .x r/ C c D 0 có nghiệm x D r ˙ c ı

CHƯƠNG 1. SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG

10

Để phân tích sự truyền sai số trong một hàm nhiều biến f D f .x1; x2 ; : : : ; xn/ ta cần một tổng quát
hóa của định lý giá trị trung gian:
Định lý 1.2 Giả sử hàm lấy giá trị thực f khả vi trong một lân cận của điểm x=.x1 ; x2 ; : : : ; xn /, và cho
x D x C x là điểm nằm trong lân cận này. Thì tồn tại số , 0    1, sao cho
f D f .x C x/

n
X
@f
f .x/ D
.x C x/xi :
@x
i
i D1

Tương tự như trên ta dễ dàng chứng minh:
Định lý 1.3 (Công thức tổng quát cho sự truyền sai số) Giả sử hàm lấy giá trị thực f khả vi trong một
lân cận của điểm x=.x1 ; x2; : : : ; xn / với sai số x1 , x2 ,. . . , xn . Thì ước lượng sau là có hiệu lực
n
X
@f
f 
xi ;
@x
i
i D1

trong đó các đạo hàm riêng được đánh giá tại x.
Với sai số cực đại trong f .x1; x2 ; : : : ; xn/ ta có chặn của xấp xỉ
ˇ
n ˇ
< X ˇ @f ˇ
ˇ
ˇ
jf j 
ˇ @x ˇ jxi j:
i

(1.15)

(1.16)

i D1

Thí dụ 1.11 Tính các chặn sai số cho f D x12 x2 , trong đó x1 D 1:03 ˙ 0:01, x2 D 0:45 ˙ 0:01. Ta
nhận được
ˇ
ˇ
ˇ
ˇ
ˇ @f ˇ
ˇ @f ˇ
ˇ
ˇ
ˇ
ˇ
ˇ @x ˇ D j2x1 j  2:1; ˇ @x ˇ D j 1j D 1;
1
2

suy ra f  2:1  0:01 C 1  0:01 D 0:031 ı

Trong giải tích số rất hiếm trường hợp yêu cầu cho các chặn sai số để bảo đảm toán học. Thường thì
chỉ cần cho một đánh giá về cấp của độ lớn (order of magnitude) của dự báo sai số.

1.4

Số điều kiện

Như đã biết, một bài toán số là điều kiện xấu nếu dữ liệu nhập thay đổi một chút nhưng dữ liệu xuất lại
thay đổi rất lớn. Vì vậy việc có một số đo cho sự nhạy cảm của dữ liệu xuất khi dữ liệu nhập thay đổi là
rất hữu ích. Trong bài toán tính số giá trị hàm y D f .x/ ta có thể lấy jf 0 .x/j làm số đo độ nhạy cảm của
f .x/ đối với nhiễu x của x. Trong nhiều tài liệu, tỉ số giữa sai số tương đối trong f .x/ và x được dùng.
Định nghĩa 3 Giả sử x 6D 0 và f .x/ 6D 0, thì số điều kiện  cho bài toán tính giá trị hàm y D f .x/, bởi
định nghĩa là
jf .x C x/ f .x/j jxj
jf 0 .x/j
W
D jxj
:
jxj!0
jf .x/j
jxj
jf .x/j 

D lim

Ta nói bài toán tính f .x/ từ x là điều kiện xấu nếu  "lớn" và điều kiện tốt nếu ngược lại.

(1.17)

1.4. SỐ ĐIỀU KIỆN

11

Số điều kiện là một thuộc tính của bài toán số và không phụ thuộc vào thuật toán được dùng! Một bài
toán điều kiện xấu có khó khăn nội tại khi giải bằng bất kỳ thuật toán nào. Ngay cả nếu dữ liệu nhập là
chính xác sai số làm tròn xuất hiện khi tính toán bằng số học dấu chấm động vẫn có thể gây ra nhiễu rất
lớn trong kết quả cuối cùng.
Thí dụ 1.12 Xét hệ phương trình tuyến tính  

  
1 ˛
x
1
D
˛ 1
y
0

trong đó ˛ là dữ liệu nhập. Nghiệm chính xác là
x D 1=.1

˛ 2 /; y D ˛=.1

˛ 2 /:

Ma trận suy biến khi ˛ D 1, và bài toán tính x; y là điều kiện xấu khi ˛  1. Dùng phương trình (1.17)
ta thấy số điều kiện khi tính x là 
D ˛x 0 .˛/=x.˛/ D 2˛ 2 =j1

˛ 2 j:

Với ˛ D 0:9950 ta có bằng cách dùng phép khử Gauss và tính toán trong hệ thập phân bốn chữ số các giá
trị tính được là
yN D 0:995=.1

0:9900/ D 99:50; xN D 1 C 0:9950  99:50 D 100:0025;

thay vì giá trị chính xác y D 99:7494, x D 100:2506. Chú ý rằng hai chữ số bị mất khi làm tròn trong
mẫu số lúc tính y (˛ 2 D 0:990025 ! 0:9900). Số điều kiện  D 198 chỉ ra một cách chính xác rằng ta
có thể mất hai chữ số thập phân có nghĩa. ı

Bây giờ ta xét bài toán số nhiều biến P trong đó dữ liệu xuất yj D fj .x/, j D 1; 2; : : : ; m phụ thuộc
vào dữ liệu nhập x D .x1 ; x2 ; : : : ; xn/. Thì bởi công thức truyền sai số tổng quát (1.16) ta có đánh giá sai
số cực đại
ˇ
n ˇ
< X ˇ @fj ˇ
ˇ
ˇ
(1.18)
jfj j 
ˇ @x ˇ jxi j:
i
i D1
Điều này cho ta một ma trận các số điều kiện (tương đối)
ˇ
ˇ
ˇ @fj ˇ jxi j
ˇ 
ij D ˇˇ
i D 1; 2; : : : ; n; j D 1; 2; : : : ; m:
@xi ˇ jyj j

Thuận tiện hơn nếu dùng một số duy nhất để đo điều kiện của bài toán. Điều này có thể thực hiện
được bằng cách dùng chuẩn
Định nghĩa 4 Số điều kiện  của bài toán P với dữ liệu nhập .x1; x2 ; : : : ; xn / và dữ liệu xuất .y1 ; y2 ; : : : ; ym /
là 
.P / D lim sup 
!0

1 kyQ yk
; kxQ 
kyk

xk  kxk:

(1.19)

Chú ý rằng .P / là một hàm của dữ liệu nhập x và phụ thuộc vào cách chọn chuẩn trong không gian dữ
liệu và không gian nghiệm. Với  đủ bé ta có đánh giá
kyQ

yk  kyk C O. 2 /:

Kết quả là nghiệm sẽ có, về đại thể, ít hơn s.D log10 / chữ số thập phân có nghĩa so với dữ liệu nhập.

ngay cả khi số mũ không vượt quá phạm vi.1 C ı1 /. Ta sẽ thấy phép nhân và phép chia thỏa mãn các tính chất của hệ thống số thực tốt hơn phép cộng và phép trừ. .1 C ı1 /.1 C ı2 / D 1 C .x ˝ y/ ˝ z.2). Sai số tương đối của mỗi Pi có thể được chặn nhờ u không khó.1 C ı2 / D 1 C ı1 C ı2 C ı1 ı2  1 C ı1 C ı2 suy ra   ı1 C ı2 và chặn trên của  là 2u. luật kết hợp cho phép nhân là đúng một cách xấp xỉ. .1 C ı3 /.1 C ı2 / D xyz.5 Các thí dụ tính toán số dấu chấm động Hệ thống số dấu chấm động có các tính chất như hệ thống số thực nhưng không phải tất cả. Với x.1 C ı1 /. z 2 F . SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 12 1.1 C ı2 /    . .1 C ı3 /. nếu dùng xấp xỉ Pi  x1x2    xi .1 C ı2 /: Tích . thì jı1 C ı2 C : : : C ıi j  iu: Điều này cho thấy chặn trên sai số tương đối phát triển một cách cộng dồn. x ˝ y D xy. Trong trường hợp tổng quát.y ˝ z/ . xn ta có thể làm bằng thuật toán lặp P1 D x 1 Pi D Pi 1 ˝ xi . trong đó các jıi j  u. 3.1 C ı1 /.x ˝ y/ ˝ z D .1 C ı4 / suy ra x ˝ . : : : . x2 . Tuy nhiên x ˝ . ta lưu ý rằng có thể xảy ra trường hợp mà x ˝ . trong đó  là "nhỏ" và có thể đánh giá so với đơn vị làm tròn u .1 C ı1 C ı2 C : : : C ıi /. Trước khi tổng quát hóa kết quả này.1 C ı1 //z.1 C ı1 /. : : : .1 C ı2 / trong đó  là "nhỏ".CHƯƠNG 1.1 C ıi /.xy. nếu ta muốn nhân x1. Mỗi phép nhân làm gia tăng sai số tương đối một lượng không nhiều hơn đơn vị làm tròn.1 C ı1 /. n: Tính trong hệ thống số thực ta có Pi D x1 x2    xi D . i D 2.x ˝ y/ ˝ z .1 C ı4 / D D 1 C . y. Phép chia có thể phân tích theo cùng một cách và kết luận cũng tương tự (xem bổ đề 1. Như vậy.y ˝ z/ 6D .y ˝ z/ D xyz.

và rồi chú ý rằng áp dụng liên tiếp (1. bằng cách cho y D x N C 2. số mũ được điều chỉnh để trở nên giống nhau và rồi các số được cộng lại 0:100000 101 C 0:00000123456 101 0. Sự mất mát thông tin không có nghĩa là đáp số không chính xác. Thí dụ 1. một số thông tin có thể bị mất.y/ có thể xấp xỉ tốt bởi tỉ số R.x N C 2/. nếu jyj < jxju. thì x ˚ y D x và số y chẳng đóng vai trò gì.x 1/€. Khi các số có độ lớn rất khác nhau được cộng (hay được trừ).x (1.x C ı/ ı F .1/ D 1. Điều này có thể thấy từ công thức Stirling  x x p : €.x N C 2/    . 0 tổng quát hóa hàm giai thừa (factorial function) cho các số nguyên lên các số thực x (và cũng cho số phức x). Chú ý rằng một vài chữ số đã không tham gia vào phép cộng.x/ D . Từ công thức truy hồi cơ bản €.10000123456 101 . thật ra nó chính xác đến một đơn vị làm tròn.x/  R. Kết quả được chặt cụt thành 0:100001  101.x 2/.x/ hơn là với €.20) ta được €. Nhưng nhiều hàm đặc biệt của vật lý toán lại phát triển hoặc suy giảm rất nhanh. Một phương pháp chuẩn để xấp xỉ €. Thí dụ ta muốn cộng 0:123456  10 4 với 0:100000  101 trong số học chặt cụt sáu-chữ số.y/.y/ với 2  y  3.x/ D Z 1 t x 1 e t dt. CÁC THÍ DỤ TÍNH TOÁN SỐ DẤU CHẤM ĐỘNG 13 Thí dụ 1. Suy ra.x/ ı Phép cộng và phép trừ rất ít thỏa mãn trong số học dấu chấm động so với phép nhân và phép chia. định nghĩa như là €.x/  2=x e Thí dụ này cho thấy một vấn đề khác: do số học dấu chấm động tự động đối xử với các số có độ lớn khác nhau.x N C 3/    .x/ với x  2 là dùng công thức trên dẫn về việc xấp xỉ €. Khi điều này xảy ra cần thiết viết lại công thức cho bài toán để nhận được kết quả tốt hơn. Tuy nhiên không thể tính €.x/  F . Chẳng hạn.x 1/: Hàm €. ta xấp xỉ €. thường là ra ngoài phạm vi số mũ. Trước hết. Thật vậy. một chút chính xác bị mất khi các phép nhân này được thực hiện trong số học dấu chấm động.x/ : . Điều này được thực hiện bằng cách cho N là một số nguyên sao cho N  x < N C 1.14 Ta có công thức xấp xỉ F 0 .y/.1.x 1/: Nếu x không quá lớn. Vấn đề là thông tin bị mất này có thể cần đến cho các tính toán về sau. thường ta làm việc với hàm đặc biệt ln €.x/ D €.y/ của hai đa thức với 2  y  3.13 Hàm gamma.20) 1/ và sự kiện là €.5.x/ với x lớn bằng cách tiếp cận này bởi vì giá trị của nó phát triển rất nhanh như là hàm của x.

x/ ở trên là tương đương về mặt toán học.x/ tại x D 1 bằng cách dùng ı D 0:123456  10 4 trong số học chặt cụt sáu-chữ số.x/ D x và ta xấp xỉ F 0 .ˇ/ : 6 2 ˛ Độ chính xác của công thức này phụ thuộc vào độ dài jˇ ˛j. Trong trường hợp này người sử dụng phần mềm phải được cảnh báo là sự chính xác như yêu cầu là không khả thi ı Thí dụ 1.x/ sẽ bằng không. các kết quả tính sẽ không giống các kết quả toán học trong hệ thống số thực. Công thức đầu tiên cho F 0 . Nếu ı đủ lớn để ảnh hưởng đến tổng nhưng vẫn "nhỏ". Giả sử ta dùng công thức     Z ˇ ˇ ˛ ˛Cˇ f . Tuy nhiên.  D 0:100000  10 4 chỉ thể hiện những chữ số của ı có ảnh hưởng thực đến tổng.1 ˚ ı/ 1 0:100000  10 D  0:100000  10 4 4 4 D 0:810000  100 : D 0:100000  101 : Hiển nhiên công thức thứ hai cho xấp xỉ tốt hơn F 0 .x/ :  Hai xấp xỉ của F 0 . nhưng về mặt tính toán thì khác. SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 14 Vế phải của công thức này được gọi là tỉ sai phân (difference quotient) của hàm F tại điểm x.CHƯƠNG 1.ˇ ˛/=2 là giống nhau. độ dài càng nhỏ thì càng chính xác.x/dx  f . Tốt hơn nó không nên quá nhỏ (để có sự chính xác) nếu không ta sẽ có x ˚ ı D x và giá trị tính của F 0 . Để có xấp xỉ chính xác.x/. một vài chữ số của nó (ı) sẽ không ảnh hưởng đến tổng theo nghĩa x ˚ ı x 6D ı.1 ˚ ı/ 1 0:100000  10 D ı 0:123456  10 4 . ı phải "nhỏ" so với x. Trong nhiều áp dụng công thức này được dùng để xấp xỉ F 0 . ˇ và xấp xỉ tích phân trên mỗi đoạn con này. các số dấu chấm động ˛ và ˛ C . Ta có 1 ˚ ı D 0:100001  101 .x/dx a có thể được thực hiện bằng cách phân hoạch Œa. Nếu ˛ và ˇ không thể được phân biệt trong độ chính xác (đang dùng). nếu jˇ ˛j < 2uj˛j.x ˚ ı/ x và xấp xỉ F . Trong tỉ sai phân ta cần chia cho hiệu thực của đối số chứ không phải là ı.15 Xấp xỉ tích phân xác định Z b f .1/ D 1 ı Thí dụ 1.x C / F . như vậy nên định nghĩa  D . b thành những đoạn con Œ˛.16 Tổng S của chuỗi số 1 X am mD1 là giới hạn của dãy các tổng riêng Sn D n X mD1 am : . Thí dụ.x/  Công thức thứ hai cho . tương tự. giả sử F .˛/ C 4f C f .

x ˚ ı/ x: Vì ı là nhỏ so với x.5. giá trị tính toán Sn tăng và an D 1=n giảm cho đến khi Sn D Sn 1 ˚ an D Sn và thuật toán dừng! Trong số học dấu chấm động chuỗi phân kỳ này có tổng hữu hạn! Như vậy cần phải có vài phân tích toán học phụ thêm (khi tính tổng của chuỗi số) để có kết quả tin cậy ı Thí dụ 1. được gọi là sự mất ý nghĩa (loss of significane). thì x giống X sai khác một đơn vị làm tròn trong số học sáu-chữ số.X Y / ˇ ˇ . Hiệu x y là một xấp xỉ của X Y với sai số tương đối thỏa ˇ ˇ ˇ ˇ ˇ . kết quả x y là nhỏ hơn x và y về độ lớn.1. vì vậy các sai số đã hiện diện trong x và y là tương đối lớn so với x y. Thí dụ. Nhưng có sự "mất mát" thông tin.x ˚ ı/ ı thực sự ảnh hưởng đến tổng. phép trừ được thực hiện chính xác. x y và X Y khác nhau ở số lẻ thứ bốn. nhưng hiệu của chúng chỉ còn ba chữ số có nghĩa ı Nhận xét 1. nếu x D 0:123654  10 5 và y D 0:123456  10 5 . x y D x y. Chúng có thể là các giá trị đo hay kết quả của một vài tính toán.000198 10 5 5 5 D 0:198000  10 8 . Điều đáng quan tâm là khi sự khử được thực hiện. thì 0:123654 10 0:123456 10 0. Giả sử x là một xấp xỉ của X và y là một xấp xỉ của Y . Một thí dụ cổ điển về chuỗi phân kỳ là chuỗi điều hòa 1 X 1 : m mD1 Nếu thuật toán trên được áp dụng cho chuỗi điều hòa. sai số tương đối có thể lớn vì mẫu số X Y là nhỏ so với X hay Y . Trong thí dụ này. : : : . 3. tiếp tục cho đến khi tổng riêng không còn thay đổi. Theo cách này ta nhận được trong  các chữ số của .14 khi tính  D . Sn D Sn 1 ˚ an n D 2.y Y / ˇ ˇ ˇ D ˇ ˇ ˇ ˇ ˇ ˇ X Y X Y ˇ ˇˇ ˇ ˇ ˇˇ ˇ ˇx X ˇ ˇ X ˇ ˇy Y ˇ ˇ Y ˇ ˇˇ ˇCˇ ˇˇ ˇ:  ˇˇ X ˇ ˇX Y ˇ ˇ Y ˇ ˇX Y ˇ Nếu x gần y đến độ có sự khử. Mặc dù hiệu x y D 0:198000  10 8 được thực hiện cách chính xác. x và y có ít nhất sáu chữ số có nghĩa.17 Hai số có các chữ số đầu giống nhau thì phép trừ giữa chúng sẽ khử đi các chữ số này. có sự khử và  D . Thí dụ. Với Y D y giá trị ta tìm là X Y D 0:198700 : : :  10 8 . CÁC THÍ DỤ TÍNH TOÁN SỐ DẤU CHẤM ĐỘNG 15 Một thuật toán tự nhiên đế tính S: S1 D a1 . Khi sự khử xảy ra.1 Một nhận xét có giá trị là ta đã dùng sự khử trong thí dụ 1.x X/ . x.x y/ . nếu X D 0:123654700 : : :  10 5 .

Nếu c nhỏ so với b.2 D c. Chuỗi đan dấu thu hút sự chú ý này. c=b: Trong số học có độ chính xác hữu hạn một vài chữ số của c không ảnh hưởng lên tổng . một vài thông tin bị mất và ta sẽ thấy trong vài trường hợp ta cần đến nó trong tính toán sau này. Thì chuỗi đan dấu 1 X .b=2/2 c trở nên quan trọng theo nghĩa tương đối.19 Muốn tính tổng của một chuỗi. Tuy nhiên. Trường Điều quan trọng để nhận thức đúng là đại lượng này được tính một cách chính xác theo nghĩa tương đối. 1/m am mD0 thỏa jS Sn j  anC1 : . Trong tính toán nghiệm nhỏ hơn. giả sử b  0. Trong trường hợp tới hạn công thức cho kết quả bằng không như một xấp xỉ của x2 . Bản thân phép trừ được thực hiện chính xác. có sự khử khi số hạng căn bậc hai bị trừ từ b=2. Dùng công thức x1x2 D c. Một căn bậc hai được tính với một sai số tương đối nhỏ cũng đúng với phép trừ theo sau. điều quan trọng là biết khi nào đã lấy đủ các số hạng từ chuỗi để xấp xỉ giới hạn (tổng của chuỗi) với độ chính xác mong muốn. 1/m am mD0 hội tụ tới giới hạn S và sai số của tổng riêng Sn D n X . căn bậc hai có thể viết lại và xấp xỉ bằng cách dùng chuỗi nhị thức r   b 4c b 2c 1  1 C::: : 2 b2 2 b2 Điều này chứng tỏ các nghiệm thực x1  x2  b.b=2/2 hợp tới hạn là  2  2 b b c D : 2 2 c. nghiệm x2 có thể được tính bằng x2 D c=x1 cho giá trị chính xác hơn ı Thí dụ 1. Giả sử a0  a1  : : :  an  anC1  : : :  0. Vậy thì nghiệm lớn hơn x1  b được tính chính xác bởi công thức ở trên.CHƯƠNG 1. SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 16 Thí dụ 1. Sắp xếp lại công thức tính có thể tránh được khó khăn này. nhưng sai số đã hiện diện trong .18 Công thức tính nghiệm phương trình bậc hai x 2 C bx C c D 0 là s  2 b b ˙ 2 2 x1.

a1 C a2 /.x/ bằng chuỗi Maclaurin của nó sin.S3 / D S3 C .:::: 6 120 5040 Rõ ràng có một vài số hạng thực sự lớn cần phải loại để nhận được kết quả sin 10 có độ lớn không quá 1.ı2 C ı3 /a2 C ı3 a3: Cuối cùng ta tìm được fl.5. . fl. Bằng cách dùng số học dấu chấm động chính xác đơn tiêu chuẩn IEEE người ta cộng các số hạng cho đến khi các tổng riêng không còn thay đổi.S2 / ˚ a3 D . Do phạm vi số mũ trong chính xác đơn là nhỏ nên ta sẽ gặp trường hợp overflow nếu cố gắng tính với x D 100! Rõ ràng số học dấu chấm động không thoát khỏi tất cả những điều có liên quan về độ lớn. am là 103 105 107 10.ı3 C ı4 C : : : C ıN /a3 C : : : C ıN aN : . 7Š 5Š 6 7 để tránh những con số lớn không cần thiết. Nếu. trong đó jı2 j  u.1. Các chuỗi thường được dùng như một cách đánh giá giá trị các hàm số.S3 / D fl.fl. x D 10. Cách tính này cho giá trị 0:544040 trong khi giá trị chính xác là 0:544021. CÁC THÍ DỤ TÍNH TOÁN SỐ DẤU CHẤM ĐỘNG 17 Xem một trường hợp cụ thể.S2 / D a1 ˚ a2 D .ı2 C ı3 C : : : C ıN /a1 C.S2 / C a3 /.16 để tính tổng a1 C a2 C : : : C aN .ı2 C ı3 /a1 C . . Trước hết tổng riêng thứ nhất là fl. Tiếp tục. một sai số tương đối nhỏ trong am sẽ không nhỏ so với S và S sẽ không được tính chính xác. đánh giá sin.a1 C : : : C aN /  . Người ta đã lập trình đánh giá chuỗi này bằng một cách trực tiếp.ı2 C ı3 /a2 C ı3 a3 C ı2 ı3 a1 C ı2 ı3 a2 .  5     x7 x x x D .1 C ı2 / D S2 C ı2 a1 C ı2 a2 .ı2 C ı3 C : : : C ıN /a2 C. Nếu giá trị của hàm cần tính là nhỏ và nếu một vài số hạng trong chuỗi tương đối lớn. nếu am là lớn so với tổng S. cụ thể. trong đó jı3 j  u. Các số hạng am là kết quả của một số phép tính ở đây có thể nhận được với sai số tương đối nhỏ. Như vậy thứ tự nào là "tốt"? Trở lại với thuật toán trong thí dụ 1.1 C ı3 / D S3 C . thì phải được loại bỏ và ta phải nghĩ rằng sự không chính xác trong tính toán các số hạng sẽ làm cho giá trị của hàm không chính xác theo một nghĩa tương đối ı Ta đã thấy các thí dụ chứng tỏ tổng của nhiều số phụ thuộc vào thứ tự trong đó chúng được cộng.x/ D x x3 x5 C 3Š 5Š x7 C :::: 7Š Mặc dầu chuỗi này hội tụ nhanh với x cho trước bất kỳ. Tuy nhiên. có khó khăn số khi jxj lớn. chẳng hạn. .ı2 C ı3 /a1 C . Bỏ qua các số hạng chứa các tích của các thừa số bé.a1 C : : : C aN / C. fl. cẩn thận tính.

N k C 1/ujak j. wt /. Thí dụ 1. 0.CHƯƠNG 1.SN / SN j jan j  N u PnD1 : N jSN j j nD1 an j PN P Trường hợp nguy hiểm là khi j N nD1 an j  nD1 jan j. : : :.2 ˝ x/ ˚ 1 D 0:000  10 y2 D x ˝ . Với chuỗi hội tụ 1 X SD am mD0 thì jam j ! 0 khi m ! 1.x/ D x 2 2x C 1 được đánh giá tại x D 1:018 với số học chặt cụt 3-chữ số và 100 < e < 100. Vì các hệ số của f là số nguyên bé.x 2 / .w1 .SN / SN j  N u N X nD1 jan j: Ở đây ta dùng ký hiệu  có nghĩa là "nhỏ hơn hay bằng với một đại lượng mà là một cách xấp xỉ". Sai số tương đối của tổng PN jfl. .x/ D Œ. 1. tổng sẽ được tính chính xác theo nghĩa tương đối.x 1/ D 0:100  10 3 : 100 . w2 .a1 . miễn là số các số hạng không quá lớn để sự chính xác có hiệu lực. f .6 Phân tích sai số thuật toán Cho thuật toán với dữ liệu nhập . không có sai khi biểu diễn như là số dấu chấm động. Cho đến nay ta đã xét cách phân tích sai số tiến (forward error analysis).x 2/ ˚ 1 D 0:100  10 2 . fl. bằng cách chặn tại mỗi bước tính các sai số có thể xuất hiện và ảnh hưởng của chúng. y3 D . : : : . các số hạng nên được cộng theo thứ tự độ lớn tăng. lúc đó xảy ra sự khử. a2 .1:018/ D 0:324  10 3 .x 1/ ˝ . : : : . : : : .x 2/ C 1. Điều này đề nghị rằng để giảm sai số toàn phần. N 1.x/ D .x 1/2 : Các dạng này cho: yl D Œ. Tất cả các kết quả có sai số tương đối lớn.20 Cho f . để chọn số số hạng cần thiết N để tính tổng rồi tính SN theo thứ tự đảo m D N. 2.2x/ C 1. Đáp số chính xác là f . i D 1. phép biểu diễn có sai số.x/: f .x/ D x. : : : . Có hai dạng phân tích sai số làm tròn cơ bản cho một thuật toán như vậy. Có nhiều thuật toán để tính f . Trước hết ta lấy tổng theo thứ tự tự nhiên m D 0. với x thì khác.x ˝ x/ . SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 18 Theo xấp xỉ này. t. Tuy nhiên. Đó là vì bài toán là điều kiện xấu ı 1. sai số phát sinh khi ak được cộng vào Sk có thể tăng lên nhưng ảnh hưởng của nó trong S sẽ không lớn hơn . ar / qua các tính toán giá trị trung gian bằng các phép toán số học cho lời giải . Một hệ quả quan trọng là nếu tất cả các số hạng có cùng dấu. Phân tích này tìm các chặn sai số trong lời giải jwi wQ i j. Sai số xấp xỉ có thể ước lượng bởi jfl. f .x/ D 0:101  101.

nhắc lại biểu thức cho sai số của tổng ba số: fl.S3 / D y1 C y2 C y3 . Tên lửa Scud đã bắn trúng một doanh trại giết chết 28 lính 2 Do J.S3 / theo cách phân tích này.7.1 C ı3 /: Theo phân tích sai số lùi.7 Biểu diễn số dấu chấm động 64-bit IEEE Câu chuyện lịch sử Năm 1991 tên lửa Patriot đã thất bại khi được dùng để đánh chặn tên lửa Scud tấn công vào Saudi Arabi do sự sai lệch trong bài toán quyết định. nên nó đặc biệt hấp dẫn khi dữ liệu nhập có độ chính xác hạn chế.1. trong đó y1 D x1. chẳng hạn. Có thể xảy ra là một thuật toán ổn định cho nghiệm chính xác một bài toán với dữ liệu mà không thể phân biệt được với dữ liệu cho trước vì sự chính xác hạn chế của chúng.2u C u2/. Thật ra ta không thể yêu cầu nhiều hơn về sơ đồ số trong những trường hợp như vậy. đó là vấn đề về điều kiện của bài toán. nếu nó cho nghiệm chính xác của bài toán là . y2 D x2.ı2 C ı3 C ı2 ı3 /x2 C ı3 x3 : Một phân tích sai số tiến có thể chặn sai số tuyệt đối bởi jfl. một kết quả rất không chính xác. Hiệu lực của cách nhìn sai số này là tách rời vai trò ổn định của thuật toán và điều kiện của bài toán. đồng thời cho các chặn của jai aQ i j. fl. hai số trùng với dữ liệu gốc và số còn lại sai khác một lượng ít hơn đơn vị làm tròn. Thật vậy. Một thí dụ số sẽ giúp nêu lên vấn đề này. x2 D 0:34  101 . nhưng một lần nữa ta phải nhấn mạnh là gần nghiệm như thế nào. y2 D x2 và y3 D x3 . khi dữ liệu được đo hoặc tính toán. theo nghĩa phân tích sai số lùi. không tồn tại tập nào cả. tương ứng với dữ liệu cho trước. giá trị thực của tổng là S3 D 0:40  100 . Kết quả tính là tổng chính xác của các số gần với dữ liệu gốc. Tuy nhiên.S3 / D S3 C . : : : . Có thể có vô số tập hợp như vậy. Định nghĩa 5 Một thuật toán ổn định. tổng tính toán là tổng chính xác của các số hạng yk mà mỗi số hạng gần với giá trị cho xk theo nghĩa tương đối.S3 / D 0:00  100 . thỉnh thoảng có đúng một tập và có thể xảy ra.H.w1 . Ta hãy diễn giải biểu thức cho fl. Ta thấy rằng fl. với y1 D 0:116  102 . aQ 2 .jx1 j C jx2 j/ C ujx3j: Phân tích sai số lùi2 (backward error analysis) đi tìm một tập các dữ liệu aQ i sao cho lời giải tính toán wQ i là lời giải chính xác. : : : .S3 / D y1 C y2 C y3 .1 C ı2 C ı3 C ı2 ı3 /. 1. wt / với dữ liệu . Về phần hai lời giải (chính xác và tính toán) có gần nhau hay không.a1 . w2 . a2 . Wilkinson đề xuất vào thập niên 50 của thế kỷ 20. Khi tính toán bằng số học thập phân chặt cụt hai chữ số. BIỂU DIỄN SỐ DẤU CHẤM ĐỘNG 64-BIT IEEE 19 Để cụ thể. y3 D x3. ta có fl.aQ 1 . ngay cả với thuật toán rất đơn giản. x3 D 0:15  102.S3 / S3 j  .ı2 C ı3 C ı2 ı3 /x1 C . . Do phép phân tích sai số lùi không tham chiếu đến lời giải chính xác cho dữ liệu gốc.1 C ı2 C ı3 C ı2 ı3 /. Cho x1 D 0:12  102 . phụ thuộc vào điều kiện của bài toán. aQ r / gần với dữ liệu . : : : . ar / của bài toán gốc.

1022. 1 C . 1 C 2 52 . 2 g . 1 C 2  2 52 .  Bit dấu  0 với các số dương S D b63 D 1 với các số âm  Vùng mũ . Nguyên nhân: máy tính dùng để điều khiển tên lửa Patriot dùng thiết kế số học 24-bit từ năm 1970. SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 20 Mỹ.b62 b61 b60 : : : b52 /: theo mã "quá 1023" E D Exp 1023 D f0. .23) Ta phân loại phạm vi của các số phụ thuộc vào giá trị (E) của số mũ và ký hiệu nó như là Œ2E . C1024g 8 khi jf j < 2 1022 . 1 C 2 52 . số biểu diễn bởi định trị là M D 0:b51 b50 : : : b1 b0 D Œb51b50 : : : b1 b0   2 52 (1. E. 1.CHƯƠNG 1.3433 giây dẫn đến sai lệch 687 mét! Một phần mềm sau đó đã được cài đặt để hiệu chỉnh sai lệch này. : : : . C1023. : : : . số biểu diễn bởi định trị cùng với giá trị của bit ẩn bh D 1 là M D D D D D 1:b51 b50 : : : b1 b0 D 1 C Œb51b50 : : : b1 b0   2 52 1 C b51  2 1 C b50  2 2 C : : : C b1  2 51 C b0  2 f1. M. vùng mũ Exp (exponent field) và vùng định trị M (mantissa field) 63 62 S Exp 52 51 M 0 Mỗi vùng này biểu diễn S.21) Ta có thể nghĩ rằng giá trị của bit ẩn được thêm vào số mũ thay vì vào định trị. : : : .b51 b50 : : : b1 b0 /: Trong vùng không chuẩn ở đó các số nhỏ đến nỗi chúng có thể được biểu diễn chỉ bằng giá trị của bit ẩn (hide bit) 0.vùng chuẩn/ D : 1024 khi ˙ 1  Vùng định trị . Sai số làm tròn trong phép chuyển đổi gây ra một sai số khi hiệu chỉnh. 1 C 2. số f được biểu diễn là f D ˙M  2E (1.22) Với S.2 2 52 /g f1.00000000000// < 1023 C 1 1022  1023 khi 2 1022  jf j < 21024 . E.Exp D . 1 C 2  2 52 . Số dấu chấm động 64-bit IEEE (dùng trong Matlab) [13] Số dấu chấm động 64-bit là một cấu trúc từ (word) gồm bit dấu S (sign bit). Trong vùng chuẩn.252 1/  2 52 g f1. D 2 52 / 52 (1. : : : . 2EC1 / với 1022  E  C1023 (1. 1 C .24) . M của một số f theo cách sau. Thời gian hiệu chỉnh đường đi được thực hiện nhờ đồng hồ hệ thống với đơn vị một phần mười giây nhưng chuyển thành số dấu chấm động 24-bit. 211 1 D 2047g 1023 D f 1023.6567 thay vì giá trị chính xác là 360000. : : : . Sau 100 giờ liên tục vận hành thời gian tính toán bằng giây là 359999. một sai số 0.

1 C . Vùng chuẩn nhỏ nhất (với giá trị của bit ẩn bh D 1) R 1022 D Œ2 1022 .1 C 0/  2 D . 0000 0000 1. 21024 / với Exp D 211 S 111. .2 2 /g  2 Giá trị của LSB:  1022 D 2 1022 52 D 2 1074 3.2 1023 / với Exp D 0.0 C 2 /  2 . . . . 0001 0000 0000 . . . E D Exp 1023 D 0 S 011.0 C . . . 0000 0000 E 1022 . . 0000 1111 1111 . Vùng chuẩn cơ sở (với giá trị của bit ẩn bh D 1) R0 D Œ20 .. . . . .1 2 /g  2 Giá trị của LSB:  1023 D  1022 D 2 1022 52 D 2 1074 2. Vùng chuẩn lớn nhất (với giá trị của bit ẩn bh D 1) R1024 D Œ21023 . 0000 0000 0000 . 0001 0000 0000 . . S 000. 0001 1111 1111 .2 1021 / với Exp D 1. .25) Cụ thể: 0. . . . E D Exp 1023 D 1022 S 000. . .2 1/2 / D .1. . E D Exp 1023 D 1023 . bit có nghĩa nhỏ nhất) hay hiệu giữa hai số liên tiếp biểu diễn bởi định trị 52 bit – là E D   2E D 2E 52 (1. 0000 0001 52 E 52 1022 . 1111 0000 0000 .252 1/2 52 / D .7.. 1111 1111 1111 . 21 / với Exp D 210 1. .. . đơn vị nhỏ nhất – nghĩa là giá trị của LSB (least significant bit. .1 C 0/  2 D . .1 C 0/  2 S 000. 1111 1111 52 52 52 1022 f. 0000 0000 0000 . .1 C 2 /  2 .0 C 2 /  2 D ..1 C . 0000 0000 2. Vùng không chuẩn (với giá trị của bit ẩn bh D 0) R 1023 D Œ2 1074 . . . . 1111 0000 0000 ..1 C 0/  2 D 1 S 011. . . 1111 1111 f. S 000. 1111 1111 52 52 52 1022 f. S 011. . 0000 0000 E 0 . . . 1110 0000 0000 .1 C 2 /  2 . 0000 0001 52 1022 . .. . . . 0 (số không) 63 62 52 51 0 S 000. BIỂU DIỄN SỐ DẤU CHẤM ĐỘNG 64-BIT IEEE 21 Trong mỗi vùng. E D Exp 1023 C 1 D 1022 S 000.2 1/2 / D . . . 0000 0001 52 0 .2 2 52 /g  20 Giá trị của LSB: 0 D 2 52 4.

.. .2 Mỗi vùng có đơn vị tối thiểu (giá trị LSB) khác nhau. . 0000 0000 E 1024 1 6D . . . 0000 0001 không hiệu lực (không dùng) . 1111 1111 52 52 52 1023 f. . .1 C .2 2 /g  2 Giá trị của LSB: 1023 D 21023 52 D 2971 5.0 C 2 fmax D . Điều này hàm ý rằng các số được phân bố đều trong mỗi vùng. . . 1111 0000 0000 . . .2 2 52 /  2 1022 D 2 1074 D 4:9407  10 52 /  21023 D 1:7977  10C308 324 Cơ chế thực hiện phép tính số học trong máy tính. E D Exp 1023 D 1024 (vô nghĩa) 0 111.1 C 0/  2E D . . 310 1410 310 1410 D D D D Nhận xét 1. . Thí dụ. .. S 111. .1 C 0/  2 D . 1110 1111 1111 . . . Phép biểu diễn số như vậy làm cho lượng sai số tuyệt đối lớn/nhỏ đối với số lớn/nhỏ.. . ˙1 (inf) Exp D 211 1 D 2047.2 1/2 / D . 1111 1111 không hiệu lực (không dùng) Số dương nhỏ nhất và lớn nhất có thể biểu diễn là fmin D .CHƯƠNG 1.1 C 0/  2 D . 1111 1111 1111 . 1110 0000 0000 .1 C 0/  2 S 111. SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 22 . giảm khả năng sai số tương đối lớn  Câu hỏi và bài tập . . 0000 0001 52 1023 . . . Các vùng gần 0 trù mật hơn. . một sự "gióng cột" được thực hiện để cho hai số mũ trong biểu diễn 64-bit bằng nhau. điều này làm xuất hiện sai số. .1 C 0/  21023 S 111.1 C 2 /  2 . 1111 0000 0000 . 0000 0000 E 1024 C1 6D . 1111 0000 0000 . Đổi thập phân thành nhị phân ! Chuẩn hóa ! Biểu diễn 64-bit 310 D 112 D 1:12  21 D 1 :12  21024 1023 1410 D 11102 D 1:1102  23 D 1 :1102  21026 1023 Biểu diễn 64-bit 0 102410 1 :10000 : : : : : : 0 0 102610 1 :11000 : : : : : : 0 0 102610 0 :01100 : : : : : : 0 0 102610 1 :11000 : : : : : : 0 0 102610 10:00100 : : : : : : 0 Chuẩn hóa 0 102710 1 :00010 : : : : : : 0 D 1:00012  21027 1023 D 100012 Chuyển đổi D 1  24 C 1  20 D 1710 Trong quá trình cộng hai số. phép cộng 3 cho 14 được thực hiện như sau. . S 111. và nó loại đi phần lớn hơn 52 bit.1 C 0/  2 1 111..

k D 1. Q vQ . v2 / là hai vectơ. 1. : : : .5 Cho a và b là hai số dấu chấm động với a  b. s D 3.1. k D 1. [3]). Góc ' giữa hai vectơ này được cho bởi công thức cos ' D uv jujjvj a) Chứng tỏ tính ' từ các thành phần của u và v luôn là bài toán điều kiện tốt.˛=ˇ/. Vấn đề nghiên cứu đặt ra ở đây rút từ báo cáo [4]. VẤN ĐỀ NGHIÊN CỨU 23 1.3 Viết thuật toán chuyển đổi hệ cơ số 10 sang cơ số ˇ và ngược lại. M D 2. 1. cho kết quả tốt đối với lớp hàm nào đó nhưng không phải cho tất cả (cf. Chứng tỏ số các phép nhân có thể giảm bớt còn 2Œlog2 n bằng cách chuyển đổi n thành dạng nhị phân và lũy thừa liên tiếp A2k D .v1 .4). rồi tính ˛ D kuQ c) Chứng tỏ thuật toán sau là ổn định.7 Thiết lập công thức truy hồi tiến và lùi để tính tích phân In D Z 0 1 x ndx : 4x C 1 Phân tích tính ổn định của từng thuật toán. Do tính đặt sai này.u1 . Áp dụng tính E5 với sai số tuyệt đối không quá 10 6 .Biến đổi Laplace ngược Biến đổi Laplace ngược trên đường thẳng thực đã được biết là một bài toán đặt sai (không chỉnh). Trước hết chuẩn hóa hai vectơ thành u. và ˇ D kuQ C vQ k2 . Ta cần tính An . Chứng tỏ rằng bất đẳng thức a  . Để tính AkC1 D AAk . n 1. có nhiều phương pháp tính biến đổi Laplace ngược khác nhau.˛=ˇ/. 1. đòi hỏi n 1 phép nhân ma trận. Hệ này có bao nhiêu số? Biểu diễn các số này trên trục số. 1. một số.a ˚ b/ ˛ 2  b có thể sai trong biểu diễn theo cơ số 10.2 Cho hệ thống số dấu chấm động với ˇ D 2. 1. .8 Vấn đề nghiên cứu Vấn đề 1 . Œlog2 n.6 Cho u D . b) Chứng tỏ công thức trên là không ổn định khi ' nhỏ. Bây giờ lấy  2arctg. : : : .Ak /2 . vì bản chất của nó là giải phương trình tích phân Fredholm loại một.1 Phân tích điều kiện của thuật toán dùng công thức truy hồi (1. u2/ và v D . nếu ˛  ˇI 'D  2arctg. m D 1.8. 1.4 Cho A là ma trận vuông và n là số nguyên dương. như kỳ vọng. nếu ˛ > ˇ: vQ k2 1.

thì việc áp dụng phương pháp đồng vị (collocation method) để giải xấp xỉ phương trình này dẫn về bài toán mômen Hausdorff hữu hạn: tìm hàm ' thỏa: Z 1 x k '. x. 1/. ta cần thác triển giải tích hàm F từ các giá trị đã biết trên nửa trục thực lên nửa mặt phẳng phức Res  0.26) hội tụ với mọi p  0).p/ D e pt f .p/ D x p 1'. T / và thuộc lớp hàm L2 . (1.x/dx. các phương pháp số. Gán biến p các giá trị 1.s/est ds: 2 i r i 1 (1. k D 0.26) trở thành Z 1 F . trở nên cần thiết khi hàm ảnh chỉ biết dưới dạng rời rạc (bảng các giá trị).0. dưới đây ta xét một phương pháp tìm nghiệm xấp xỉ ổn định dựa trên khai triển hàm gốc theo các đa thức Legendre (các đa thức trực giao). (1.0. f xác định trên mọi khoảng hữu hạn . sai số nhỏ trong các tham số này có thể gây sai số rất lớn trong nghiệm (nghiệm không ổn định).x/ D k X lD0 Ckl x l .28) như là phương trình tích phân loại một với ' là ẩn hàm.27) cho biến đổi ngược có mặt tích phân lấy trong mặt phẳng phức.k C 1/ D (1.0.x/dx D k . Nếu xem (1.t/ D F . 1. Các bài toán mômen thường là bài toán không chỉnh theo nghĩa: chúng không có nghiệm với mọi giá trị của các tham số xác định nghiệm.t/j2 dt < 1 0 (dưới giả thiết trên. Dùng phép đổi biến x D e t . : : : . SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 24 Xét bài toán: tìm hàm f (hàm gốc) khi biết biến đổi Laplace của nó (hàm ảnh) trên nửa trục thực dương (p D Res  0) Z 1 F . đặc biệt.CHƯƠNG 1.31) .29) 0 Các số thực k được gọi là mômen của hàm '. k D 0.28) 0 trong đó '. chuẩn hóa các đa thức 1. x 2.x/ D f . 1/ Z 1 jf . Do đó.28) ta thu được bài toán mômen Hausdorff: Z 1 x k '. Trong thực hành. ta được các đa thức Legendre Lk . 2. từ (1.x/: Lk . Một trong các phương pháp chỉnh hóa bài toán là phương pháp khai triển chặt cụt. khi áp dụng.30) 0 Trong không gian hàm L2 . Trong công thức Mellin Z rCi 1 1 f .x/dx. : : :. log x/ thuộc lớp hàm L2 .26) 0 Ở đây. : : :. 1. bài toán tính xấp xỉ biến đổi Laplace ngược. tích phân (1.0. 1/. Ngoại trừ một số trường hợp đơn giản. (1.t/dt: (1. : : : k D F . các phương pháp tính theo cách này thường rất phức tạp và không tiết kiệm. N (1.

32) Cho  D fk g là dãy số thực.x/dx Lk . Hơn nữa.lŠ/2 (1.x/ xuống không gian sinh bởi các đa thức 1.x/dx D 0 Z 0 1 k X lD0 ! Ckl x l '. Nếu ' là nghiệm duy nhất của (1. : : : Với N 2 N cố định.29).33) kD0 là khai triển chặt cụt xấp xỉ hàm '. p N là nghiệm xấp xỉ ổn định của (1.36) .t/ D N X k Lk . x.8. Bài toán (1.x/ (1.e t /: (1. : : : . đa thức pN . x.x/. 1/ là nghiệm có chuẩn nhỏ nhất của bài toán mômen Hausdorff hữu hạn (1.34) kD0 Áp dụng các định lý trong [1].30) ta có k D D k X lD0 1 Z Ckl l D k X Ckl lD0 Z 1 x l '. điều kiện cần và đủ để (1.x/dx 0 nghĩa là.k C l/Š : .29) thì p N ! ' trong L2 .x/ D N X k Lk . ta có xấp xỉ của của hàm gốc: fN .0. 1/. định nghĩa dãy  D  D fk g bởi k X k D Ckl l : lD0 Từ hệ (1. 1/ khi n ! 1: Hơn nữa.29) có nghiệm là 1 k X X kD0 Ckl l lD0 !2 < 1: (1.0. Trở về biến cũ. x N > L2 . VẤN ĐỀ NGHIÊN CỨU 25 trong đó p 2k C 1. x 2. 1/l Ckl D .k l/Š.1.0.x/'.35) 2. có thể chỉ ra rằng [4]: 1. Quá trình tính toán xấp xỉ biến đổi Laplace ngược được thực hiện theo sơ đồ dưới đây Bước 1: Nhập (1. p N D< 1. các k là hệ số khai triển theo các đa thức Legendre hình chiếu của '.30).29) có nhiều nhất một nghiệm trong L2 . 3.

2) Hàm F .CHƯƠNG 1.p/ D 1=.32) nếu l  k và Ckl D 0 nếu k > l. : : : .t/ (N D 10).N Š/4 N GN là ma trận điều kiện xấu nên ảnh hưởng tích lũy của sai số làm tròn. Bước 2: Tính các hệ số của đa thức xấp xỉ A D Œa0 . SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG 26 Hình 1.t/ D N X ak e kt : kD0 Bước 4: Xuất kết quả. Các hệ số của đa thức xấp xỉ A là nghiệm của hệ GN A D M. : : : .  Các mômen M D Œ0 . Với N D 10 kết quả trả về so với kết quả chính xác được cho trên hình 1. l D 0. Với N D 20. N T . 1 . 1. trong đó GN . a1 . lên các hệ số ak của đa thức xấp xỉ là rất lớn. Khi N lớn số điều kiện P . aN T D CNT CN M: Bước 3: Tính hàm gốc xấp xỉ fN .2N /Š2 16N P .t/ D te t và hàm xấp xỉ f10 . k.GN /   . 25 kết quả trả về so với kết quả chính xác được cho trên hình 1.1 C p/2 là biến đổi Laplace của hàm f .4.p/ D 2=p 3 là biến đổi Laplace của hàm f . N xác định bởi (1. GN1 D CNT CN . . trong quá trình tính toán số dấu chấm động. là ma trận Hilbert.5. Kết quả tính toán khá tốt. Ta thấy khi tăng N thuật toán mất ổn định ở những giá trị .  Các hệ số của đa thức Legendre CN D ŒCkl . : : : .GN / của ma trận Hilbert là rất lớn Œ.  Chọn N bậc lớn nhất của các đa thức Legendre. Thí nghiệm số 1) Hàm F . kết quả tính toán thể hiện bằng các dấu C).t/ D t 2 . Do đó.3: Đồ thị hàm f . trong đó Ckl .3 (trong các đồ thị ở đây đường liền nét thể hiện giá trị chính xác. việc chọn N (bậc tối đa của các đa thức Legendre) để nhận được kết quả với sai số chấp nhận được là rất quan trọng.t/ D te t .

t/ (N D 25).8. 27 . Hình 1.t/ (N D 20).t/ D t 2 và hàm xấp xỉ f25 . VẤN ĐỀ NGHIÊN CỨU Hình 1.5: Đồ thị hàm f .4: Đồ thị hàm f .1.t/ D t 2 và hàm xấp xỉ f20 .

Chapman & Hall/CRC Press.p 2 C 1/ là biến đổi Laplace của hàm f . Với N D 20. Tư liệu [1] Dang Dinh Ang. nếu các phép tính trong thuật toán là chính xác và không có nhiễu trong dữ liệu nhập thì nghiệm ổn định.28 CHƯƠNG 1. như đã chỉ ra trong các thí nghiệm số. SchRaferkotter. 2004. SAI SỐ VÀ SỐ HỌC DẤU CHẤM ĐỘNG Hình 1.t/ D sin t. Dang Duc Trong.p/ D 1=. Ta thấy kết quả không chính xác ở t lớn. Rudolf Gorenflo. 2005. Kythe. Huỳnh Bá Lân. Springer-Verlag Berlin Heidelberg. 25 kết quả trả về so với kết quả chính xác được cho trên hình ?? . NXB Giáo Dục.6.6: Đồ thị hàm f . Hãy phân tích sai số làm tròn để giải thích các hiện tượng trên. . An algorithm for computing numerical inversion of Laplace transform. [3] Prem K. Biến đổi tích phân. 1. ngoài ra.t/ D t 2 và hàm xấp xỉ f25 . [2] Đặng Đình Áng. Trần Lưu Cường. 2002. Handbook of computational methods for integration. t gần 0! 3) Hàm F . khi N thuật toán cũng mất ổn định ở những giá trị t gần 0! Theo đánh giá lý thuyết. Michael R. 2001. [4] Trinh Anh Ngoc. Nhưng. kết quả tính toán là mất ổn định khí N lớn. Moment theory and some inverse problems in potential theory and heat conduction. Nguyễn Văn Nhân. Vietnam National University Ho Chi Minh City. 4th Scientific Conference at University of Natural Sciences.t/ (N D 25). Đề xuất cách cách giải quyết nếu có thể. Vy Khoi Le.

an1 x1 C an2 x2 C : : : C ann xn D bn .1 Phương pháp khử Gauss Ý tưởng đằng sau phương pháp khử Gauss là dùng các phép biến đổi sơ cấp để khử các ẩn của hệ (2. Nếu ma trận A không suy biến. j D 1. và các hệ số aij .1) :: :: > : : > . b D :: 7 4 : 5 xn 3 b1 b2 7 : :: 7 : 5 (2. được giải bằng phép thế ngược (back-substitution). Nếu A suy biến.1). trong đó vế phải bi . (2.Chương 2 Hệ phương trình đại số tuyến tính Một trong các bài toán thường gặp trong tính toán khoa học là giải hệ phương trình đại số tuyến tính 9 a11 x1 C a12x2 C : : : C a1n xn D b1 > > a21 x1 C a22x2 C : : : C a2nxn D b2 = (2. không suy biến (nonsingular) và suy biến (singular). 2. sau khi biến đổi. có dạng tam giác trên (upper trianglular system). 3 2 x1 6 x2 7 6 . phương trình có nghiệm duy nhất x1 D b1 =a11. thì hệ vô nghiệm với một vài b nhưng vô số nghiệm với các b khác. thì hệ tồn tại duy nhất vectơ nghiệm x với vế phải cho trước bất kỳ b. x D 6 AD6 : : : 4 :: 4 :: :: 5 an1 an2 : : : ann Xét trường hợp n D 1 trong (2. : : : . Hệ phương trình tương đương. n là các dữ liệu cho trước. i D 1. Nếu a11 D 0 thì có lúc phương trình vô nghiệm (b1 6D 0). 29 . n. xn là ẩn. Ax D b. : : : . Trong chương này ta xét hệ phương trình đại số tuyến tính với các ma trận hệ số không suy biến. Hệ phương trình (2. có lúc phương trình có vô số nghiệm (b1 D 0).1) có thể viết dưới dạng ma trận.1). : : : . x1. i. Điều này cũng đúng với n tổng quát. Có hai loại ma trận.3) bn a11 x1 D b1 : Nếu a11 6D 0.2) trong đó 2 3 2 a11 a12 : : : a1n 6 a21 a22 : : : a2n 7 6 7.

trong phép khử Gauss là khác không nếu và chỉ nếu det. : : : .2/ Nếu a22 6D 0. : : : .2/ aij D aij . .i / .k/ D 6 : 7 . xuất hiện trong quá trình khử được gọi là các phần tử trụ (pivotal elements).k/ 0 0 : : : ank : : : ann bn . : : : . n lần phương trình đầu.1/ D b. . . HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 30 Nếu a11 6D 0.n/ xn D bn. n: . : : : .k/ D 6 (2. k D 1.Ak / D a11 a22    akk . j D 1. k  n.2/ . b.k/ det. Điều này cũng đúng với ma trận . Sau k 1 bước. Trong trường hợp này ta có thể khử cho đến sau bước thứ . : : : .n trong đó các hệ số mới được cho bởi . 1: (2. xi D bi ai k xk =ai i . mi1 b1 . a22 . i D 1.n/ xn D bn.k/ 6 0 6 b .k/ . của phép khử Gauss ma trận A trở thành ma trận có dạng 2 . Các phần tử chéo (diagonal elements) a11 . còn lại một phương trình duy nhất .1/ 2 . b.2/ trong đó ta đã đặt A. : : : . i D n 1.n/ =ann .2/ 7 6 0 a22 : : : a2k : : : a2n 7 6 b2 7 6 : 6 : 7 7 : : : :: :: :: :: 7 6 6 : 7 7 .1/ .1/ D A. Nghĩa là tồn tại apk 6D 0 (k < p  n). xn. n.1/ . i D 2.k/ akk D 0: Nếu A không suy biến.i / .k/ 7 0 : : : akk : : : ak n 7 6 6 k 7 7 6 :: 6 :: 7 :: :: :: 7 4 : 4 : 5 : : : 5 .n 1/ phương trình cuối bằng cách trừ phương trình thứ i với nhân tử (multiplier) mi1 D ai1 =a11 .i / Các phần tử trụ ai i .ann 6D 0/: ann Các ẩn của phương trình có thể tính bằng công thức truy hồi ! n X .1/ .n/ . Giả sử ở bước thứ k của phép khử Gauss ta có .1/ .n 2/ phương trình cuối của hệ phương trình này..4) . thì ở bước đầu tiên ta khử x1 khỏi .k/ đã biến đổi.CHƯƠNG 2.Ak / 6D 0. n.k/ .5) kDi C1 Quá trình này gọi là thế ngược.1/ a11 a12 : : : a1k : : : a1n b1 6 6 . tiếp theo bằng cách tương tự ta khử x2 từ .k/ . 2.i / . n: . : : : . thì k cột đầu của ma trận A là độc lập tuyến tính.1/ 3 3 .2/ . A.n 1/. Bằng cách hoán vị dòng k và dòng p thì phần tử này . k D 1.n/ .2/ mi1 a1j . 3 2 a11 a12 : : : a1k 6 a21 a22 : : : a2k 7 : Ak D 6 :: :: 7 4 ::: : : 5 ak1 ak2 : : : akk Vì định thức của ma trận không thay đổi dưới phép biến đổi sơ cấp thứ ba nên .2/ 7 . Điều này sinh ra một hệ rút gọn gồm . bi D bi 1/ phương trình với các ẩn x2 . Ký hiệu Ak là ma trận con chính của A.2/ .

Tiến hành theo cách này mọi ma trận A đều có thể đưa về dạng hình thang (trapezoidal form) trên 2 A. PHƯƠNG PHÁP KHỬ GAUSS 31 có thể lấy làm phần tử trụ và phép khử được tiếp tục.. 000: .k/ apq .r/ 6 .A/. nếu có ta có thể mang nó đến vị trí trụ bằng cách hoán vị dòng k với p. còn thì sự hoán vị các phương trình là không cần thiết về phương diện lý thuyết. .A/ D . n: . cột k với q (khi cột của ma trận A bị hoán vị thì ta cũng phải hoán vị các phần tử tương ứng trong vectơ x.7) ở bước r D rank..1/ . . Bằng cách dùng phép biến đổi sơ cấp thứ nhất (hoán vị). arr 0 :: : ar. (2.n/ det.2. Nếu rank. b D 6 br 7 6 b . : : : .r/ .A/ D k phần tử khác không.1 Cho hệ phương trình 0:000100x1 C 1:00x2 D 1:00. nhưng sự phân biệt giữa suy biến và không suy biến của các bài toán là "mơ hồ" trong thực hành do ảnh hưởng của việc làm tròn.r/ a1. Trừ phi phần tử trụ chính xác bằng không. n thì rank.7) ta đọc được hạng của ma trận A.. : : : . 000x2 D 10.1/ . 1 và ta dừng lại... . ..r/ .1. quá trình khử Gauss có phần tử trụ bằng không chỉ nếu bài toán gốc là suy biến.k/ ai k D 0.r/ . .rC1 .1/ . Từ (2.1/ b1 a1n 6 :: :: 7 6 : : 7 7 6 .k/ Nếu toàn bộ các phần tử aij D 0. Ngược lại.A/ < n thì có thể xảy ra ở bước thứ k 1 nào đó . 0 0 .. Khi hoán vị dòng định thức của ma trận bị đổi dấu. Tóm lại. ::: a1r :: : .rC1 0 :: : . j D k. Phát biểu này là đúng về phương diện lý thuyết... Xem thí dụ dưới đây do Forsythe và Moler đưa ra. Ở đây.r/ 0 bn 3 7 7 7 7 7. Tuy nhiên.6) trong đó s là tổng số lần thực hiện phép hoán vị.. 1/s a11 a22    ann . 1:00x1 C 1:00x2 D 2:00: Bằng cách dùng số học dấu chấm động thập phân làm tròn ba-chữ số. 7 7 7 5 (2. ta đã thay đổi ký hiệu khi thực hiện phép hoán vị dòng cho phù hợp. do đó .. chẳng hạn . i..1/ 3 .r/ arn 7 7 . Thí dụ 2. i D k. một bước trong quá trình khử x1 trong phương trình thứ hai không dùng hoán vị Œ1:00 10000  1:00x2 D Œ2:00 10000  1:00 10. :: : 2 .r/ 0 7 6 rC1 6 :: :: 7 4 : : 5 . biến đổi với một phần tử trụ hầu như bằng không sẽ dẫn đến vấn đề về sự chính xác trong số học dấu chấm động.2/ .1/ a11 6 6 0 6 : 6 :: D6 6 6 0 6 : 4 :: 0 . ma trận không suy biến bất kỳ có thể dẫn về dạng tam giác trên bằng phép khử Gauss nếu phép hoán vị dòng được dùng nếu cần.

Như đã thấy trong thí dụ trên. k C 1.k/ jaij j  2k 1 a: Điều này hàm ý . điều này chỉ có thể nếu sự khử xảy ra ở tử số.j jaj k j. x1 D 0:00.1/ aij D jaij .kC1/ aij . nhưng vì các thành phần là lớn dẫn đến sai số tuyệt đối lớn trong tử số sau khi có sự khử.k/ . khi khử . Trong phép giải hệ phương trình tuyến tính bằng phép thế ngược ta tính .k/ akk : Nếu phần tử trụ (mẫu số) là nhỏ và giá trị đúng xk có độ lớn vừa phải.k/ ˇ  1: ˇa ˇ kk Sự điều khiển độ lớn của các nhân tử làm bớt đi sự tăng lên của các thành phần trong ma trận tam giác . Phép xoay cục bộ cho ta các nhân tử có độ lớn ˇ ˇ ˇ a.k/ .1/ mi1 aij j  2a và cứ thế ta có . nếu jalk j là lớn nhất của các jaj k j với j D k. Có một cách để tránh phần tử trụ nhỏ được gọi là phép xoay cục bộ (tạm dịch chữ partial pivoting). n ta hoán . Bấy giờ . Một nhân tử lớn gây ra hậu quả cũng giống như phần tử trong ma trận tam giác trên lớn do phép khử.k/ trình cuối như là phần tử trụ.8) .CHƯƠNG 2. thông tin mà có thể rất cần đến sau đó. một phần tử trụ nhỏ dẫn tới nhân tử mi k D ai k =akk lớn. 1:00x2 D 1:00 và x1 D 1:00.k/ max jaij j  2n i.k/ xk D bk Pn . Mẫu số nhỏ khuếch đại sai số này dẫn đến sai số tương đối đáng kể trong xk .k/ D aij mi k akj .k/ .j (2. thì tử số cũng phải nhỏ.k/ j DkC1 akj xj . Chú ý thông tin chứa trong phương trình thứ hai bị mất ở bước này.k/ có sự mất mát thông tin bất cứ khi nào mi k akj lớn hơn rất nhiều aij . Nghiệm chính xác là xấp xỉ x1 D 1:00010. Khi tính . ta chọn hệ số lớn nhất (về giá trị tuyệt đối) của xk trong n k C 1 phương . x2 D 1:00 và bằng phép thế ngược. Cho a D maxi. khi khử xk . Nhưng . x2 D 1:00.k/ vị dòng k và l.k 1 max jaij j i. Bằng cách đánh số lại ta có thể giả sử rằng phần tử trụ akk có độ lớn lớn nhất.1/ trên gây ra do phép khử (Gauss).k/ .k/ nếu có các thành phần aij của ma trận tam giác trên mà lớn. Theo cách này. Nghĩa là. : : : .j. . Các thành phần lớn có thể đã được tính với sai số tương đối vừa phải.2/ . Nếu dùng hoán vị ta có 1:00x1 C 1:00x2 D 2:00. x2 D 0:99990 ı Các phần tử trụ nhỏ có thể dẫn đến kết quả không chính xác. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 32 Rõ ràng. Điều này xảy ra vì phần tử trụ nhỏ gây ra một số nhân lớn và sau đó phép trừ các số có độ lớn rất khác nhau.k/ biến xk trong dòng i.k/ ˇ ˇ k ˇ jmi k j D ˇ i.

return % Thế ngược for i=n:-1:1 x(i)=b(i) for j=i+1:n x(i)=x(i)-a(i. ’ suy biến’.k) for j=k+1:n a(i.n)) ==0.k)/a(k. Giai đoạn khử: + Mỗi bước của vòng lặp j gồm 1 phép nhân và 1 phép trừ.9) thường được dùng làm số đo cho sự gia tăng của các phần tử trong ma trận rút gọn.i) end Nhận xét 2. THUẬT TOÁN KHỬ GAUSS 33 khi phép xoay cục bộ được thực hiện. và được gọi là tỉ số gia tăng (growth ratio). % Khử Gauss for k=1:n-1 hoán vị các dòng sao cho abs(a(k.k i.j)*x(j) end x(i)=x(i)/a(i.k))=max(abs(a(k:n.1 Để đo khối lượng công việc ta đếm số phép toán số học được thực hiện. Wilkinson đã chỉ ra rằng dấu bằng trong bất đẳng thức trên có thể xảy ra với các ma trận có dạng 2 3 1 0 0 0 1 6 1 1 0 0 17 6 7 7: 6 1 1 1 0 1 6 7 4 1 1 1 1 15 1 1 1 1 1 Tuy nhiên. ’ suy biến’.j. thường thì sự gia tăng là vừa phải. 2.j) end b(i)=b(i)-t*b(k) end end if abs(a(n. Cho ma trận A D A.2 Thuật toán khử Gauss Trường hợp "vuông". return for i=k+1:n t=a(i. Như vậy có (n-k) phép nhân và (n-k) phép trừ.j)-t*a(k.j)=a(i.k/ gn D max jaij j= max jaij j i.1/ 2 Rn .1/ 2 Rnn và vectơ b D b.k) == 0. .2.2.j (2. Con số .k)) if abs(a(k.

2/ .1/ a11 0 :: : 0 . Dễ dàng kiểm chứng. trong đó uij D 0 nếu i > j: .4n2 C 9n 7/=6. Để ý rằng. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 34 + Mỗi bước của vòng lặp i gồm 1 phép chia (không kể phép tính hiệu chỉnh b) và các phép tính trong vòng lặp j.3 Phép nhân tử hóa ma trận (matrix factorization) Trong mục này ta sẽ thấy nếu không dùng phép xoay cục bộ. Giai đoạn thế ngược. Phần hiệu chỉnh b đòi hỏi số phép tính nhân (=số phép tính trừ) bằng n. và một ma trận tam giác trên U D Œuij .1/ 3 a12 a13 : : : a1n .n . vì vậy nhân tử mi k có thể được đặt vào vị trí này (không cần thêm vùng nhớ để lưu trữ nó).n n.  2.2n 6 1/ : 1/ . Như vậy có (n-k)2 phép nhân.2 Khi phải giải nhiều hệ phương trình có cùng ma trận A với các vectơ b khác nhau. + Mỗi bước của vòng lặp k chứa các phép toán của vòng lặp i tương ứng. nghĩa là 2 6 6 M1 A D 6 4 . nếu nhân bên trái ma trận A với ma trận 2 1 m21 m31 :: : 6 6 M1 D 6 6 4 1 0 :: : 3 1 :: : : : : mn1 0 0 1 7 7 7 7 5 ta nhận được cùng một kết quả như khi thực hiện phép khử.2/ an2 an3 : : : ann . thuật toán khử chính là phép nhân tử hóa.n 2/ C : : : C 1 D n.n 2 1/.2/ .n 1/=2.1/ Nhìn lại phép khử được mô tả trong mục trước.2/ .2/ . 1/=2 và  Nhận xét 2. 3.2/ a22 a23 : : : a2n 7 7 : :: :: :: 7 : : : 5 .1/ . khối lượng tính toán bằng thuật toán khử Gauss: n. Như vậy số phép tính nhân (=số phép tính trừ) và số phép tính chia lần lượt là . ta thấy nếu a11 6D 0. số phép tính nhân (=số phép tính trừ) và phép tính chia lần lượt là n.n 1/2 C . Vòng lặp k có (n-1) bước.1/ .k/ tử mi k cần được lưu trữ để hiệu chỉnh vectơ b. n. (n-k)2 phép trừ và (n-k) phép chia.1/ i trừ với mi1 D ai1 =a11 lần dòng 1. : : : .n n.n 2/2 C : : : C 12 D 1/ C . phân tích ma trận A thành tích LU của một ma trận tam giác dưới L D Œlij . Vòng lặp i gồm (n-k) bước. ta có thể thay dòng i bằng dòng . các nhân . Điều này được thực hiện cho các dòng 2.1/ . trong đó lij D 0 nếu i < j. khi mi k được tính thì phần tử ai k được đặt bằng không.CHƯƠNG 2. Tóm lại.

PHÉP NHÂN TỬ HÓA MA TRẬN (MATRIX FACTORIZATION) 35 Hơn nữa.10) Ux D y: (2. Ly D b.1/ .n/ ann Suy ra. sau n 1 2 6 6 D6 6 4 1 m21 m31 :: : mn1 1 0 :: : 1 :: : : : : 0 0 1 3 7 7 7: 7 5 1 bước ta được 2 .LU/x D Ax. Kiểm trực tiếp ta thấy L là ma trận tam giác dưới. b D Ly D L. hệ phương trình Ax D b dẫn về việc giải lần lượt hai hệ phương trình với ma trận hệ số có dạng tam giác. Hệ tam giác dưới (2.3. trong đó L D M1 1 M2 1    Mn 1 1 . Với phép nhân tử hóa ma trận A. y1 D b1 y2 D b2 :: : m21 y1 yn D bn n 1 X j D1 mnj yj : .Ux/ D .1/ a11 a12 : : : a1n .2/ 6 a22 : : : a21 6 Mn 1 Mn 2    M1 A DD 6 ::: 4 . 3 7 7 7 D U: 5 A D M1 1 M2 1    Mn 1 1 U D LU. (2. Ma trận tam giác trên U chính là kết quả của phép khử Gauss.2/ .10) được giải bằng thế tiến (forward substitution). 2 6 6 LD6 6 4 1 m21 1 m31 m32 1 :: :: :: : : : : : : mn1 mn2 mn3 : : : 1 3 7 7 7: 7 5 Vì các phần tử trên đường chéo chính của ma trận L đều bằng 1 nên ta không cần lưu trữ chúng.2. nghịch đảo của ma trận M1 là M1 Tiếp tục khử các ẩn. Các cột của ma trận L xuất liện lần lượt theo thứ tự của phép khử nên có thể viết chồng lên vị trí tương ứng của ma trận A mà trong phép khử được đặt bằng không.1/ .11) và Thật vậy.

Thứ hai.1 C ı1 / D x2.1 C ı1 /: u22 . HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 36 Hệ tam giác trên (2. Thứ nhất. sai số làm tròn xuất hiện trong quá trình khử và thuật toán thay thế tiến/lùi.4 Sự chính xác Có hai nguồn sai số trong nghiệm tính toán z của hệ phương trình Ax D b. thì có lý để nói rằng z gần như là nghiệm tốt như ta có thể hy vọng. Một cách tự nhiên ta cần nghiên cứu sai số eDx z: Nhưng có một cách tiếp cận khác về vấn đề chính xác. Phân tích sai số lùi xem z như là nghiệm chính xác của bài toán nhiễu .A C A/z D b C b: Nếu các nhiễu.n :: : 0 1 n X x1 D @y1 u1j xj A =u11 : 1 j D2 Nhận xét 2.1 Phân tích sai số lùi Xét hệ phương trình u11 x1 C u12 x2 D b1 . dữ liệu A và b có thể không được đo chính xác.yn 1 un 1. ở đây là u12. thì vẫn có các sai số được phát sinh khi biểu diễn chúng bằng số dấu chấm động.  2. Phép thế lùi bằng phép tính số học chính xác cho nghiệm đúng là b2 . A và b là so sánh được với các sai số đo đạc hay làm tròn trong các phần tử của A và b. u22 b1 x2u12 D : u11 x2 D x1 Trong số học dấu chấm động.CHƯƠNG 2. ở đây là u11 và u22.11) được giải bằng phép thế lùi (backward substitution) xn D yn =unn xn 1 D . Ta có PA D LU.n xn /=un 1. u22 x2 D b2 : Ta bàn về cách một phần tử bé. áp dụng phép nhân tử hóa cho ma trận PA với P là ma trận được xây dựng từ ma trận đơn vị bằng cách hoán vị các dòng tương ứng.4. x2 D b2 ˛ u22 D b2 . và ngay cả nếu có chính xác. có thể gây nguy hiểm vì các ảnh hưởng trực tiếp của nó lẫn bản thân nó có thể dẫn đến các phần tử lớn trong ma trận tam giác trên. 2.3 Khi có sử dụng phép xoay cục bộ.

điều đó không đồng nghĩa với phát biểu: nghiệm tính toán gần với nghiệm thực.1 C ı3 /.1 C ı2 / D x2 u12. .1 C ı4 /: u11 Trong phân tích sai số lùi. u11 u11 D  u11. Trước hết ta tính x2 ˝ u12 D x2u12 .b1 x2u12. Phương trình b2 u22 b2 D . Phân tích này nói cho chúng ta rằng thuật toán thế ngược bảo đảm sinh ra một kết quả tốt theo nghĩa nghiệm tính toán là nghiệm chính xác của bài toán gần với bài toán cho.1 C ı3 /.1 C ı2 / .2.b1 .1 C ı2 /.x2 ˝ u12/ D .1 C ı4 / ı3 ı4 /: Với các định nghĩa này ta đã biểu diễn nghiệm tính toán của bài toán cho trước như là nghiệm chính xác của bài toán với ma trận các hệ số bị nhiễu. SỰ CHÍNH XÁC 37 Tính toán thành phần còn lại bao gồm nhiều bước.1 1 C ı1 ı1 /: x2u12 u11 x2u12 .b1 .1 C ı3 /.x2 ˝ u12// D .1 C ı4 / u11 sẽ đúng nếu ta định nghĩa u12 D u12. ta biểu diễn nghiệm x1.4.b1 .1 C ı1 /. phương trình x1 D D b1 b1 u22  u22.1 C ı1 / u22 x2 D sẽ đúng nếu ta định nghĩa u22 D Tương tự. x2 (kết quả tính bằng số học dấu chấm động) như là nghiệm (tính bằng số học chính xác) của một bài toán nhiễu (bài toán gần): u11x1 C u12 x2 D b1 . thì và cuối cùng b1 .1 C ı3 /. Nó cho thấy không có hệ số nào của ma trận bị nhiễu nhiều hơn hai đơn vị làm tròn. Tuy nhiên. x1 D .1 . u22 x2 D b2 : Ở đây không có nhiễu ở vế phải.x2 ˝ u12//.x2 ˝ u12 // ˛ u11 .1 C ı2 // D .1 C ı2 /.1 C ı4 / u11 .

x1 u11 trong đó 1 D ı1 C ı2 C ı1 ı2 . chứng tỏ rằng sai số tương đối có thể là lớn khi tử số là lớn và mẫu số là nhỏ bởi sự khử (xem thí dụ 1.x z/ D Ae hay e D A 1 r. Vì sự khử. sai số tương đối nói chung là nhỏ. Nếu nghiệm là sao cho cả hai thành phần có độ lớn so sánh được. cụ thể. Ch. 2 D ı3 C ı4 C ı3 ı4 : Suy ra ˇ ˇ ˇ ˇ    ˇ ˇ x1 x1 ˇ ˇ x u 2 12 2 ˇ  . cho biết mức độ chính xác của lời giải. mà điều này thì không thể. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 38 Phân tích sai số tiến cho phép ước lượng sự khác nhau giữa nghiệm tính toán và nghiệm thực.CHƯƠNG 2. một sai số tương đối lớn chỉ xảy ra khi phần tử trụ u11 là nhỏ và/hay phần tử u12 trong ma trận tam giác trên là lớn. nếu ta cần giá trị thặng dư chính xác cho một nghiệm tốt thì phải tính nó bằng số học có độ chính xác cao hơn.1 C 2 /. . Một nghiệm tốt z thì có giá trị thặng dư nhỏ. Với cách làm này giá trị thặng dư (residual). b WD r: Giá trị thặng dư r liên hệ với sai số e bởi rDb Az D Ax Az D A. Giá trị thặng dư cung cấp một nhiễu b cho phân tích sai số lùi. 1). Một sai số tương đối lớn chỉ có thể xảy ra khi jx2 u12j  jx1 u11j. vì vậy ta có x2 x2 x2 D jı1 j  u: Thay thế các biểu thức đã phát triển trước đây và một tính toán nhỏ chứng tỏ rằng x1 x1 x1 D 2 x2 u12 1 . Các sai số tương đối lớn có khả năng xảy ra nhiều hơn khi jx2 j  jx1 j. 2. Một giá trị thặng dư nhỏ r. thì b nhỏ và theo quan điểm phân tích sai số lùi thì z là nghiệm tốt ngay cả khi sai số tương ứng e không nhỏ. Giả thiết cơ bản của chúng ta về số học dấu chấm động là một phép toán được thực hiện với một sai số tương đối bị chặn bởi đơn vị làm tròn u. rDb Az.17.2 Phân tích sự làm tròn Một cách tự nhiên để đo chất lượng của một nghiệm xấp xỉ z là thay nó vào phương trình gốc rồi xem nó thỏa phương trình "tốt" như thế nào. Mẫu số có thể viết lại dưới dạng x1 u11 D b1 x2u12.4.2u C u2 / 1 C ˇ ˇ ˇ ˇ ˇ x u ˇ .1 C 2u C u / : ˇ x 1 1 11 Theo ước lượng này.

z là nghiệm của bài toán rất gần với bài toán cho.0:747  0:267/ C .L/.0:200 0:547z2/=0:747 D 0:267: Như vậy nghiệm tính toán là zD  0:267 0:000  Dễ thấy nghiệm chính xác là x1 D 1 và x2 D 1.U/ C . Đơn giản ta xét trường hợp không dùng phép xoay cục bộ. Sai số trong z2 được truyền đến sai số trong z1 và nghiệm tính toán là không tốt.L C L/. Đặt A là sai biệt.L/U C L. Phép xoay . Thật vậy phương trình đầu.0:623  0:267/ C . mặc dù nó sai so với nghiệm x rất đáng kể ı Khó khăn cơ bản trong thí dụ 2. Như vậy. Để phân tích sai số làm tròn trong quá trình khử Gauss ta dùng cách diễn giải nhân tử hóa. trong đó b1 D 0:200 bị nhiễu thành 0:199449 và b2 D 0:166 bị nhiễu thành 0:166341. Thực hiện tính toán với nhiều chữ số hơn ta sẽ thấy z2 có giá trị hoàn toàn khác. ta có A D . Gọi L và U là sai số khi tính toán L và U. biểu thức của A chứng tỏ rằng độ lớn của L và U đóng vai trò quan trọng trong kết quả nhân tử hóa ma trận A. Thặng dư của phương trình thứ hai cũng nhỏ vì hệ thống gần như kỳ dị: phương trình đầu xấp xỉ bằng một bội của phương trình thứ hai. số z1 được tính để làm cho giá trị thặng dư của phương trình đầu gần bằng không. z1 D . Vì vậy   0:733 eDx zD : 1 Trái lại. Sau bước đầu ta có      0:747 0:547 x1 0:200 D : 0 0:001 x2 0:000 Suy ra z2 D 0:000. giá trị thặng dư (trong số học chính xác) là r D b  Az  0:200 Œ. Nhưng tại sao giá trị thặng dư lại nhỏ? Bất kể z2 . Như vậy ma trận A không bằng . Trong quá trình giải ta thấy z2 được tính từ hai đại lượng mà bản thân chúng có độ lớn cùng cấp với sai số làm tròn.2. trong phạm vi sai số làm tròn. xét hệ phương trình      0:747 0:547 x1 0:200 D : 0:623 0:457 x2 0:166 (2. SỰ CHÍNH XÁC 39 Thí dụ 2.12) gần suy biến. bằng 1:2 lần phương trình thứ hai.0:457  0:000/   0:000551 D : 0:000341 Điều này chứng tỏ z là nghiệm chính xác của Az D b C b.4.0:547  0:000/ D 0:166 Œ.2 Để minh họa sự khác biệt giữa hai quan điểm.U C U/.12) Thực hiện phép khử dùng số học thập phân chặt cụt ba-chữ số. Tuy nhiên.U/: Ta có thể hy vọng là quá trình tính L cũng như U có sai số tương đối nhỏ.2 là ma trận của hệ (2.

Để chính xác ta cần đưa vào cách lớn của vectơ và ma Pnđo độ 2 1=2 trận. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 40 cục bộ giữ cho các phần tử của L nhỏ hơn hay bằng 1 về mặt độ lớn.3 Cho 2 xD4 Thì kxk D maxfj Cho 2 AD4 Thì kAk D maxfj1j C j 1j.13) trong đó các phần tử của A thường là nhỏ. Tuy nhiên trong tài liệu này ta dùng chuẩn maximum (p D 1) kxk D max jxi j: (2. thường ta dùng một chuẩn tương đương với nó: 8 9 n <X = kAk D max jaij j : (2.14) 1i n Nếu A là ma trận vuông cấp n và x là một n-vectơ.8) rằng độ lớn . Đặc biệt. aij .17) kAxk  kAkkxk: Thí dụ 2. Do chuẩn này không dễ tính toán.15) Một cách hình học.k/ của các phần tử của U.16) . Một cách đo độ dài quen thuộc của vectơ là chuẩn Euclide (p D 2). j2j C j 3 1 2 5: 3 1j.A C A/z D b. (2. Có thể chỉ ra.ma trận. Chuẩn của ma trận A được định bởi kAk D max x6D0 kAxk : kxk (2. . Ta cũng thấy trong (2. nghiệm tính toán z của phương trình Ax D b thỏa . j2j. i D1 xi / . chúng không thể vượt quá 2n 1  maxij jaij j với n  n. điều này nói rằng kAk là sự lệch tương đối cực đại (maximum relative distorsion) mà ma trận A tạo ra khi nó nhân với vectơ x 6D 0. j3jg D 3: 1 2 4 1 2 1 3 0 3 5: 1 2j C j3j. 1i n : j D1 Chú ý. ta có bất đẳng thức quan trọng sau (2.CHƯƠNG 2. được làm "dịu" đi bằng phép xoay cục bộ. bằng cách tính sai số của phép nhân tử hóa và phép thế tiến/lùi. j 4j C j1j C j 1jg D 7 ı .

SỰ CHÍNH XÁC 41 Trở lại vấn đề phân tích sai số làm tròn cho phép khử Gauss.4.23) . Từ đây có thể kết luận rằng phép khử Gauss luôn cho nghiệm z là nghiệm chính xác của bài toán gần với bài toán gốc. Quá trình thế tiến dùng để giải hệ tam giác dưới Ly D b tính liên tiếp y1 . nghĩa là. Chẳng hạn.1 giá trị y2 được tính để mà m2. : : : . yn để làm cho thặng dư bằng không. Tuy nhiên.I C A 1 A/ 1 A 1 .1y1 C y2 D b2 . ta có kxk  kA 1 kkbk. Người ta chứng minh được rằng nghiệm tính toán z thỏa phương trình (2.21) Trong trường hợp đơn giản A D 0. y2 .22) (2. u là đơn vị làm tròn. Vì Az b D Az nên thặng dư thỏa krk D kAz bk  kAkkzk  n ukAkkzk: Điều này nói rằng kích thước thặng dư hầu như tương đối nhỏ so với kích thước của A và z. thặng dư của phương trình này là không (trong số học chính xác) với giá trị này của y2 . Nhận xét 2.20) (2.I C A 1 A/ 1 kkA 1 k.  2. Ax C b/: (2.4. Giả sử ma trận A C A không suy biến. Vậy. điều này không ám chỉ rằng sai số thực e là nhỏ.3 Ước lượng chuẩn cho sai số Bây giờ ta xét ảnh hưởng của sai số trong dữ liệu nhập lên sai số e. Cho x C x là nghiệm của .18) Như thường lệ.x C x/ D b C b: Trừ cho Ax D b ta được .A C A/x D thể nhân hai vế với A 1 rồi giải ra x Ax C b. ta có x D .13) trong đó kAk  n ukAk: (2. bất chấp sai số trong y1 và m2. rất tự nhiên về quá trình phản ứng với các sai số trong dữ liệu theo cách như vậy nhận được một thặng dư bé. kxk < kbk  kAkkA 1 k : kxk kbk (2. xn 1 . Điều này không đúng chút nào khi x được tính bằng A 1 b. xét phân tích LU của A.2. Điều giống như vậy xảy ra trong quá trình thế lùi để tính xn . nhân tử n phụ thuộc n và có thể tăng như 2n 1 .A C A/. nhắc lại rằng.19) Dùng bất đẳng thức cho chuẩn ta suy ra kxk  k.kAkkxk C kbk/: Bỏ qua các số hạng cấp hai (nhiễu A đủ nhỏ) và dùng bất đẳng thức kbk D kAXk  kAkkxk.4 Để hiểu thêm lý do tại sao phép khử Gauss dẫn đến các nghiệm tính toán với thặng dư nhỏ. Thêm một chút "thao tác" có thể làm phép khử Gauss ổn định theo nghĩa mạnh. : : : . x1 thỏa Ux D y.   kxk < kbk kAk 1  kAkkA k C : kxk kbk kAk (2.

CHƯƠNG 2. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH

42
n
1
2
3
4
5
6 

2.Hn /

n
1 7
19:281
8
2
5:241  10
9
4
1:551  10
10
5
4:766  10
11
7
1:495  10
12 

2.Hn /
4:753  108
1:526  1010
4:932  1011
1:602  1013
5:220  1014
1:678  1016

Bảng 2.1: Số điều kiện của ma trận Hilbert cấp  12.
Bất đẳng thức (2.20) tương ứng (2.22) cho sai số còn bất đẳng thức (2.21) tương ứng (2.23) cho sai số theo
nghĩa tương đối. Đại lượng kAkkA 1 k, ký hiệu bởi cond.A/ hay .A/, được gọi là số điều kiện (condition
number) của A .
Định lý sau cho ta ý nghĩa của số điều kiện.
Định lý 2.4 tồn tại ma trận suy biến S sai khác A theo nghĩa tương đối bằng nghịch đảo số điều kiện của
A
kS Ak
1
D
:
min
det.S/D0
kAk
cond.A/
Như vậy, nếu A có số điều kiện "lớn" thì nó gần với ma trận suy biến.
Thí dụ 2.4 Ma trận Hilbert Hn cấp n là ma trận n  n với các phần tử
Hn .i; j / D hij D

1
i Cj

1

:

Ma trận này là một thí dụ cho ma trận điều kiện xấu.
Bảng 2.1 cho kết quả tính số điều kiện của các ma trận Hilbert cấp  12 dùng số chính xác kép IEEE
(chuẩn p D 2). Ta thấy số điều kiện tăng dạng mũ của n. Khi n > 12 ma trận Hn cực kỳ xấu ngay cả với
số chính xác kép! Theo một kết quả của G. SzegRo ta có ước lượng sau
p
. 2 C 1/4.nC1/ 
.Hn / 
p 
e3:5n ı
15=4
2 
n  

1 2
Thí dụ 2.5 Cho A D
. Tìm kAk, kA 1 k, cond.A/.
3 4
kAk D maxfj1j C j2j; j3j C j4jg D 7:
Theo công thức tính ma trận nghịch đảo,
A

1

D 

2

1

3
2

1
2 

;

nên
kA 1 k D maxfj

Vậy, cond.A/ D kAkkA 1 k D 21 ı

2j C j1j; j3=2j C j

1=2jg D 3:

2.5. CHƯƠNG TRÌNH

Thí dụ 2.6 Ma trận A D

43 

1
1

1
1 C 10
A 

5

1

"gần" kỳ dị vì

D 

1

105 105
105 105 

;

kAk D 2, kA 1 k D 2  105 và cond.A/ D 4  105 .
Định lý 2.4 khẳng định sự tồn tại một ma trận suy biến sai khác (tương 
đối) với 
A khoảng 1=cond.A/ D
kS Ak
1 1
D
2:5  10 6 . Mặc dù không hoàn toàn gần A, ma trận đơn giản S D
là kỳ dị và
1 1
kAk
5  10 6 ı
Thí dụ 2.7 Giả sử ta giải phương trình Ax D b trên một máy với u D 5  10  

6:23415
zD
; cond.A/ D 1:0  104 :
18:6243
Giả sử dữ liệu là chính xác để cho kAk=kAk  5  10
kxk < 4 
10  5  10
kxk

10

10

11

và nhận được

, từ (2.23), chặn trên của sai số tương đối là

D 5  10 6 :

Nếu dữ liệu nhập có sai số, chẳng hạn, kAk=kAk  10 6 , kbk=kbk  10 6 , thì chặn trên của sai
số tương đối là
kxk < 4 
10  2  10 6 D 0:02:
kxk
Lấy kxk  kzk  18:6 chặn trên sai số tuyệt đối là 0:37. Vì vậy phân tích này cho
x1 D 6:23 ˙ 0:37; x2 D 18:62 ˙ 0:37 ı

2.5

Chương trình

Mục này giới thiệu hai function viết bằng ngôn ngữ lập trình Matlab. Sinh viên tự nghiên cứu và chạy thử
cho các bài tập.

2.5.1

Factor

Mục đích: Phân tích ma trận A bằng cách dùng phép khử Gauss và đánh giá số điều kiện của nó. Factor
được dùng chung với Solve để giải A*x=b.
Đối số nhập:
A - ma trận neq dòng và cols cột cần được phân tích.
Đối số xuất:
A - chứa ma trận tam giác trên U trong phần trên của nó và một phiên bản hoán vị của ma trận tam giác
dưới (I-L). Nhân tử hóa thỏa (ma trận hoán vị)*A=L*U.
flag - thông báo sự thành công hay thất bại. flag = 0 chỉ sự thành công. Nếu flag > 0, một phần
tử trụ bằng không và dừng tính toán.
pivots - bản ghi các hoán vị dòng. Đưa vào pivots(neq)=(-1)^(số của dòng thay đổi).

44

CHƯƠNG 2. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH

Khi flag > 0, định thức của A bằng 0 và
khi flag = 0, det(A)=pivots(neq) * A(1,1) *    * A(neq,neq).
Đối số xuất tùy chọn:
Cond - khi flag >D 0, một đánh giá số điều kiện của A trong chuẩn vô cùng.

Factor.m
function [A,flag,pivots,Cond] = Factor(A)
[neq,cols] = size(A);
flag = 0;
pivots = zeros(neq,1);
pivots(neq) = 1;
if nargout == 4
% Initialize Cond for A that is numerically singular.
Cond = realmax;
% Compute the infinity norm of A before the matrix is
% overwritten by its factorization.
Anorm = norm(A,inf);
end
if neq == 1
if A(1,1) == 0
flag = 1;
elseif nargout == 4
Cond = 1;
end
return
end
% Gaussian elimination with partial pivoting.
for k = 1:neq-1
% Determine the row m containing the largest element in
% magnitude to be used as a pivot and its magnitude biggest.
[biggest,occurred] = max(abs(A(k:neq,k)));
m = occurred + k - 1;
% If all possible pivots are zero, A is numerically singular.
if biggest == 0
flag = k;
return
end
pivots(k) = m;
if m ~= k
% Interchange the current row k with the pivot row m.
A([m k],k:neq) = A([k m],k:neq);
pivots(neq) = - pivots(neq);
end
% Eliminate subdiagonal entries of column k.
for i = k+1:neq
t = A(i,k) / A(k,k);

2.5. CHƯƠNG TRÌNH

A(i,k) = - t;
if t ~= 0
A(i,k+1:neq) = A(i,k+1:neq) - t * A(k,k+1:neq);
end
end
end
if A(neq,neq) == 0
flag = neq;
return
end
if nargout == 4
% Estimate the condition number of A by computing the infinity
% norm of A directly and a lower bound for the norm of A^(-1).
% A lower bound for the norm of A^(-1) is provided by the ratio
% norm(y)/norm(d) for any vectors such that A*y = d and d ~= 0.
% A "large" ratio is obtained by computing y as one iteration of
% inverse iteration for the smallest singular value of A, i.e.,
% by solving for y such that (A’*A)*y = e. This exploits the
% fact that an LU decomposition of A can be used to solve the
% linear system A’*d = e as well as A*y = d. The entries of e
% are +1 or -1 with the sign chosen during the computation of d
% to increase the size of the entry of d and so make a "large"
% lower bound for the norm of A^(-1) more likely.
% Solve A’*d = e using the decomposition of A.
d = zeros(neq,1);
d(1) = -1 / A(1,1);
for k = 2:neq
t = A(1:k-1,k)’ * d(1:k-1);
if t < 0
ek = -1;
else
ek = 1;
end
d(k) = -(ek + t) / A(k,k);
end
for k = neq-1:-1:1
d(k) = d(k) + A(k+1:neq,k)’*d(k+1:neq);
m = pivots(k);
d([m k]) = d([k m]);
end
% Solve A*y = d.
y = Solve(A,pivots,d);
% Compute the infinity norms of the vectors.
dnorm = norm(d,inf);
ynorm = norm(y,inf);
Cond = max(Anorm * ynorm / dnorm, 1);

45

Đối số xuất: x .output của Factor.m function x = Solve(A. x(neq) = x(neq) / A(neq. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 46 end 2. else % Forward elimination. Có hai loại ma trận. nếu với mỗi cột jAjj j  n X i 6Dj jAij j: . end end 2.CHƯƠNG 2.6 Ma trận có cấu trúc đặc biệt Hầu hết các bộ giải (solver) hệ phương trình đại số tuyến tính đều dựa trên phép khử Gauss với phép xoay cục bộ. Solve. Đối số nhập: A . if neq == 1 x(1) = x(1)/A(1. Một ma trận n  n A được gọi là trội trên đường chéo (diagonally dominant). Khi quá trình khử không cần đến phép xoay cục bộ thì việc lưu trữ giảm đi cũng như quá trình tính sẽ nhanh hơn rất nhiều.neq). pivots .A(i. b . ta có thể giảm bớt việc lưu trữ và chi phí cho việc giải hệ. for i = neq-1:-1:1 x(i) = (x(i) . x = b.1).i+1:neq)*x(i+1:neq)) / A(i. không cần đến phép xoay cục bộ. nói chung. x([m k]) = x([k m]).5. end % Back substitution.i). x(k+1:neq) = x(k+1:neq) + A(k+1:neq.b) neq = length(b).2 Solve Mục đích: Giải hệ neq phương trình tuyến tính theo neq ẩn bằng cách dùng phân tích LU nhận được bằng cách gọi Factor.vectơ nghiệm có cùng kích thước như b.k)*x(k).output của Factor.pivots.vế phải. vectơ có độ dài neq. for k = 1:neq-1 m = pivots(k). Khi ma trận A có tính chất đặc biệt.

Mặc dù có khó khăn trong việc cài đặt A theo cách lưu trữ đặc biệt. Chọn `11 6D 0 thì n X mD1 `1m um1 D `11 u11 u11 D a11 =`11 : Với i > 1. nhưng việc lưu trữ ở dạng băng xấp xỉ n. và có sự thuận lợi tương tự trong phép thế tiến và lùi. : : : . ai1 D vì vậy Cũng vậy. bằng cách dùng sơ đồ lưu trữ đặc biệt. Loại ma trận còn lại là ma trận đối xứng.6. Ma trận A D Œaij  được gọi là ma trận băng khi mọi phần tử khác không nằm trong một dải "dọc theo" đường chéo chính.m` C mu / thay vì n3 =3. với j > 1. khi aij D 0 nếu i j > m` và j i > mu .2. n X mD1 `i m um1 D `i1 u11 . mu D 1 là 2 3   0 0 0 6    0 0 7 6 7 6     0 7 6 7 4 0    5 0 0    Ở đây  chỉ phần tử có thể khác không.6. ta có thể tăng tốc quá trình tính toán bằng cách nhận diện các phần tử không vẫn còn bằng không. `i1 D ai1 =u11 với i D 2. MA TRẬN CÓ CẤU TRÚC ĐẶC BIỆT 47 Có thể thấy. nhưng sự tiết kiệm có thể rất lớn. Vì với các nhân tử không. Mã cài đặt phép khử Gauss đặc biệt cho các ma trận băng có thể tìm thấy trong LINPACK cũng như LAPACK. với ma trận này ta không cần đến phép xoay cục bộ trong quá trình khử Gauss. Điều này phản ảnh sự kiện biến (tương ứng) không hiện diện trong phương trình và vì vậy không cần đến phép khử. 2. tối đa m` phần tử phải được khử ở mỗi bước. việc kiểm tra nhân tử bằng không có thể tiết kiệm được lượng tính toán. Giả sử phép phân tích A D LU tồn tại.1 Ma trận băng Nhắc lại rằng trong thuật toán khử Gauss. Quan sát quan trọng khác là. Một loại ma trận cực kỳ quan trọng trong nhiều lãnh vực tính toán là ma trận băng. ma trận được gọi là có chiều rộng băng dưới m` . Khi ma trận A "gần" với ma trận tam giác trên. Một thí dụ của ma trận với m` D 2. không cần lưu trữ . Thật vậy. hay j i > m` C mu .2m` C mu / thay vì n2 . phép xoay cục bộ sẽ để lại các số không trong aij với j i > m` C mu . vòng lặp trong cùng có thể được bỏ đi khi nhân tử t D 0. chiều rộng băng trên mu . Các kết quả số là giống nhau. A D AT . Xem xét các phần tử trên đường chéo chứng tỏ rằng nhiều phần tử không vẫn . Khối lượng tính toán vào khoảng nm` . n: a1j D n X mD1 `1m umj D `11 u1j .k/ các phần tử aij với i j > m` . Bây giờ ta xét một dạng khác của phép khử Gauss thuận tiện cho cách cài đặt ma trận băng.k/ giữ bằng không. Khi tiến hành phép khử trên ma trận như vậy. . và chiều rộng băng m` C mu C 1. Trước hết chú ý rằng a11 D vì các ma trận là tam giác. Cụ thể.

ai k D vì vậy `i k D ai k Với j > k.6. k 1 của U. Giả sử hệ ba đường chéo được viết dưới dạng 2 32 3 2 3 a1 c1 x1 d1 6 b2 a2 c2 0 7 6 x 2 7 6 d2 7 6 76 : 7 6 : 7 ::: ::: ::: 6 7 6 :: 7 D 6 :: 7 : 6 76 7 6 7 4 0 bn 1 an 1 cn 1 5 4 xn 1 5 4 dn 1 5 an cn xn dn . 2. Thì akk D n X mD1 `km umk D `kk ukk C Các số hạng trong tổng cuối cùng là đã biết. n: Nói chung. có thể lên đến hàng ngàn. mD1 ! `i m umk =ukk với i D k C 1. nhân tử L và U có thể được viết chồng lên A khi chúng được tính toán. mD1 =`kk với j D k C 1. n: Nếu tất cả các phần tử trên đường chéo chính của L lấy bằng 1. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 48 vậy.CHƯƠNG 2. Chọn `kk . : : : . : : : . thì không cần lưu trữ chúng và giống như trường hợp ma trận đầy đủ. thuật toán này là phép khử Gauss không dùng phép xoay cục bộ. thì ukk D akk Với i > k. k của L và các dòng 1. Giả sử ta đã tính được các cột 1. Nếu ta chọn các phần tử chéo của L bằng 1. : : : . akj D vậy. u1j D a1j =`11 với j D 2. nhưng với thuật toán có mục đích đặc biệt thì gặp khó khăn này. thì L cũng là ma trận băng với chiều rộng băng dưới m` và U là ma trận băng với chiều rộng băng trên mu . : : : . ukj D akj n X mD1 mD1 mD1 mD1 ! k 1 X `i m umk .2 Ma trận ba đường chéo Khi m` D mu D 1 ma trận các hệ số được gọi là ma trận ba đường chéo (tridiagonal matrix). Trong bàn luận của chúng ta về phép khử áp dụng cho ma trận băng A. Khi ấy việc dùng Factor/Solve là không thích hợp. ta thấy nhiều công việc và vùng lưu trữ có thể được tiết kiệm. Nếu A là ma trận băng với chiều rộng băng dưới m` và chiều rộng băng trên mu . Việc giải số phương trình đạo hàm riêng thường dẫn về việc giải các hệ phương trình gồm một số rất lớn các ẩn. mỗi lần ta lập một cột của L và một dòng của U. : : : . n: `km umj D `kk ukj C k 1 X `km umk : mD1 `km umk =`kk : `i m umk D `i k ukk C k 1 X n X k 1 X k 1 X 1 `km umj mD1 ! k 1 X `km umj .

Ta phải có LT D U nên a11 D `11 u11 D u211 . Phép khử dòng k C 1 cho: fkC1 D akC1 ckC1 D ckC1 ekC1 D dkC1 mkC1 ck . cho phép chứng tỏ ma trận không suy biến. m2  0 D c2 . bảo đảm kết quả thu được là tốt. Thuật toán trên không dùng phép xoay cục bộ nên kết quả số có thể rất xấu. Bây giờ thiết lập công thức cho fi . Giả thiết then chốt là ja1 j > jb2 j. thường thỏa mãn trong thức hành. Để khử b2 . suy ra: f2 D a2 c2 D c2 e2 D d2 m2 c1 . Ta có thể viết mk lên bk và fk lên ak khi chúng được tính. Điều kiện này mạnh hơn điều kiện trội trên đường chéo. m2 d1 : Để hoàn tất việc thiết lập ta dùng quy nạp. một ma trận đối xứng. bk và ck như là ba vectơ chiều dà n. nhân tử m2 D b2 =f1.6. Ngược lại. Thì ta có 0 fk ck 0 j ek 0 bkC1 akC1 ckC1 j dkC1 trên dòng k và k C 1. : : : . mkC1  0 D ckC1 . theo các bước thế tiến và lùi ek và xk có thể viết chồng lên dk để cho chỉ cần thêm một vectơ chiều dài n.3 Ma trận đối xứng Nếu ma trận A có thể phân tích thành UT U với U là ma trận tam giác trên. thì A là ma trận đối xứng. MA TRẬN CÓ CẤU TRÚC ĐẶC BIỆT 49 Khi không dùng phép xoay cục bộ. n jan j > jcn 1 j: 1. nhưng một ma trận tam giác trên chỉ cần lưu trữ 3n 2 phần tử khác không.2. e1 D d1. ei . Giả sử rằng ta đã thiết lập được fi và ei đến dòng k. Suy ra. trước hết ta thấy f1 D a1. xác định dương. Rõ ràng nhân tử là mkC1 D bkC1 =fk . Bằng thủ tục trình bày ở trên ta có thể xác định U. . mkC1 dk : Việc lưu trữ có thể được tổ chức cực kỳ hiệu quả. Trước hết chú ý rằng nếu bất kỳ ck hay bk triệt tiêu.6. Một ma trận tổng quát cấp n cần lưu trữ n2 phần tử. Một sơ đồ tự nhiên là lưu trữ ba dải ak . k D 2. xác định dương A có thể phân tích thành tích UT U với U là ma trận tam giác trên không suy biến. hệ có thể "bẻ" thành các hệ nhỏ hơn mà cũng là ba đường chéo. 2. ta có thể giả sử ck và bk khác không với mọi k. không dùng phép xoay cục bộ. Với hệ ba đường chéo có một điều kiện đơn giản. jak j  jbkC1 j C jckC1 j. khử các bi ta được 2 f1 c1 6 f2 c2 0 6 ::: ::: ::: 6 6 4 0 fn 1 cn 1 fn cn 32 3 2 x1 7 6 x2 7 6 76 : 7 6 7 6 :: 7 D 6 76 7 6 54 x 5 4 n 1 xn 3 e1 e2 7 :: 7 : 7 7: en 1 5 en Như ta thấy các ci không thay đổi.

Nó bảo vệ tốt hơn cấu trúc băng của ma trận. Điều này nói rằng các nhân tử không thể lớn đối với A.k/ bởi Mx.k/ thỏa e. Rõ ràng rất dễ giải các phương trình ở dạng này.24) mD1 từ đây suy ra ukk D akk Rồi.kC1/ D b C . cũng như trước. phép lặp Gauss-Seidel ứng với trường hợp M là ma trận tam giác dưới gồm đường chéo chính của M và các phần tử bên dưới đường chéo chính của nó. và như trước u1j D aij =u11 j D 2. 2. ta thấy nếu xấp xỉ hội tụ thì chúng phải hội tụ về x.CHƯƠNG 2. tính dãy nghiệm xấp xỉ x. Qua giới hạn cả hai vế của phương trình xác định phép lặp.M A/x. : : : .24) ta thấy suy ra akk  u2mk I jumk j  p akk với mọi m  k. suy ra ke.k/ D x x.M A/x. n: Bây giờ akk D n X mD1 `km umk D n X u2mk .k/ : Phép lặp Jacobi có dạng này với M là ma trận chéo với đường chéo chính là đường chéo chính của ma trận A. n: Từ (2. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 50 suy ra u11 D p a11. Phép phân tích này gọi là phương pháp Cholesky hay phép phân tích căn bậc hai. Sai số e. với mọi k. Tương tự. (2. ukj D akj k 1 X umk umj mD1 k 1 X u2mk mD1 ! !1=2 : =ukk .k/ . trong đó M là ma trận "gần" A.7 Các phương pháp lặp Trong mục này ta xét hai phương pháp lặp Jacobi và Gauss-Seidel cho phương trình Ax D b. j D k C 1.kC1/ D M 1 .M A/e.kC1/ k  kM 1 . : : : .k/ k: .M A/kke. Viết lại phương trình dưới dạng Mx D b C .

Xấp xỉ tốt hơn có thặng dư nhỏ hơn? 2.4 Cho hệ phương trình tuyến tính 1 x1 C x2 C 2 1 1 x1 C x2 C 2 3 1 1 x1 C x2 C 3 4 1 x3 D 1 3 1 x3 D 0 4 1 x3 D 0 5 a) Giải hệ bằng cách dùng số học chính xác. lượng  là một loại sai số tương đối của xấp xỉ A bằng M. bất đẳng thức này chứng tỏ quá trình lặp hội tụ với x.M A/k < 1. b) Viết hệ dưới dạng ma trận dùng biểu diễn thập phân chặt cụt 2 chữ số. Chú ý. c) Giải hệ bằng tay bằng bất kỳ phương pháp nào và dùng số học chính xác.2.2 Giải hệ 0:461x1 C 0:311x2 D 0:150 0:209x1 C 0:141x2 D 0:068 dùng số thập phân chặt cụt ba chữ số. b) Chia mỗi dòng với jaij j lớn nhất của nó rồi dùng phương pháp khử Gauss với phép xoay cục bộ. Phương pháp nào có vẻ tốt hơn.0/ bất kỳ. d) Dùng số học chính xác tính các thặng dư cho mỗi nghiệm tìm được ở các câu trên. Cho    0:999 yD .kC1/ D b Ax. tính các thặng dư r D b Ay. 2.1 Viết chương trình. s D b 0:463 0:204  : Az.3 Với hệ phương trình trong bài tập 2. c) Giải hệ ở câu b) không dùng phép xoay cục bộ (dùng số học như ở câu b). 2.kC1/ . x. 2.kC1 xác định bởi Mı . So sánh kết quả tìm được với nghiệm chính xác x1 D 1.k/ C ı .5 Cho hệ x1 C x2 D 2 10x1 C 1018 x2 D 10 C 1018 Không dùng số học thập phân hơn 15-chữ số để tính toán câu a) và b). CÁC PHƯƠNG PHÁP LẶP 51 Nếu  D kM 1 . x2 D 1.A/. zD 1:001 Trong số học chính xác. giải phương trình Ax D b. a) Giải hệ bằng phương pháp khử Gauss với phép xoay cục bộ.2. vì vậy nếu M càng gần A theo nghĩa  càng nhỏ thì quá trình hội tụ càng nhanh.kC1 . Thặng dư có chỉ ra điều này không? e) Tính cond.k/ : Ngay cả khi A là ma trận điều kiện xấu. trong đó ı . theo thuật toán khử Gauss. d) Giải hệ ở câu b) dùng phép xoay cục bộ (dùng số học như ở câu b)).7. .k/ D r. Sai số giảm do nhân tử  ở mỗi bước lặp.kC1/ D x. Thường ta tính nghiệm xấp xỉ liên tiếp nhờ lượng hiệu chỉnh ı . M được chọn đủ gần A thì kết quả vừa thiết lập đảm bảo hội tụ. Câu hỏi và bài tập 2. e) Giải hệ ở câu b) dùng số học chính xác.

b) Nếu các phần tử đưa vào của A và b có sai số tuyệt đối ˙0:0005.6 Giả sử nghiệm tính toán của hệ phương trình không suy biến là . So sánh với nghiệm chính xác. Điều nào có tương thích với câu b)? Sự thay đổi tương đối trong mỗi xi ? 2.11 Xét hệ tuyến tính 3 1 2 3 44 5 6 5: 7 8 9:01 2 3 2 3 0:217 0:732 0:414 0:741 4 0:508 0:809 0:376 5 x D 4 0:613 5 0:795 0:886 0:338 0:485 a) Giải tìm x bằng Factor/Solve.7 Viết thuật toán và chương trình phân tích LU cho ma trận vuông.x C x/ D b C b để có x C x. kbk=kbk  10 5 .9 Giải hệ x1 C x2 C x3 D 110:00 x1 C x2 D 78:33 x2 C x3 D 58:33 bằng cách dùng Factor/Solve. 10:4631.A C A/. Thì sai số tuyệt đối (˙) trong mỗi thành phần nghiệm bằng bao nhiêu? b) Câu hỏi tương tự với kAk=kAk  10 5 . độ tin cậy của x như thế nào. Giải . . giá trị thặng dư của nghiệm rất nhỏ nhưng nghiệm lại không gần với nghiệm chính xác. b) Giải phương trình Ax D b khi các ma trận tam giác của phân tích là đã biết. Tính kxk=kxk. c) Tạo nhiễu ˙0:0005 trong các phần tử đưa vào của A và b để có A C A và b C b. 3:79144. 2. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 52 2. 2. 0:000422790/ và số điều kiện là 1200. 0:00318429. 2.Hệ phương trình có nghiệm không ổn định Như đã thấy trong nhiều thí dụ số. 2. a) Giả sử dữ liệu chính xác và đơn vị làm tròn u D 10 6 . Sai số trong những trường hợp như vậy không phải do sự tích lũy của sai số làm tròn trong quá trình tính toán.8 Có bao nhiêu phép toán cần thiết để: a) Thực hiện phân tích LU một ma trận vuông.CHƯƠNG 2.8 Vấn đề nghiên cứu Vấn đề 2 . 2.10 Cho ma trận 2 Dùng Factor/Solve tìm ma trận nghịch đảo.

định nghĩa định thức chuẩn của A là normjAj WD jAj . Moscow. tác giả giới thiệu phương pháp hoàn thiện lời giải cho hệ phương trình có nghiệm không ổn định. Hãy tìm hiểu các phương pháp vừa nêu (cơ sở lý thuyết. Poznyak. Một cách tiếp cận khác.A. n. Viết thuật toán. Nếu hệ có nghiệm không ổn định thì normjAj nhỏ hơn so với jAj.2. 1986. : : : . xem [2]. Ilyin and E. Tính toán trên các thí dụ số điển hình để nêu nhận xét. có nhiều cách để nhận ra một hệ phương trình có nghiệm không ổn định1 : . Giải tích số. NXB ĐHQG TP. Linear Algebra. 2. chương trình cho các phương pháp. 1 Ngoài cách dùng số điều kiện. . k D 1.Nếu hệ có ma trận các hệ số là A. Cũng trong tài liệu đã dẫn. HCM. chỉnh hóa bài toán theo phương pháp chính quy hóa Tikhonov.8. Tư liệu [1] V. . VẤN ĐỀ NGHIÊN CỨU 53 Theo [2]. phân tích sai số). 2004. Mir Publisher.Sự thay đổi nhỏ trong các hằng số của hệ cũng dẫn đến sự thay đổi lớn của lời giải.G. ˛1 ˛2    ˛n P 2 trong đó ˛k D nj D1 akj . [2] Đặng Văn Liệt.

54 CHƯƠNG 2. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH .

x/ tại các điểm này. Bài toán nội suy được phát biểu như sau. Một nguyên lý cơ bản của giải tích số: nếu ta không thể thực hiện một phép tính cơ bản với hàm đang xét. Dưới đây ta sẽ dùng ký hiệu PN để chỉ tập hợp tất cả các đa thức có bậc nhỏ hơn N (không gian vectơ).1) Các điểm xj .x/ tại các điểm nào đó.x/ (có thể không biết) tại các điểm xj .x/ phải có bậc nhỏ hơn N . đa thức và các tỉ số của chúng (phân thức) là các hàm duy nhất có thể được tính trực tiếp nhờ máy tính. fj D f . Có nhiều loại hàm xấp xỉ. N .1 Cho N điểm phân biệt fx1 .x/ bằng một hàm F . x2.1) cho các phương trình xác định các hệ số của đa thức nội suy.xj /. Các spline đa thức.x/ bậc nhỏ hơn N nội suy hàm cho trước f . Ta nói F .x/ sao cho PN . mọi hàm liên tục trên một khoảng hữu hạn đều có thể được xấp xỉ tốt bằng một đa thức. đạo hàm. Vì lý do này đa thức được dùng không chỉ để nội suy mà còn là cơ sở cho hầu hết các phương pháp của giải tích số.x/ là đa thức và ta sẽ dùng ký hiệu gợi nhớ PN thay cho F . việc chọn lựa phụ thuộc vào bản chất của dữ liệu. Cho trước các cặp . Ta có ngay PN .xj . Khi đó ta cần xấp xỉ hàm bằng một hàm đã biết mà giá trị tại các điểm đã cho trùng với dữ liệu thí nghiệm. Như đã biết. Có lẽ hàm xấp xỉ đơn giản nhất là đa thức. Tìm đa thức PN . trong đó các fj là giá trị của hàm f . 3. Trong chương này ta xét vấn đề xấp xỉ hàm f . fj / với j D 1. : : : . xN g có một và chỉ một đa thức PN . ở đây các điều kiện (3. Cũng có thể biểu thức xác định hàm quá phức tạp để có thể thực hiện việc tính toán. 1  j  N: (3. 55 .1 Nội suy đa thức Trong mục này hàm xấp xỉ F .x/ tại các điểm này.x/.xj / D fj . : : : . Định lý 3. Quá trình xây dựng hàm F . nghĩa là các hàm đa thức từng mảnh.x/ được gọi là phép nội suy (interpolation). Hơn nữa. gọi là các điểm nội suy (interpolation points) hay các nút (nodes). ta xấp xỉ nó bằng một hàm đơn giản hơn mà ta có thể thực hiện được phép tính. hoặc thậm chí giá trị của hàm tại điểm mà dữ liệu thí nghiệm không cung cấp.Chương 3 Nội suy Trong thực hành ta thường gặp các hàm mà giá trị của nó chỉ biết tại một số điểm (nhờ thí nghiệm) nhưng lại cần thiết phải tính tích phân. Nội suy Lagrange. là một công cụ rất hữu ích để xấp xỉ hàm và là đối tượng nghiên cứu chính của chương này. Một đa thức được xác định bởi các hệ số của nó. 2. trùng với f .x/ nội suy (interpolate) f .

Hiệu D D PN .x/ nội suy f .x/ C 1  L2 .x/ D 0  L1 .x/ có dạng Lk .x /: 2 Thí dụ 3.x/ được chọn độc lập đối với f . 0g.xj / D  0 nếu j D 6 k 1 nếu j D k: Nghĩa là.3) Để chứng minh PN . fN nên mỗi Lk .CHƯƠNG 3. NỘI SUY 56 Chứng minh.x/ là các điểm xj với j 6D k.xj / D fj với 1  j  N .30 3. như vậy P3 .j 6Dk x xk xj : xj (3. Tìm P3 .x/ là đa thức khác có bậc nhỏ hơn N thỏa QN .x/ D C N Y .x/ D N Y j D1.82 2.x/ QN . =2.x/ phải thỏa Lk .x/ duy nhất.x/ là đa thức bậc nhỏ hơn N với bất kỳ cách chọn f1 . các không điểm của Lk .xj / D fj với 1  j  N .x/ cũng phải là đa thức có bậc nhỏ hơn N .2 Cho bảng dữ liệu x 1.1 Cho f . Vì PN .j 6Dk suy ra Lk .50 3. 2 / 4 D x.x/ cũng là đa thức có bậc nhỏ hơn N triệu tiêu tại N điểm xj nên D  0 suy ra PN  QN .x/ . Dạng Lagrange của đa thức nội suy: PN .03 y 0.x xj / j D1.xk / D 1 cho C D 1= N Y .52 . : : : . Hơn nữa. gọi QN .x / D  . f2 .x/. một lần nữa với cách chọn dữ liệu bất kỳ thì Lk . 1.x/ D sin x.x/ tại ba điểm f0. g.x/ C 0  L3 . Điều kiện Lk .2) fk Lk . Các giá trị hàm tương ứng là f0. 2 0/.10 2. Thí dụ 3. kD1 trong đó các hàm Lk .j 6Dk với hằng số C nào đó. để có PN .x/ D N X (3. như vậy Lk .x 0/.65 4.xk xj /I j D1.x/.00 1.

x/ theo bảng dữ liệu.x 3:65/.f .x 1:82/.x 2:50/.x/ là viết pN .x 3:65/: Hình 3.5) T Q Đưa vào ma trận các hệ số Mq D Œqj .x 2:50/.x/ C 3:10L3. Hệ phương trình (3.c1 .x/ C 1:30L2 .j D1.x 1:82/.1.0:38/ D 1:09. NỘI SUY ĐA THỨC 57 Xây dựng nội suy P4. : : : . Dạng Lagrange của P4. 1:53/ .x 3:65/. qN .x 1:82/.5) có thể viết lại Mq c D QfI suy ra c D M 1 Qf.1: Đồ thị hàm P4 . q2 . cN / .x/.xi /m i.x2 /. (3.x/ C c2 q2 . 2. : : : .3 (Một ứng dụng vào tích phân số) Tìm một công thức để tính các tích phân có dạng Z 1 I D x 1=2f .x/. : : : .2. Bài toán nội suy dẫn về giải một hệ phương trình tuyến tính c1 q1 . f .1:83/.x 4:03/ D 1:30 C 3:10 .xi /.x 4:03/ .2:21/.x/ trong thí dụ 3. 0:38/ .x/ là P4 .0:68/.xi / D f .x 2:50/.x/dx 0 . : : : . 1:15/.x 2:50/.1:15/. N: (3.x/ C 2:52L4 .xi / C : : : C cN qN .x/ D c1 q1 .x/ C : : : C cN qN .x/. c2 .3.1 Một cách tiếp cận khác để tính PN . Nhận xét 3.x 4:03/ 3:88.4) trong đó q1 .1:53/.x 3:65/ C2:52 .xi / C c2 q2 .x 1:82/.x/ . các vectơ cột c D .  q Thí dụ 3.x 1:82/.x/ D 0L1 .x 1:82/.x 4:03/ C1:96. i D 1.x/ là các đa thức lập thành một cơ sở của PN . f D . f .x1/.

x/ có đạo hàm đến cấp N trên khoảng I chứa các điểm nội suy fxj gN j D1. x/ < x < max.xj / D fj fj 0 f . xN . .6) trong đó wN .xi /.x / D f . i D 1.x/ D N Y . 1  j  N .N / có ít nhất một không điểm trong I .x / f . . G 0 có ít nhất N không điểm phân biệt trong I .x/ : wN .x/ D 0. Lập lại chứng minh này. ta thấy 0 D G . N .x / NŠ f . x/: Chứng minh.x/ Cũng vậy.x/.x/ . Bây giờ ta xét chất lượng của sự xấp xỉ.7) xj / j D1 và min.x/Œf . Với x không trùng với các điểm nội suy.x/ D f .x/ D 1 .x/ có bậc N với số hạng bậc cao nhất là t N nên đạo hàm cấp N là N Š.N / . R 1 này 1=2 Đặt j D 0 x qj . N /.x/ PN .x1.x/ wN . wN .x/ D 0. : : : .t/ D f . : : : . xN . : : : .x (3. Đa thức wN .1 .x/ .x/ PN .x/ PN . Ký hiệu không điểm này bằng x . và G . Bởi định lý Rolle. NŠ (3.N / PN .6) đúng với x D xj .x/ tốt như thế nào? Việc tăng số nút nội suy có cải thiện được sự chính xác hay không? Định lý dưới đây giúp trả lời những câu hỏi này.N / wN . G.x/ PN . Nếu PN .x/ PN . như vậy G có N C 1 không điểm phân biệt.x/dx và đưa vào vectơ dòng T D .x/ là đa thức bậc nhỏ hơn N nội suy f . định nghĩa hàm mới G. 2 . thì với mỗi x 2 I có điểm x 2 I sao cho sai số trong nội suy đa thức là f .x/ PN . PN .x / .t/ f .x / .x1 .t/: wN .t/ Ta thấy hàm G có đạo hàm đến cấp N trên I và G.CHƯƠNG 3.x /wN . 2.N / . 0 D f . Định lý 3.x/ trên các dữ liệu này.x/ xấp xỉ f .2 Giả sử f . NỘI SUY 58 sao cho công thức là chính xác khi f 2 PN và dùng các giá trị f .x/ PN . . : : : . 1  j  N: wN . vì vậy đạo hàm cấp N đồng nhất không.x/dx D N X j D1 cj j D T c D T Mq 1 Qf: Sai số trong nội suy đa thức.x/ PN . .x/=wN .x/ Đa thức PN có bậc nhỏ hơn N . Thì I  Z 1 x 1=2 0 PN . Tóm lại.N /. G 00 có ít nhất N 1 không điểm phân biệt trong I .N / f . Rõ ràng đẳng thức (3.x/ wN .

x/ MN jwN .x/ trong biểu thức sai số tăng ở gần các điểm cuối của khoảng dữ liệu và tăng rất nhanh khi x ra xa khỏi đoạn Œa.0:28 0:4/.N /. vì tính liên tục.x/j.0:28/ D 0:2763556.x/j  với x 2 . Bất đẳng thức (3.x/ trên Œ 4. .x/ tương đối nhỏ khi x ở giữa các điểm nút. tất nhiên.0:28/. sai số phải nhỏ khi x gần một nút. Nhân tử wN . đặc biệt khi dùng đa thức bậc cao. Vì M5 D max j sin. 4 (hình 3. Nếu I D Œa. Dáng điệu định tính thấy ở đây với nội suy đa thức bậc cao có thể đoán được từ sự khảo sát nhân tử wN . t 2Œ0.0:28/ D 0:2763591. khi có thể. Thì tự nhiên phải hỏi xem có cách chọn các nút nội suy tốt hay không theo nghĩa làm cho max jwN .0:28/j  j0:28. Nhưng đẳng thức sắc hơn (3.b a/N  NŠ (3.8) có thể được dùng để chặn sai số trong xấp xỉ sin.0:28 0:6/. Hàm này phát triển cực kỳ nhanh bên ngoài khoảng chứa các nút và lớn ở các đầu mút. NỘI SUY ĐA THỨC 59 điều này chứng minh định lý.9) Ước lượng sắc hơn của chặn thứ hai là max jf .5 thể hiện một nội suy đa thức bậc cao. Hình 3. b và đặt MN D max jf .3. Vì điều này chặn (3. Thỉnh thoảng ta có thể đánh giá một hàm tại bất kỳ đâu ta muốn trong một khoảng. Và. Mặc khác.6) chứng tỏ rằng ảnh hưởng này có được giảm thiểu với f và x cho trước bằng cách lấy nhân tử đạo hàm nhỏ hơn.x/ trên toàn khoảng.0:28/ P5 .0:8 ta có chặn j sin.2 và các chặn cho ta sự hiểu biết và những hướng dẫn khi thực hiện phép nội suy.x/j axb (3.a. vậy sai số chính xác là 3:5  10 6 . 0:8g. . Định lý 3. tốt nhất nội suy tại các nút xoay quanh x và càng gần x càng tốt.x/j: N Š x2I Thí dụ 3.1. ở giữa khoảng này sự phù hợp xuất hiện là chấp nhận được. Nói chung. b. x2I thì ta có hai chặn trên của sai số nội suy: jf . b/: (3.x/ D sin x tại các điểm nội suy f0:0. Rõ ràng nội suy P12 không xấp xỉ tốt f .x/ bên ngoài khoảng I được gọi là phép ngoại suy (extrapolation).x/j NŠ MN . nhưng muốn xấp xỉ nó bởi một hàm đơn giản hơn để tính xấp xỉ đạo hàm hay tích phân của nó hay . 0:2.0:28/ bởi P5. Đồ thị của w9 . rất nguy hiểm khi ngoại suy ở những điểm quá xa khoảng dữ liệu.0:28 0:8/j=5Š D 3:7  10 6 : Đánh giá thực P5 . sin. 0:4. Xấp xỉ f .0:28 0:2/.0:8 t 2Œ0. 0:6.x/ PN . nhưng nó có độ lớn vừa phải ở giữa.10) . Tuy nhiên. Hai nhận định này đề nghị.4 Xét nội suy của hàm f .x/ bằng PN .2) thể hiện dáng điệu định tính của nhân tử này trong biểu thức sai số.8) tăng rất nhanh.5/ tj D max j cos tj D 1.x/ trong sai số.8) PN . wN . ở bậc cao hơn điều này càng đúng.x/j  x2I MN max jwN .

x/ D .2j 1/ C cos .x/ C N X fk0 k . Nội suy Hermite.x/.x/ D Œ1 k .xj / D 0 với mọi j 1 nếu j D k.x xk /L2k .xj / D 0 với mọi j.12) .x/. làm cho (3.2: Đồ thị hàm w9 . P 0 . Ở đây Lk . được cho bởi k . đa thức nội suy: P .10) nhỏ như có thể.x/ theo giá trị hàm và giá trị đạo hàm tại các nút. Hơn nữa.x/ kD1 thỏa P . Nếu tại các nút xj ta biết thêm giá trị của đạo hàm cấp một fj0 thì có thể nội suy hàm f . : : : . k .x/ là các đa thức nội suy cơ sở.x/ trên khoảng Œ 4.xk /. Các điểm xj D bCa b a .xj / D fj0 . NỘI SUY 60 Hình 3. : : : .  0 nếu j 6D k 0 k .xj / D fj . N .11) gọi là các điểm Chebyshev. k .x/ có bậc bé hơn 2N thỏa  0 nếu j 6D k k . : : : .x/ D k0 . j D 1.CHƯƠNG 3. ở đây ta chỉ xét nội suy Hermite (Hermite interpolation).x/ D N X kD1 fk k . có thể chứng minh các đa thức cơ sở k . 2 2 2N (3.x 2L0k .x/: xk /L2k . Với 2N giá trị độc lập có thể thấy đa thức nội suy có bậc 2N 1. 4. Có nhiều cách thực hiện phép nội suy như vậy. nhỏ.x/ D 1 nếu j D k. N: (3. j D 1. Ta sẽ xét chi tiết về xấp xỉ này trong mục tiếp theo. Câu trả lời là có. N. Hiển nhiên. Giả sử ta có các giá trị fj và đạo hàm fj0 tại các nút xj với j D 1.

xn / D fn . .17) fn /= h= h2 : (3.xn / D fn0 .16) (3. tồn tại một hàm f . H 0 . nội suy PN xấp xỉ f tốt tùy ý.x/ sao cho kf P k < .2 0 fnC1 = h. . Hàm Runge f .3.x/: 2N Š (3.x/ có bậc nhỏ hơn N xác định bởi . i D 1.fnC1 fn /= h 0 d D Œfn0 C fnC1 3. Có vẻ hiển nhiên nội suy một hàm trơn như vậy tại càng nhiều điểm nội suy cách đều sẽ dẫn đến hội tụ. (3.xnC1/ D fnC1 . Thật hợp lý khi cho rằng càng nhiều điểm nội suy hơn sẽ cho xấp xỉ tốt hơn. 0 H. tồn tại đa thức P .x /wN2 .19) trên Œ 5.fnC1 Các chặn sai số Trong mục này một số kết quả hữu ích được bàn luận và một vài kết quả về sai số liên quan đến xấp xỉ đạo hàm bằng đạo hàm của đa thức nội suy. N. b có thể xấp xỉ tốt tùy ý bằng một đa thức. Nếu ta viết H.x xn/2 C d. nội suy hoàn toàn không chấp nhận được.xi / D f . H 0 . cho trước  > 0.x xn /3 (3.14) và đòi hỏi là H.x/ D a C b.15) (3.9) chứng tỏ rằng nếu MN không tăng nhanh khi N ! 1. Để dùng đến sau này ta biểu diễn nội suy Hermite bậc ba ở dạng khác. Đáng tiếc.6) cho nội suy Hermite: f . Chặn (3.x/j: Một định lý cơ bản của Weierstrass phát biểu rằng hàm bất kỳ f . : : : .2N / . b D fn0 .x/ P . Một số đo cách PN .2/ mọi hàm liên tục.2. trong Œa. b sao cho các nội suy PN .2/ .x/ xấp xỉ f . nghĩa là. điều này không đúng cho .x/ liên tục trên khoảng hữu hạn Œa.x/ D 1 1 C x2 (3. b là sai số tệ nhất kf PN k D max jf .xnC1/ D fnC1 thì dễ dàng chứng tỏ rằng với h D xnC1 xn a D fn .x/ liên tục trong Œa.N / PN .N / . .x/ trên khoảng Œa. fx1 .13) Trong phép giải số các phương trình vi phân thường ta dùng đa thức bậc năm (quintics) để nội suy f và f 0 tại ba điểm.18) 2fn0 2. nhưng thực tế cho thấy ngay cả với N vừa phải. x2 g. 5 là một thí dụ cổ điển.x/ D 1 f . b.x xn / C c.xi /.x/ axb PN . . không có ngay cả kf PN k bị chặn khi N ! 1. Một kết quả do Faber chỉ ra rằng với tập các nút cho trước bất kỳ fx1 g. CÁC CHẶN SAI SỐ 61 Ta cũng có một kết quả tương tự như (3. Trong chương này ta dùng các đa thức bậc ba để nội suy f và f 0 tại hai điểm. c D Œ3.1/ .

CHƯƠNG 3. NỘI SUY

62

Hình 3.3: Đồ thị hàm Runge và các đa thức nội suy P5 .x/ và P9.x/.
Nếu có thể nội suy tại các nút tốt (3.11), thì hóa ra phép nội suy là cách tốt để xấp xỉ f .x/ bằng đa
thức bậc thấp nhất có thể. Thực tế là hàm Runge có thể được xấp xỉ một cách hoàn toàn chính xác bởi đa
thức nội suy tại các điểm Chebyshev. Trong trường hợp tổng quát, tồn tại một đa thức PN .x/ bậc nhỏ hơn
N xấp xỉ f .x/ tốt nhất trên Œa; b theo nghĩa kf PN k cho giá trị nhỏ nhất của kf P k với mọi đa thức
P bậc nhỏ hơn N . Cho PN .x/ nội suy f .x/ tại các nút x1; : : : ; xN trong Œa; b. Với bất kỳ x,
f .x/
Bây giờ PN .x/

PN .x/ C PN .x/

PN .x/ D f .x/

PN .x/:

PN .x/ là một đa thức bậc nhỏ hơn N , vậy
PN .x/

N
X
PN .x/ D
.PN .xk /

PN .xk //Lk .x/

kD1

vì nội suy Lagrange tại N điểm là chính xác với các đa thức như vậy. Dùng sự kiện là PN .xk / D fk , ta
thấy rằng
jf .x/

PN .x/j  jf .x/ 
kf

PN .x/j

C

N
X
kD1

PN k 1 C max

axb

jPN .xk /

fk jjLk .x/j

N
X

!

kD1

jLk .x/j ;

và rồi
kf

PN k D max jf .x/
axb

PN .x/j  kf

PN k 1 C max

axb

N
X
kD1

!

jLk .x/j ;

Bất đẳng thức này liên hệ sai số của PN với sai số của đa thức xấp xỉ tốt nhất PN bởi một thừa số
1 C max

axb

N
X
kD1

jLk .x/j;

3.2. CÁC CHẶN SAI SỐ

63

mà được cho trước chỉ nhờ các điểm nội suy. Đặc biệt, nếu các nút nội suy là điểm Chebyshev (3.11) thì
(xem [11])
N
N
X
1 X .2k 1/
1 C max
jLk .x/j  1 C
tg
:
axb
N
4N
kD1

kD1

Điều ngạc nhiên là với bậc N cỡ trung bình thì chặn này là quá nhỏ. Với N  20, nó ít hơn 4. Như vậy
PN k  kf

kf

PN k

PN k  4kf

với mọi N  20. Các đa thức nội suy như vậy được xây dựng dễ dàng và là tốt như có thể.
Phép nội suy không đạt hiệu quả như vậy khi các nút nội suy không thể được chọn, và như định lý của
Faber chỉ ra, nội suy cấp cao có thể không hoàn toàn thỏa mãn. Thường trong thực hành nội suy đa thức
cấp cao thể hiện các dao động có biên độ lớn ngay cả khi dữ liệu lấy từ một hàm trơn.
Xấp xỉ đạo hàm bằng đạo hàm của đa thức nội suy. Nội suy đa thức là công cụ cơ bản trong giải tích
số. Như một thí dụ, các đạo hàm của nội suy PN .x/ của f .x/ có thể được dùng để xấp xỉ các đạo hàm
của f .x/. Một chứng minh tương tự như định lý 3.2 (xem [7]) có thể được dùng để chứng tỏ với bất kỳ
r <N
N r
f .N / .x / Y
.r/
.r/
f .x/ PN .x/ D
.x k /;
.N r/Š
kD1

trong đó các điểm fk g được biết là phân biệt và thỏa

xk < k < xkCr ; 1  k  N

r:

Điểm k phụ thuộc x và nằm trong cùng khoảng I như x trong định lý 3.2. Như một hệ quả,
.r/

jf .r/ .x/

PN .x/j 

MN .xN
.N

x1 /N
r/Š

r

(3.20)

miễn là x1  x  xN . Dạng Lagrange của đa thức nội suy là tiện lợi để thiết lập công thức vi phân số. Để
xấp xỉ đạo hàm của f .x/ tại điểm z, cho trước các giá trị fk tại các điểm fx1 ; : : : ; xN g, ta đơn giản thiết
lập nội suy, đạo hàm nó, và đánh giá nó tại z:
f

.r/

.z/ 

.r/
PN .z/

D

N
X

.r/

fk Lk .z/:

kD1

Bởi vì các hệ số trong biểu thức này chỉ phụ thuộc vào các nút, ta có ở đây một công thức mà có thể dùng
cho bất kỳ hàm f .x/ nào.
Nhận xét 3.2 Các chặn sai số như (3.20) có thể được thiết lập cho các đa thức Hermite (xem [2]). Dùng
ký hiệu như trên, nếu f có đạo hàm cấp bốn với x bất kỳ trong khoảng Œxn ; xn C h, thì với M4 D
maxxnxxn Ch jf .4/ .x/j ,
1
M4 h4 ;
384
p
3
jf 0 .x/ H 0 .x/j 
M4 h3 ;
216
1
jf 00 .x/ H 00 .x/j 
M4 h2 ;
12
1
jf 000 .x/ H 000 .x/j  M4 h4 :
2
jf .x/

H.x/j 

(3.21)
(3.22)
(3.23)
(3.24)

CHƯƠNG 3. NỘI SUY

64

3.3

Dạng Newton của đa thức nội suy

Cách biểu diễn đa thức nội suy dưới dạng Lagrange (3.2) tuy có tiện lợi vì sự phụ thuộc vào các fj đơn
giản, nhưng cách thức các nút xj xuất hiện lại không đơn giản chút nào. Đặc biệt, nó không tiện lợi khi
chúng ta không biết trước bậc của đa thức xấp xỉ. Vì vậy một dạng khác do Newton đề nghị thường được
dùng hơn trong thực hành. Dẫn chứng: hai loại phương pháp số được dùng rộng rãi khi giải bài toán
Cauchy cho phương trình vi phân thường là (1) các phương pháp Adams, và (2) công thức sai phân lùi
(các phương pháp Gear). Trong các phương pháp này, ở mỗi bước giải (lặp), các thuật toán tìm bậc thích
hợp nhất cho đa thức nội suy. Vì thế những thuật toán như vậy dùng dạng Newton của đa thức. Mặc dù
phương pháp thiết lập dạng Newton mới nhìn xem ra thật "kinh khủng".
Tỉ sai phân. Một thủ thuật cơ bản của giải tích số là đánh giá sai số về lượng (đánh giá hậu nghiệm) bằng
cách so sánh nó với một đại lượng được cho là chính xác hơn. Nếu PN .x/ nội suy tại các nút fx1; : : : ; xN g
và PN C1.x/ là nội suy tại các nút fx1 ; : : : ; xN ; xN C1g, thì trong các trường hợp phù hợp đa thức sau xấp
xỉ f .x/ tốt hơn và f .x/ PN .x/  PN C1.x/ PN .x/. Nếu ta không biết bậc thích hợp, điều này đề
nghị một cách tiến hành. Bắt đầu bằng đa thức hằng P1 .x/ D f1 nội suy tại x1. Từ PN .x/ đã tính, tính
PN C1 và dùng nó để đánh giá sai số của PN .x/. Nếu sai số đánh giá quá lớn, tăng bậc bằng cách nội suy
thêm tại nút khác và lặp lại quá trình. Thủ tục này là cơ sở của dạng Newton của đa thức nội suy.
Với mỗi n, đa thức nội suy Pn.x/ được xây dựng như là một "hiệu chỉnh" Pn 1 .x/. Vì Pn 1 .x/ có bậc
nhỏ hơn n 1 và Pn .x/ có bậc tối đa là n 1, hiệu của chúng phải là đa thức có bậc tối đa bằng n 1:
(3.25)

Pn .x/ D Pn 1 .x/ C Qn .x/:
Đa thức Pn.x/ nội suy tại x1; : : : ; xn

1

giống như Pn 1 .x/, như vậy với j D 1; : : : ; n

1,

fj D Pn .xj / D Pn 1 .xj / C Qn .xj / D fj C Qn .xj /:
Điều này ám chỉ x1; : : : ; xn
dạng

1

là các nghiệm của Qn .x/. Vì bậc của nó tối đa bằng n
Qn .x/ D cn .x

x1/.x

x2/    .x

1, Qn .x/ phải có

xn 1 /

với cn là hằng số nào đó. Đa thức Pn.x/ cũng nội suy tại xn :

fn D Pn.xn / D Pn 1 .xn/ C Qn .xn / D Pn 1 .xn / C cn
Vì các nút là phân biệt nên không có nhân tử .xn
fn
cn D Qn

n
Y1

.xn

xj /:

j D1

xj / nào bằng không, và
Pn 1 .xn /

1
j D1.xn

xj /

(3.26)

:

Các hệ thức (3.25) và (3.26) cùng với P1 .x/ D f1 cho dạng Newton của đa thức nội suy. Các hệ số cn
được gọi là tỉ sai phân cấp .n 1/ (.n 1/st order divided difference) trên các điểm x1 ; : : : ; xn, ký hiệu
cn D f Œx1 ; : : : ; xn :
Theo ký hiệu này dạng tỉ sai phân Newton là
PN .x/ D f Œx1  C f Œx1 ; x2.x x1 / C f Œx1; x2 ; x3 .x
N
Y1
Cf Œx1 ; : : : ; xN 
.x xj /:
j D1

x1 /.x

x2 / C : : :
(3.27)

xk 1.28) và f Œxi  D fi : Chứng minh.x/ nội suy f . xk 1 . S. và vân vân.xk xj /R2 . x3.x/. xk 1  xi (3. : : : .x/ trên xi C1. x2 x3 f Œx3  f Œx2 . Bảng tỉ sai phân cung cấp một phương sách tiện lợi để xây dựng các tỉ sai phân cần thiết: các hệ số của đa thức nội suy là các đại lượng dọc theo đường chéo. x4  D x4 x2 f Œx2 .xj xk xi xi /R1 .27) ta thấy hệ số dẫn đầu (hệ số của số hạng bậc cao nhất) của PN . Liên hệ này dẫn đến một thuật toán tính cn thuận tiện hơn (3. : : : . x3. x2 .xj / D . ta xây dựng bảng tỉ sai phân. x3 : Để thêm vào dòng mới tương ứng với nút x4. Bởi định lý 3. x4  ! f Œx2 . bậc của nó nhỏ hơn k i C 1. Định lý 3. x4  f Œx2 .x/ trên tất cả dữ liệu. x3 f Œx2 . : : : .x/ (3. Với j D i C 1. f Œxi .26). x3 f Œx1 .x xk xi xi /R1 . xk  xk f Œxi . xk 1 . Định lý dưới đây cho mối liên hệ giữa tỉ sai phân cấp n với một cặp các tỉ sai phân cấp . Kết quả (3. : : : . x4  ! f Œx1. Để minh họa cách dùng định lý này. Đa thức S.x/ C . k 1.x/ là đa thức bậc nhỏ hơn k i nội suy f . x4 f Œx1 .3.x/ là đa thức bậc nhỏ hơn k i C 1 nội suy f . x3  f Œx1 .xk / D fk . kế tiếp là tỉ sai phân thứ nhất. xk và cho R2 . x2.x/ một bậc.xj / C . xk  D f Œxi C1. x4 : Tổng quát.n 1/. bắt đầu bằng dữ liệu f Œx4  D f4 . x2  f Œx2 . Hơn nữa. thứ hai là fj . : : : . : : : . vì vậy S. x4  D x4 x1 f Œx3.xi / D fi và S. x3 .xj xk xi xi /fj D fj .x/ trên xi . Một số tác giả dùng điều này như là định nghĩa của tỉ sai phân cấp .3 Với các nút phân biệt fxj g và k > i bất kỳ.x/ D . Giả sử ba dòng và cột của tỉ sai phân đã được tính và được viết dưới dạng ma trận tam giác dưới như sau: x1 f Œx1  x2 f Œx2  f Œx1 . : : : . x4  D Chú ý cách thức tính toán ở đây x1 f Œx1  x2 f Œx2  x3 f Œx3  x4 f Œx1 .3.29) bằng hệ số dẫn đầu của vế phải. Rồi f Œx4  f Œx3  x4 x3 f Œx3 . x3  & & & f Œx4  ! f Œx3 .x/ là đa thức bậc nhỏ hơn k i nội suy f . x3. Cho R1 . DẠNG NEWTON CỦA ĐA THỨC NỘI SUY 65 Rõ ràng từ (3. xN .xj / D .xk xj /fj C .x/ trên xi C1.xk x/R2. x2 .29) có bậc tối đa hơn R1 . R2 .28) biểu diễn một cách đơn giản sự kiện hệ số dẫn đầu của vế trái (3.x/ là f Œx1 . x2 x3 f Œx1 . S. . x2. x3.N 1/. cột đầu của bảng tỉ sai phân là xj . Theo đó. : : : .1. S.

x2 . Không cần thiết phải lưu trữ toàn bộ bảng vì ta có thể dùng vectơ c để lưu trữ mục nhập (entry) trong dòng hiện hành j miễn là mỗi lần ta tính một đường chéo (và thực hiện các phép tính theo thứ tự chính xác): c(N)=f(N). x4 Ta thấy. . x2 .xn 1/Š j D1 xj /.n / Y .n Pn 1 . Trước hết tính các tỉ sai phân cần cho các hệ số của PN . x3  4 f Œx4 f Œx3 . Ngay khi các hệ số này được tính xong.xn / D . x3 . for j=N-1:-1:1 c(j)=f(j). . Áp dụng định lý 3.x/ D . x4  f Œx1.x 1:82/.2 cho Pn 1 . end Liên hệ giữa tỉ sai phân và các đạo hàm của f .x 2:50/.  2:02C0:19 4:03 1:82 D :83 Rồi theo (3.  fŒ.x/ tại x cho trước: P(N)=c(N).x/. và so sánh với bảng tỉ sai phân ở trên vectơ c j 1 4 3 2 1 f Œx1 2 3 f Œx2  f Œx1 . Thuật toán gồm hai phần.27).  0:00 1:30 1:00 1:30 2:50 D 1:91 1:82 3:10 1:30 1:56 1:91 3:10 3:65 2:50 D 1:56 D 0:19 3:65 1:82 2:52 3:10 1:53 1:56 2:52 4:03 3:65 D 1:53 4:03 2:50 D 2:02 fŒ.x 2:50/ 0:83.x 3:65/: Để tính toán hiệu quả ta nên đánh giá ở dạng xếp lồng vào nhau P4 . for k=N-1:-1:1 P(N)=P(N)*(x-x(k))+c(k). ở bước cuối cùng (j=1).x/. trước hết lập bảng fj fŒ. phần thứ hai của thuật toán là đánh giá PN .2.CHƯƠNG 3. NỘI SUY 66 Thí dụ 3.x 1:82/.x 1:82/ 0:19. for k=j+1:N c(k)=(c(k)-c(k-1))/(x(k)-x(j)). x4  f Œx2 .xn / f . . x3.x 1:82/f1:91 C . .5 x1 1:82 2:50 3:65 4:03 Với các dữ liệu từ thí dụ 3. vectơ c chứa các hệ số của đa thức nội suy. P4 .x/ D 0:0 C 1:91.n 1/ n 1 . x3 f Œx1. end end Để dễ hiểu ta xem "nội dung" vectơ c ở mỗi bước tính j. x2 f Œx3  f Œx2 .x 3:65/g: ı Thuật toán tìm dạng Newton.x/ với x D xn ta có f . trường hợp N=4.x 2:50/Œ 0:19 0:83.

dạng Newton của đa thức nội suy PN . xn . : : : .x/=N Š.3.xn / Pn 1 .x/ tại các nút này.x/ D NŠ j D1 Ta vừa thấy rằng PN C1.30) cho ta hiểu biết tốt hơn về việc đánh giá sai số mà ta thường dùng. nhân tử đạo hàm là vấn đề vì ta không biết x và thậm chí không biết cả f ./ . xn /: Tuy nhiên. Thường cách tiếp cận tốt nhất là giữ lại một số nút và đánh giá sai số chính xác f .x /wN .x1/ C 1Š f . : : : .xn / D cn n Y1 .3 1) Với cách tính hiệu quả tỉ sai phân trình bày trên và (3. Một là dùng (3. Vì wN . Một biến thể khác là so sánh với kết quả có cùng bậc nhận được trên một tập nút nội suy khác. Một đánh giá thực tế có thể đòi hỏi nhiều dữ liệu được giữ lại.x NŠ j D1 xj /: So sánh hai biểu thức này cho thấy nếu f .N x1 / C : : : C . Nhận xét 3.x 2Š f .n f Œx1 .n / 1/Š (3.xn xj /: j D1 Cân bằng hai biểu thức chứng tỏ rằng f .x/ D f Œx1. : : : . : : : .2.N / Y f . xn tiến tới x1.2/ .N 2 1/ . Tuy nhiên. sai số của PN .x/ đối với điểm x1: f .N / xj / D f .30) ta có một cách xấp xỉ đạo hàm của hàm f .x/ PN .x1 / . Khả năng khác là so sánh kết quả nội suy trên một tập các nút với kết kết quả nội suy có bậc cao hơn nhờ nội suy trên cùng một tập với một nút bổ sung.xn / D Pn . nghĩa là.27) liên hệ mật thiết với chuỗi Taylor của f .x/ PN .x/ PN .x1/ x1 / C . : : : .4 1 Định giá sự chính xác Làm thế nào biết được ta có xấp xỉ tốt? Ta đã thấy hai khả năng.6).30) với điểm n nằm trong miền dữ liệu x1 .x1 .x xj /: f . 3. 2) Đẳng thức (3.x/ D f .x1.N / không thay đổi nhiều trên miền dữ liệu.x j D1 N Y 1 . xN C1 N Y .x/ trở thành đa thức Taylor bậc N khi các nút x2 . N 1 .N /.x f .x/.x 1/Š x1 /N 1 C::: Như một hệ quả của (3.x/ mà chỉ biết giá trị của nó tại các điểm nào đó. xn  D .N / .x/ là một đa thức nên dễ dàng đánh giá tại x bất kỳ.30). : : : .x/ PN ./ . ta cũng có f . và khó mà rõ được dùng nút nào để nội suy và nút nào giữ lại để so sánh.4. Thông thường ta có một vài ý tưởng về dáng điệu của .n 1/ . f .x/ có thể được đánh giá bằng cách so sánh nó với PN C1. Theo định lý 3. 3) Dạng (3.x1/ . ĐỊNH GIÁ SỰ CHÍNH XÁC 67 trong đó min.1/ . xn / < n < max.xn / Pn 1 .

thì định lý chỉ . một vài dữ liệu được giữ lại.w/ như là đa thức nội suy tại các nút f10. nói chung. Thí dụ 3. Sai số của phép nội suy này được định giá bằng cách tính nó tại các nút còn lại ở đó ta biết giá trị của hàm: w 5 P6.4: Đồ thị hàm P6 . 20. các nhân tố khác thường làm cho điều này không thực hiện được. 100g.w/ 0:025 15 30 50 70 1:824 2:624 2:787 2:210 0:002 0:038 0:020 0:000 90 1:569 0:030 Đây có lẽ là kết quả tốt (hình 3.w/ tốt hay xấu như thế nào. Hình 3.w/ 1:201 V . Đáng tiếc. không phải là ý tưởng tốt.x/.2 đề nghị nâng bậc đa thức nội suy sẽ làm cho xấp xỉ chính xác hơn. Thí dụ minh họa dưới đây cho thấy dùng các đa thức nội suy bậc cao (nhiều điểm nút). Đặc biệt. 3. NỘI SUY 68 hàm đang xét.5). ta xác định P6 .w/ 1:226 1:498 1:882 2:138 2:622 2:840 50 60 70 80 90 100 2:807 2:542 2:210 1:877 1:539 1:201 Để xem P . 60.6 Bảng dưới đây cho độ nhớt tương đối V của ethanol như là hàm phần trăm của trọng lượng chất tan w w 5 10 15 20 30 40 V . Sai số phụ thuộc mạnh vào độ dài của khoảng chứa các nút. 40. Nếu ta có thể bằng cách nào đó làm giảm độ dài này.4).w/ P6. Một đồ thị của dữ liệu và nội suy là sự trợ giúp quan trọng trong quyết định xem phép nội suy có mô phỏng dáng điệu này một cách thích đáng không.5 Nội suy spline Công thức biểu diễn sai số của định lý 3. Nếu dùng tất cả 12 điểm nội suy thì kết quả không tốt (hình 3. 80.CHƯƠNG 3.

x/ điều này không chấp nhận được. Đa thức trên Œxn .3. Chẳng hạn.x/ trên khoảng con này. Tất cả điều cần làm là bao gồm các điểm mút của mỗi khoảng con vào các điểm ở đó f . xnC1 sẽ có giá trị f . và điều này chi phối bậc của spline. một xấp xỉ tốt nhận được trên toàn khoảng.9) có thể được dùng cho các khoảng con. Khoảng Œx1.5: Đồ thị hàm P6 .1 Spline gián đoạn và spline liên tục Các spline đơn giản nhất là những hàm xuất phát từ phép nội suy một cách độc lập trên mỗi khoảng con Œxn . Nói chung đa thức trên Œxn . xn . trong đó x1 < x2 < : : : < xN .x/j  .x/j.5. x1 xxN thì M4 4 h khi x1  x  xN : 4Š Khi h ! 0. ra rằng ta sẽ có một xấp xỉ tốt hơn. Điều này sẽ không đúng với các spline được đề cập đến sau này. xN . Trong một số hoàn cảnh spline phải được xây dựng trước khi tất cả dữ liệu có hiệu lực và đặc điểm này của phép xây dựng spline là cốt yếu. Một vấn đề then chốt là tại các gút hàm xấp xỉ trơn như thế nào.x/ bởi hàm đa thức từng mảnh. Một spline là một đa thức trên từng khoảng Œxn .x/ gồm các đa thức nội suy bậc ba trên các khoảng con. xn . Cụ thể hơn. Hiển nhiên thủ thuật cố định bậc và xấp xỉ hàm trên từng mảnh có triển vọng hơn cách xấp xỉ hàm trên toàn khoảng nhờ gia tăng bậc đa thức. các điểm fxi g được gọi là điểm cắt (breakpoint) hay điểm gút (knot). Dễ dàng sửa đổi cấu trúc này để nhận được một spline liên tục. xnC1.xnC1 xn / và M4 D max jf . jf .x/ và P12. hàm f .x/ được xấp xỉ trên Œx1. Nếu h D max. xnC1.5. Ý tưởng cơ bản của mục này là xấp xỉ f . 3.xn / tại xn và cũng vậy với đa thức trên Œxn 1 . vì vậy spline này nói chung bất liên tục tại các điểm gút. NỘI SUY SPLINE 69 Hình 3. xnC1. xN  được phân hoạch thành các khoảng con Œxn .x/ S. Cho nội suy spline S. xn  được dùng khi xây dựng spline trên khoảng con này. Chặn (3. vì vậy sai số chỉ phụ thuộc vào dáng điệu của f . Khi xấp xỉ một hàm liên tục f . xnC1 không trùng tại xn với đa thức trên Œxn 1 . xnC1 .4/ . giả sử rằng bốn nút bất kỳ được chọn trong mỗi khoảng con Œxn .x/.x/ được nội suy. nội suy kiểu này gọi là spline. Chỉ dữ liệu từ Œxn 1 .

x/ tại các gút.x/j  M2 h.x/ S 0 . 60  x  100 ı Hình 3. xnC1  với 1  n  N 1 dạng Lagrange là x xnC1 x xn S.33) . Thường việc này chiếm nhiều thời gian hơn việc đánh giá đa thức. đồ thị của hàm S.7 Với dữ liệu .x/ được yêu cầu nội suy f . 2:662/ . 2:542/ . 5  x  30 S. Nếu S.x/ mà kết quả tốt hơn khi h ! 0. 1:226/ . 1  n < N Vậy.x/ có thể dùng để đánh giá f 0 .5. nghĩa là. 30  x  60 : 2:542 0:03352.31) rất dễ đánh giá một khi khoảng con cụ thể được xác định. thì trên Œxn .x/ D 2:662 0:00400. 8 (3.30. 1:201/ ta có hàm spline tuyến tính là 8 < 1:266 C 0:05744.x 5/.x/ 1 S.x/ D fn C fnC1 xnC1 fn . Spline nội suy tuyến tính (3. S 0 .6: Đồ thị hàm spline tuyến tính. Sự hội tụ được bảo đảm khi h ! 0 nếu jf 00 j bị chặn. xn  x  xnC1. xn xnC1 xnC1 xn hay có thể viết lại là S.x/j.60.7. Với nội suy tuyến tính.32) trong đó M2 D maxx1xxN jf 00 . NỘI SUY 70 Spline liên tục đơn giản nhất là tuyến tính từng mảnh.x 30/.20) cho jf 0 .x 60/. một chặn sai số là jf . Một chứng minh tương tự dùng (3.CHƯƠNG 3. 1: (3. Tất cả các chương trình con đánh giá phải chứa một thuật toán tìm đúng khoảng con.100.x xn (3.x/j  M2 h2 khi x1  x  xN .31) xn /: Thí dụ 3.x/ là đường gấp khúc. thí dụ 3.x/ D fn C fnC1 .

xn  và Œxn .14) đa thức bậc ba được viết dưới dạng H.x/ tại điểm xn.24) đúng và chứng tỏ rằng xấp xỉ nhận được là tốt. Nếu đạo hàm cấp một phải liên tục thì các đạo hàm cấp một của hai đa thức bậc ba đang xét phải có cùng giá trị tại xn .3. Tiến hành như trong thiết lập (3. nhưng bây giờ giá trị của đạo hàm cấp một là tham số chưa biết mà ta phải chọn để có được tính đơn điệu.x/. Như đã biết spline H. Bây giờ chúng ta hãy biểu diễn dữ liệu khi chỉ có các giá trị f .5. ngoại trừ gần cực trị của f .x/ D an C bn . Cùng một chứng minh áp dụng cho đạo hàm cấp hai.15)-(3. Bằng cách nâng lên bậc ba và giữ đạo hàm cấp một liên tục. Ta kết luận với h đủ nhỏ. nhưng nó phải được tránh khi dùng spline để biểu diễn dữ liệu. trên mỗi khoảng con P40 . Trên mỗi khoảng con .x/ có đồ thị đẹp mắt nếu nó có đạo hàm liên tục và nếu nó giữ tính đơn điệu của hàm cho.18) với ký hiệu hn D xnC1 xn và n D . f . spline sẽ tái hiện hình dạng của hàm mà nó nội suy. một spline với đạo hàm liên tục được thiết lập xấp xỉ y.x xn /3 khi xn  x  xnC1.fnC1 fn /= hn ta được an D fn . với h nhỏ spline là lồi (lõm) giống như f . ta có thể nội suy f . Điều này không thành vấn đề khi dùng spline cho các phần tử hữu hạn.xnC1/.x/ với mọi x.x/ miễn là f 0 . 1  n  N 1.xn/. Mỗi khoảng con được đối xử cách độc lập. Vấn đề là phải tránh không cho những dao động xuất hiện trong dữ liệu. Thoạt nghĩ thì các spline tuyến tính bảo vệ tính đơn điệu.x/.5.x/ có cùng dấu với f 0 .xn /.3n 2bn bnC1 /= hn .bn C bnC1 2n /= h2n : (3. xn C h=2. với h đủ nhỏ. Vấn đề là đồ thị của chúng có thể có những "điểm góc".x/ với đạo hàm cấp một liên tục.34) .xnC1 / bằng đa thức nội suy Hermite bậc ba trên Œxn . dẫn tới kết luận ngoại trừ gần điểm uốn của f . với h nhỏ spline là đơn điệu tăng (giảm) giống như f .2 Đạo hàm cấp một liên tục Nếu ta có dữ liệu về đạo hàm. Đây là lý do giải thích tại sao nội suy spline thỏa mãn nhiều hơn nội suy bằng đa thức bậc cao. dễ dàng mở rộng cách tiếp cận của tiểu mục trước để nhận được một nội suy với đạo hàm liên tục. xn C h. Với mục đích biểu diễn dữ liệu một chọn lựa tốt là dùng đa thức bậc ba. nghĩa là P40 . f 0 . Làm điều này trên mỗi khoảng con ta được một spline H. NỘI SUY SPLINE 71 Các spline liên tục được dùng trong giải số bằng phần tử hữu hạn bài toán biên cho các phương trình vi phân cấp hai. xnC1. Nói cách khác.x/  f 0 . Chú ý rằng tham số bn chính là độ dốc của H.k/ . Bậc cao hơn cho xấp xỉ chính xác hơn.x xn /2 C dn . Các đa thức bậc ba trên Œxn 1 . Bằng cách lập nội suy Hermite bậc năm cho các dữ liệu này.21)-(3.x/. vì vậy các chặn (3. Kết quả tương tự có thể được thiết lập cho tất cả các spline bậc ba ta đề cập đến. Sai số của spline bậc ba liên tục xây dựng bởi nội suy cách độc lập trên mỗi khoảng con có thể được phân tích bằng cách dùng các biểu thức sai số thiết lập cho đa thức nội suy. Nhưng điều gì xảy ra nếu h không nhỏ? Khi dữ liệu là thưa? Cần phải đặt các điều kiện trên spline để bảo vệ hình dạng của hàm. : : : . Điều này đúng cho tất cả các spline bậc ba ta đề cập đến. xnC1  cả hai nội suy fn tại xn. Khi k D 1 bất đẳng thức trên ám chỉ rằng. 3 và các hằng số Ck thích hợp. cn D . Chẳng hạn. Liên quan đến phương trình vi phân ta thường phải xấp xỉ hàm y.x/.k/ jf .xi / là được biết và không có nhiều những giá trị như vậy. f 0 . dn D .x/ P4 .x/ và đạo hàm của nó tại các điểm xn .x/ 6D 0.x/. 3. Một nội suy "bảo vệ hình dạng" như vậy có thể xây dựng theo các đường của nội suy Hermite bậc ba. Như trong (3. ta tránh được các điểm góc. nhưng bậc cao hơn lại có thể có những dao động không mong đợi.x xn / C cn .x/ và y 0 .x/j  Ck h4 k với k D 0.

3. mà chắc chắn thuộc Œ0.xnC1/ D fnC1. Một cách toán học điều này là ˛n  0.36).hn 1 C hn / (3.1 rn /n 1  rn như đòi hỏi. Trong trường hợp như vậy có lẽ ta không nên đặt bất kỳ đòi hỏi nào lên độ dốc của H. Để giữ tính đơn điệu cần thiết là dấu của độ dốc của H. 3. Một số khác dùng (3. N 1. xnC1 .xnC1/ D bnC1 cho ba ẩn an .xnC1/ D fnC1 (3.36) khi n D 2. Tại các điểm cuối quy tắc đơn giản nhất là dùng b1 D 1 và bN D N 1 . Điều này cũng được phát hiện độc lập bởi Fritsch và Carson [6].xnC1 . : : : . tại các điểm cuối ˛1 D 1 và ˇN 1 D 1. Chứng minh điều kiện trên bao gồm việc nghiên cứu H 0 . N 1. Các giá trị cn và dn có thể được tính từ (3. Nếu n D 0. Kết quả hay dùng là [5] 0 bn D n 1 n rn n C . ta định nghĩa ˛n D bn =n và ˇn D bnC1 =n . 3. Với (3. fnC1/. xnC1. Việc chọn lựa mò mẫm có thể làm mất sự bảo toàn hình dạng của spline bậc ba gần những miền ở đó n 1 n < 0.xn . Đại lượng n là độ dốc của đường thẳng đi qua . N 1 lấy bn D 0 nếu n 1 n  0. : : : . : : : . Có 4. Điều kiện nội suy S.x xn/3 (3.3 Đạo hàm cấp hai liên tục Để xây dựng spline bậc ba trơn.CHƯƠNG 3. 3.1 rn /n (3. Thuật toán cho H. Một chọn lựa tốt hơn là dùng độ dốc cuối của nội suy bậc hai của ba điểm dữ liệu gần nhất (giả sử nó thỏa ràng buộc trên ˛ và ˇ). Nếu n 1 n < 0.x/ là hằng trên Œxn . 1  n  N đòi hỏi rằng khi 1  n  N 1 xn/ C cn .x/ D an C bn . Một điều kiện đủ trên ˛ và ˇ để giữ tính đơn điệu được phát hiện bởi Ferguson và Miller [4]. Một số người đề nghị dặt bn D 0 khi điều này xảy ra. cho các độ dốc bn D bnC1 D 0. ta viết S. NỘI SUY 72 Các phương trình này là kết quả phép giải ba điều kiện nội suy H. Khi n D 2. : : : .x 1. và H .5.35) 1 với rn D hn 1 C 2hn 3.35). Một điều kiện đơn giản đảm bảo tính đơn điệu được giữ là ˛n . cn .N xn /2 C dn . nghĩa là.35) và lựa chọn đơn giản cho b1 và bN dễ dàng chứng tỏ rằng các điều kiện đủ trên ˛n và ˇn được thỏa.x/ rất đơn giản. thì các độ dốc đổi dấu tại xn . ˇn 2 Œ0.37) 1/ tham số tự do phải được xác định. Có nhiều công thức cho ˛n và ˇn thỏa hạn chế này.1 rn /n 1  1 rn và ˇn 1 D 1 n  3 Œrn n C . 3.35) miễn là không có phép chia cho không. Tính bN .34) khi n D 1. Nếu n 6D 0.xnC/ D fn và S. Thật vậy.xn/ D fn . fn / và .38) . H. N 1. Tính b1 bằng bất kỳ công thức nào.x/ như là một hàm của ˛n và ˇn . và dn . Có vẻ hợp lý để ép H.x trên mỗi Œxn . với n D 2.x/ tại xn . các khả năng khác được cho trong [5]. 3. ˇn  0. rõ ràng 13  rn  23 vì vậy ˛n D n 1 1  3 Œrn n C .x/ tại xn và xnC1 giống như dấu của n tại các điểm đó. nếu khác tính bn từ (3. (3.

xN /. S. độ dốc chính xác hay độ cong cần đến ở đây thường được thay thế bằng xấp xỉ nội suy trong thực hành.x 0x1 1/ . 2  n  N Điều này cho N (3.N 1/ điều kiện lên 4. S.2/ D 4 và các điều kiện cuối S 0 .xN /.8 Cho S. S 00 . S 0 .N 1/ ẩn cho bởi (3.8.x1/.0/ D 2. xN . còn được gọi là điều kiện cuối. Loại (3).x/ thí dụ 3. Điều kiện (2) dẫn tới spline vật lý. Các điều kiện (1) và (3) hữu dụng chỉ nếu có thêm thông tin về f .x/ ở trên.38) bảo đảm là S liên tục trên Œx1 . Trên mỗi khoảng Œxn . 1  x  2: 3 Dễ dàng kiểm tra rằng S thuộc lớp hàm C 2 Œ0.x/ D bn C 2cn . và thỏa các điều kiện nội suy S. ta có 4. Thí dụ 3.xN /.xnC/.39) 1: 2 điều kiện.N 1/ bậc tự do mà có thể được dùng để làm S. xN .7: Đồ thị hàm S.x1 / D f 0 .x xn / xn /2 (3.41) (3.x1/ D S 00 . Tuy nhiên. S 0 .xnC/.xN /.xn / D S 0 .xn / D S 00 .0/ D 1. Loại (2).x1 / D S 00 .x1 /.x1/ D S 00 .xN / D f 0 . NỘI SUY SPLINE 73 cho 2. Khi S 00 liên tục tại các gút trong.8. 2  n  N (3.42) . Loại (4). S 00 .x1/ D f 000 . xnC1 S 0 . S 00 .3. Các spline vật lý làm thẳng nhiều nhất có thể qua các điểm cuối.x/ D  2 C x 3x 2 C x 3. Điều này không đủ để có S 000 liên tục. 1 2. Phương pháp ma trận có thể dùng ở đây. Đồ thị của S và S 00 được cho trên hình 3. S 0 .5. Có nhiều khả năng cho hai ràng buộc bổ sung. Loại (1). Trở lại sự đặc trưng hóa S. S 00 . 2. Khi S 0 liên tục tại các gút trong.x xn / C 3dn .x S 00 . vì vậy còn lại N bậc tự do.2/ D 13. ı Hình 3. S 00 .37). S 000 . nhưng trước hết ta làm một số biến đổi.x/ trơn trên toàn bộ Œx1 . Chính xác còn lại 2 bậc tự do.xN / D f 000 .40) 1: cho N 2 điều kiện khác. trong khi đó S 00 có điểm góc tại gút x D 1.x 1/ C 5.1/ D 1. vì vậy nó trở thành đường thẳng với đạo hàm cấp hai bằng không.xN / D 0. Điều kiện (4) thích hợp khi f là tuần hoàn với chu kỳ xN x1. Chú ý rằng (3. Chú ý rằng đồ thị của S rất trơn.x/ D 2cn C 6dn .N 1/ điều kiện. Còn lại 2.7 và 3. S 0 .

46) . và sắp xếp lại ta được hn 1 cn ?nDN 1 C 2. Từ (3.45) 2: Chỉ các công thức cho dN 1 và các c1 . và cũng vậy fnC1 D an C bn hn C cn h2n C dn h3n mà có thể viết như sau bn D .8.41) ta có ngay bn D bn 1 C 2cn 1 hn 1 C 3dn 1 h2n 1 khi 2  n  N 1. Điều kiện liên tục (3.CHƯƠNG 3.cn 3 cn 1 /. NỘI SUY 74 Hình 3. 1  n  N (3. an D fn . cN 1 còn lại. Điều kiện nội suy cho. từ (3.37).44) và (3. 1  n  N cn hn (3.44) 1: Điều này khử đi một nửa số ẩn.39) và (3.45) cho: ?1nN 2 fnC1 fn hn cn hn 1 hn . 1nN 3hn 1 C 6dn 1 hn 1 (3.fnC1 fn /= hn dn h2n .x/ nói rằng 2cn D 2cn hay dn D cnC1 cn .43) 1.hn 1 C hn /cn C hn cnC1  fnC1 fn D3 hn fn fn hn 1 1  : 1 fN fN hN 1 1 cN 1 hN 1 dN 2 1 hN 1 D bN 2 C 2cN 2 hN 2 C 3dN 2 2 hN 2 : (3.40) trên S 00 . Thay vào (3. : : : .x/ thí dụ 3. Chúng được cho bởi hai điều kiện cuối và tính liên tục toàn cục của S 0 .8: Đồ thị hàm S 00 .cnC1 3 cn / D fn fn hn 1 1 C cn 1 hn 1 2 C hn 1 .

Hệ phương trình với ma trận các hệ số có dạng ba đường chéo có nghiệm duy nhất với mọi vế phải và nghiệm có thể được tìm chính xác bằng phép khử Gauss mà không cần hoán vị dòng.x/ là đa thức bậc ba trong mỗi Œxn .45) rồi thay vào biểu thức trên. c2 . Ma trận các hệ số có cấu trúc rất đặc biệt 2 3 2h1 h1 6 h1 2. .x1/ D 0I (3. tồn tại một và chỉ một hàm S.49) cho N 1 phương trình theo N ẩn c1 . (3.44).xn /. f 0 .c2 3 c1 /.3hN 1 C 4hN 2 /cN 1 C 2hN 2 cN 2 D 6 hN 1 hN 2 Các phương trình (3.x/ thỏa các điều kiện sau 1. (3.   fN fN 1 fN 1 fN 2 : (3. vậy 2h1 c1 C h1 c2 D 3 f2 h1  f 0 .3hN 1 C 4hN 2 / Ma trận như vậy được gọi là ma trận ba đường chéo.48) ở đây ta xấp xỉ f 0 .44).45).h1 C h2/ h2 7 6 7 : : : 7: 6 :: :: :: 6 7 4 5 hN 3 2.xN / dẫn đến. Từ (3. Định lý 3.xN / D S 0 . dk (k D 1. dùng (3. cN 1 . xnC1 . 1  n  N 1. f 0 .37). cN 1 N 2 tìm được. S. 1 nhờ công thức (3. Vế hai: 2 3 0   6 7 3 f3h2f2 f2h1f1 6 7 6 7 :: 6 7 : 6  7:  6 7 fN 1 fN 2 fN 2 fN 3 63 7 hN 3  5 4  hN 2 6 fNh fN 1 fN h1 fN 2 N 1 Với các c1 .x1 / D b1 D f1 f2 h1 c1 h1 d1 h21 D  f1 f1 f2 c1 h1 h1 1 h1 .fN fN 1/= hN 1 .47) Chỉ loại thứ nhất của các điều kiện cuối (độ dốc cho trước) được đề cập đến ở đây. 1  n  N . : : : .44) và (3. Tương tự. NỘI SUY SPLINE Biểu diễn dN được dN 1 D 2 và bN 1 h2N 1  75 2 theo cN fN fN hN 1.hN 3 C hN 2 / hN 2 2hN 2 .xN /  .4 Cho trước các gút x1 < x2 < : : : < xN và fn D f . : : : .x1 /  . : : : . và (3.5. tính các hệ số bk .45)-(3.3. N 1) theo các công thức tương ứng.f2 f1 /= h1 .47) và xấp xỉ f 0 .49) . ta cN 2 fN 1 fN hN 2 1 2 cN  1 hN 2 1 C hN 3 2  1 cN 3 2 hN 2  : (3.x1 / D S 0 .

Câu hỏi và bài tập 3.x/. S 0 .xn / D fn . S.x/ được gọi là spline bậc ba đầy đủ (complete cubic spline). 3. Điều này có mâu thuẩn với tính duy nhất của đa thức nội suy không? Giải thích. PN .x/ thuộc lớp C 2 Œx1 . 4. S. ma trận các hệ số có thể rất "xấu".x1/ D f 0 .3 Cho bảng dữ liệu 1 2 x f . Với sự chọn lựa (2). (a) Thuật toán 1 P:=c1 for i=2:N begin P:=P+ci  x i 1 end i Có bao nhiêu phép nhân được thực hiện trong thuật toán này? (b) Thuật toán 2 (dùng dạng xếp lồng vào nhau của PN . .x/  f . Viết thuật toán và chương trình tính.x/. Với điều kiện cuối loại (4) ma trận hệ số có dạng khác nhưng kết quả tương tự là đúng và spline có thể được tính một cách tiện lợi. 1  n  N . S. thì PN . 3. Với sự chọn lựa này của điều kiện cuối.xN / D f 0 . Ma trận hệ số có cùng cấu trúc cho các điều kiện loại (2) và (3) và các kết quả tương tự là đúng với chúng.x/ tại N điểm phân biệt. 3. : : : .xj / D fj với 1  j  N .x/ D c1 C c2 x C : : : C cN x N 1.x/ bậc hai cũng nội suy các dữ liệu này.N  3/ và tính toán trực tiếp để kiểm tra. Cho một thí dụ .x/) P:=cN for i=N-1:-1:1 begin P:=Px C ci end i So sánh số phép nhân của hai thuật toán.5 Có hai cách tính giá trị của PN .x/ là viết PN . S 0 .4 Một phương pháp khác để tính PN .2 Giả sử f .x1/. Tìm một đa thức Q. Chú ý.x/ D c1 C c2 x C : : : C cN x N 1: Các điều kiện nội suy. cho hệ gồm N phương trình đại số tuyến tính theo N ẩn c1 .1 Bậc của đa thức nội suy Lagrange luôn luôn bằng N 1? Nếu không. Chứng minh rằng nếu PN . S. cN .xN /.x/ được gọi là spline bậc ba tự nhiên (natural cubic spline).x/ nội suy f . NỘI SUY 76 2. 3. xN .x/ 2 4 Xây dựng đa thức nội suy Lagrange P2 . hãy minh họa bằng một thí dụ.CHƯƠNG 3.x/ là đa thức bậc nhỏ hơn hay bằng N 1. 3.

b) dùng phương pháp ma trận trong bài tập 3. 5.x/: . 3.1.27). .x/ có bậc N (a) Chứng minh .4.x/  PN . Dáng điệu của sai số khi N lớn hơn? 3. N D 21.N 1/ 1 nên PN 1/ . .j 1/=m cho xấp xỉ xấu hàm Runge trên Œ 5. Như trong bài tập trên.N 1/ . Sai số tăng hay giảm khi m lớn hơn. 5 với N D 15. 3.N 1/Š N X kD1 (b) Khi N D 2 xấp xỉ của f 0 . m D 10.N 1/ PN . tính giá trị cực đại của jf .x/ D .x/ PN .10 Cho bảng dữ liệu x f 1 0 1 2 2 2 2 5 tính P4 . Dùng cùng fxj g và cùng ba giá trị m như câu a).x/ là gì? fk j 6Dk .xk Q xj / : 3. Kiểm lại rằng đa thức này giống đa thức ở dạng Lagrange.x/j trên một tập hợp nhiều giá trị x (không là điểm nội suy) trong Œ 5. b) Lập lại câu a) nhưng lần này chỉ tính trên Œ 1.x/ với các trường hợp như bài tập 3. 1. và m D 13.3.6 Đạo hàm của f . c) ở dạng tỉ sai phân (3.10.x/j trên một tập hợp nhiều giá trị x (không là điểm nội suy) trong Œ 5.x/ có thể được đánh giá nhờ đạo hàm tương ứng của PN . a) Tính giá trị cực đại của jf . 3.13 Viết chương trình tính đa thức nội suy ở dạng tỉ sai phân Newton.5.14 Số phép tính để đánh giá các hệ số trong dạng tỉ sai phân của đa thức nội suy là bao nhiêu? Số phép tính để đánh giá giá trị PN .11) cho xấp xỉ tốt hàm Runge.N Vì PN . 3.x/ a) ở dạng Lagrange (3.18).x/ P2mC1 .2).x/ phải là hàm hằng.11 Cho bảng dữ liệu x f 2 4 1 0 1 2 1 1 2 10 tính P5 . 3.x/ cho dữ liệu của thí dụ 3. NỘI SUY SPLINE 77 3. và N D 27.9 Kiểm tra bằng các dùng nội suy đa thức tại các điểm Chebyshev (3.15)-(3.7 Thiết lập các phương trình (3.x/ là bao nhiêu? So sánh với dạng Lagrange. 5 với m D 7.x/ với cách chọn của N và fxn gN nD1. Lần này thì điều gì xảy ra khi N tăng? 3.8 Kiểm tra bằng cách dùng nội suy đa thức tại N D 2m C 1 điểm cách đều xj D 5 C 5. Cách tiếp cận thông thường là f .12 Tính bảng tỉ sai phân và P3 .

NỘI SUY .78 CHƯƠNG 3.

f . Hầu hết chương này được dành cho trường hợp f . Thật vậy.m/ f .˛/ D 0.˛/ D : : : D f .˛/ 6D 0. một vài phương pháp đơn giản được bàn luận cách vắn tắt ở cuối chương. (4.x/ có thể được biểu diễn dưới dạng ˛/m g.x/ f . Một nghiệm được mô tả đầy đủ hơn bởi bội m của nó. nghiệm được gọi là đơn (simple).˛/ C .x/ D f .1) có ˛ D 1 là nghiệm bội 1=2 (và ˛ D 0 là nghiệm đơn).x .x/.m 1/ .x ˛/f 0 .x (4. Điều này được thấy bằng cách khai triển f .x ˛/m 1 .x/ có đạo hàm đến cấp m liên tục trêân một khoảng chứa ˛ và 8 < f . Điều này có nghĩa là với x đủ gần ˛. là số ˛ sao cho f .x/ là hàm thực liên tục gần ˛ và g.x/ đủ trơn.x/ là hàm thực liên tục theo một biến thực x vì nó quan trọng và có thể được bàn luận một cách sơ cấp. : .m C f . Định nghĩa cơ bản thừa nhận m là hữu tỉ. mŠ .1).1 Nhập môn Nghiệm của (4.x/ D .1) f .3) f 0 .˛/ C : : : ˛/m . phương trình (4. nếu f . Nếu m D 1.m/ f . 4. Tuy nhiên.Chương 4 Nghiệm phương trình phi tuyến Tìm nghiệm của hệ phương trình phi tuyến (4. nếu khác được gọi là bội (multiple).˛/ 6D 0.x ˛/2 f 00 .˛/ D 0.x/ D x x 1. thì ˛ là một nghiệm bội m. hay không điểm của f .x/ D 0 là công việc thường gặp trong tính toán. Chẳng hạn. thì m phải là nguyên dương.˛/ C 2 . với hàm p f .x/ thành chuỗi Taylor trong lân cận ˛ f .m 1/Š 1/ 79 .2) trong đó g.x /.˛/ D 0. nếu f .˛/ C . Trường hợp tổng quát n phương trình n ẩn số thì khó hơn cả về lý thuyết lẫn thực hành. Tuy vậy lý thuyết cũng được trình bày ở đây.˛/ D f 00 .

Với một nghiệm số bội cao như m D 10.x/ D . cho F . Vài con số giúp chúng ta hiểu điều này. f . NGHIỆM PHƯƠNG TRÌNH PHI TUYẾN 80 trong đó x nằm giữa x và ˛.4) Nếu ta lấy g.z/ underflow trong số học chính xác đơn IEEE.x/ không triệt tiêu tại cả hai nghiệm. Theo định nghĩa của nghiệm ˛.1: m.2) và đặc biệt.z/ triệt tiêu. Các sự kiện này và tính liên tục của hàm f báo cho ta biết khi D 0. Giả sử f .x/ D f . đồ thị của f .1 x/ exp.m/ . hàm f . đặc biệt khi nó xấp xỉ một nghiệm bội ˛.˛1 ˛2 /G. Xét một trường hợp đặc biệt của họ các bài toán dạng 0 D f . thì g.x/ ! .˛/.CHƯƠNG 4. Nhận xét này và hệ thức (4. với nghiệm của f .m/ . phương trình trên thành f . Để hiểu sự thực hiện của chương trình (mã) đặt cơ sở trên các phương pháp này.m/ f . các phương pháp chuẩn không có hiệu quả đối với nghiệm bội như chúng là đối với nghiệm đơn.x/ phải triệt tiêu tại nghiệm.z/  .x ˛1 /.x/ có hai nghiệm đơn ˛1 6D ˛2.x/ đủ trơn trong lân cận ˛ để có thể dùng (4.x/ là bội. thì nghiệm nếu có phải là nghiệm đơn. Dễ thấy rằng phương trình có một nghiệm bội chỉ khi D e 1 và nghiệm là bội 2 (nghiệm kép). Dùng (4. Khảo sát hàm số và vẽ phác đồ thị của nó là cách thường dùng để định vị các nghiệm và xác định bội của chúng.x/ không đổi dấu trong lân cận của ˛ vì nó liên tục và f . 1/ và một thì lớn hơn 1. f .x ˛1 / C .x/ D x exp.0.x/: .4) chứng tỏ rằng nếu m chẵn.x/ tiếp xúc với trục x tại ˛ (hình 4. Khi nghiệm là bội m.x ˛1 /Œ. một nằm trong .0/ D là âm.m/ . khi x ! 1. f . Vì vậy. nghiệm là bội nguyên.z ˛/m g.z/ D 10 40 g.x/ D F .x/ cắt trục x tại ˛. Định nghĩa cơ bản và một chút chứng minh chứng tỏ rằng f .˛/=mŠ 6D 0.x ˛2 /G. x/ và một giá trị đại diện của là 0:07.x/ D 0 chỉ tại x D 1 có nghĩa là đây là vị trí duy nhất ở đó hàm số có thể có nghiệm bội.˛/j  1. Thì nếu jg.4) thay vì dùng định nghĩa cơ bản (4. f . Với họ này. hàm f . Cũng vậy. Một nghiệm xấp xỉ z làm cho giá trị tính toán f . Với họ các hàm số. bất cứ đâu mà hàm số tăng ngặt hay giảm ngặt. có đúng hai nghiệm đơn. sự kiện f 0 .1/ D e 1 là dương với D 0:07.x/ D . Sau hết. f 0 . Tại cực trị f . cần thiết hiểu rõ rằng các nghiệm gần nhau có vẻ giống như nghiệm bội. Ta sẽ luôn giả sử rằng f . x/.x/ với G. 07. Từ đạo hàm cấp một. Nói chung.x/ D . Như ta sẽ thấy.1). f . một xấp xỉ chính xác nhất giống như z D ˛ C 10 4 dẫn đến f .x/ tiếp xúc với trục x tại ˛ nhưng không đi qua điểm đó và nếu m lẻ. Với nghiệm bội Hình 4.x ˛/m . Biểu thức này có thể được viết f .˛/.m/ .3).x /: mŠ (4.z/ D 0 thì không hiếm.x/ D . có thể thấy rằng f tăng ngặt khi x < 1 và giảm ngặt khi x > 1.x/ với tham số > 0.˛/ 6D 0. f .x /=mŠ.˛/ D f .x/ ! 1 và khi x ! C1. f 0 . mục đích là phải tìm z làm cho f .

x/ D 0 là quyết định khi nào một xấp xỉ z là đủ tốt. Hiển nhiên z là nghiệm chính xác của bài toán 0 D F . Điều này có thể được phá vỡ bằng cách tính nghiệm của hàm được lấy tỉ lệ F .x/ D 180 cos. Dễ thấy nếu ˛ là nghiệm của f .z/ mà với ngay cả một nghiệm xấp xỉ tốt vừa phải z sẽ gây ra underflow trong số học chính xác đơn IEEE. Nếu f .M /f . Phương pháp chia đôi (hay tìm kiếm nhị phân) dựa trên sự kiện này. Thỉnh thoảng một độ đo tỉ lệ tự nhiên được cung cấp bởi hệ số trong phương trình. nhưng nó có kỳ dị biểu kiến ở đó và cần một chút cẩn thận khi đánh giá nó.x/ là không điểm của f . nhưng nó có thể lấy thêm nghiệm ngoại lai từ g.M / D 0.x/  .z/ D F .x/ D 1=f .M / < 0 hoặc f .x/ được đánh giá tại điểm giữa M D . Lấy tỉ lệ hàm này với g.x/ có thể tạo một khác biệt hoàn toàn.˛/ 6D 0.x/.z/ có thể được dùng trong phân tích sai số lùi. hàm f .2. Điều này có thể đơn thuần chỉ là chọn hệ đơn vị. Một thí dụ cho điều này là họ các bài toán f . Các nghiệm bội thể hiện khó khăn vì hàm gần như phẳng trong một khoảng lân cận của nghiệm.x/ D 10 38 sin. thì nó có ít nhất một không điểm trong khoảng giữa B và C .x/ 0 .x/ có tất cả các nghiệm của f .x/ D 0 là tương đương về mặt toán học.=10/ cos. Trong trường hợp đầu .B/f . một không điểm được tìm thấy.x/= cos.x ˛1 /2 G. Giống như khi giải phương trình tuyến tính. 4. với > 0. Nếu f .x/ D 0 và F . f . Cần giữ trong trí rằng như với thí dụ này.x/: Một khái niệm từ lý thuyết biến phức liên hệ với nghiệm bội m là cực điểm (pole) bội m. PHƯƠNG PHÁP CHIA ĐÔI Khi x xa các nghiệm theo nghĩa jx kép vì 81 ˛1j  j˛2 ˛1 j. Hàm f . F .x/.x/ f .x/. Nếu jrj là nhỏ so với j j. Hàm này có nghiệm nơi sin. thì nó là một cực điểm của F . cặp nghiệm đơn "có vẻ" giống như cặp nghiệm f . Nó chấp nhận z như một nghiệm khi jf . ta chọn một tỉ lệ.4. Chẳng hạn.C / < 0. Một khó khăn trong tính toán nghiệm của f . nhưng còn liên hệ tới cách chúng ta đặt phương trình. hai bài toán sin. Với những bài toán như vậy chúng ta có một cách hợp lý để chỉ định thặng dư phải nhỏ như thế nào. MATHCAD làm điều này một cách chính xác. Vấn đề không chỉ liên hệ tới điều kiện của nghiệm.B/f .x/ D .1. trong đó G.x/ triệt tiêu và cực điểm nơi cos.2 Phương pháp chia đôi Nếu hàm liên tục f .x/ có dấu đối nhau tại các điểm x D B và x D C .x/ D cos.x// làm cho việc tính nghiệm trực tiếp hơn.x/ triệt tiêu. và ngược lại.=10/ và một kỳ dị biểu kiến tại x D 0. Việc đưa vào một tỉ lệ g. Đó là lời khuyên rất hữu ích khi đối xử với các kỳ dị thực hay biểu kiến. Thường ta lấy tỉ lệ các bài toán mà không suy nghĩ chút nào về vấn đề này. thặng dư r D f .B C C /=2 của khoảng.x/ D sin. Thặng dư f .=10/ sin.x/ D sin. thì ta nói rằng ˛ là một cực điểm của F . nhưng thường ta dùng sự kiện rằng không điểm bất kỳ của f .=10/ cos.z/j < TOL.x/. Nếu ta có thể viết F .x/g. thì z là nghiệm chính xác của một bài toán gần với bài toán cho.x/ .C / < 0.x/ D F .x/ x Hàm này có một cực điểm đơn tại tất cả những điểm mà ở đó cos. Một thí dụ quen thuộc là tan.x/ bội m.x/=x có dáng điệu hoàn toàn tốt tại x D 0 (nó là giải tích). Nếu khác. nhưng phương trình thứ hai được lấy tỉ lệ xấu vì sự hình thành F .x/. trong đó 0 D C r.cos.x/ cùng số bội. Khi thiết lập bài toán.x/ bội m. nhưng một tỉ lệ tốt có thể hoàn toàn hữu ích. Một thí dụ đáng kể hơn được cung cấp bởi phương trình   1 1 cos. vẽ trên hình 4.z/ có vẻ là cách hiển nhiên để khẳng định chất lượng của một nghiệm xấp xỉ.x ˛/ m G.x/ D x.x/. Các hàm đổi dấu tại cực điểm có bội lẻ.x/ D xf . với TOL D 10 3 là giá trị mặc nhiên. Điều phiền nhiễu với kiểm tra thặng dư là không có thang đo hiển nhiên.

Thủ tục được lặp lại cho đến khi định vị được nghiệm với độ chính xác mong muốn.0 6. và trong trường hợp thứ hai có ít nhất một nghiệm ở giữa C và M .3125 1.5 0.0 1. NGHIỆM PHƯƠNG TRÌNH PHI TUYẾN 82 Hình 4.453125 p 2.40625 1.0 3. Thuật toán chia đôi until abs(B . Với B D 0.5 1.2: có ít nhất một không điểm ở giữa M và B. mặc dù chiều dài jB C j giảm một nửa ở mỗi bước ı Một nghiên cứu sâu hơn về phương pháp chia đôi cho thấy một số điểm quan trọng để hiểu các phương pháp tìm không điểm.5 1. phương trình (4.0 0.125 1. C D 6. .75 1.40625 1.1 Khi f .x/ D x 2 chia đôi 2.CHƯƠNG 4.5 1. thủ tục j˛ M j 0:16  101 0:86  10 1 0:66 0:29 0:10 0:80  10 2 0:39  10 1 0:15  10 1 Chú ý dáng điệu thất thường của sai số. như trong hình 4.0 0.2. Trường hợp này một khoảng chứa nghiệm được tìm thấy có chiều dài bằng nửa chiều dài khoảng ban đầu.1) có nghiệm đơn ˛ D B C 0. những điểm mà ta cần biết khi phát triển một thuật toán nhằm có được cái tốt nhất từ nhiều phương pháp.5 1.C) đủ nhỏ hay f(M) = 0 M = (B + C)/2 if f(B)*f(M) < 0 then C=M else B:=M end until Thí dụ 4.

. Nhưng nếu được yêu cầu tìm nghiệm trong Œ4.x/ có một nghiệm trong khoảng". Điều này là do độ chính xác hạn chế của phép tính dấu chấm động. nó sẽ không gặp khó khăn. sự đổi dấu sẽ bị loại và f sẽ có cùng dấu tại các điểm cuối. các xấp xỉ tính toán sau đó sẽ ở trong lân cận của nghiệm. 7.C / < 0.x/ liên tục. phải có một số lẻ các không điểm bội lẻ và có thể có vài không điểm bội chẵn giữa B và C .C / < 0 được gọi là khoảng giữa hai điểm trên dưới (bracket). nếu mã phép chia đôi được cho trước hàm tan. Trong thuật toán trên. Ngay cả như vậy. Nếu ta đồng ý đếm số không điểm theo bội của chúng (i.x/ một cách chính xác tại điểm cực và nơi có overflow). Và. hay một trong các giá trị tính toán f . Đồ thị của hàm số f . Trong nỗ lực này. Vậy nếu.z/ tính toán triệt tiêu. Một cài đặt cẩn thận thuật toán chia đôi đưa vào một số vấn đề đã được đề cập đến trong chương 1. có thể xảy ra rằng khoảng giữa hai điểm trên dưới đã chọn trong phép chia đôi không chứa nghiệm. f . nó sẽ định vị cực điểm hoặc gây ra overflow. (2) kiểm tra cho sự đổi dấu không được lập trình như kiểm tra f .C / < 0 vì khả năng underflow của tích. Chúng ta thấy ở đây lý do khác để định tỷ lệ (scaling): loại bỏ các cực . Chúng ta thường cố gắng tìm một nghiệm xấp xỉ z để cho f .x/ không liên tục.x/ D x 2e3x cách. 7. một không điểm bội m được đếm như là m không điểm). Như vậy.B C C /=2. Vì mã phép chia đôi không chú ý tới các giá trị của hàm. Diễn ngữ "chính xác như độ chính xác cho phép" ở đây có nghĩa là f .e. Một giả thiết cơ bản của phương pháp chia đôi là f .B/. có: (1) kiểm tra cho các giá trị chính xác bằng không.B C /=2 vì nó dễ để tính và chính xác hơn M D .B/f . độ dài từ (word) hữu hạn phải được tính đến và vì vậy phải chi tiết thủ tục đánh giá f . PHƯƠNG PHÁP CHIA ĐÔI 83 Một khoảng ŒB. tệ nhất là.z/ là nhỏ đến mức có thể. nếu được yêu cầu tìm nghiệm trong Œ4. Các không điểm bội chẵn giữa B và C không gây ra sự đổi dấu còn các không điểm bội lẻ thì cho. Hình 4.B/f . và (3) điểm giữa nên được tính như là M D B C .C / có dấu sai. Điều này là hời hợt.x/ và được yêu cầu tìm nghiệm trong Œ5. nó sẽ không nhận ra có nghiệm trong khoảng này vì sự đổi dấu do cực điểm đơn loại bỏ sự đổi dấu do nghiệm đơn.B/f . Không có gì ngạc nhiên phương pháp có thể thất bại khi f . Nếu giá trị tính toán của hàm có dấu sai vì đối số rất gần nghiệm. nó không thể nói sự khác nhau giữa cực điểm bội lẻ và nghiệm bội lẻ (trừ phi nó "nỗ lực" đánh giá f .3 chỉ độ lớn thất thường và dấu của các giá trị hàm khi giá trị là quá nhỏ đến Hình 4. 3x 2e2x C 3xex 1 bằng nhiều nỗi bản chất rời rạc của hệ thống số dấu chấm động trở nên quan trọng. thì ta thấy có một số lẻ các không điểm giữa B và C .C / < 0. chẳng hạn.x/ cho ta nhiều thông tin hơn là nhận xét "f .4. C  với f .2. Người ta thường nói rằng mã thuật toán chia đôi sẽ sinh ra một khoảng có độ dài chỉ định chứa nghiệm vì f .B/f . 5. Cuối cùng ngay cả dấu của giá trị tính toán có thể không chính xác. Nên được lượng hóa bằng cách nói rằng điều này là thực. f . Nếu có một số chẵn các không điểm bội lẻ giữa B và C .3: Kết quả đánh giá dấu chấm động biểu thức f . hay nghiệm đã được tìm thấy chính xác như độ chính xác cho phép.

x/ tại xấp xỉ xi trước và xấp xỉ tiếp theo (lặp) xi C1 là nghiệm của L. Vì lẽ này phương pháp được gọi là cát tuyến. f . Ở đây điều này được thực hiện bằng cách F .xi / (4.z/ của một nghiệm z được đưa ra .6) Về mặt hình học cách làm này tương đương với việc xấp xỉ f . Nếu có một số lẻ không điểm giữa B và C . dù không phải là tất cả. f .xi 1 .3 Phương pháp Newton .x/.x xi /. Phép chia đôi có một số ưu điểm. Một cách tương đương. Nó có thể bị đánh lừa bỡi các cực điểm. phương trình xấp xỉ cho nghiệm (giả sử f 0 . Vì lẽ khả năng xảy ra việc xác định cực điểm bội lẻ.5) Khi việc tính f 0 . Một bất lợi chính là với các không điểm đơn. Phép chia đôi cũng có một số hạn chế.x/ D 0. f . Đặc biệt. Nó hội tụ khá nhanh và tốc độ hội tụ độc lập với bội của nghiệm và tính trơn của hàm. 4. nhưng một số phương pháp tính nghiệm tốt hơn khi nghiệm gần giá trị đề nghị. Chú ý.xi /. Dễ lựa chọn khi nào xấp xỉ là đủ tốt.x/ D 0.z/ khi thực sự nó dẫn đến một giá trị rất lớn! Mã chia đôi có thể hội tụ tới cực điểm vì nó không dùng giá trị f .xi 1/ (4. xấp xỉ f . Bây giờ chúng ta tiếp tục với hai phương pháp tốt hơn phép chia đôi về. f 0 . Phương pháp đối xử tốt với độ chính xác hạn chế. Không có cách đáng tin để tìm một nghiệm riêng cũng như không có cách tìm tất cả các nghiệm.CHƯƠNG 4.xi 1// và . .x/ của f .xi .x/ tan. mà thường xảy ra như vậy.x/ bằng đường thẳng L. nó không thể tìm không điểm bội chẵn ngoại trừ do sự cố.xi / 6D f .x/ bằng cát tuyến đi qua hai điểm lặp trước đó.M /.phương pháp cát tuyến Phương pháp chia đôi không tổng quát hóa cho hàm biến phức cũng như không dùng cho các hàm nhiều biến. NGHIỆM PHƯƠNG TRÌNH PHI TUYẾN 84 điểm lẻ bằng cách định tỷ lệ loại sự đổi dấu mà có thể làm cho phép chia đôi xác định cực điểm lẻ thay vì không điểm.xi / f . .x/ D 0 bởi nghiệm của L.xi / xi f .xi /  f .sẽ rất lúng túng để khẳng định z dẫn đến giá trị rất nhỏ của f . Các phương pháp khác sự hội tụ là nhanh hơn nhiều khi nghiệm là đơn và hàm là trơn. nó sẽ không nhận ra có bất kỳ không điểm nào vì không có sự đổi dấu. nhưng chúng làm việc không tốt nếu những điều kiện này không được thỏa. vài khía cạnh. Miễn là một khoảng giữa hai điểm trên dưới ban đầu có thể được tìm thấy.xi / : f 0 . Phương pháp Newton lấy tiếp tuyến L.5) thành xi C1 D xi f . có các phương pháp hội tụ nhanh hơn nhiều.xi / gặp bất tiện hoặc quá quá phức tạp ta có thể dùng tỉ sai phân để xấp xỉ nó. Vì điều này tốc độ hội tụ của nó là như nhau dù nghiệm là đơn hay không và dù hàm số là trơn hay không. Cả hai phương pháp xấp xỉ f .x/ D sin.x/ bởi số hạng tuyến tính của khai triển Taylor tại xi . Đây là sự khó chịu với tất cả các phương pháp. mà chỉ dấu của nó.xi / xi Nếu f .xi 1/ thì (4.xi //.x/ D cos. nó sẽ hội tụ bất chấp khoảng ban đầu chứa nghiệm lớn đến đâu đi nữa.x/ và rồi xấp xỉ nghiệm của phương trình f .xi 1/ : xi 1 xi 1 : f . phương pháp cát tuyến cần đến hai giá trị lặp trước đó trong khi phương pháp Newton chỉ cần một. nên cẩn trọng khi dùng mã chia đôi để kiểm tra thặng dư f .x/  f .xi / C f 0 .xi / 6D 0). xi C1 D xi f .

3.PHƯƠNG PHÁP CÁT TUYẾN Hình 4.5: Phương pháp cát tuyến.4: Phương pháp Newton. Hình 4.4. PHƯƠNG PHÁP NEWTON . 85 .

xi ˛/ C .xi / Khi xi khá gần ˛ ta có nhờ công thức Taylor: f .˛/ D 0.˛/.6).˛/ Nếu xi gần nghiệm đơn thì sai số trong xi C1 cỡ một hằng số nhân với bình phương sai số trong xi .1) ı Trong trường hợp phương trình f .˛/ C f 0 . Kết quả tính bằng phương pháp Newton. Vì ˛ là nghiệm đơn nên f . Từ (4. Lấy x1 D 2.xi ˛/ : 2f 0 .x/ D 0 bằng hai phương pháp Newton và cát tuyến. và như vậy.˛/ C .xi / : f 0 .xi 2 f 00 .˛/: ˛/2 . Giải phương trình f . lấy x1 D 2: i xi j˛ xi j 1 2:0 0:5858 2 1:5 0:0858 3 1:41666666666667 0:0025 4 1:41421568627451 2:1239  10 5 1:41421356237469 1:5947  10 6 12 Kết quả tính bằng phương pháp cát tuyến.˛/.˛/  .xi 2˛/ f 00 .x/ D 0 có nghiệm đơn ˛ thì phương pháp Newton và phương pháp cát tuyến hội tụ nhanh hơn phương pháp chia đôi trước đây. 2 ˛ xi C1 ˛ xi C1 f 0 .2 Cho f . Trước hết.˛/ ˛/ 0 : 2f .x/ D x 2 2.xi /  f 0 . Tương tự với phương pháp cát tuyến (4.˛/ 00 2 f . Vì lý do này sự hội tụ của dãy lặp được gọi là hội tụ bậc hai.˛/ 6D 0.xi ˛/. f 0 .5) ta có ˛ xi C1 D ˛ xi C f .xi ˛/ C ˛/f 00 .CHƯƠNG 4. NGHIỆM PHƯƠNG TRÌNH PHI TUYẾN 86 Thí dụ 4.˛/  ˛ xi C f 0 . lấy x1 D 2. ta có ˛ xi C1  .xi 1 f 00 . x2 D 3.xi /  f .˛/ .˛/. ta xét phương pháp Newton.xi ˛/f 00 .˛/ C . x2 D 3: i 1 2 3 4 5 6 7 xi j˛ xi j 2:0 0:5858 3:0 1:5858 1:6000 0:1858 1:4783 0:0640 1:4181 0:0039 1:4143 1:1666  10 1:4142 3:5254  10 7 12 Qua thí dụ này ta thấy phương pháp Newton và cát tuyến nhanh hơn phương pháp chia đôi rất nhiều (so sánh với kết quả ở thí dụ 4.xi f 0 .

Chứng minh.7) lim với là hằng số khác không. Giá trị lặp xi C1 là không điểm của L. vì L. hội tụ tới không điểm đơn ˛ của f . với phương pháp Newton.4. PHƯƠNG PHÁP NEWTON .3.xi C1/ D 0 f .xi C1 xi / f 00 .9) (4.xi C1 xi / f 00 .xi / xi trong đó  nằm giữa xi 1 f .x/ không triệt tiêu. một dãy lặp fxi g hội tụ về ˛ được gọi là hội tụ bậc p nếu jxi C1 ˛j D .11) . x1 . chưa biết. Tổ hợp các phương trình (4. xi !˛ jxi ˛jp (4.11) ta thu được f 00 .xi C1/ L.xi C1 xi 1/.xi 1/ : f . xi . Theo công thức sai số của phép nội suy. xi C1.1 C 5/=2  1:618.8) với  thích hợp. f .xi / . với p D .xi / 1/f .xi 1/ (4.x/ trên tập fxi 1.xi C1 xi 1/.xi 1/ : 2Œf 0 .(4.6) với các giá trị lặp ban đầu x0. Nhưng nó nhanh hơn phương pháp chia đôi nhiều.1 Phương pháp cát tuyến (4.xi /f ./2 (4.8) .x/ nếu x0 .xi C1/ D . Chính xác hơn.x/ là đa thức bậc nhất nội suy f .xi 1/ 1/f ./ 2 hay. xi g. Như vậy. Mặt khác.10) Hệ thức thứ ba nhận được nhờ định lý giá trị trung gian cho đạo hàm: f . jxi C1 ˛j D C 6D 0: xi !˛ jxi ˛j2 p Đối với phương pháp cát tuyến.x/.xi C1/ D .xi xi f ./ f . từ (4.xi / . Gọi L././ 2 (4.6) ta có hai hệ thức: xi D xi C1 xi C1 xi 1 D .xi C1/ D f . x1 nằm trong đoạn đóng đủ bé chứa ˛ trên đó f 0 .x/ tồn tại liên tục và f 0 . ta có f .PHƯƠNG PHÁP CÁT TUYẾN 87 Phương pháp này hội tụ không nhanh bằng phương pháp Newton.x/ và f 00 .xi xi f . xi 1 và xi .xi 1/ D f 0 . có thể chứng minh lim jxi C1 ˛j D c 6D 0: xi !˛ jxi ˛jp lim Định lý 4. Trước hết ta thiết lập biểu thức liên hệ các giá trị hàm tại ba buớc lặp liên tiếp xi 1.

x0 /j D jf ./j  jxi ˛jm1 . 3   2  D  3 . 1 g < 1.˛/ C .xi C1/ ở trên cho jf . dễ dàng suy ra 2   2 . :: : i   ıi . NGHIỆM PHƯƠNG TRÌNH PHI TUYẾN 88 Dưới các giả thiết của định lý.13) ˇ ˇ p ˇ 1 p5 ˇ 1C 5 ˇ ˇ ˇ<1< ˇ ˇ 2 ˇ 2 1 ıi  p 5 p !i C1 1C 5 : 2 Như vậy. ıi ! 1. ta có jf 00 .xi /j D jf . Từ cách đặt của i và vì jf . và vì 0 <  < 1 nên i ! 0.2 /j  jx1 jf . trên khoảng thích hợp.12) và vì nghiệm cần tìm là nghiệm đơn. 0  m1  jf 0 . theo định lý giá trị trung gian cho đạo hàm.x1 /j D jf .xi / f .˛/ C . trong đó 2 Vì nên khi i lớn p !i C1 1 1C 5 ıi D p 4 2 5 p !i C13 1 5 5: 2 (4.xi /j M2 2m21 thì bất đẳng thức trên dẫn đến i C1  i 1i : Để ý rằng.xi 1 /j M2 : 2m21 Nếu đặt i D jf . nếu x0 .x/j  m2 (4.x1 ˛jm2 . ta có: ˛/f 0 .CHƯƠNG 4. .x0 jf . x1 đủ gần ˛. 4   3  2 D  5 . Từ đây.xi /jjf .x/j < M2 . nên các chặn ở đây và biểu thức của f .xi C1/j  jf .˛/j D jxi ˛jjf 0 . ˛jm2 : Điều này ám chỉ  D maxf0.1 /j  jx0 ˛/f 0 .

với một nghiệm bội m.xi f 0 . nếu xi gần nghiệm bội m (m > 1).x ˛/m 1 .5) 1 x2 D 2 . nghiệm của phương trình đang xét là căn bậc 20 của đơn vị. một giá trị lặp ban đầu tốt (gần với nghiệm chính xác) nhưng lại cho giá trị lặp tiếp theo rất xấu (rất xa nghiệm chính xác)! Cũng vậy.m/ f . TIÊU CHUẨN DỪNG PHÉP LẶP 89 ta thấy xi ! ˛. thí dụ này chỉ ra sự hội tụ bậc hai chỉ xảy ra khi các giá trị lặp đủ "gần" nghiệm.1=2/19 Vì tiếp tuyến hầu như nằm ngang. Đáng tiếc.4 Tiêu chuẩn dừng phép lặp Các thuật toán trình bày ở trên có thể cài đặt dưới dạng chương trình con. mŠ .4. ta trình bày một chương trình dạng function cho phương pháp cát tuyến. chậm hơn cả phương pháp chia đôi. Dùng phương pháp Newton với x1 D 1=2. phương pháp Newton chỉ hội tụ tuyến tính với hằng số . quá trình lặp có tốc độ rất chậm. Các phương pháp lặp hội tụ với tốc độ r > 1 được gọi là hội tụ siêu tyến tính (superlinearly convergent). Nhưng "quá" gần nghiệm thì số học có độ chính xác hữu hạn lại ảnh hưởng đến tốc độ hội tụ ı 4.m 1/=m.x/  . Nhận xét gì về quá trình tính.3 Phương trình x 20 1 D 0 có nghiệm đơn ˛ D 1.xi / m ˛/: Biểu thức này chứng tỏ rằng.xi /  . Thường dãy lặp được dừng theo một trong ba tiêu chuẩn sau: . để bảo đảm thuật toán dừng. xét trường hợp phương pháp Newton.˛/. Nhưng trước hết. tìm nghiệm xấp xỉ phương trình f . Tại sao 1 là nghiệm đơn của phương trình x 20 1 D 0 mà lại xảy ra như vậy? Thật ra. Với mục đích giới thiệu cách cài đặt thuật toán lặp.˛/: . Thí dụ 4. Thật vậy. ˛. nó không còn như vậy khi tính nghiệm bội. Ngay cả với nghiệm đơn. ta phải chọn tiêu chuẩn dừng cho phép giải lặp. Như đã thấy. Nếu ta lấy x1 D 1=2 thì từ (4.x/ D 0.m 1/Š f . Nhưng ở khoảng cách xa  26000 từ vị trí x2 thì các nghiệm này hầu như trùng nhau. Phương pháp Newton chỉ hội tụ bậc hai khi nghiệm là đơn. phương pháp Newton và phương pháp cát tuyến là hội tụ siêu tuyến tính khi được dùng để tính nghiệm đơn.1=2/20 1 D 26214:875: 20. trong mặt phẳng phức.x Điều này ám chỉ xi C1 ˛ D xi ˛ m 1 f . nếu xi  1 thì xi C1 D xi xi20 1  xi 20xi19 xi20 19 D xi : 19 20 20xi So sánh sự xấp xỉ nghiệm xi C1 19 xi C1 1   xi 1 xi 20 ta thấy xấp xỉ là bậc 1. ở đây.x/  f . thì ˛/m . nghĩa là 1 là nghiệm bội 20. gồm 20 điểm phân bố đều trên vòng tròn đơn vị.m/ 0 f .4.

người ta thường dùng tiêu chuẩn (1) hoặc (2). end if nargin<5. end case 2.tc 3. flag~=0 so buoc lap thuc hien flag=0. Cũng cần nhắc lại rằng. opt=3 . giải phương trình f . end if nargin<6. các i là độ chính xác cho trước. Trong function secantm. x2 . jxnC1 j Ở đây. NGHIỆM PHƯƠNG TRÌNH PHI TUYẾN 90 (1) jf .co. trường hợp nghiệm quá lớn hoặc quá nhỏ so với 1.tieu chuan dung. jxnC1 xn j < 3 . EPS=10^-12. if nargin<7.tc 1.opt. trace=0. function secantm còn cho phép in giá trị lặp trung gian nếu được yêu cầu thông qua biến trace.tc 2. trace=0. trace=0. trace=0 .varargin) % tim nghiem phuong trinh f(x)=0 bang pp cat tuyen % update: 11/11/09 % input: % f .sai so toi da % opt . Ngoài ra. người ta dùng tiêu chuẩn (3). xold1=x1.hai gia tri ban dau % N .x1. Trong thực hành. end if N<1. break. function [x. opt=1.N.trace. N=100. N=100.thặng dư bé hơn 1 . end if opt~=1&opt~=2&opt~=3.nghiem xap xi % flag .khong in.in day lap. opt=1 .xn /j < 1 . khi dùng tiêu chuẩn (1) . flag=0 . EPS=10^-12. xold2=x2. if abs(x-xold2)<EPS flag=k. if abs(f(x))<EPS flag=k break. ttrac~=0 in. switch opt case 1.khong giai duoc. end for k=1:N x=xold2-f(xold2)*(xold2-xold1)/(f(xold2)-f(xold1)).cần lưu ý đến cách chọn tỉ lệ khi thiết lập phương trình.x2.x/ D 0. opt=1.EPS. (2) jxnC1 (3) xn j < 2 .so lan lap toi da % EPS . dưới đây cho phép người dùng chọn tiêu chuẩn dừng cho phép lặp thông qua biến opt trong danh sách đối số. mac dinh=0 % output: % x . end if nargin<4.dieu khien ham cua ham f(x) % x1. . opt=1. mac dinh=1 % trace .CHƯƠNG 4. trace=0. opt=2 .flag]=secantm(f. opt=1.

Cho phép số lượng đối số bất kỳ cho một function. end xold1=xold2. Biến varargin là một mảng tế bào chứa các đối số tùy chọn cho một function.mảng (ma trận) tế bào.biến chiều dài danh sách đối số nhập. Cú pháp: dieukhien = @ten_ham dieukhien = @(ds_doiso)ham_nac_danh Mô tả: dieukhien = @ten_ham trả về một điều khiển tới hàm Matlab được chỉ định. Để truyền hàm f . và gán điều khiển tới biến xuất sqr. Khi ta gọi hàm này. nargin trả về số đối số nhập được dùng để gọi function. và rồi dùng x trong phương trình x. TIÊU CHUẨN DỪNG PHÉP LẶP 91 end case 3.x/ bằng đối số ta dùng biến điều khiển hàm. các đối số không được nhập sẽ gán các giá trị mặc định.x/ khi tính toán. ds_doiso là danh sách các đối số nhập. dieukhien. Bằng cách dùng biến này function secantm có thể được gọi với số đối số ít hơn 6.^2. Thí dụ. Ta có thể truyền các điều khiển hàm khi gọi các hàm khác.4. Để thi hành hàm sqr định nghĩa ở trên. Khi đó. Matlab gán giá trị ta truyền vào biến x. Đây là kiểu dữ liệu cho phép gọi tên và thao tác với một nhóm dữ liệu có nhiều kích cỡ và nhiều kiểu. gõ a = sqr(5) a = 25 ? Để việc gọi function secantm được mềm dẻo ta dùng biến varargin như chỉ ra ở trên. dieukhien = @(ds_doiso)ham_nac_danh xây dựng một hàm nặc danh và trả về một điều khiển tới hàm đó. lệnh dưới đây tạo một hàm nặc danh tìm căn bậc hai của một số. Thân của hàm. xold2=x. Ta cũng có thể lưu trữ các điều khiển hàm trong các cấu trúc dữ liệu để dùng sau này. ? nargin . Một điều khiển hàm (function handle) là một giá trị Matlab cung cấp một phương tiện gọi hàm cách gián tiếp. end Chú giải ? cell array . end end if trace~=0. Dạng tổng quát cũa lệnh switch: switch bieuthuc case th1. Điều này được thực hiện nhờ cấu trúc chuyển (rẽ nhánh): switch .4. Bên trong thân của function. .số đối số nhập của function. disp(x). varargin phải được phát biểu như là đối số nhập cuối cùng và tụ tập tất cả các đối số nhập từ điểm đó trở đi. Tác tử @ xây dựng một điều khiển hàm cho hàm này.^2: sqr = @(x) x.chuyển (rẽ nhánh) giữa nhiều trường hợp dựa trên biểu thức. ? function secantm gọi hàm f . do người dùng định nghĩa. ? varargin . bên phải dấu ngoặc đơn. break. Thi hành hàm bằng cách gọi nó nhờ điều khiển hàm. if abs(x-xold2)/abs(x)<EPS flag=k. cách nhau bằng dấu phẩy. là một lệnh hay phát biểu Matlab. Điều khiển hàm là một trong các kiểu dữ liệu chuẩn của Matlab (function_handle).

xuất các kết quả trung gian.10^-12.6864 2.2.giatri) trong đó giatri là một trong các giá trị sau ’off’ .92 1. >> [x.08 2.’iter’).x0.x/ D 0.46535 9 1. th3. trong đó: fun là điều khiển hàm.CHƯƠNG 4.94343 1.3. (các) lệnh otherwise.6000 1. >> clear all >> f=@(x) x^2-2.4143 1.1.. ? optimset ..6656 Procedure initial interva search search search search . ’final’ . options là các tùy chọn được tạo bằng function optimset của Matlab. Với function fzero thường ta chỉ cần hiển thị giá trị lặp trung gian nên cú pháp được dùng: options = optimset(’display’.4181 1.tạo hay biên tập các tùy chọn.flag]=secantm(f.4142 1.1) Kết quả trả về 1.77693 2.3856 2.100.16 2.4142 flag = 7 Dùng function fzero.1).84 1.không xuất. x0 là giá trị lặp ban đầu.3264 7 1.2.56025 2..05657 2. trước hết ta đặt tùy chọn rồi gọi function >> clear all >> options = optimset(’Display’.88686 1.chỉ xuất kết quả cuối cùng.options) Kết quả trả về Search for an interval around 2 containing a sign change: Func-count a f(a) b f(b) 1 2 2 2 2 3 1. Cú pháp thường dùng: x = fzero(fun.11314 2. >> x=fzero(f. NGHIỆM PHƯƠNG TRÌNH PHI TUYẾN 92 (các) lệnh case th1. th2.4142 x = 1.chỉ xuất nếu quá trình không hội tụ F Bây giờ ta gọi function secantm giải phương trình x 2 2 D 0 (thí dụ 4.4783 1.options). ’notify’ . (các) lệnh end ? Matlab cung cấp function fzero tìm nghiệm phương trình f .22947 5 1. ’iter’ .

trong đó wD  x y  . hD  f g  : Tương tự như tròng trường hợp 1-chiều (phương pháp Newton).0415434 interpolation 18 1.000384399 interpolation 19 1.69058e-011 interpolation 21 1. Phương pháp cát tuyến có thể tổng quát hóa cho trường hợp này nhưng cách làm không hiển nhiên vì sự phức tạp hình học khi số chiều lớn. 2. đẹp.16) . Để đơn giản việc trình bày.4.54745 1. y0 /.45255] x = 1.394607 -0. khai triển hàm f.y @y @g x0 / C .5 Hệ phương trình phi tuyến Một bài toán thường xuất hiện trong toán học tính toán là tìm một vài hoặc tất cả các nghiệm của một hệ gồm n phương trình phi tuyến với n ẩn.5.x0. .41435 0.x0 .22627 2.36 -0.x0 . 2. HỆ PHƯƠNG TRÌNH PHI TUYẾN 11 13 15 16 1.01499 search search search search Search for a zero in the interval [1. y0 /. y0 /.36.w/ D 0.01499 4.x @x f .44089e-016 interpolation 22 1.8224 0. y0 /. .x. Với phương pháp Newton thì khác. g nhờ công thức Taylor chỉ giữ lại các số hạng bậc nhất @f . Có thể thấy ngay phương pháp chia đôi không áp dụng được (mở rộng được) cho trường hợp này.45255 2. y/ D 0 (4. y/ D 0 g.32 2.9563 3. y0 / C . Những bài toán như vậy tổng quát và khó hơn nhiều so với bài toán một phương trình một ẩn số.41421 -9.1504 initial 17 1.4142 4.15) y0 / D 0 (4.x0.1461 0.y @y x0 / C y0 / D 0 (4.41421 4. xét hệ gồm hai phương trình theo hai ẩn: f . y0 / C @f .x0 .x @x @g g.41421 4.45255]: Func-count x f(x) Procedure 16 1.41421 -2.45255 2.77373 1.44089e-016 interpolation Zero found in the interval [1.14) Viết dưới dạng vectơ h.x.x0.1504 2.36 93 1. sự tổng quát hóa ra trường hợp n phương trình n ẩn số rất tự nhiên và rất .68 1.36.39945 -0.3824 4.01697e-006 interpolation 20 1.

(a) Với khoảng chứa nghiệm ban đầu Œ0:0. y1 C y1 / có thể tìm bằng cách giải hệ phương trình @f @f .6: Bài tập 4.x/. và x4 dùng phương pháp Newton với x1 D 2. Xấp xỉ kế tiếp . 4.3. đánh dấu trên đồ thị vị trí xấp xỉ của x2 và x3 bằng cách dùng hai bước của phương pháp Newton. 3. Thí dụ 4.x0 . 4. x3 . NGHIỆM PHƯƠNG TRÌNH PHI TUYẾN 94 Hình 4. So sánh với bài tập 4. (a) Tìm một khoảng thích hợp chứa nghiệm của một hàm phù hợp f .4 Giải hệ phương trình x 2 C xy 3 9 D 0 3x 2y y 3 4 D 0 (4. (c) Tính x3 và x4 bằng phương pháp cát tuyến bắt đầu với x1 và x2 lấy bằng các giá trị của khoảng. Việc định tỉ lệ đóng vai trò gì? 4. và x4 dùng phương pháp Newton với x1 là điểm giửa của khoảng. (d) Tính x2.4 Đa thức f . (c) Tính x3 và x4 bằng phương pháp cát tuyến bắt đầu với x1 D 3 và x2 D 2. y0 / g. x3.17) Câu hỏi và bài tập 4.2 Phân biệt nghiệm đơn và nghiệm bội bằng đồ thị như thế nào? Giải thích bằng đồ thị cách xác định tốt các nghiệm. 3 là khoảng chứa nghiệm của f .3 Đánh giá bằng hình học nghiệm của hàm F . 4. đánh dấu trên đồ thị vị trí xấp xỉ của x3 bằng cách dùng một bước của phương pháp cát tuyến. Điều này có xác thực không? Vai trò của việc.x0.x1 C x1 .CHƯƠNG 4.x0 .x/ là F .1 Thặng dư của một nghiệm đưa ra r của F .x0 . (b) Áp dụng bốn bước của phương pháp chia đôi để giảm khoảng chứa nghiệm xuống còn 1=16.r/. (b) Áp dụng bốn bước của phương pháp chia đôi để giảm khoảng chứa nghiệm xuống còn 1=16. y1 /. 1:0 ba khoảng chứa nghiệm kế tiếp là những khoảng nào? (b) Nếu x1 D 0:0 và x2 D 1:0. y1 / D . Ta thường thấy phát biểu: thặng dư là "nhỏ" nên nghiệm phải "tốt".x/ mà đồ thị được cho bên dưới. (d) Tính x2 . y0 /x1 C .x0 . (c) Nếu x1 D 0:5. y0 /y1 D @x @y @g @g . y0 / xác định .5 Để tìm nơi sin x D x=2 với x > 0. y0 /y1 D @x @y f .x1 .x/.x0. . y0 /x1 C .x1. (a) Chứng tỏ rằng Œ2.1.x/ D x 3 2x 5 có một nghiệm trong Œ2.

Tích phân có thể không có hiệu lực vì hàm f được xác định bởi các giá trị trong bảng hay bởi một chương trình con. Phép cầu phương thích ứng là vấn đề chính của chương.2 và mã được bàn luận trong mục tiếp theo.x/dx a 95 (5.x/dx bằng số được gọi là tích phân số hay cầu phương. Bằng cách dùng nguyên lý này ta sẽ thiết lập một vài quy tắc cầu phương và nghiên cứu sai số của chúng. Phép cầu phương "thích ứng" này được mô tả trong mục 5. chẳng hạn như giải các phương trình vi phân bằng phần tử hữu hạn nhờ các phương pháp biến phân hay Galerkin. 5. Thường hàm xấp xỉ là một đa thức nội suy. Cách nội suy đa thức từng mảnh là tự nhiên cho cầu phương vì dùng hàm như vậy chung qui là bẻ khoảng lấy tích phân thành các mảnh và xấp xỉ bằng đa thức trên mỗi mảnh ấy. Khi xấp xỉ hàm ta thấy rằng đa thức nội suy từng mảnh tiện lợi hơn đa thức nội suy. Ý tưởng then chốt trong cầu phương là phải tính đến dáng điệu của f .x/ cho trước. Hay. Có nhiều lý do nghiên cứu tích phân số. ở đây điều này cũng đúng.x/ khi chia tách khoảng. các tích phân xác định phải được xấp xỉ như thành phần của sơ đồ tính toán phức tạp hơn. Chú ý đặc biệt được dành cho các bài toán chuẩn bị cho lời giải có hiệu quả của chúng bằng các mã của loại phát triển ở đây. Một nguyên lý cơ bản trong giải tích số là nếu ta không thể làm điều ta muốn với một hàm f . b. ta xấp xỉ nó bằng một hàm mà với nó ta có thể thực hiện được. Hầu hết chương này liên quan đến khoảng hữu hạn Œa.1 Các quy tắc cầu phương cơ bản Để xấp xỉ Z b f .x/w.Chương 5 Tích phân số Rb Xấp xỉ a f . Nguyên hàm (antiderivative) của f có thể không biết hay không là hàm sơ cấp.1) . nhưng có một vài bàn luận về tích phân với a và/hay b là vô hạn.x/dx.x/w. nhưng vài chú ý được cho cho tích phân của bảng dữ liệu và cho tích phân của các hàm hai biến.x/ > 0 là hữu ích và như vậy xấp xỉ tích phân dạng a f . Thỉnh thoảng đưa Rb vào hàm trọng lượng w.

Dạng Lagrange của PN .x/.x/ tồn tại.x/w. "Ứng xử giống" khi x ! 0 có nghĩa là f . thì giả thiết này là đúng. x2 . Gọi PN .x/ex . phức tạp lắm để nhận được công R 1 Không 1 x j x thức cho các tích phân dạng R 1 0 F .x/w.x/dx và f . nó phải dần tới không thật nhanh khi x ! 1. xN . nếu ta muốn tính 0 f .x/ dễ dàng dẫn đến xấp xỉ Z a b f .x/e dx vì các tích phân 0 x e dx tồn tại với mọi j .x/ Từ đây về sau điều này sẽ được viết là f .x/ lim D c: x!0 ln.x/w. a và b hữu hạn. Tuy nhiên. :::. cần xấp xỉ các tích phân thuộc dạng Z 1 F .x/ bởi đa thức.x/dx D Li . Vì tích phân f .x/ là đa thức nội suy f tại các điểm này.. TÍCH PHÂN SỐ 96 giả sử đã biết giá trị của f tại N điểm phân biệt x1. Chẳng hạn.x/= ln. trong trường hợp 0 f .x/dx D N X Ai f .x/ D f .CHƯƠNG 5. Điều này tương đương với sự tồn tại các tích phân Z b a x j w.2) i D1 Ở đây giả thiết các trọng lượng Ai tồn tại. Tích phân với hàm dưới dấu tích phân có kỳ dị cũng chứa đựng khó khăn vì chúng ứng xử không giống đa thức.x/. nếu Rta đưa vào hàm trọng lượng w.xi / i D1 Z Z b a a N bX i D1 f .x/w.x/dx D f . Thông thường việc dùng hàm trọng lượng là cách tốt để đối xử với những bài toán như vậy.x/dx 0 tồn tại với mọi j (hàm trọng lượng w.1) có thể lấy là ln x). : : : .x/  c ln. mà các đa thức không có tích phân hữu hạn trên khoảng vô hạn.x/ hay không. nếu khoảng là vô hạn 1 (e. Chẳng hạn.x/ ln xdx 0 (và sau đó giải hệ các phương trình tuyến tính để có được nghiệm số cho phương trình tích phân của lý thuyết thế vị). 1. tiếp cận trên thất bại vì không có x j nào R 1 có tích phân trên khoảng này.x/ có một giới hạn hữu hạn tại x D 0. ta có thể đưa vào ln x như hàm trọng lượng và viết F . Vì F . Tích phân trên khoảng vô hạn là loại bài toán chứa nhiều khó khăn.x/. 1/ và các tích phân Z 1 x j ln.x/ trong (5. tích phân cóR thể viết lại như là 0 F . Hàm ln x có thể được xem như hàm trọng lượng vì nó không dương trên khoảng . mà là vô hạn ở đó.g.x/ D e x và định nghĩa 1 F . . N 1: TrongRtrường hợp w. Lời khuyên này có cho một xấp xỉ tốt 0 f .0.x/dx hay không là vấn đề F .x/dx  Z b a N X PN .x/ D 1. Tương tự cách làm trong thí dụ R1 lấy tích phân trên khoảng vô hạn.x/e x dx.xi /: (5. Khó khăn cơ bản của việc tiếp cận.xi /Li . là nó được đặt cơ sở trên sự xấp xỉ f .x/ D f .x/dx với j D 0.x/dx). 0 f . trong lời giải các bài toán thế vị phẳng bằng phương pháp phần tử biên. nó được xấp xỉ bởi đa thức tốt hơn f .x/ ứng xử giống ln x khi x ! 0. Một lời khuyên hữu ích là phải cô lập dáng điệu "khác đa thức" vào hàm trọng lượng.x/dx.x/ có ứng xử giống một đa thức hơn f .

x/ là đa thức bậc nhỏ hơn N . Nó được phát biểu bằng cách dùng ký hiệu kf k cho maximum trên Œa. thì jE.2) có bậc chính xác d .x/dx C jAi j : (5.f . b của jf . CÁC QUY TẮC CẦU PHƯƠNG CƠ BẢN 97 Một công thức dạng N X (5.x/j. ˇZ Z b ˇ b ˇ jE.3) Ai f .f / D f . ta có trong óc xi nằm trong Œa.x/dx ˇ ˇ ˇ p. Chẳng hạn. nhưng không đa thức nào có bậc d C 1.x/dx: a p.p/j C  kf N X pk Z b jf .x/.x/dx C . Z b N X E.f /j  ˇ p. công thức Adams cho lời giải phương trình vi phân được đặt cơ sở trên các quy tắc cầu phương dùng các điểm cuối a và b như là các nút. thì bởi tính duy nhất của phép nội suy. và quy tắc được xây dựng để tích phân PN .2) dẫn đến công thức với bậc chính xác lớn hơn N 1. như trong chương 3.1) được gọi là công thức hay quy tắc cầu phương.f /j  2kf pk Z b Chứng minh.5) w.x/ là chính xác.x/dx C b w.xi / p.x/dx Ai f .x/w. Nói chung.q/ k.x/ a Z a (5.4) a i D1 Nếu mọi Ai > 0.x/ là đa thức bất kỳ bậc q  d .xi //ˇ ˇ p.xi /: a i D1 Định lý 5. sai số tuyệt đối của công thức cầu phương được ký hiệu bởi E. Một quy tắc như vậy sẽ tích phân chính xác đa thức bất kỳ có bậc nhỏ hơn N .xi / i D1 Ai .5.x/w. ! Z b N X jE.1. Định lý dưới đây phát triển một vài chặn trên sai số của công thức với bậc chính xác d . ta nói rằng công thức cầu phương (5. Mq được dùng cho kf . Với p.3) có bậc chính xác (degree of precision) d  0 nếu nó tích phân cách chính xác đa thức bất kỳ có bậc tối đa d .xi / i D1 để xấp xỉ (5. b. Một cách tổng quát.x/dx C N X i D1 ! jAi j .x/ ˇ a a N X Ai p. Sơ đồ để phát sinh các quy tắc vừa mô tả dẫn đến các quy tắc cầu phương nội suy. nghĩa là.xi / i D1  jE.x/jw. Cuối cùng. Cũng vậy. Sau này ta sẽ thấy.x/ bậc q  d . thì với bất kỳ đa thức p.x//w. Đây là vì nếu f .x/  f .f /j  kf pk w. nhưng trong vài áp dụng quan trọng không nhất thiết phải như vậy. một sự chọn lựa đúng đắn các điểm nội suy xi khi xây dựng (5. Điều này cũng đúng với phương pháp tích phân theo bảng dữ liệu sẽ được xét sau này. nhưng tất cả các nút xj khác nằm bên ngoài khoảng này.1 Nếu công thức cầu phương (5. PN .xi /j .f /.f . N X i D1 jAi jjf .

một trường hợp ta có kf p k với p  là đa thức bậc 5. Chú ý. Ít ra đến chừng mức mà chặn sai số của định lý 5.5) ta có thể lấy đa thức p. Như vậy. điều gì xảy ra nếu ta dùng công thức và đạo hàm không tồn tại? Bây giờ chúng ta thấy rõ rằng dạng (5.4).x/  1dx.8) chính là hệ quả của phương pháp phân ./ (5.Cotes.a. và trường hợp còn lại là đa thức bậc 11.8) với f .x/  1 nên N X i D1 Ai  1 D Z a b w. gọi là Adapt.5). b.d C 1/Š Z a b w.8) với  2 . Một phân tích sai số chi tiết hơn chứng tỏ rằng sai số E. và ta có (5. TÍCH PHÂN SỐ 98 trong đó ta đã dùng E. Điều này quan trọng đối với trường hợp đặc biệt của công thức mà tất cả Ai > 0. b hữu hạn có đa thức p  . có một vài Ai lấy giá trị âm ngay cả với các bậc chính xác vừa phải.f /j   b a 2 d C1 Md C1 2 .x/dx dựa trên fxi g cách đều trong Œa.f / có thể được biểu diễn như E. Với a. Tuy nhiên. Không may. thì jE. thì jE. ta đã biết các nội suy bậc cao có khả năng dao động và gây ra những điều chỉnh không phù hợp. sự gia tăng bậc chính xác của công thức có thể chỉ giúp thêm thôi. Trong chặn (5.f / D c  b a 2 d C2 f .f /j   b a 2 d C1 Md C1 . Kết quả (5.CHƯƠNG 5. Đây là (5. Một có d D 5 và một có d D 11. các công thức cầu phương nội suy cho Rb a f . Tình hình bây giờ thì khác vì nó là xấp xỉ diện tích bên dưới đường cong và dường như các dao động sẽ bị trung bình hóa. Vì công thức cầu phương chính xác khi f . và câu hỏi tự nhiên là.1 là đúng. Khó mà có được sự hiểu biết về đạo hàm cấp cao như vậy. (5. Trong các chặn (5. Hệ quả 5. khi mọi Ai > 0 thì dấu trị tuyệt đối trong (5.x/dx C N X i D1 ! jAi j : (5.x/ với bậc tối đa d gần f nhất theo nghĩa kf p  k D min kf deg pq pk: Mã kèm theo chương này.d C 1/Š Z b w. chúng ta sẽ đưa lên họ các công thức khác với bậc chính xác cao tùy ý với nó tất cả các Ai đều dương. đây là một đẳng thức hơn là chặn. nó làm người ta nghi ngờ công thức có còn đúng trong thực hành. b. công thức với bậc 11 thì hoàn toàn chính xác hơn công thức với đa thức bậc 5. Kết quả của các công thức này có thể không hội tụ tới giá trị của tích phân khi bậc gia tăng.d C1/.1 Nếu f .12/ .p/ D 0. Chẳng hạn. b/.5).x/ có d C 1 đạo hàm liên tục trên Œa.x/ bất kỳ với bậc q  d .8) là lý thuyết.4) có thể bỏ.5). đa thức này không thể xấu vì đa thức bậc 5 có thể xét như đa thức bậc 11 với một số hệ số bằng không.7) a Khi nghiên cứu nội suy đa thức. Với (5.4).x/dx: (5. dựa trên hai công thức với Ai > 0 với mọi i. công thức bậc 11 nói ở trên thỏa (5. nhưng khi bao gồm đạo hàm cấp cao.6) Nếu mọi Ai > 0. gọi là các công thức cầu phương Newton .

Bất đẳng thức (??) cung cấp các chặn khi f chỉ có q C 1 đạo hàm liên tục.x/dx D A1 f .1 Tìm công thức cầu phương dạng Z 1 f . Trước khi cho các thí dụ.x j / D 0. b bằng một phép đổi biến đơn giản.t/dt D N  X b i D1 a 2  Ai f  b a  a 2 C C b d C1  b Thí dụ 5.8). (5.xi / C cf .x C 1/ C a dx aCb xi C 2 2 a  b aCb xi C 2 2  d dt d b ad d d C1 D D ) D dx dx dt 2 dt dx d C1 nên phép đổi biến cho Z a b f .d C1/. dt d C1 a 2 a d C2 f . Trong cách tiếp cận này các hệ số Ai được xem như các ẩn mà được tìm bằng sự thỏa mãn hệ phương trình tuyến tính (5./: .x/dx D N X b a 1 1 i D1 Ai f .9 với d lớn có thể.x / D c .t/dt D a D Vì 2 Z 2 aX a 2 1 f 1 N b  Ai f i D1 . Cách tiếp cận được biết như là phương pháp hệ số bất định. Không có lý do để sợ một công thức với bậc chính xác cao bởi vì một biểu thức giống (5. 1.10) cung cấp cách khác để sinh ra các quy tắc cầu phương. j D 0.d C1/. 1 và rồi biến đổi thành khoảng tổng quát Œa.5.11) Các phương trình (5.x C 1/ C a: b a 2  b  .1/ C E. Nếu một công thức cầu phương có bậc chính xác d .d C 1/Š: 2 (5.9) E.10) và Nếu ta giả sử rằng sai số có dạng (5. 1/ C A2f . thì E.1. ta chú ý rằng.x d C1/ 6D 0: (5.f /: 1 2 E. CÁC QUY TẮC CẦU PHƯƠNG CƠ BẢN 99 tích. d (5. nên áp dụng phương pháp hệ số bất định cho khoảng tiêu chuẩn Œ 1. và chặn dựa trên xấp xỉ tốt nhất không trực tiếp giả thiết bất kỳ đạo hàm liên tục nào. : : : .8)./ đặt tD Thì dt D . các biểu thức khác với sai số của nó là khả dụng khi hàm ít trơn.b a/dx=2 và Z b b f . Nếu ta có Z f .9). dễ dàng tìm c từ   b a d C2 d C1 E.f /: d d C1 .

b/./ 12 (5. ı Thí dụ 5.x/dx D trong đó  2 .x/dx D A1 f . nghĩa là Z 1 1 f .a.x/dx D a  b a 2  . bằng cách xây dựng. 1.4/ f .1/ 2 00 f .b// ./ 3 với  2 . b tổng quát. Thì f .x/dx D f .2 Tìm công thức chính xác nhất dạng Z 1 1 f .x 2 / 6D 0 điều này nói rằng d D 1 và c D E. 1/ C f .0/ C A3 f .12) trong đó  2 .x/ D x 2 nhận được 2 D A1 C A2 C E.x 2/=2Š D 2=3.f /: Quy tắc Simpson Z b a f . b/.b a/5 .x/ D 1 ) 2 D A1 C A2 . f . Với khoảng Œa.x 2/: 3 Vì E.a/ C 4f C f . ı  b a 6     aCb f .a. Trong phương pháp hệ số bất định f . 1/ .CHƯƠNG 5.f .13) .1/ C E. áp dụng công thức đổi biến ta có (công thức trong dấu Œ ) Quy tắc hình thang (trapezoid rule) Z b f . TÍCH PHÂN SỐ 100 Hình 5. 1/ C A2 f . d  1.b/ 2 . Ta cũng thấy rằng./ 2880 (5.b a/3 00 f .1: Quy tắc hình thang.a/ C f .x/ D x ) 0 D A1 C A2 : Suy ra: A1 D A2 D 1.

hệ phương trình cho Ai và xi là phi tuyến.b a/7 .x/ D 1 ) 2 D A1 .x/ D x 2 ) và thấy d D 1. 2N . ta thử f . Các trường hợp đặc biệt có thể chỉ ra theo cách sơ cấp. CÁC QUY TẮC CẦU PHƯƠNG CƠ BẢN 101 Cả hai công thức là công thức Newton-Cotes vì các nút cách đều trong Œa./: 3 1  b a Z 2 D 2  0 C E.x 2/. 3 f .14) Công thức này được biết như là quy tắc điểm giữa ı Thí dụ 5. làm thế nào nhận được chúng. suy ra A1 D 2 và x1 D 0. ta có thể hy vọng có công thức với bậc chính xác 2N 1 mà dùng chỉ N giá trị của f . và Trên Œa.x/dx D . Kết quả cho công thức được biết như là công thức cầu phương Gauss./. ta có thể hy vọng tìm các công thức với bậc chính xác cao hơn nhiều. và nếu có. Điều này tiêu biểu khi các nút được chỉ định trước./: 2.1. f . 016.3 Cho N D 1 công thức gauss có dạng Z 1 f .x/dx D A1 f .16) .15) và sai số là . nghĩa là. ở cách sắp xếp của ta. c D 1=3. Không may. Nhưng nếu xi được phép chọn (chưa biết)? Với số ẩn nhiều gấp hai. Thủ tục bao gồm việc chọn các xi và rồi giải hệ phương trình tuyến tính xác định các Ai .x2/ C A3 f .6/ f .f /: 1 Bằng phương pháp hệ số bất định f .5. b công thức này trở thành Z 1 1 f .f /: 1 Trên Œa.b a/3 00 f .0/ C f 00 .x/dx D A1 f . có lẽ ngay cả bằng 2N 1.x3/ C E. 000 (5. Không hiển nhiên hệ đó có nghiệm thực. Để xác định sai số.x1 / C A2 f .x/dx D a b a 18 " 5f aCb 2 b r !   3 aCb C 8f C 5f 2 5 2 a aCb b a C 2 2 r !# 3 5 (5.x/ D 0 ) 0 D A1 x1. 24 (5. ngay cả với các hàm trọng lượng tổng quát hơn và các khoảng vô hạn. b. Gauss đã giải quyết một cách thanh lịch bài toán với N tổng quát.x1/ C E.x/dx D 2f .b a/f  aCb 2  C .4 Cho N D 3 công thức gauss có dạng Z 1 f . Thí dụ 5. b kết quả là công thức cầu phương Gauss 3-điểm Z b f .

x/. ngay cả khi hàm dưới dấu tích phân không trơn.xi /N C1.a. công thức (5.x/ có bậc 2N 1 được tích phân chính xác. điều này có nghĩa là ta có thể dùng công thức với bậc chính xác cao. Ta không trình bày lời giải của Gauss.xi / D Z b r.x/w.x/dx D Z b a q.x/ là bậc N và Z b x j N C1. các đa thức này là đa thức Legendre.x/ D q. Ta cũng biết rằng N nghiệm phân biệt của N C1. b/. vấn đề tồn tại công thức và bậc chính xác tốt nhất có thể còn để mở trong cách tiếp cận này.x/dx D N X i D1 Ai f . Giả sử rằng công thức cầu phương nội suy (5.17). Điều này có nghĩa là công thức không dùng f .2) tích phân đa thức bậc N cách chính xác.x/ là thực và nằm trong khoảng .xi / D N X i D1 Ai q. và các công thức có thể tìm thấy trong các sách chuyên khảo. Ta sẽ thấy điều này rất hữu ích khi đối xử với tích phân mà hàm dưới dấu tích phân kỳ dị.x/ C r.xi /: i D1 Bây giờ ta dùng sự kiện xi là các nghiệm của N C1.x/w.x/dx D Z b r.xi / C N X Ai r.CHƯƠNG 5.x/ D 1. : : : sao cho N C1.x/. a D 1.a. nên công thức này có bậc chính xác ít nhất là 2N 1. vậy Z a b r. trong đó đa thức thương q. b/.x/ và đa thức dư r.2) trên cơ sở nội suy tại các nghiệm của N C1. Với cách chọn bất kỳ các nút xi . nhưng có thể xem bậc chính xác cao như thế nào.x/w.x/N C1.xi / D N X i D1 Ai r.x/dx D 0 khi j < N: a (5. Một sự kiện quan trọng về công thức Gauss là tất cả các Ai đều dương. Nếu f . Có hay không hàm trọng lượng. Có nhiều cách thuận tiện về phương diện tính toán để thiết lập các công thức cầu phương Gauss. Gauss đã dùng lý thuyết các đa thức trực giao để trả lời các câu hỏi này. b D 1. ta biết rằng tồn tại một dãy các đa thức N C1. nó có thể được viết f . Các công thức Gauss có giá trị vì chúng cung cấp bậc chính xác cao nhất với số các giá trị f .x/. a trong đó số hạng đầu triệt tiêu do (5.x/N C1.x/w. Công thức Gauss kết hợp chặt chẽ với các hàm trọng lượng là công cụ đặc biệt quan trọng khi đối xử với các tích phân mà hàm dưới dấu tích phân có kỳ dị hoặc các khoảng lấy tích phân vô hạn. 1. Như đã bàn trong phần chặn sai số. N D 0. Bên cạnh đó.x/w.x/dx C Z 1. b.x/w.x/ có N X i D1 Ai f .a/ hay f . .x/ có bậc tối đa N Z b a f . Thì b a r.x/w.17) Khi w.x/dx. Với các điều kiện phù hợp trên w.x/dx: a Vì đa thức bất kỳ f . TÍCH PHÂN SỐ 102 Với N lớn phương pháp các hệ số bất định không thực tế để thiết lập quy tắc cầu phương Gauss.b/. tất cả các nút của công thức Gauss đều nằm trong khoảng mở .x/.x/w.x/ để thấy rằng Z b a f .x/ là đa thức bậc 2N 1.x/ và Œa.x/dx D N X Ai r.xi /: i D1 Công thức áp dụng cho f .

xnC1/ ı 2 2 Áp dụng khéo léo tích phân từng phần thiết lập công thức tổng Euler-Maclaurin.2k . sai số của xấp xỉ tích phân dần về không như h2 . CÁC QUY TẮC CẦU PHƯƠNG CƠ BẢN 103 Cho đến nay ta chỉ xét các thủ tục dựa trên xấp xỉ hàm f . Vài số hạng đầu của khai triển sai số là h2 0 h4 . b./ .x1=2 C f . Khi tích phân hàm tuần hoàn trên một bội của chu kỳ.b/ f . ta được:   1 1 Tn D h f . thì Z b n Z xi C1 X f . tất cả đạo hàm tại các điểm cuối của khoảng lấy tích phân là bằng nhau và công thức này cực kỳ chính xác.5.x/ liên tục trên Œa. b. Rb Thí dụ 5.a/ C Œf .2k 1/ .x0 / C f . Một cách thuận tiện để đánh giá công thức là   h 1 1 1 T2n D f . để cho nó có đạo hàm mọi cấp Tn ! I nhanh hơn lũy thừa bất kỳ của hŠ. 2 2 2 thu gọn.xn / C f .x0 / C f . I  Tn D h h h Œf .x2 / C : : : C Œf . Đúng như nội suy đa thức. nếu hàm tuần hoàn là giải tích. nếu xảy ra f 0 .a C . Kết quả được biết như là quy tắc đa hợp (composite rule) hay quy tắc ghép (compound rule).2k/Š với  2 .b/ f . 2 2 2 2 trong đó Mn D h n X kD1 f . Tuy nhiên. nhận được bằng cách chia đôi mỗi khoảng con.x/dx D f . thì công thức còn chính xác hơn nữa.5 (Quy tắc hình thang đa hợp) Quy tắc hình thang đa hợp xấp xỉ I D a f .x/dx bằng cách phân hoạch Œa. Với định nghĩa xi D a C ih.b/ f . a i D1 xi và có thể áp dụng các quy tắc cầu phương chuẩn cho n tích phân. Điều này đề nghị ta phân hoạch khoảng và xấp xỉ hàm bằng hàm đa thức từng mảnh. b thành a D x1 < x2 < : : : < xnC1 D b.xn 1=2/ C f .2k/Š 1/ . Thực ra.x1/ C Œf . Người ta thường dùng phân hoạch đều khoảng Œa. b và dùng cùng công thức cầu phương trên mỗi khoảng con.a/ : : : 12 720 Quy tắc hình thang áp dụng cho một khoảng độ dài h có sai số dần về không như h3 .xn 1 / C f .a/ kD1 nh2C1 B2 f . Nếu thêm vào các đạo hàm khác tại các điểm cuối của khoảng tích phân bằng nhau.xn / C f . nếu f . Sai số của Tn có thể được đánh giá bằng cách so sánh nó với kết quả chính xác hơn T2n .x1 / C f .xn/ D .2/ .b a/=n và áp dụng công thức cầu phương hình thang cho mỗi khoảng.a.x/dx.x/ trên toàn bộ khoảng Œa. điều này là cực kỳ quan trọng trong lý thuyết giải tích Fourier.3/ 0 I D Tn Œf . nhưng điều này không cần thiết.Tn C Mn /. Các hệ số B2k xuất hiện ở đây được biết như là các số Bernoulli. thì I D Tn  1 X h2k B2k Œf . b/.b/ D f 0 .xnC1/. Cách tiếp cận đơn giản nhất là chia khoảng thành những khoảng con chỉ định trước.k 1=2/h/: . Khi n D .1. công thức sẽ chính xác hơn bình thường.x2/ C : : : C f . Nếu ta phân hoạch Œa.x0/ C f .x1/ C : : : C f . b thành n khoảng con độ dài h D . Mặc dù khá đặc biệt.a/.x1/ C f . Công thức này phát biểu rằng.2/. sai số phụ thuộc mạnh vào chiều dài của khoảng.3/ .b a/= h từ được tổ hợp.

a/ ::: Công thức 22 T2n Tn 22 1 chính xác cao hơn mỗi công thức thành phần.3/ . keven=3:2:N-1. Hàm f . if isnan(fb)|abs(fb)==inf.a.3/ Œf .b/ f .b/ f . a=a+max(abs(a)*EPS. Tuy nhiên. end if mod(N.a.1CEPS/ hoặc aCEPS (để tránh trường hợp aEPS underflow). Theo khai triển sai số I D Tn D T2n h2 0 h4 . if isnan(fa)|abs(fa)==inf. N=100.N. Nó thích ứng bậc của phương pháp với bài toán. Như nó chỉ ra.3/ 0 Œf .vararginfWg).a/ : : : 12 720 . Tích phân Romberg có thể rất hiệu quả.h=2/2 0 .x/ có thể có kỳ dị tại a và/hay b nhưng tích phân hội tụ.h=2/4 . thí dụ jf . Có một cách khai thác khai triển sai số của quy tắc hình thang đa hợp do Romberg tìm ra rất phổ biến cho hàm dưới dấu tích phân tổng quát.2)~=0. thủ tục tổ hợp gọi là phép ngoại suy Romberg.3/ .3/ . nó phụ thuộc vào tính trơn của hàm dưới dấu tích phân. Ý tưởng là tổ hợp Tn và T2n theo cách như vậy để nhận được kết quả chính xác bậc cao hơn. Khi đó.b/ 720 f . ta đặt f .3/ Œf . b=b-max(abs(b)*EPS. return.x/j ! 1 khi x ! a. function INTf=smpsns(f. % tap cac chi so le/chan . cận dưới sẽ được "dời lên" a.b/ f 0 .b/ f .EPS).xi / overflow. công thức này là quy tắc Simpson đa hợp. 5. function smpsns Rb là chương trình con tính tích phân a f .a/ 12 720 ::: Một chút tính toán chỉ ra rằng  2 22 T2n Tn 2 I D C 22 1 22 24 1  .2 Các chương trình con Trong mục này ta làm quen với một số chương trình con dạng function tính tích phân số. end % lam cho N chan fa=feval(f. TÍCH PHÂN SỐ 104 Chú ý rằng tất cả các đánh giá của f thực hiện trong Tn được dùng lại trong T2n . end h=(b-a)/N. Nếu có kỳ dị tại điểm cuối của khoảng hoặc quá trình không hội tụ thì nên dùng quy tắc điểm giữa cho khoảng chứa điểm cuối này và nên chia nhỏ khoảng này thanh 2 hay 3 khoảng con. end fb=feval(f.b.a/ C Œf .x/dx bằng phương pháp Simpson (simpson’s method) với N đoạn.vararginfWg). end if abs(b-a)<1e-12|N<=0.CHƯƠNG 5.xi / bằng ˙realmax nếu f . Romberg đã phát triển thành công một cách tổ hợp các kết quả để làm gia tăng bậc chính xác lên gấp đôi.h=2/4 .b.a/ C Œf . N=N+1. ũng vậy. % cac nut kodd=2:2:N.varargin) % tich phan cua f(x) tren [a. x=a+[0:N]*h. mà điều này đôi lúc gây bất tiện. Cũng để tránh trường hợp f .EPS). INTf=0.xi / bằng ˙inf.b] bang quy tac Simpson voi N doan EPS=1e-12. nó đánh tại các điểm cuối của khoảng. if nargin<4.

xn.*sin(10. end points=[points. end INTfnew=sum(SUBINTf).a. function [INTf. fx(find(fx==inf))=realmax. end end Bây giờ ta dùng các function trên để tính tích phân Dùng phương pháp Simpson 5 đoạn: >> f = @(x) x.5. err=10. Sau khi tính toán. .points(1)]. kết quả trả về bao gồm INTf . Đầu tiên. tại x1. Với function này ta có thể tính tích phân a f .số dấu chấm động dương lớn nhất. else for k=1:length(points)-1 points=[points.tích phân của hàm f .points(k+1). points(1)=[]. notdone=true..*x).tìm của các phần tử khác không. INTf= INTfnew.a. hàm f .5) Kết quả trả về R1 0 x sin.b.points(1). err=abs(INTfnew-INTf).varargin:)..sai số. feval(f.varargin) % ap dung quy tac Simpson thich ung INTf=smpsns(f.2.đánh giá hàm chỉ định. points . Chú giải ? isnan đúng khi "Not-a-Number". chỉ định bởi tên hàm f.a. while notdone for k=1:length(points)-1 SUBINTf(k)=smpsns(f.(points(1)+points(2))/2]. points=[a (a+b)/2 b]. isnan(x) trả về 1 khi x là NaN.vararginfWg).xn) đánh giá hàm.b. ? feval .x/.1. >> smpsns(f. x có thể là biểu thức logic..1.tol. ? find .b. Hai function asmpsn chương trình tính tích phân bằng phương pháp Simpson thích ứng (adapted Rb simpson method). CÁC CHƯƠNG TRÌNH CON 105 fx=feval(f. if isnan(err)|err<tol|tol<eps notdone=false.x. INTf= h/3*(fx(1)+fx(N+1)+4*sum(fx(kodd))+2*sum(fx(keven))).points.. i = find(x) trả về các chỉ số tương ứng với các phần tử khác không của mảng x.. fx(find(fx==-inf))=-realmax.x/dx với sai số tối đa tol chỉ định.points(k). .vectơ chứa các điểm nút và err . .varargin:). ? realmax .x1. points(1)=[].err]=asmpsn(f. 0 khi ngược lại. Kết quả trả về được hiệu chỉnh dần.10x/dx. .x/ được tính bằng phương pháp Simpson 1 đoạn (gọi function smpsns).

20) Kết quả trả về ans = 0.10^-6).points. Vì spline bậc ba cho xấp xỉ tốt nên cách chọn tự nhiên hàm F .*sin(10.1. Các chương trình con cầu phương thích ứng không thể dùng được vì chúng tự động chọn các điểm ở đó f được đánh giá mà các điểm này có thể không nằm trong dữ liệu fxi g được cho của hàm.0851 Dùng phương pháp Simpson 20 đoạn: >> f = @(x) x. TÍCH PHÂN SỐ 106 ans = 0.x/dx D cn hn 3 nD1  h2n h3n cnC1 cn h4n C C cn C : 2 3 3hn 4 Câu hỏi và bài tập fnC1 fn fn hn C hn 1 cnC1 hn 3  (5. trong đó yn D f .0785 >> length(points) ans = 65 5.x/ bằng đa thức từng mảnh F .x/. bn và dn nhờ dữ liệu và cn .x/dx mà chỉ được cho . Để đơn giản. rồi tích phân hàm này cách chính xác. >> INTf INTf = 0. Dùng ký hiệu của chương 3 cho spline. >> smpsns(f.b.x/dx D D N X1 Z xnC1 S. yn / với 1 < n < N .xn/. ta được Z a b N X1   2 S.0785 Nếu dùng phương pháp Simpson thích ứng với tol10 6 : >> [INTf.CHƯƠNG 5.a.x/ là spline bậc ba.*x). Cách tiếp cận cơ bản: xấp xỉ f .3 Tích phân của bảng dữ liệu Rb Bài toán được bàn đến ở đây là xấp xỉ a f .18) . Z a b S. giả sử a D x1 và b D xN .x/dx xn nD1 N X1  nD1  h2n h3n h4n : an hn C bn C cn C dn 2 3 4 Thay các biểu thức của an .0.xn.err]=asmpsn(f.

x/dx D A1 f . 5. A2 . b./: 3 3 1 Tính A1 .f / D cf . x1 / C A2 f .x/dx D A1 f . Xấp xỉ tích phân với một số cách chọn h dần về 0.2 Dùng phương pháp hệ số bất định để tìm công thức cầu phương Gauss 2-điểm với sai số liên kết. 5. Công thức trong trường hợp tống quát.1 Dùng phương pháp hệ số bất định để thiết lập quy tắc Newton 3=8     Z 1 1 1 f .20x/ Tất nhiên bạn phải chọn h đủ nhỏ và được lấy trong mỗi chu kỳ. Ở đây bạn thấy gì? . Bắt đầu bằng Z 1 1 f . A3 . khoảng Œa.3 Cài đặt quy tắc cầu phương hình thang đa hợp và áp dụng nó để tính Z  dx : 0 4 C sin.5.d C1/.x1/ C E.f / và tính A1 và x1 . A4 . TÍCH PHÂN CỦA BẢNG DỮ LIỆU 107 5./.3. Giả sử E. Theo lý thuyết thì Tn hội tụ rất nhanh. 1/ C A2 f C A3 f C A4 f .1/ C cf . tìm d và c. d và c.d C1/.

108 CHƯƠNG 5. TÍCH PHÂN SỐ .

3) với L là hằng số.x. sau này được gọi là hằng số Lipschitz. y/ D x 2 cos2 y C y sin2 x. thỏa phương trình (6.a.x. v/j  Lju vj (6. b/. Một điều kiện đơn giản bảo đảm sự tồn tại và duy nhất nghiệm có thể được thiết lập nhờ cách f .1 Hàm f .x.x.1) và (6. jf . w/ˇ  L ˇ @y ˇ với mọi x trong Œa.1 Cơ sở lý thuyết Cho hàm f .x. v và với mọi x trong Œa. xác định với jxj  1 và mọi y. Hàm f . Nếu đạo hàm riêng không bị chặn. b.3) không thể đúng với mọi u.x. thì f thỏa điều kiện Lipschitz và hằng số L bất kỳ sao cho ˇ ˇ ˇ ˇ @f ˇ .x.a. và tổ hợp (6. v. b và với mọi w là một hằng Lipschitz.2) được gọi là điều kiện đầu.a/ D A Phương trình (6.x/. Để thấy điều này. u/ f .1) với mọi x 2 . b và với mọi u. có thể chỉ ra rằng bất đẳng thức (6.x.2) y.Chương 6 Phương trình vi phân thường 6. b với mọi y. và nếu @f =@y bị chặn với mọi đối số. Thí dụ 6. Phương trình vi phân cấp một tổng quát có dạng y 0 . đạo hàm đối với y cho @f D 2x 2 cos y sin y C sin2 x. vậy f không thỏa điều kiện Lipschitz. y/ thỏa điều kiện Lipschitz theo y nếu với mọi x trong khoảng Œa.x/ D f . Trường hợp f có đạo hàm riêng liên tục theo biến thứ hai.x. y/ phụ thuộc y. là Lipschitz với hằng số L D 3.x// (6. b/.x. w/ˇˇ ju vj @y với w ở giữa u và v. u/ f . Trong chương này ta xét bài toán tìm nghiệm y. y/ liên tục (theo biến x) trong đoạn Œa.1) và giá trị của nó tại điểm đầu của khoảng: (6. ˇ ˇ ˇ @f ˇ jf . @y 109 .x.2) được gọi là bài toán giá trị đầu hay bài toán Cauchy cho phương trình vi phân. v/j D ˇˇ . là hàm của x có đạo hàm liên tục khi x 2 . y.

x.x/ xác định với mọi x thuộc khoảng Œa. y/. và thỏa (6.a/ D Am (6.a/ D A1 Y2 .0/ D 0: Trên khoảng Œ0. Y1 .x/ D e x2 Z x 2 et dt: 0 Có thể kiểm tra rằng tích phân trên là nghiệm của bài toán giá trị đầu cho phương trình vi phân tuyến tính y 0 D 1 2xy. ta có ˇ ˇ ˇ @f ˇ ˇ ˇ 211C1D 3ı ˇ @y ˇ p Thí dụ 6. b và mọi y.x. bài toán giá trị đầu y 0 D f . y/ D jyj không thỏa điều kiện Lipschitz vì nó có đạo hàm riêng liên tục với y > 0.5) .x.4) Ym0 D Fm . jxj  1. Thí dụ 6. y. Y2 . Y2 .x. y/ D 1 L D 2jbj ı 2xy liên tục và Lipschitz với hằng số Lipschitz Các điều kiện đủ để phương trình vi phân tồn tại và duy nhất nghiệm có thể được phát biểu một cách hình thức: Định lý 6.x.x/y C h. hàm f . : : : . y/ tương đương với g.a/ D A2 :: : Ym . : : : . Y1 .4) có các điều kiện đầu Y1 . : : : .x/ liên tục theo x.1) là phương trình vi phân tuyến tính. Cho đến nay ta đã nói về một phương trình vi phân với một ẩn y.x. PHƯƠNG TRÌNH VI PHÂN THƯỜNG 110 và như vậy với mọi x. Một hệ phương trình vi phân cấp một với m ẩn là Y10 D F1 .CHƯƠNG 6. b bất kỳ.x. y.x/ bị chặn trên khoảng hữu hạn Œa.a/ D A có nghiệm duy nhất y.x.x. y/ D g.3).3 Tích phân Dawson là hàm y. Y1. f .x/ @y và vì hàm liên tục g. Ym / Y20 D F2 . nên phương trình tuyến tính thỏa điều kiện Lipschitz trong hầu hết các trường hợp thực hành. Ym / Cùng với các phương trình (6.1 Cho f . Thì với bất kỳ số A. Vì @f D g.x. không bị chặn khi y ! 0: @f 1 D p ı @y 2 y Một trường hợp quan trọng của (6. b. Y2 . Hàm f . y/ liên tục với mọi x trong khoảng Œa.x/ và h. y/ liên tục theo . b với bất kỳ b 6D 0.2 Hàm f . Ym / :: : (6.x/.x/.

x/. Y20 D y 00 . Y1.x/. Yj C1. nghĩa là các phương trình dạng y 00 D g.x.x/.x. j .6) Y0 D F. A D 6 Y.4) có thể được tìm bằng cách đưa vào hai đại lượng chưa biết và tìm hai phương trình vi phân cấp một được thỏa bởi chúng. Ta lấy ẩn còn lại là đạo hàm của ẩn gốc. Với hàm vectơ F.x/.x. Y2. Y2 /: Đây là dạng chuẩn và lý thuyết có thể áp dụng cho nó để kết luận sự tồn tại nghiệm duy nhất Y1 .x/. vậy ta lấy Y1. Y/. Y1. điều kiện đủ là mỗi Fi . : : : .1 cho trường hợp m ẩn đúng.1. nhưng các phương trình xuất hiện trong nhiều dạng khác nhau. Một trong hai ẩn mới phải cho chúng ta ẩn gốc.a/ D A1 . Y1 . : : : .6.x/ D Y2 . Ym / thỏa điều kiện Lipschitz đối với mỗi Yj . thường gặp trong các tài liệu về hệ động lực.4) và (6. y.x// D g. y.a/ D A2 . Chẳng hạn. y 0 .5). Y/ 6 F2 . Đạo hàm các ẩn mới. : : : .5) trở thành 3 2 A1 F1 .4) và (6. Yj 1 . u. Ym / Fi .x. y 0 /.5) như là bài toán giá trị đầu. Bằng cách dùng ký hiệu vectơ làm cho trường hợp m ẩn trông giống như trường hợp một ẩn.x/ D y 0 . Y2 . Y2 . Một trong các khía cạnh may mắn của lý thuyết bài toán giá trị đầu là lý thuyết cho hệ phương trình vi phân cấp một cốt yếu giống như trường hợp một ẩn.x.4) và (6. Yj 1 . : : : . định lý tương tự định lý 6.a/ D A2 : . Y20 D g. phương trình cấp hai. Y1 .x. Định nghĩa về nghiệm là mở rộng hiển nhiên của trường hợp cấp một và điều kiện đầu thích hợp là y. Yj C1 .x/. y. Ym /j  Lij ju vj với mọi i. Y/ D :: 7 :: 4 : 5 : Am Fm . F. Với điều này. Y.x. tồn tại các hằng số Lij sao cho jFi . Đây là phương trình vi phân cấp hai cho một đại lượng chưa biết.x/ D g. Hầu hết chương trình máy tính đòi hỏi bài toán phải được cho dưới dạng chuẩn (6.7) (6.a/ D A: (6. Một bài toán tương đương ở dạng chuẩn (6. ta thu được Y10 D y 0 . nghĩa là.x. Y1 .a/ D A1 .x/ D 6 : 4 :: 5 4 Ym thì (6. Y/ thỏa điều kiện Lipschitz. y 0 .x. v.8) Một lần nữa ta xem tổ hợp của (6. CƠ SỞ LÝ THUYẾT 111 Nếu đặt 2 3 2 Y1 6 Y2 7 6 7.x.x/ và Y2 . Vì lý thuyết các phương pháp số cho hệ các phương trình về cốt yếu cũng giống như với một phương trình. : : : .x/ D y.x. Y/ 3 7 7 5 (6. Các chứng minh cho hệ chính là đưa vào các vectơ và chuẩn của chúng ở đâu có các vô hướng và các giá trị tuyệt đối trong chứng minh cho một ẩn. Y2 . Y/ A2 7 6 .x//: Bằng cách này ta đi đến hệ hai phương trình vi phân cấp một theo hai ẩn: Y10 D Y2 .x/ thỏa điều kiện đầu Y1 .x.x. nên ta tự hạn chế chỉ đối xử chi tiết với trường hợp một phương trình và phát biểu kết quả tương tự cho hệ.

: : : .x. Y2 .x//: Tương tự.m 1/ /.4 Để chuyển bài toán giá trị đầu y 00 C .m 1/ .x. Phương trình vi phân cấp m tổng quát một ẩn. Y2 1/Y2 Y1  ı 1/ .x/. Để kiểm điều này. Y1. Y1 .x/. Y/ D Y2 4 . : : : . y.x/. Y2 . y .x// D g.Y12 1/Y2 Y1 và Y1.x/: Thì Y10 D y 0 D Y2 Y20 D y 00 D .x/ D y.m F1 . : : : .x/.x/ D g.m/ D g.0/ D 4 thành hệ phương trình vi phân cấp một. Ym . y 0 . : : : . y. và phương trình còn lại phát biểu rằng y 00 .a/ D A.x.x. y/ y. Y2 . y .x/ D y 0 . y 0 . y. Ym / D Y3 :: : Fm 1 .x.CHƯƠNG 6. : : : .x/. y 0 .2 Một sơ đồ số đơn giản Xét bài toán giá trị đầu (6.x/ D Y1 .a/ D A1 .x/.2). Y2 .0/ D 1.x/. Ym / D Ym Fm .0/ D 1.x/ D Y2 .x/ D Y10 .x/ D y. Y2 . y 0 . đặt Y1 .x/ D Y20 . AD . trước hết chú ý rằng một phương trình phát biểu rằng y 0 . Ym / D Y2 F2 .x.x/ D y . Y2 . y 0 D f . Y2 .a/ D Am có thể được đặt thành dạng chuẩn theo m ẩn Y1 . Y1.1) và (6. y .x. có thể thấy rằng các điều kiện đầu được thỏa.x.x. F. PHƯƠNG TRÌNH VI PHÂN THƯỜNG 112 Nghiệm của bài toán gốc nhận được từ y. : : : .4) bằng cách định nghĩa      Y1 1 YD . Y1. Y1. y.Y12 6.x. Ym /: Thí dụ 6. : : : .0/ D 4: Bài toán này có thể đặt thành dạng (6.a/ D A2 . Ym / D g.x/ D y 0 . : : : .y 2 1/y 0 C y D 0. Y1. Y2 .x/ và . Y2 .

ta xây dựng xấp xỉ tại các điểm xn D a C nh với n D 0. Một vài phương pháp số cho phương trình vi phân có ký ức và một vài phương pháp thì không.9) Với h nhỏ.2) được đánh giá tại x D xn .1) và (6.] Nghĩa là. yn /. yn . Nghĩa là.cho trước yn . Giá trị chính xác của tích phân được lấy từ [1].x/ là nghiệm và định lý nói rằng chỉ có một nghiệm.10) Thí dụ 6.1 2  0  0/ D 0:1I tương tự.n / 2 2 với xn < n < xnC1. Khai triển Taylor y.x/ bằng cách thực hiện lập lại một bước theo x với độ dài h để sinh ra dãy liên tiếp y1 . phương trình trên thành y. Lớp các phương pháp được biết như là phương pháp một bước (one-step method) không có ký ức .xn.2. có một công thức cho giá trị ynC1 phụ thuộc vào xn . không ảnh hưởng trực tiếp đến nghiệm của phương trình vi phân với x ở sau xn. từ thí dụ 6. y. u/ u. 1  . 1.xn / nói rằng nghiệm của bài toán giá trị đầu này trên khoảng Œxn . Phương trình vi phân không có "ký ức". 1  .x/ thỏa (6. Dùng sự kiện y.n /: 2 (6. miễn là y. y. f và h. Bắt đầu với giá trị ban đầu hiển nhiên y0 D A.xnCl /  y.x/ quanh x D xn.xn /. Ta nghiên cứu nó vì các chi tiết không làm mờ đi ý tưởng và trường hợp tổng quát là rất giống. Ký hiệu y.xn.xn / C y . : : : . cho h2 00 0 y. Nhắc lại. ta chọn một số nguyên N và với h D .xn //: Hệ thức này đề nghị Phương pháp Euler y0 D A ynC1 D yn C hf . phương pháp một bước sinh ra một bảng giá trị y. MỘT SƠ ĐỒ SỐ ĐƠN GIẢN 113 trên khoảng Œa.1 2  0:1  0:1/ D 0:198: Tiếp tục theo lối này.xn / C hf .xn / C hf .0/ D 0: Lấy y0 D 0. Các phương pháp số ta xét sinh ra một bảng các giá trị xấp xỉ cho y. Nếu ta biết giá trị y.x/ 2 C Œa. 1.xn / D y. N 1: (6.xn.x/. N . ta nhận được bảng kết quả sau.xnC1 / D y.b a/=N . [Sau hết. b.6. 0:5 dùng sơ đồ Euler với h D 0:1.x/ với x ở trước xn . ta thấy rằng y1 D 0 C 0. các giá trị của y.xn / được dùng cho nghiệm của (6. n D 0.3 rằng tích phân Dawson là nghiệm của bài toán giá trị đầu y 0 D 1 2xy y.5 Lập bảng tích phân Dawson trên Œ0. . y.1). : : : Thí dụ đơn giản nhất của phương pháp một bước là phương pháp Euler.xn /. b. Tạm thời ta giả sử rằng các điểm nhập vào cách đều theo biến không gian x.x.x/. b chính là y.1 áp dụng cho bài toán u0 D f .xn // C h2 00 y . y2 D 0:1 C 0. y. Định lý 6. y2 .xnC1/ D y. còn yn được dùng cho một xấp xỉ của y. : : : .xn / C hy .

N 2 1: (6. n D 0. : : : thỏa dnC1  . Thì dkC1  . .x/j axb ta được jEnC1 j < jEn j.xn.xn .1 C ı/n d0 C M Œ1 C .n /j: 2 Với điều kiện M2 D max jy 00 . 1.1 C ı/dk C M  .1 C ı/ C .9) cho y.1 C ı/kC1 d0 C M Œ1 C .1 C ı/ C : : : C .1 C ı/k . : : : . n D 0.CHƯƠNG 6.10) với (6. yn / C y .xn / h2 00 yn j C jy . Để làm điều này ta thiết lập một kết quả tổng quát mà sau này sẽ dùng đến.xn / 0:00000 0:09934 0:19475 0:28263 0:35994 0:42444 ı Để nghiên cứu sự hội tụ của phương pháp Euler. Để chứng minh điều này ta dùng quy nạp. d1. Bổ đề 6. : : : . Để chứng minh sự hội tụ. y.12) Chứng minh.1 C ı/dn C M. 1. Trừ (6.xn / Ký hiệu sai số tại xn bởi En D y.xnC1 / ynC1 D y.1 C ı/2 C : : : C .11) Ở đây số hạng h2 M2 =2 chặn sai số trong bước hiện hành và số hạng còn lại chặn sai số truyền từ các bước trước.1 C hL/ C h2 M2 .12) đúng với n D 1.xn // h2 00 f . Công việc đầu tiên là xét xem bất đẳng thức (6. thì dn  .n /: 2 yn .1 C ı/n 1 : (6.xn / yn C hŒf . ta liên hệ sai số tại xnC1 với sai số tại xn .1 Giả sử tồn tại các số thực ı > 0 và M > 0 sao cho dãy d0 . Dễ thấy. bất đẳng thức (6.12) đúng với trường hợp n D k. PHƯƠNG TRÌNH VI PHÂN THƯỜNG 114 xn 0:0 0:1 0:2 0:3 0:4 0:5 yn 0:00000 0:10000 0:19800 0:29008 0:37268 0:44287 y. Giả sử bất đẳng thức (6. điều kiện Lipschitz trên f và phương trình này đưa đến jEnC1 j < jEn j C hLjy. bất đẳng thức đúng với n D k C 1 và chứng minh hoàn tất. ta chặn sai số có thể xuất hiện khi ta bước từ x0 D a tới xN D b và rồi chứng tỏ rằng nó dần tới không khi h dần tới không.11) cho phép sai số phát triển nhanh như thế nào. nghĩa là.

2 cho (6.e 2L yn j  hM2 L. k D 0. 0 <  < ı: 2 ı Suy ra 1 C ı  eı và . dn  enı d0 C M enı 1 ı (6. điều này dẫn đến max jy. và (6. Nói chung.13) : Chứng minh. . 1.b .2. Khi giá trị của hằng số không quan trọng.14) bị chặn bởi enı d0 C M enı 1 ı . cho ı2  e D 1 C ı C e .e 2L a/ (6. các biểu thức như vậy được viết là 0.xn . Áp dụng công thức tính tổng cấp số nhân với công bội x D 1 C ı.h/. nếu nghiệm khó xấp xỉ chính xác tại xn . : : : thỏa dkC1  .12) có thể viết dưới dạng . MỘT SƠ ĐỒ SỐ ĐƠN GIẢN 115 Bổ đề 6.xn / 0nN yn j  hM2 L.1 C ı/n .16) Ta thấy rằng sai số của phương pháp Euler bị chặn bởi một hằng số lần h.14) : Khai triển hàm mũ ở lân cận không.13) được chứng minh.2 Giả sử có các số ı > 0 và M > 0 sao cho dãy d0 .e 2L a/ 1/: (6. d1. Bây giờ trở lại với phương pháp Euler. nh D xn a và E0 D y0 a<b 1/: A D 0.1 C ı/n  enı : Điều này cho thấy (6. với ı > 0.1 C ı/dk C M. Để ý rằng.xn / Dùng xn hM2 nhL . : : : Thì với n > 0 bất kỳ. ta áp dụng Bổ đề 6.1 C ı/ d0 C M ı 1 n (6. vì vậy jy.15) 1/: a.11) và đi đến jEn j  enhLjE0 j C Tuy nhiên. kích thước bước có thể phải nhỏ đến nỗi độ chính xác cần được xét.6. ta đã cố tình lờ đi ảnh hưởng của số học chính xác hữu hạn. Tuy nhiên. ta thấy vế phải của (6.

phương pháp số. yn . 1=2 / để max jy. Cái khó là đây không phải là cách mà các chương trình hiện nay làm việc. yn / C hn C n : Ta hãy giả sử rằng jn j   và jn j   với mọi h  h0 .x/ không triệt tiêu trong Œa. 6.xn. rồi thì sau đó sự giảm thiểu chính xác gia tăng. f.b a/ 1 hM2  max jy.x/  1 với a  x  b. PHƯƠNG TRÌNH VI PHÂN THƯỜNG 116 từ chương trình con. Trong bước độ dài h từ xn . ta không nhận được f . nhưng một cách định tính chặn là chính xác. Kết quả là khi kích thước bước cực đại H dần tới không. Các ảnh hưởng thì phức tạp hơn điều mà chặn này cho thấy.x/j > 0 Œa.xn . Rõ ràng có một độ chính xác cực đại phụ thuộc vào bài toán. Kích thước bước lớn nhất hn có thể được dùng mà vẫn giữ sai số nhỏ hơn  là s 2 hn  : jy 00 . ta cần đến các quy tắc đặc biệt trong chương trình.xn /j Khi y 00 . Tương tự.xn . yn / C n .xn / yn j là 0. b. 1.xn /j=2. Giả sử y 00 . các ảnh hưởng làm tròn là xấu khi ta giảm kích thước bước nhằm thu được nghiệm chính xác hơn. Nếu  D min jy 00 . phương pháp Euler tạo ra một sai số xấp xỉ bằng h2 jy 00 .CHƯƠNG 6. tiến tới một giá trị tốt.xn / chọn lựa tự động kích thước bước.xn / yn j  CC : 0nN L 2 h Theo chặn này. Với mô hình này ta dễ dàng sửa đổi chứng minh hội tụ vừa cho để tính đến sự thay đổi kích thước bước. trong đó ‚.b và H D thì hn  s s 2   H D ‚.H /.xn. Chú ý rằng H D 0.xn /j xác định ‚.3 yn j là 0.x/ là một hàm liên tục từng khúc thỏa 0 <   ‚. trong tính toán ynC1 D yn C hŒf . 1=2 / cho phương pháp Euler với sự Các phương pháp một bước Bây giờ ta xét các phương pháp một bước và đặt các giả thiết của chúng dựa theo phương pháp Euler.xn / gần bằng không. nghiệm số thoạt đầu chính xác hơn. Công thức tổng quát có dạng y0 D A.17) . yn / C n thêm sai số n được tạo ra.x/. yn / mà được f . Một mô hình hợp lý cho kích thước bước được chọn (trong các chương trình như vậy) là tại xn chương trình chọn một bước hn D ‚. : : : (6.xn /H jy 00 . và số học mà máy tính sử dụng. Dễ dàng chứng tỏ bằng thực nghiệm số rằng khi h giảm. Thì kết quả dãy tính toán sinh ra là ynC1 D yn C hf . Thì phân tích trên có thể được hiệu chỉnh để nhận được   eL. chương trình tự động chọn một kích thước bước mà sẽ sinh ra một nghiệm với độ chính xác chỉ định. Phép phân tích sự hội tụ vừa trình bày là cách truyền thống. max0nN jy. n D 0.xn /H .xn . h/. ynC1 D yn C hˆ. Thực ra từ kích thước bước chỉ định h. Người ta chỉ định trước một dung sai .

b được giải bằng phương pháp một bước (6.18) và nếu phương pháp là cấp p > 1 cho y. Vậy.xn . Cấp của sự hội tụ là thấp hơn khi f không trơn như vậy.xn / Chứng minh. y/ và điều kiện Lipschitz được dùng là cốt yếu. Một mô hình hợp lý của thuật toán tìm kích thước bước như vậy dẫn đến một kích thước bước hn tại xn cho bởi hn D ‚.17) và giả sử rằng các giả thiết của định lý 6.1). v. Như đã giải thích trong mối liên hệ với phương pháp Euler. kết quả của định lý cho sự hội tụ 0. yn . y/ D f . (6.xn / yn j  C hp Lˆ .x/.2 Giả sử bài toán giá trị đầu y 0 D f . với mọi 0 < h  h0 với h0 nào đó.e Lˆ a/ 1/: (6. y/.xn // ˆ. y. b và mọi h  h0 . b jy.xnC1 / D y. CÁC PHƯƠNG PHÁP MỘT BƯỚC 117 Phương pháp không có ký ức. Cái tương tự ở đây là y. Khi bàn luận về phương pháp Euler ta đã dùng.a/ D A trên khoảng hữu hạn Œa.18) và giả thiết phương pháp là cấp p. y.x.6. Đại lượng n được gọi là sai số chặt cụt địa phương (local truncation error). đoạn mã chọn tự động kích thước bước để giữ cho sai số luôn nhỏ hơn một dung sai . thì với bất kỳ xn D a C nh 2 Œa. y/ thỏa (6.xn // C hn .1 được thỏa. Nếu ˆ. hàm liên tục bất kỳ f thỏa điều kiện Lipschitz.x. Đồng thời chúng cố gắng dùng một bước đủ lớn.x/ hầu như thỏa công thức (6. Giả sử ˆ liên tục theo x và y.17) cho (6.xn / C hˆ. Phương pháp Euler lấy ˆ.x.18) khi a  x  b. với công thức tổng quát ta giả sử rằng jˆ. có các hằng số C và p sao cho jn j  C hp .10) để xác định xấp xỉ số. ta thấy rằng jEnC1 j D .hp /.x. Chính xác hơn. yn / C hn Dùng điều kiện Lipschitz (6. Thuật ngữ "phương pháp thuộc cấp p" được dùng để mô tả một phương pháp mà thuộc cấp p nếu f là đủ trơn.x. Cũng như bàn luận của phương pháp Euler.xn . f. sự kiện nghiệm y.3.1 C hLˆ /jEn j C C hp : Bây giờ định lý là kết quả của Bổ đề 6.2 và sự kiện E0 D 0. nên ˆ chỉ phụ thuộc vào các đối số xn. Như trước. đặt En D y.21) yn và trừ (6. v/j  Lˆ ju vj (6.19) ta được EnC1 D En C hŒˆ.xn /H . Điều này giải thích việc ta gọi phương pháp là cấp p cho y.20) thì ta nói rằng phương pháp thuộc cấp p cho phương trình (6. u/ ˆ. h. (6. nếu với mọi xn trong Œa. Thông thường f và h được bỏ đi trong ký hiệu.x/.xn . như là điểm bắt đầu.19) với n "nhỏ". và với mọi u.x.xn. Định lý 6. y.

Vì y. m D 2.x. y.p ˆ.x/ D 0.p f .x.xn. Trường hợp đơn giản nhất là phương pháp Euler chỉ dùng một đánh giá.x.x/. 3. Công việc quan trọng nhất còn lại bây giờ là phải tìm các hàm ˆ không "đắt tiền" khi đánh giá và thuộc cấp p với f trơn. yn C p2 hf .x/  1 trên Œa. y/ D f .20) đúng với giá trị của p càng lớn càng tốt. ta tìm xem ˆ. y/ C : : : C f 2Š pŠ 1/ . y/: R. yn / D a1 f .x.pC1/ y.1/ hp 1 .x.1/ D D fx . a1 . chứng minh sự hội tụ có thể thay đổi dễ dàng để kết luận rằng sai số là 0.x. y.x/ 2 C pC1Œa. Bây giờ ta thiết lập một thủ tục dùng hai đánh giá f .xn. gọi là các phương pháp chuỗi taylor (Taylor series methods).x.22) Một chọn lựa hiển nhiên cho ˆ là hàm T . y/. Vậy.x.p/Š .p/ y .x. y.p/Š với .xn / C : : : C y . y/ D f .x/ D f .x//.x. b.n / . Các phương pháp Runge-Kutta dùng tổ hợp tuyến tính nhiều đánh giá của f .x/ là nghiệm của phương trình vi phân y 0 . y/ T . Thì với ˆ ta dùng tổ hợp tuyến tính R. p2. trong đó p1 và p2 là các tham số.x/. Phương pháp Euler là trường hợp p D 1.x//f .H p / D 0.m/ D D fx.1/ hp 1 . cung cấp một họ các phương pháp một bước. .x. y/ C h .x// D y 0 .x/ với 0 <   ‚.hp /: (6. hệ thức là y . y. Để đơn giản cách ký hiệu.hp /. và a2 . y. Dùng ký hiệu f . y/ C : : : C f 2Š pŠ 1/ . 1=p /. thì nó phải có ˆ.x. yn / C a2 f .x//. y.x// C fy.xn.x. f . y/ để xấp xỉ y. yn //: Trong biểu thức này ta tự do chọn các giá trị hữu dụng cho p1 .x/ C : : : C y .m 1/ . y/ trở thành h .hp /.x/ chứng tỏ rằng   hp 1 .xn / C y .m 1/ .x.m/ D f .x.x/ các đạo hàm của y có thể được biểu diễn nhờ đạo hàm toàn phần của f .xn / C h y .x. Với kích thước bước được chỉ định theo cách này.x// để chỉ đạo hàm toàn phần cấp m của f và chỉ số dưới để chỉ đạo hàm riêng.x//. y.xn C p1 h. : : : Biểu thức cho ˆ.x. PHƯƠNG TRÌNH VI PHÂN THƯỜNG 118 với một hàm liên tục từng khúc ‚. yn / và f .x. y/ C f .xn.xnC1 / D y. y.m/ .xn C p1 h.p/ hpC1 .CHƯƠNG 6.m/ .x// C fy . y.x/ C . nếu phương pháp là cấp p. yn C p2 hf .x. trong đó f . Một khi có thể tính được các đạo hàm thì các phương pháp này rất có hiệu quả.x.x.xn .p C 1/Š 0 nếu y. Từ công thức (6.19) ta cần n D 0. Khai triển Taylor của y. 2Š . Để thực hiện điều này ta khai triển tất cả các lượng trong chuỗi Taylor theo h và đồng nhất các hệ số của lũy thừa.x.x/ C h 00 hp 1 . b. yn //.x//f . Mục đích là chọn các tham số để cho biểu diễn (6. y/ C 0. y.

y/ C ˛f x C . 2˛ cho công thức phù hợp với hai đẳng thức cuối. 2 6 hay viết tường minh là h h2 R D f C . Phương pháp Heun (còn gọi là phương pháp Euler cải tiến) là trường hợp ˛ D 1=2. ta được a1 C a2 D 1. Tóm lại.2/ C 0.1 ˛/f . CÁC PHƯƠNG PHÁP MỘT BƯỚC 119 các đối số được viết ra nếu chúng khác . và phương pháp Euler điểm giữa (midpoint Euler method) hay phương pháp Euler hiệu chỉnh (modified Euler method) là trường hợp . yn C p2 hf /  D a1 f C a2 f .x. nếu đòi hỏi ˛ 6D 0.h3 /: C 2 Bây giờ ta muốn chọn các tham số để cho h h2 R D f C f . a2 p2 D 1=2.xn .y C f . Hơn nữa.xn . a2 D ˛.x. yn C p2hf / C 0.h / C 2 D .1/ C f . a1 D 1 ˛ cho công thức phù hợp với đẳng thức đầu. Phương pháp Euler có ˛ D 0 và cấp p D 1.h3 / D a1 f C a2 f C p2hffy C 2  p12h2 2 3 3 fxx C 0. chọn p1 D p2 D 1 .p2 ffy C p1 fx / a 2 h2 2 2 . yn C p2 hf /  p12 h2 3 C fxx .   h h R.h / Cp1 hfx C p1 p2 h ffxy C 0.ffy C fx / C .6.h3 /: 2 6 Cân bằng các hệ số lũy thừa của h cùng bậc. Ta tiến hành như sau.f 2 fyy C 2ffxy C fxx C fx fy C ffy2 / C 0.3.h / 2  p22 h2 2 f fyy C 0.xn. yn C p2hf / C p1 hfx . yn /. y/ 2˛ 2˛ cho một họ các phương pháp một bước cấp 2 khi ˛ 6D 0 và f đủ trơn. Một vài thành viên của họ công thức này có tên.xn.h3 /.xn C p1h.a1 C a2 /f C a2h. R D a1 f C a1 f . a2 p1 D 1=2: Lấy a2 D ˛ thì với giá trị bất kỳ của tham số ˛.x.p2 f fyy C 2p1 p2 ffxy C p12 fxx / C 0. y/ D .

Để thấy khả năng áp dụng các công thức này ta cần biết điều kiện cần để định lý hội tụ có hiệu lực.v C f . có một họ các thủ tục cấp bốn phụ thuộc nhiều tham số.1 ˛/Œf . Y/. 2 2   h h k2 D f xn C . mặc dù một cách tự nhiên các khai triển trở nên rất dài dòng và tẻ nhạt. Vì lý do này. u/ 2˛ 2˛  ˇ ˇ h h f xC . u/ f . v/j D ˇˇ. Giống như trong trường hợp cấp hai. và khi n D 0. yn C k1 .x/ 2 C 3 Œa. u/ f .xn .x.x.   h h k1 D f xn C . Điều kiện Lipschitz trên R cũng rút ra từ f . : : : k0 D f .1 ˛/Lju vj C j˛jLju vj C L2 ju vj 2   h  . và nếu hàm f có đạo hàm đến cấp 2 liên tục [như vậy nghiệm y. Các thủ tục cấp cao bao gồm nhiều thay thế hơn có thể được thiết lập theo cùng một cách. Y.1 ˛/Lju vj C j˛jL ˇˇu v C Œf . 2 2 k3 D f .u C f .x. một cách tự nhiên Y0 D A. 3. các công thức cấp bốn với kích thước bước hằng thường được dùng để tích phân số phương trình vi phân.xn C h. yn C hk2 /.x. yn C k0 . h ynC1 D yn C .x. 2.x. nếu phương trình vi phân thỏa các điều kiện của định lý 6.x.a/ D A.k0 C 2k1 C 2k2 C k3 /: 6 Đối với hệ phương trình vi phân cấp 1. v/ C ˛ f x C .1 ˛/ C j˛j C Lju vj 2 với mọi 0 < h < h0 . Tính liên tục của R hiển nhiên được suy ra từ tính liên tục của f . yn /.1.1 ˛/ C j˛j C L: 2 Vì vậy. u/ R.CHƯƠNG 6.x.x. PHƯƠNG TRÌNH VI PHÂN THƯỜNG 120 ˛ D 1. v/ˇˇ 2˛ h  . và ta có thể lấy hằng số Lipschitz cho R là   h . Cách chọn cổ điển các tham số dẫn đến thuật toán y0 D A. thủ tục thuộc cấp p cần p đánh giá ở mỗi bước khi p D 1. 4 nhưng không như vậy khi p D 5. 1. . Như xảy ra. Y0 D F. thành viên bất kỳ của họ với ˛ 6D 0 hội tụ cấp 2. v/ ˇˇ 2˛ 2˛ ˇ ˇ ˇ ˇ h  . ˇ    ˇ h h jR. b].

xn / D yn : Sai số địa phương là u. Sai số này ảnh hưởng lên sai số toàn cục phụ thuộc vào bản thân phương trình vi phân. Y n C K1 .K0 C 2K1 C 2K2 C K3 /: 6 Một thủ tục cấp bốn khác. y/.x/ ký hiệu nghiệm duy nhất của bài toán y 0 D f .xnC1 / ynC1 D Œy.xnC1/ ynC1 : (6. u. Y n C K0 . h YnC1 D Yn C . Có một nhầm lẫn đáng tiếc từ nhiều người dùng mã với đánh giá sai số về cái được đo và liên hệ của nó với sai số thực. Sai số ở mỗi bước được đánh giá và h được điều chỉnh lại để nhận được xấp xỉ đủ chính xác. Yn hK1 C 2hK2 /. hoàn toàn tương tự K0 D F.xnC1/ ynC1 : Đây là sai số do xấp xỉ nghiệm phương trình vi phân gốc tại . Yn C hK2 /.xn C h. 2 2   h h h K2 D F x n C .xn .4 (6. 2 2   h h K2 D F x n C . yn / bằng một bước.23) (6. Yn /. SAI SỐ ĐỊA PHƯƠNG VÀ TOÀN CỤC 121 và khi n D 0.x. Yn /. vì trong bước tính xnC1 thủ tục số chỉ cung cấp xn . Y n C K0 .xnC1 / ynC1: Nhưng tiếc là có khó khăn và tốn kém để đánh giá đại lượng này. yn để đánh giá f . Sau hết.xn . Việc đòi hỏi thủ tục số giữ cho sai số này nhỏ là hợp lý.6.xnC1/ C Œu.xn C h.1. Nghiệm địa phương tại xn là nghiệm u.x/ u0 D f .25) .xn . y. h YnC1 D Yn C . Sai số này được minh họa trên hình 6. : : : thuật toán Runge-Kutta cổ điển là K0 D F. 1.xnC1 / u.4. y.K0 C 4K2 C K3 /: 6 6.   h h K1 D F x n C . 2 4 4 K3 D F. 2 2 K3 D F.24) Sai số địa phương và toàn cục Các mã hiện nay cho bài toán giá trị đầu không dùng kích thước bước cố định. Y n C K0 C K1 .a/ D A: Sai số thực hay toàn tục tại xxC1 là y. Hàm y.   h h K1 D F x n C .x. u/.

26) Nếu ˛ > 0.xnC1/ u. Đại lượng y. nó đúng bằng h lần sai số chặt cụt địa phương. u. thì bài toán được đặt xấu hay điều kiện xấu hay không ổn định.xnC1/ ynC1 D .xnC1/ D Œy. các đường cong tụ vào nhau (Hình 6. y.xn / yn tại xn. nếu ˛ < 0.xn . . y.x/ D yn e˛.6 Xét với ˛ là hằng số.2b) và (6.xnC1/ là số đo sự ổn định của phương trình vi phân vì nó là hậu quả (tại xnC1) của sự sai biệt ban đầu y. càng nhiều khi ˛ lớn. y/.x/: sai số địa phương D u. Nếu đại lượng này gia tăng ngày càng lớn.xn / C hf .26) chứng tỏ rằng sự điều khiển sai số địa phương sẽ điều khiển sai số toàn cục. Ta có sau một số tính toán: y 0 D ˛y y. y.xn .xnC1 / D y. Với các hàm f . ta đã thấy phương pháp Euler có y.x xn / .yn / C hˆ.1: Sai số địa phương và sai số toàn cục. với nghiệm địa phương u. Thí dụ 6.xn // D 0.x.h3 /: 2 .Mặt khác.26) rõ ràng sai số địa phương nhỏ tại mỗi bước không cho sai số toàn cục nhỏ.xn . vì với thí dụ này hằng số Lipschitz là j˛j trong cả hai trường hợp ı Sai số địa phương liên hệ với sai số chặt cụt địa phương. y. y.xn . yn / C hn / D hn : ynC1 Chẳng hạn.x. Từ biểu thức (6.xn // C h2 Œf .xn //fy .xn.xnC1 / u.2a). PHƯƠNG TRÌNH VI PHÂN THƯỜNG 122 Hình 6. Thật vậy. các đường cong nghiệm trải rộng ra (Hình 6.CHƯƠNG 6.xn / yn e˛h : (6. y/ tổng quát điều kiện Lipschitz không thể tiên đoán dáng điệu này.xn /e˛.x/ D y. khi yn là nghiệm của y 0 D f .xn // C fx .x xn / I hơn nữa.

f fyy C 2ffxy C fxx / C 0.x/.f fyy C 2ffxy C fxx / C . Thì bởi định nghĩa u. SAI SỐ ĐỊA PHƯƠNG VÀ TOÀN CỤC 123 Hình 6. q > p.xnC1/ D yn C h f C f C f 2 6 sai số địa phương D thì xấp xỉ số thỏa yOnC1   h h2 2 . giả sử rằng thêm vào giá trị ynC1 D yn C hˆ.ffy C fx / C 2 8˛ Điều này dẫn đến sai số địa phương D h O n D h3  1 6  1 h3 2 . yn / với sai số chặt cụt n D 0. Điều này giống nguyên lý dùng trong chương 5 để đánh giá các sai số cầu phương.h4 / u. (b) y 0 D 2y.ffy C fx / C 0. Biểu thức trên chứng tỏ rằng yOnC1 ynC1 D h2 .ffy C fx / C 0. Nói chung. ta có   h .h3 / D hn C 0.h4 /: D yn C h f C . yn / yOnC1 D yn C hˆ. yn / C hn D ynC1 C hn .xnC1/ D yn C hˆ.h3 /: 2 Nghĩa là.hq / có cấp cao hơn.2/ C 0.fx fy C ffy2 / C 0. ta tính xấp xỉ khác O n .4. sự khác nhau giữa hai giá trị cho đánh giá sai số bằng công thức cấp thấp hơn. Áp dụng cho u.6.h4 /: 8˛ 6 Các biểu thức này đề nghị một cách đánh giá sai số địa phương.2: Các đường cong nghiệm với: (a) y 0 D 2y.1/ h2 . ta có h2 . Giả sử ta tính ynC1 bằng phương pháp Euler và ta cũng tính một xấp xỉ nghiệm yOnC1 bằng một trong các công thức Runge-Kutta cấp 2.xn .h3 /: 2 Tương tự với công thức Rung-Kutta cấp 2 (˛ 6D 0).hp /.x với sai số chặt cụt O n D 0.xn.

thủ thuật có hiệu quả là phải thiết lập công thức như một cặp trong đó các đánh giá hàm được dùng trong cả hai công thức.24) để có kết quả cấp 4 YnC1=2  Y. tương tự. Đúng như cầu phương Gauss-Kronrod. Nó tương ứng với các sơ đồ cầu phương thích ứng của chương 5. Nó cũng cho phép mã chọn lựa kích thước bước lớn nhất mà kết quả vẫn qua được sự kiểm tra sai số. Ngoại trừ các trường hợp không thông thường.hqC1 /: Vì hO n dần về không nhanh hớn hn .xnC1 D ynC1 C hn  ynC1 C . bằng cách trừ nhau.xnC1/. chứng tỏ rằng yOnC1 ynC1 D hn hO n D hn C 0.CHƯƠNG 6. PHƯƠNG TRÌNH VI PHÂN THƯỜNG 124 và. ông ta có thể lập một xấp xỉ cấp 5 Y thực hiện ở mỗi hai bước một nửa để có đánh giá sai số. tại sao không cố gắng cải thiện nó bằng cách loại bỏ sai số? Quá trình này. . ông lấy bước độ dài h=2 với (6. Để tiến từ xn đến xn Ch. Như vậy ta có thể nghĩ về điều đang xảy ra trong hai cách. Vì sự kiện ta có một đánh giá sai số trong ynC1 tốt. Bằng cách thực hiện hai bước một nửa. mà. sự thích ứng kíh thước bước cho nghiệm theo cách này gia tăng tính hiệu quả của phép tích phân rất nhiều. Bởi vì ngoại suy địa phương gia tăng sự chính xác mà không gia tăng sự tốn kém. England đã công bố một cặp công thức như vậy trong [3].xn C h/. ta có thể đánh giá sai số địa phương bởi sai số địa phương D hn  yOnC1 ynC1 : Ta muốn xấp xỉ nghiệm địa phương u. cấp q đang được dùng với kích thước bước được chọn cách dè dặt nhờ đòi hỏi rằng bước được lấy với công thức cấp thấp hơn p. Một đánh giá sai số được dùng để điều khiển sai số địa phương và như vậy cho sự tin cậy nào đó vào nghiệm tính toán.yOnC1 ynC1 / D yOnC1 : Điều này bảo cho chúng ta rằng ngoại suy địa phương sẽ nâng cấp hiệu quả của cặp từ p lên q. Công thức còn lại. u. ở đây tương đương cách hình thức với việc đề xuất phép tích phân bằng xấp xỉ cấp cao hơn yOn bởi vì u. thêm một đánh giá hàm được đánh giá. Bằng cách này. Công thức cấp p đang được dùng với kết quả của nó được cải thiện nhờ ngoại suy địa phương. R. tất cả các mã sản xuất hiện nay dựa trên các phương pháp Runge-Kutta hiển đều dùng nó. gọi là ngoại suy địa phương (local extrapolation). Công thức Runge-Kutta cấp 4 đòi hỏi (ít nhất) bốn đánh giá của F ở mỗi bước và một công thức cùng loại cấp 5 đòi hỏi ít nhất sáu.xnC1/ D yOnC1 C h O n. ông ta có đủ các đánh giá hàm có hiệu lực mà với chỉ thêm một O nC1 cho YnC1.xn C h=2/ và rồi bước khác độ dài h=2 để có kết quả cấp 4 YnC1  Y.

0/ D 0: 6. Mặt không thuận lợi của các thuật toán giải bài toán giá trị đầu là chúng sinh ra một bảng các giá trị xấp xỉ trong khi nghiệm toán học y.x/ là một hàm liên tục. 4 4   3h h K6 D F xn C . YnC1=2 K5 C hK6 .x/ D 1 2 . Yn /. 4 8   h K7 D F xn C h. Y n K1 C hK2 .x c/ . nếu c < x  b 4 là một nghiệm của bài toán giá trị đầu p y0 D jyj y. 4 8   h h K3 D F x n C .4. Yn C .K0 C 4K2 C K3/I   12 h K4 D F xn C .6. 2 h YnC1 D YnC1=2 C .K4 C K5 / .2 Xét bài toán p y0 D j1 y.   h h K1 D F x n C . kiểm tra rằng với hằng số c bất kỳ.K0 C K1 / . 2 2 h YnC1=2 D Yn C . hàm y. K0 D F. YnC1=2 . 2   3h h K5 D F xn C . Yn C . nếu 0  x  c y.0/ D 1: y2j . Câu hỏi và bài tập 6. 0  c  b. Y n C K0 .x/ xác định bởi  0.K4 C 4K6 C K7/I 12  h K8 D F xn C h. K0 96K1 C 92K2 121K3 C 144K4 C K5 12 O nC1 D Yn C h .xn . YnC1=2 C .14K0 C 64K2 C K3 8K4 C 64K6 C 15K7 K8 /: Y 180  12K6 . SAI SỐ ĐỊA PHƯƠNG VÀ TOÀN CỤC 125 Công thức của England là như sau. Có thể xấp xỉ nghiệm cho mọi x bằng nội suy. YnC1=2 C K4 .1 Như một thí dụ không duy nhất nghiệm. 4 4   h h K2 D F xn C .

0/ D 1. Cái gì là khoảng lớn nhất chứa x D 0 trên đó cos x là nghiệm? 6.x/ D cos x là nghiệm trên khoảng thích hợp.4 Áp dụng phương pháp Euler để đánh giá nghiệm của bài toán giá trị đầu trong bài tập 6. . vậy y. (a) y 0 D y=.126 CHƯƠNG 6.x/ D cosh x là nghiệm trên Œ0. 6. Trong mỗi trường hợp tính sai số tại x D 1:0. vậy y.3b.x C 1/.3 Dùng phương pháp Euler cho các bài toán sau bằng cách dùng kích thước bước cố định h D 1:0. PHƯƠNG TRÌNH VI PHÂN THƯỜNG Kiểm tra rằng (a) y. Tính sai số tại x D 0:5 và x D 1:0 để thấy nếu chúng được chia đôi một cách thô như h là. và (c) y. và rồi h D 0:5.x C 1/ với y.x/ D l= 1 C x. Dùng h D 1=40 và h D 1=80.x/ p D 1=.0/ D 1. (b) y. Đánh giá xem h cần nhỏ bao nhiêu để sai số tuyệt đối nhỏ hơn 10 6 về độ lớn.x/ D 1 là nghiệm trên khoảng bất kỳ chứa x D 0. b với bất kỳ b > 0. 0 3 (b) y D y =2 với y.

q là số nguyên.1 Chữ số có nghĩa Các chữ số dùng để biểu diễn một số gần đúng được gọi là chữ số có nghĩa nếu chúng tuân theo quy tắc sau: a) Chữ số khác 0 luôn luôn là chữ số có nghĩa. . max(x) là vectơ dòng chứa các phần tử lớn nhất trong mỗi cột. . . thì có nghĩa. trong đó p. thí dụ như các số nguyên. Nếu x là phức. hoặc phân số hữu tỉ dạng p=q. Với ma trận. A. c) Chữ số 0 nằm trước các chữ số khác thì không có nghĩa.i]=max(x) trả về chỉ số của các giá trị lớn nhất trong vectơ i. [y. . 127 . Số đúng là số có giá trị chính p xác.2 Số gần đúng Trong tính toán số ta phân biệt số đúng với số gần đúng. disp hiển thị văn bản hay mảng. nhưng sau dấu chấm thập phân. Với vectơ.1 Các hàm Matlab dùng trong tài liệu max xác định thành phần lớn nhất. Độ chính xác của một số gần đúng tùy thuộc vào số chữ số dùng để diễn tả nó.Phụ lục A Matlab A. Cú pháp: for variable = expression statements end return trở về hàm gọi. for thi hành khối lệnh một số lần được chỉ định.2. A. Số gần đúng là số mà giá trị của nó chỉ chính xác đến một bậc độ lớn mà thôi. Thí dụ 3:14 và 3:1416 là số gần đúng của . abs(x) trả về môđun của x. d) Chữ số 0 nằm sau các chữ số khác. hoặc . b) Chữ số 0 có nghĩa khi nó nằm giữa các chữ số có nghĩa. abs(x) trả về một mảng y sao cho mỗi phần tử của y là giá trị tuyệt đối của phần tử tương ứng của x. e. 2. abs giá trị tuyệt đối và môđun của số phức. max(x) là phần tử lớn nhất trong x.

v. số vị trí thập phân (không phải chữ số có nghĩa) trong lời giải nên bằng số vị trí thập phân nhỏ nhất trong các số hạng tham gia vào phép tính. các hàm lượng giác. 7:90 có ba chữ số có nghĩa (quy tắc d)). . Cú pháp: digits(d) đặt độ chính xác hiện hành của vpa là d chữ số.2. thì không thể nói chúng (chữ số 0) có nghĩa hay không. 0:046 có hai chữ số có nghĩa (quy tắc c)).3 Tính toán với số gần đúng Trong tính toán số bao gồm phép nhân. 4009 có bốn chữ số có nghĩa (quy tắc b)). Thí dụ z = 1.kx/. muốn quy tròn một số giữ lại n chữ số có nghĩa.2. Chú ý. số chữ số có nghĩa trong lời giải nên bằng số chữ số có nghĩa nhỏ nhất của các số hạng tham gia vào phép tính. số nhận được gọi là số quy tròn. thì chữ số thứ n không đổi. hoặc bằng 5 mà theo sau nó có ít nhất một chữ số khác 0. . digits trả về độ chính xác hiện hành của vpa. thì chữ số thứ n tăng lên 1. . các số nguyên có số không hạn chế các chữ số có nghĩa! Đối với phép cộng và trừ. Như vậy.PHỤ LỤC A.2 Quy tắc làm tròn Để biểu diễn giá trị gần đúng của một số với chỉ một vài chữ số có nghĩa người ta dùng quy tắc quy tròn. 22:3 có ba chữ số có nghĩa (quy tắc a)). A. digits chỉ định số chữ số thập phân có nghĩa (significant decimal digits) mà Maple dùng để thực hiện phép tính số học với độ chính xác thay đổi (vpa). ta nên giữ thêm ít nhất một chữ số có nghĩa trong các kết quả trung gian hơn số chữ số có nghĩa cần đến trong kết quả cuối cùng. + Nếu chữ số thứ n C 1 lớn hơn 5. thí dụ số 8200. ta phải bỏ đi các chữ số nằm ở bên phải chữ số thứ n theo quy tắc sau: + Nếu chữ số thứ n C 1 nhỏ hơn 5. Trường hợp chữ số 0 nằm sau các chữ số khác nhưng "không có dấu chấm thập phân". MATLAB 128 Thí dụ: 22 có hai chữ số có nghĩa.0e+2 digits(14) thì y = vpa(x*z+1) . Giá trị mặc nhiên là 32 chữ số. A. Matlab dùng hai lệnh của Maple giúp ta thực hiện các phép tính trên các số gần đúng: digits và vpa. chia. 8:20  103 có ba chữ số có nghĩa. + Nếu chữ số thứ n C 1 bằng 5 và các chữ số sau đó đều bằng 0 thì chữ số thứ n không đổi. 8:2  103 có hai chữ số có nghĩa. v. Thí dụ: 5:67 J (hai vị trí thập phân) C 1:1 J (một vị trí thập phân) 0:9378 J (bốn vị trí thập phân) 7:7 J (một vị trí thập phân) Trong tính toán gồm nhiều bước. d = digits. trong đó k D 0:097 m 1 (hai chữ số có nghĩa) và x D 4:73 m (ba chữ số có nghĩa). Để tránh sự bất định này người ta dùng ký hiệu khoa học để đặt các chữ số 0 có nghĩa sau dấu chấm thập phân: 8:200  103 có bốn chữ số có nghĩa. thì lời giải chỉ nên có hai chữ số có nghĩa.0e-16 x = 1. Vậy khi đánh giá sin.

Cú pháp: r = vpa(a) dùng phép tính số học với độ chính xác thay đổi (vpa) để tính mỗi phần tử của a chính xác tới d chữ số thập phân. r = vpa(a.618033988749894848204587 . trong đó d là số đặt hiện hành của digits. thay vì số đặt hiện hành của digits.141592653589793238462643 w = 1.2.00000000000001 vpa tính số học với độ chính xác thay đổi.5000000000000000000000000 p = 3. Mỗi phần tử của kết quả là một biểu thức symbolic.chữ số thập phân có nghĩa và trả về y = 1.d) dùng d chữ số. Thí dụ Các lệnh digits(25) q = vpa(sin(sym(’pi’)/6)) p = vpa(pi) w = vpa(’(1+sqrt(5))/2’) trả về q = .0000000000000 Nhưng nếu digits(15) y = vpa(x*z+1) dùng 15. SỐ GẦN ĐÚNG 129 dùng 14-chữ số thập phân có nghĩa và trả về y = 1.A.

N .x/ và h là bước lưới trên trục x.x/ D u. 1.x h h/ : 2u.x.x/ u.x/ D u. dùng sai phân tiến   d 2u 1 ru.c/ Câu hỏi 1) Dùng công thức (c) xấp xỉ phương trình (a) và điều kiện (b) của bài toán biên. N C 1. N 1. ru. Chẳng hạn. Ký hiệu wij D w. j h/ với i.x C h/ u.x/ u. Công thức sai phân Cho hàm u. j D N. 3) Viết chương trình giải số bài toán (nộp sau 01 ngày). @x 2 @y .a/ w D 0 trên jxj D 1 và jyj D 1: . Sai phân tiến (tương ứng.x/ u. 1/  . w. y/ của dòng chảy dừng của chất lỏng nhớt trong đường ống tiết diện vuông  D .x h//: Từ công thức khai triển Taylor ta có thể xấp xỉ đạo hàm cấp một của u tại x bằng công thức sai phân lùi du ru.x/ C u.b/ thỏa điều kiện biên không trượt Một trong các phương pháp số giải bài toán này là phương pháp sai phân hữu hạn. y/ được xấp xỉ chỉ trên lưới. Thiết lập hệ phương trình đại số tuyến tính xác định các giá trị nút wij .x/  D dx h Để tính xấp xỉ đạo hàm cấp hai. Theo cách tiếp cận này. . 1/ là nghiệm của phương trình @2 w @2 w 1C C 2 D 0 trong . lùi) cấp một của hàm u tại x với bước h. 1.x/ .tương ứng. : : : .Đề thi giữa kỳ Môn: Giải tích số I Năm 2009 Bài toán Vận tốc w. là u.ih. gồm các điểm nằm trong và trên biên ) là giao điểm của các đường tọa độ trong hệ tọa độ Descartes chọn trước. nếu cho N là số nguyên dương và h D 1=N là bước lưới ta có lưới gồm các điểm .x.x/ . j h/. bởi định nghĩa.x C h/   D dx 2 h h u.ih.x h2 h/ : . 2) Viết thuật toán giải bài toán biên.

s D 3. Như vậy. N C1  10 1 < < 10 6 : 11  10  9  8  7  6 332640 Chú ý.N i C 1/ : Mặt khác.2 Hệ thống số dấu chấm động với ˇ D 2. ˙0:101  20 . ˙0:101  22 . ˙0:101  21 .N  1/    .Hướng dẫn & Đáp số bài tập Các bài tập trong tài liệu này nhằm giúp sinh viên tự kiểm tra kiến thức. ˙0:111  20 ˙0:110  21 . ˙0:100  21 . m D 1. Chỉ nên tham khảo lời giải có ở đây sau khi đã giải được (so sánh tìm cách giải tốt hơn). EO N EN D . ˙0:111  2 ˙0:110  20 . ˙0:111  22 và 0:000  2 1 . hoặc sau khi đã cố gắng nhiều lần nhưng không thành công. hoặc bổ sung các điểm không được trình bày trong bài giảng. Bài tập chương 1 1. M D 2: ˙0:100  2 1 . ˙0:101  2 ˙0:100  20 . 1 . Sinh viên nên cố gắng tự giải các bài tập. từ bất đẳng thức 0 < EN < nếu lấy E11 D 0 thì  < 10 1 và E5 D 1 . Cuối chương là một số chứng minh các kết quả (không được chứng minh đầy đủ) trong tài liệu. Ta có: EN i D EO N i EN i D N.1 Gọi N là chỉ số bắt đầu của thuật toán dùng công thức truy hồi lùi (1. trong phân tích này ta giả thiết các phép tính thực hiện trong thuật toán là chính xác! 1. hệ gồm 33 số.  là sai số tuyệt đối của EO N . ˙0:110  2 1 . ˙0:100  22 . Để biểu diễn trên trục số ta chuyển đổi chúng sang hệ thập phân: 0:100 0:101 0:110 0:111 2 1 0:25 0:3125 0:375 0:4375 20 0:5 0:625 0:75 0:875 131 21 1:0 1:25 1:5 1:75 22 2:0 2:5 3:0 3:5 1 .4). ˙0:111  21 ˙0:110  22 .

. k D k C 1. k D 0 3. MAX số chữ số tối đa (phần phân số hệ cơ số ˇ) 2. end % chuyen doi phan phan so k=0. k D k C 1. Phân tích a D b C c. c là phần phân số 3. b=floor(b/beta). ˇ. Chú ý.1 pold D c.m % function chuyen doi he co so 10 sang he co so beta function s=chdoi(a. trong đó b là phần nguyên.1 qold D b. while b~=0 k=k+1. B(k)=rem(b. B.k/ D s end 5.MAX) b=floor(a) % phan nguyen c=a-b % phan phan so % chuyen doi phan nguyen k=0. while (c~=0)&(k<MAX) 3 D 0:25.Hướng dẫn & Đáp số bài tập 132 Hình A.2 while pold D 0 & k < MAX Thực hiện phép nhân cho ˇ: qold  ˇ D pnew C s (s là phần nguyên) pold D pnew . Chuyển đổi phần phân số c 4.beta).2 while qold D 0 Thực hiện phép chia cho ˇ: qold D qnew  ˇ C r (r là dư số) qold D qnew .3 Thuật toán chuyển đổi hệ cơ số 10 sang cơ số ˇ 1. từ biểu diễn trong hệ thập phân ta có thể kiểm tra lại đơn vị làm tròn là u D 21 1. Xuất kết quả Chương trình viết bằng Matlab chdoi. k D 0 4. C. Chuyển đổi phần nguyên b 3.1: Biểu diễn các số dương trên trục số.k/ D r end 4.beta. read a (hệ thập phân).

C(k)=floor(c*beta).int2str(B(length(B)-k+1))).A2 /.am : : : a1 a0 /2 . v1 .A2 /a1 .4 Số nguyên dương n có biểu diễn trong hệ nhị phân là n D . end s=strcat(s. c=c*beta-C(k).’). có thể viết cách hình thức là ' D '. chương trình vì thế sẽ khác (dành cho sv). Vì . để tính được An . nhưng các phép tính được thực hiện trong hệ thống số cơ số ˇ. xét hai số a D 0:77  10 1 . Tóm lại.a ˚ b/=2 D 0:08  100 D 0:80  10 1 nên . end Thuật toán chuyển đổi ngược lại là tương tự. 1.6 a) Công thức tính ' (hàm ẩn). m D 1. ta cần nhiều lắm là 2m  2Œlog2 n phép nhân ma trận. M D 2. theo các thành phần của u và v.5 Trong hệ thống số dấu chấm động ˇ D 10. : : : . An D A2 m Ca m 1 C:::Ca 21 Ca m 12 1 0 m D .’.u1 C u2 / v1 C v2 cos2 ' D q ju1 v2 u2v1 j q . am Vì n D 2m C am 1 2m Mặt khác.A2 „ m 1 m phép nhân ma trận Các ma trận trong dấu ngoặc được tính từ các tích: 2 3 2 /am 1    . b D 0:79  10 1 : Vì a C b D 1:56  10 1 D 0:156  100 nên a ˚ b D 0:16  100 (làm tròn).u1 .A1 /a0 : ƒ‚ … 2 m A2 D AA ! A2 D A2 A2 ! A2 D A2 A2 ! : : : ! A2 D A2 m 1 A2 m 1 : Tất cả có m phép nhân ma trận. a1 . u2 . 1g. Bằng cách lấy đạo hàm cos ' theo u1. am D 1: C : : : C a1 21 C a0  2m nên m  Œlog2 n. ta suy ra: @' D @u1 Ta lại có: j sin 'j D p 1 u2 . v2 /. 1. end % xuat ket qua s=’’.a ˚ b/ ˛ 2 D 0:80  10 1 > b. for k=1:length(B) s=strcat(s. 2 2 2 2 u1 C u2 v1 C v2 .int2str(C(k))). 1. s D 2. a0 .Hướng dẫn & Đáp số bài tập 133 k=k+1.v1 u2 u1v2 / q : 2 2 2 2 sin '. for k=1:length(C) s=strcat(s. 1 1 2 f0.

b) % flag=0 thanh cong.p]=max(abs(a(k:n.16) ta có đánh giá j'j  ju1 j C ju2 j C jv1 j C jv2 j: Như vậy. for j=1:n %j=k+1:n . tam=a(p+k-1.flag]=gauss_eli(a. end for i=k+1:n t=a(i. % khu Gauss for k=1:n-1 [v. a(k. Từ công thức (1.k)== 0 flag=1.k). a(p+k-1.Hướng dẫn & Đáp số bài tập 134 nên ˇ ˇ ˇ @' ˇ ju2 j ˇ ˇ  1: ˇ @u ˇ D q 2 2 1 u1 C u2 Ta cũng có kết quả tương tự với u2. Công thức truy hồi tiến: In D 1 4n In 1 .ổn định/: 4 Công thức truy hồi lùi: In 1 D 1 n 4In .:).m function [x.không ổn định/: Bài tập chương 2 2.:). tính ' từ các thành phần của u và v luôn là bài toán điều kiện tốt.k))).1 gauss_eli.b) % ham tra ve nghiem cua phuong trinh dstt a*x=b % cu phap: [x. n=length(b). flag>0 he phuong trinh suy bien.:)=a(k.flag]=gauss_eli(a. dung flag=0. v1 . if a(k.:)=tam. 1. return.7 HD. v2 (do tính đối xứng). b) Số điều kiện (đối với u1) của thuật toán tính theo công thức cho: ˇ ˇˇ ˇ ˇ @' ˇ ˇ u1 ˇ ˇˇ ˇ  D ˇˇ @u1 ˇ ˇ ' ˇ khi ' nhỏ là rất lớn.k)/a(k. do đó thuật toán tính theo công thức này là không ổn định! c) Dành cho sv.

j)*x(j). x1 D 9 (nghiệm chính xác). Như vậy. ta được 0:461x1 C 0:311x2 D 0:150 0:001x2 D 0:001 Thế ngược: x2 D 1.2. return end % The nguoc for i=n:-1:1 x(i)=b(i). Sai số lớn! 2. b) Nếu dùng biểu diễn thập phân chặt cụt 2-chữ số thì ma trận nới rộng của hệ là 2 3 1 0:5 0:33 j 1 Q 4 0:5 0:33 0:25 j 0 5 A 0:33 0:25 0:2 j 0 c) Khử Gauss (không dùng phép xoay cục bộ) 2 3 2 3 1 0:5 0:33 j 1 1 0:5 0:33 j 1 Q  4 0 0:08 0:09 j 0:5 5  4 0 0:08 0:09 j 0:5 5 : A 0 0:09 0:1 j 0:33 0 0 0:001 j 0:22 . for j=i+1:n x(i)=x(i)-a(i. 2.j)-t*a(k. 1/ ˛ a.i).3 Kết quả tính các thặng dư: rD  0:772  10 0:35  10 3 3  . nhân tử là a. end b(i)=b(i)-t*b(k). 1/ D 0:453. x2 D 36.j). x1 D 0:349. end if flag==1 disp(’suy bien’). end 2.2 Khử phương trình hai. end end if a(n.4 a) Khử Gauss ma trận các hệ số nới rộng.n)==0 flag=1.j)=a(i. cuối cùng ta thu được: 2 3 1 1=2 1=3 j 1 4 0 1=12 1=12 j 1=2 5 0 0 1=180 j 1=6 Thế ngược x3 D 30. sD  0:1  10 0:3  10 5 5  : Xấp xỉ tốt hơn nhưng thặng dư không nhỏ hơn. end x(i)=x(i)/a(i. việc xét thặng dư để kiểm tra độ chính xác của nghiệm là chưa đủ để kết luận.1.Hướng dẫn & Đáp số bài tập 135 a(i.

x3 D 2300=9.0:1  10 16 . nếu tính toán số dấu chấm động thì phương pháp ở câu b) tốt hơn phương pháp ở câu a).0:1  10 16 x1 C x2 D 2 /x1 C x2 D 1 Khử Gauss: x1 C x2 D 2 /x1 C x2 D 1 x2 D 1 Nghiệm: x1 D 1. b). c) ĐS. e) Nghiệm chính xác của b): x1 D 500=9. x1 D 0:45  102 .a) 46:5556 3 1 0:33 5 : 0:21 x2 x3 214 190 136 130 241:7778 225:5556 2.a) e) . rb D rc D  0 0  : Như vậy. 2. d) Thặng dự cho nghiệm tìm được ở các câu a).5 Với số học thập phân ít hơn hay bằng 15-chữ số thì 10 ˚ 1018 D 1018 ! Ở đây ta dùng số học thập phân làm tròn 15-chữ số. thặng dư chỉ ra điều này. d) và e) x1 c) . x2 D 1.a) 36 25 d) . a) Dùng phép xoay cục bộ: 10x1 C 1018x2 D 1018 x1 C x2 D 2 Khử Gauss: 10x1 C 1018 x2 D 1018 0:1  1018 x2 D 0:1  1018 Nghiệm x1 D 0. e) dành cho sv. b) Chia mỗi dòng với jaij j lớn nhất của nó.Hướng dẫn & Đáp số bài tập 136 Thế ngược: x3 D 0:22  103 . x2 D 0. x1 D x2 D 1.9 Dùng Factor/Solve (Matlab) . Trong trường hợp đang xét. x1 D 0:16  102 . hoán vị dòng 2 và 3: 2 3 2 1 1 0:5 0:33 j 5 4 0:33  0 0:09 0:10 j 0:5 0 0 0:2  10 2 j 1 0:5 0:33 j Q 4 A  0 0:09 0:1 j 0 0:08 0:09 j Thế ngược: x3 D 0:10  103 . x2 D 2500=9. Sau phép khử cột 1 (ở câu c)). c): ra D  1 10  . d) Khử Gauss (dùng phép xoay cục bộ). 10  103 . Sai số tính toán trong các trường c). x2 D 0:25  103 . ta được hệ: . x2 D 1.

33.Cond] = Factor(A) A = 1 1 1 -1 1 1 0 0 -1 flag = 0 pivots = 1 3 -1 Cond = 7 >> x = Solve(A.6700 Nghiệm chính xác x = 5167/100 1333/50 3167/100 Kết quả giải bằng Factor/Solve cho kết quả chính xác! 2.1. trong đó Ii là cột . I1=[1.33] b = 110.0].0000 78.6700 26. 0 1 1] A = 1 1 1 1 1 0 0 1 1 >> b=[110.01]. I2=[0. 1 bằng cách giải Ax D Ii . 4 5 6. 7 8 9.Hướng dẫn & Đáp số bài tập 137 >> clear all >> A=[1 1 1.flag.9 Do AA 1 D I nên ta có thể tìm các cột của ma trận A thứ i của ma trận đơn vị.b) x = 51.3300 58.3300 >> [A.pivots. 1 1 0.pivots.6600 31.0. >> >> >> >> clear all A=[1 2 3.78.0].58.

>> [A.1]. >> b=[0.pivots.0000 9. 0.Cond] = Factor(A) A = 0.8571 1.1905 113.7129 -0.809 0.2143 ans không gần với ma trận đơn vị! 2.I1).1429 -0. Ma trận là điều kiện xấu. >> B(:.0000 100.1)=Solve(A.pivots.flag.485].7857 -170.2)=Solve(A.0100 -0.3333 100.217 0.0000 100.376.0. >> B(:.732 0.4902 0.Hướng dẫn & Đáp số bài tập 138 >> I3=[0.3)=Solve(A.I3) B = 98.0000 -200.3380 -0.0000 8.pivots.886 0.613. 0. 0.4370e+004 quá lớn. Kiểm >> A*B ans = 0 0 -55.flag.3217 -0.5714 0.8860 0.0006 flag = 0 pivots = 3 .7950 0.6390 0.4955 0. 0.5000 -0.508 0.2730 -0.10 a) >> clear all >> A=[0.3571 1.0000 -198.6667 399.741.0050 flag = 0 pivots = 3 3 1 Cond = 1.pivots.4370e+004 >> B(:.414.3333 -199.9048 84.0000 -57.0000 Số điều kiện Cond=1.I2). >> [A.338].Cond] = Factor(A) A = 7.pivots.6667 -200.795 0.2857 85.

inf) norm = 2. >> syms x >> L1=(x-xn(2))/(xn(1)-xn(2)) L1 = 2 .3 Dùng Matlab >> clear all >> xn=[1 2].0190 >> normb=norm(b. c) dành cho sv.4160 2.7:4294  10 kxk Kết quả không đáng tin cậy. ta có kxk <  Cond.0000 -0.1 4 C 6:7476  10 4 / D 7:0047  700 %: .inf) normb = 0.pivots.Hướng dẫn & Đáp số bài tập 139 3 1 Cond = 4.x >> L2=(x-xn(1))/(xn(2)-xn(1)) L2 = x .21). >> fn=[2 4]. Bài tập chương 3 3. 3  0:0005 0:0005 kAk kbk D D 7:4294  10 4 .7410 Như vậy.5254 b) Chuẩn của A và b: >> normA=norm(A.9409e+003 >> x = Solve(A.b) x = 0. D D 6:7476  10 4 : kAk 2:0190 kbk 0:7410 Theo bất đẳng thức (2.

1 sự duy nhất hiểu theo nghĩa các đa thức bậc  N 1.[1 2]) >> hold off Hình A.x/ D P2 . N: 5 … . : : : .Hướng dẫn & Đáp số bài tập 140 >> P2=fn(1)*L1+fn(2)*L2 P2 = 2*x Có thể chọn Q.x/ D c1 C c2 x C : : : C cN x N PN . Q.x/. PN . j D 1.x/ D Œ1 x x 2 : : : x N 2 c1 6 c2 1 6  4 :: : cN Như vậy. Điều này không mâu thuẩn với tính duy nhất của đa thức nội suy.2: Đồ thị hàm P2 .3. 3. bài tập 3.[1 2]) >> hold on >> ezplot(Q.x 1/.x/ C .xj /. >> Q=simplify(P2+(x-xn(1))*(x-xn(2))) Q = x^2 .x/. Vì theo chứng minh định lý 3.4 Phương trình có thể viết dưới dạng ma trận: PN .xj / D Œ1 xj xj2 : : : xjN 2 c1 6 c2 1 6  4 :: : cN „ ƒ‚ phương trình thứ j 3 1 3 1 1 7 7: 5 7 7 D f .x + 2 >> ezplot(P2.x 2/.

k0 . D 0 với mọi j.x/.N /T . Kết quả của thuật toán là các hệ số c1 . cN 1. end end 3.x1 / 7 6 f .j-1)*xn(i). x. k .N /.x/ đều .x Từ các điều kiện của k . Do đó. Nhập dữ liệu: x n D Œx.x/.xk / D 0.2/. k0 . x. k . : : : .x/ k .x/ và xk /L2k . chương 3 k .j)=M(i.1)=1. j D1.j 6Dk xj /2 : k . k và chứa các nhân tử .1/. Giải phương trình Mc D f.Hướng dẫn & Đáp số bài tập 141 Hệ phương trình xác định các hệ số c1 .1/. với mọi j (j 6D k). k0 . Các hệ số này hoàn toàn xác định một đa thức. : : : .xj / ta nhận thấy.x/.xN / ƒ‚ … f 1.x xj /2 .x/: D   0 nếu j D 6 k 1 nếu j D k.x/. x. 4.x xk /L2k .j 6Dk D B.x/.x/ D 0 k . k .x j D1.x2 / 7 7D6 7: :: 5 4 5 : cN 1 … „ ƒ‚ … „ c1 7 6 c2 76 : 5 4 :: c f . Như vậy. k . k . : : : .x/ D .2/.x xk / N Y .xk /. k . xj là nghiệm của k .x/ có dạng: k . Chứng minh một số công thức Chứng minh công thức (3.x/. k .x/ N Y .x/ D Œ1 k .x/ D A. 2.xj / D 0 với mọi j 0 nếu j D 6 k 1 nếu j D k. Xuất kết quả. cN 1 : 2 1 x1 x12 : : : x1N 1 6 1 x2 x22 : : : x2N 1 6 : : :: :: 4 :: :: : : 1 xN xN2 : : : xNN „ ƒ‚ 1 M Thuật toán 32 3 2 3 f . ngoài ra. x.x xj /2 . for j=2:N M(i.12). Lập ma trận M for i=1:N M(i. f n D Œx.x/. : : : .x/.x/ 2L0k .

xk : xj /2 j D1. 3) k0 .xk j D1.x/.j 6Dk trong đó c.x xk / C d  D e. deg B D 0.x/ D Œc. yi /. deg 1 nên deg A  1.x k . 1) k .x/ ta được kết quả cần tìm (CMX).x j D1. e là hằng số. : : : . d.j 6Dk 13 N Y d @ . j D1.xi .  2N k k .j 6Dk cD xDxk 2L0k . . Đề thi giữa kỳ Năm 2008 Bài toán Cho đường cong C với các điểm nút đã biết .x/: xj /2 .x/.x j D1. i D 1. Bài toán: Xấp xỉ đường cong C.Hướng dẫn & Đáp số bài tập 142 Vì deg k .j 6Dk Thay e vào biểu thức của k .x/ xk / N Y k .x xj /A5 D0 dx j D1.j 6Dk xj /2 D 1 ) e D 1 N Y . được xác định nhờ các đặc trưng còn lại của k . 2.x/.xk : xj /2 j D1.j 6Dk N Y xj /2 .xk / D 1 suy ra N Y d D 1= .j 6Dk 2 cC N Y .j 6Dk xDx 2 0 13 k N Y x xj d 4 A5 @ D0 dx xk xj xj /  4 xj /2 0 j D1.xk / D 1 suy ra e N Y .xk / N Y .x/ ta được kết quả.j 6Dk Thay c và d vào biểu thức của k . Ta viết lại biểu thức của k .xk / D 0 suy ra (dùng kết quả trên): c N Y . N .j 6Dk N Y xj /2 C 2d .j 6Dk 2) k0 .xk j D1. Giải pháp .xk 2 j D1.xk j D1. .xk xj /2 : k .

duong cheo tren % b . . .s/ một cách độc lập. 6. 11/. .uline.s/.s/. 11:5/. ta có nội suy Sy .11:5. 11:8.duong cheo duoi % dline . .m function [b]= trisolve(lline. 2/. 5.dline. . 9/.s/. . . 2/.b) % TRISOLVE giai he ba duong cheo % cu phap = trisolve(lline.s/. 2/. 2:5/. Tham số s có thể chọn bất kỳ.0. .ve phai % output: b . . % khu for i=1:N-1 lline(i)=lline(i)/dline(i). 11/.3. 3:3/. . 0/. 2.13. 7:5. 2. Công thức tính độ dài cung xấp xỉ: s1 D 0. 3:5. Câu hỏi 1) Để bảo vệ tính liên tục của độ cong ta nên dùng spline bậc ba trơn.Sx . p si C1 D si C . 11:5.yi C1 yi /2 : Đán án Câu 1)-3) xem bài giảng. 2:5/. . Bây giờ ta có đường cong . .s/. 5/. . . 3/.1:5.2:5. .s// và xấp xỉ các hàm tọa độ x. 4/. 4:5/. Sau khi đã chọn các nút si .dline. . 9/. . 4/. .2:5. . 9. . 2:5. . 4) Các hàm và chương trình áp dụng trisolve. .s//. HD. y. 3:5/. 3:5. i D 1. Để giải bài toán ta cần: (1) thuật toán xây dựng spline bậc ba. 0/. dline(i+1)=dline(i+1)-lline(i)*uline(i).9. .Hướng dẫn & Đáp số bài tập 143 Dùng biểu diễn tham số của đường cong . : : : . 1:5. end % giai Ly = b bang phep the tien for i=2:N b(i)=b(i)-lline(i-1)*b(i-1).7:5. Vẽ đường cong xấp xỉ.x. 0:5/. 3. 3:3/.5. . 9:5.6. ta có thể nội suy x. y. . 2:5/. 13.2. Sy . nhưng nên lấy s là độ dài cung.uline. N . 3/. . 0:5/.3:5. 4:5/.b) % input: % lline .s// xấp xỉ đường cong . .s/. 0:5/. 4) Áp dụng cho đường cong có tập các dữ liệu sau: .0. . 2/.x.duong cheo chinh % uline . 3:5/. y. 5/.11:8. 2/. 2:5/. .nghiem N=length(dline).xi C1 xi /2 C . 2/. 0:5/.9:5. .s/.0. end % giai Ux = y bang phep the lui . . 2:5.3:5. (2) thuật toán giải hệ ba đường chéo. Vì sao ? 2) Trong trường hợp dữ liệu "thưa thớt" ta phải dùng spline như thế nào để có được đường cong theo yêu cầu ? 3) Trình bày thuật toán và viết chương trình bằng Matlab. . (3) chương trình áp dụng spline bậc ba cho bài toán xấp xỉ đường cong theo tập các dữ liệu rời rạc. tương tự với y.s/ bằng spline Sx .

uline(i)=h(i).3)*(h(N-1)+2*h(N-2)/3) .4)=(dy(N-1)-dy(N-2)-s(N-1.1)=y(1:N-1). for i=N-1:-1:1 b(i)=(b(i)-uline(i)*b(i+1))/dline(i).3)*h(i)-s(i. h=t(k+1)-t(k). f(N-1)=6*(dy(N-1)-dy(N-2)). -s(N-2.3)-s(i. dline..3))/h(i)/3. f(1)=0. s(:.dline.4)*h(i)^2.y) % input: % t: vector chua cac nut noi suy % y: vector chua cac gia tri ham noi suy % output: % s: mang chua cac he so cua da thuc bac 3 tren cac khoang con N=length(t). % an=fn (cot 1) s(:.4). f(i)=3*(dy(i)-dy(i-1)). dline(N-1)=3*h(N-1)+4*h(N-2). dy=(y(k+1)-y(k)). dline(i)=2*(h(i-1)+h(i)). end lline(N-2)=2*h(N-2).144 Hướng dẫn & Đáp số bài tập b(N)=b(N)/dline(N). f=zeros(N-1. s=zeros(N-1.uline./h(k). for i=2:N-2 lline(i-1)=h(i-1). end spline_3.2)=dy(i)-s(i. uline(1)=h(1). % xac dinh bn (cot 2) for i=1:N-1 s(i.4)=(s(i+1.y) % SPLINE_3 tra ve mang cac he so cua da thuc bac 3 tren cac khoang con % cu phap: s = spline_3(t.3)=transpose(trisolve(lline.1). end . end s(N-1.f)). uline la ba duong cheo dline(1)=2*h(1).. % xac dinh dn (cot 4) for i=1:N-2 s(i.m function s=spline_3(t. % ma tran cac he so va vecto xac dinh cac cn (cot 3) % lline. k=1:N-1.3)*h(N-2)/3)/h(N-1)^2.

5 -6 -9 -11. single). 1/ là nghiệm của phương trình @2 w @2 w C 2 D 0 trong .1)+SY(i.4)*s1.b/ 1C thỏa điều kiện biên không trượt . x=SX(i.5 -3 -3. Năm 2009 Bài toán Vận tốc w.’ro’).N) phát sinh N điểm ở giữa x1 và x2.5 4. plot(x.5 9 6 2. for i=1:N-1 t(i+1)=t(i)+sqrt((A(i+1)-A(i))^2+(B(i+1)-B(i))^2).B(N). linspace(x1. SY=spline_3(t.4)*s1.5 5 7.x. Khi N<2.m % chuong trinh dapan08.x2.5 2 4 4.^2+SX(i.5 -13 -11.5 -3. @x 2 @y ..5 11 9 5 .5 3.5 -5 -3. 3 1.^3.3 -3 -2 0.5 9. hold off Chú thích.5 11.. % so diem ve tren moi khoang con % nhap du lieu (toa do cac diem) A=[2.’FontSize’.A). linspace trả về x2. end title([’Duong cong xap xi’]. x2 phải thuộc lớp float (double.2)*s1+SX(i.5 0. % tham so duong cong (do dai cung) t(1) = 0. 1...8 -9.m clear all M=20.5 -2 -3 -3.5 0 2 5 9 11 11.5 4 2 -0.’ro’). end % xap xi spline bac ba hoanh do va tung do duong cong SX=spline_3(t.5].5 3.M).t(i+1).5 . plot(A(i).5 -7.5]. 1.2)*s1+SY(i. N=length(A). y=SY(i.^2+SY(i.5 3. x1.Hướng dẫn & Đáp số bài tập 145 dapan08.5 -0. y/ của dòng chảy dừng của chất lỏng nhớt trong đường ống tiết diện vuông  D .B).3)*s1. B=[-2.12) plot (A(N).5 0 -2. Lưu ý. s1=u-t(i).y).3 -2.5 0 -1.5 -2 0 2 3. 2 0 -2.^3.1)+SX(i.5 -2. 1/  .5 -2.3)*s1.B(i). % xuat ket qua (ve duong cong xap xi) figure(1) hold on for i=1:N-1 u=linspace(t(i).8 13 11.a/ w D 0 trên jxj D 1 và jyj D 1: .

x/ và h là bước lưới trên trục x.3: Đường cong xấp xỉ bằng spline bậc ba.x/ du .x h//: Từ công thức khai triển Taylor ta có thể xấp xỉ đạo hàm cấp một của u tại x bằng công thức sai phân lùi ru. j h/ C 0.h2 /: @x 2 . Sai phân tiến (tương ứng.x/ u. j h/ với i. Công thức sai phân Cho hàm u. N C 1. y/ được xấp xỉ chỉ trên lưới.j D @2 w .tương ứng.x/ D u.c/ Câu hỏi 1) Dùng công thức (c) xấp xỉ phương trình (a) và điều kiện (b) của bài toán biên.x h2 h/ : . j h/.x h h/ : 2u. bởi định nghĩa.1/ . là u. Chẳng hạn. dùng sai phân tiến   d 2u 1 ru. gồm các điểm nằm trong và trên biên ) là giao điểm của các đường tọa độ trong hệ tọa độ Descartes chọn trước. Một trong các phương pháp số giải bài toán này là phương pháp sai phân hữu hạn.x. j D N.ih. 3) Viết chương trình giải số bài toán (nộp sau 01 ngày). j D ˙N: Dùng công thức Taylor. Thiết lập hệ phương trình đại số tuyến tính xác định các giá trị nút wij . ta có: wi C1. Ký hiệu wij D w. nếu cho N là số nguyên dương và h D 1=N là bước lưới ta có lưới gồm các điểm . N 1.ih.x/ D u. Theo cách tiếp cận này. ru. N . Đáp án 1) Điều kiện biên cho (8N phương trình): wij D 0 khi i D ˙N.x C h/ u.x/  D dx h Để tính xấp xỉ đạo hàm cấp hai.Hướng dẫn & Đáp số bài tập 146 Hình A.x/ .x/ C u.j 2wij C wi h2 1.x/ u. w. lùi) cấp một của hàm u tại x với bước h. : : : .x/ u. 2) Viết thuật toán giải bài toán biên.ih.x C h/   D 2 dx h h u.

2N C1/ C qk 1 4qk C qkC1 C qkC.i. N < i. C N / C i C N. 2. j /. j 1/ . Tóm lại.j C wi. . C N / C i C N C 2.j C1 D h2 .4. j 1/ . phương trình (1) cho: qk D 0. 4N C 1. j /) thì .2N . Ký hiệu qk D wij .2N C 1/.2N C 1/2 phương trình. Ở các nút này.4: Quy tắc đánh số nút. ta có hệ phương trình đại số tuyến tính Aq D B. phương trình được xấp xỉ: wi.i. từ dưới lên trên.2N .j 1 C N / C i C N C 1.2N 1/2 . hình A. j C 1/ ! ! ! ! ! .i. k C 1.i C 1. j / . j / $ k D .j C 1/.j C N / C i C N C 1 (tương ứng với nút .j 4wi.j 1 C wi C1. j / .i.i. j / .2N C 1/.2N C1/ D h2 . C 1 C N / C i C N C 1: Nếu đặt k D .2/ Số phương trình là .Hướng dẫn & Đáp số bài tập 147 Như vậy.j C 1/.j C N / C i C N C 1: .2N .j C 1/. C N / C i C N C 1.2N C 1/: các phương trình (2) được viết lại (có sắp xếp): qk . Theo quy tắc này.j C wi 1. j / .j C 1/. k C . ta có: . j / . 2N C 3  k  4N 2 và k không là các nút nằm trên biên. j < N: .i 1. Quy tắc đánh số từ trái sang phải.i.2N .i.i.j CN /Ci CN C1.2N C 1/. j C 1/ ! ! ! ! k . Tổng cộng có . k 1.i C 1.2N C1/. j / là k D . : : : . Từ (3). thứ tự của nút .i 1.i. Để thiết lập hệ phương trình đại số tuyến tính ta cần đánh số các nút .3/ Hình A.2N C 1/. k D 1. 2N C 1. nghĩa là .

2N C1/21 . B=zeros((2*N+1)^2. q2 . vecto B A=zeros((2*N+1)^2).Hướng dẫn & Đáp số bài tập 148 trong đó A 2 Mat. % tnh ma tran A. end end end % giải phương trình đại số tuyến tính q=inv(A)*B. A(k.k+(2*N+1))=1. A(k. A(k. q D Œq1 . q 2 Mat. q. A(k.k)=-4. else A(k.m % chuong trinh dapan09. % xuất kết quả 3) Chương trình dapan09. vectơ B for i=-N:N for j=-N:N k=(2*N+1)*(j+N)+i+N+1.k+1)=1. % khoi tao ma tran A.R/.k)=1. B(k)=-h^2. h=1/N. : : : .1). vecto B for i=-N:N .k-1)=1.k-(2*N+1))=1. vectơ B A=zeros((2*N+1)^2) B=zeros((2*N+1)^2. B(k)=0.2N C1/2 .1) % tính ma trận A. B.R/.m giai de thi giua ky 2009 % Trinh Anh Ngoc % 24/10/2009 clear all % nhap du lieu N=10.2N C1/2 T : 2) Thuật toán % nhập dữ liệu read N h=1/N % khởi tạo ma trận A. if abs(i)==N or abs(j)==N A(k.

k-(2*N+1))=1.i+N+1)=q(k).W). end end surf(x. B(k)=-h^2. . Nếu x và y là vectơ. trong đó [m. surf(x. A(k.j)). B(k)=0.y. Hình A.y.k+(2*N+1))=1. length(x) = n và length(Y) = m.k)=-4. else A(k. Chú thích: 1. A(k. % xuat ket qua (ve do thi) x=-1:h:1. W(j+N+1. A(k.Hướng dẫn & Đáp số bài tập 149 for j=-N:N k=(2*N+1)*(j+N)+i+N+1. end end end % giai phuong trinh dai so tuyen tinh q=inv(A)*B. Thì các đỉnh của mặt là bộ ba (x(j). y(i).k+1)=1.5: Đồ thị hàm w. if abs(i)==N|abs(j)==N A(k. A(k. z(i. y/.x.k)=1. y=-1:h:1.n] = size(z). for j=-N:N for i=-N:N k=(2*N+1)*(i+N)+j+N+1.k-1)=1.z) vẽ mặt tham số.

k/ 1. j . Phương pháp giải lặp Viết lại phương trình wi.j C wi 1.h2 C wi.j . Đây là phương pháp lặp rất đơn giản và không "tốn kém". Còn tiếp .k/ C wi.j tiếp sau.j C1/=4: Phương pháp lặp Jacobi.j hiện hành và wi. xấp xỉ liên tiếp nghiệm bài toán bằng cách tính .j D .j 1 C wi C1.j .k/ D .j C wi .k/ 1 .Hướng dẫn & Đáp số bài tập 150 2.j C wi C1.kC1/ wi.j C1/=4: với mọi i.j C wi.h2 C wi. chỉ cần lưu trữ wi.

John Morris. 238-246. [7] Isaacson E. Inc. 1998. N. Mineola. 1964.. Inc. NXB ĐHQG TP.. John Wiley & Sons. Inc. 17(1980).Y. Monotone piecewise cubic interpolation. MathWorks. Hermite interpolation errors for derivatives. and Butland J. England. Computer Journal. 151 . [10] Handbook of Chemistry and Physics. Stegun. On the maximum errors of polynomial approximation defined by interpolation and by least squares criteria. and Carlson R. Dover.J. J. Mineola. [11] Powell M. and Keller H. Handbook of Mathematical Functions.. Dover. and Miller K. pp. [8] Đặng Văn Liệt. 63rd ed. [2] Birkhoff G. pp. [3] R. TRW Report 5322-3-5. M. Cheveland. 404-407. 9(1967). and Priver A. eds. Comp. 1982-1983. Hoboken. 46(1967). Giải tích số. SIAM J. 166-170. 1994..Tài liệu tham khảo [1] M. SIAM J.. Applied numerical methods using MATLAB. Sci. [9] Getting Started with MATLAB.. 1998. N. Yang. [12] Symbolic Math Toolbox User’s Guide. Analysis of numerical Methods.. Math. 440-447... [5] Fritsch F. Characterization of shape in a class of third degree algebraic curves.Y. J. Wenwu Cao. CRC Press. HCM. pp. Chung. Numer Anal... 5(1984). Error estimates for Runge-Kutta type solutions to systems of ordinary differential equations. [6] Fritsch F. Comp.. and Physics.. MathWorks. New Jersey. Abramowitz and I. [4] Ferguson J. Stat. 1969.D. Tae S. 12 (1969). A method for constructing locac monotone piecewise cubic interpolants.. 2005. pp.. [13] Won Y. pp. 2004. 300-304..

Sign up to vote on this title
UsefulNot useful