Download as pdf or txt
Download as pdf or txt
You are on page 1of 126

lOMoARcPSD|22842530

bài giảng phương pháp tính

Phương pháp tính (Trường Đại học Bách khoa - Đại học Quốc gia Thành phố Hồ Chí
Minh)

Scan to open on Studocu

Studocu is not sponsored or endorsed by any college or university


Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)
lOMoARcPSD|22842530

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH


TRƯỜNG ĐẠI HỌC BÁCH KHOA

LÊ THÁI THANH

BÀI GIẢNG
PHƯƠNG PHÁP TÍNH
Dùng cho sinh viên trường Đại Học Bách Khoa TP.HCM

NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA

TP. HCM - 2012

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

51
89/176-05 Mã số: 8I092M5
GD-05

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Lời nói đầu

Tập bài giảng Phương Pháp Tính này được biên soạn theo chương

trình của Bộ Giáo dục và Đào tạo dành cho sinh viên trường Đại học

Bách Khoa TP. HCM với tổng số giờ lí thuyết và bài tập là 42 tiết được

phân bố trong 14 tuần. Mục tiêu của giáo trình là cung cấp cho sinh

viên các thuật toán cơ bản để giải quyết một số bài toán trong kĩ

thuật.

Bài giảng bao gồm 6 chương: Số gần đúng và sai số, Phương trình

phi tuyến, Hệ phương trình đại số tuyến tính, Nội suy và xấp xỉ hàm,

Đạo hàm và tích phân, Phương trình vi phân. Để thể hiện các thuật

toán chúng tôi chọn phần mềm MATLAB vì hiện nay đây là phần mềm

được sử dụng rộng rãi trong các trường kĩ thuật.

Mọi ý kiến đóng góp của bạn đọc xin gửi về:

Bộ môn Toán ứng dụng, Trường Đại học Bách khoa TP. HCM,

104 Nhà B4, 268 Lý Thường Kiệt, P.14, Q.10, TP. HCM.

Điện thoại: 08-8647256 (ext. 5305)

E-mail: tlethai@hcmut.edu.vn

TP. HCM, ngày 22 tháng 4 năm 2012

Tác giả

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Mục lục

Lời nói đầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Mục lục . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1 SỐ GẦN ĐÚNG VÀ SAI SỐ 7

1.1 Sai số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2 Biểu diễn số thập phân . . . . . . . . . . . . . . . . . . . . 10

Bài tập chương 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 PHƯƠNG TRÌNH PHI TUYẾN 13

2.1 Đặt bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2 Phương pháp chia đôi . . . . . . . . . . . . . . . . . . . . . 15

2.3 Phương pháp lặp đơn . . . . . . . . . . . . . . . . . . . . . 16

2.4 Phương pháp Newton . . . . . . . . . . . . . . . . . . . . . 19

Bài tập chương 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3 HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 25

3.1 Phương pháp Gauss . . . . . . . . . . . . . . . . . . . . . . 26

3.2 Phương pháp nhân tử LU . . . . . . . . . . . . . . . . . . . 31

3.3 Phương pháp Choleski . . . . . . . . . . . . . . . . . . . . 32

3.4 Chuẩn vectơ và chuẩn ma trận . . . . . . . . . . . . . . . 34

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

MỤC LỤC 5

3.5 Phương pháp lặp . . . . . . . . . . . . . . . . . . . . . . . . 36

Bài tập chương 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4 NỘI SUY VÀ XẤP XỈ HÀM 44

4.1 Đa thức nội suy Lagrange . . . . . . . . . . . . . . . . . . 45

4.2 Đa thức nội suy Newton . . . . . . . . . . . . . . . . . . . 49

4.3 Spline bậc ba . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.3.1 Spline bậc ba tự nhiên . . . . . . . . . . . . . . . . 54

4.3.2 Spline bậc ba ràng buộc . . . . . . . . . . . . . . . 56

4.4 Bài toán xấp xỉ hàm thực nghiệm . . . . . . . . . . . . . . 57

Bài tập chương 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5 ĐẠO HÀM VÀ TÍCH PHÂN 62

5.1 Tính gần đúng đạo hàm . . . . . . . . . . . . . . . . . . . . 62

5.2 Công thức Newton-Cotes . . . . . . . . . . . . . . . . . . . 64

5.2.1 Công thức hình thang . . . . . . . . . . . . . . . . . 65

5.2.2 Công thức Simpson . . . . . . . . . . . . . . . . . . 67

Bài tập chương 5 . . . . . . . . . . . . . . . . . . . . . . . . . . 68

6 PHƯƠNG TRÌNH VI PHÂN 70

6.1 Bài toán Cauchy . . . . . . . . . . . . . . . . . . . . . . . . 70

6.1.1 Công thức Euler . . . . . . . . . . . . . . . . . . . . 71

6.1.2 Công thức Euler cải tiến . . . . . . . . . . . . . . . 71

6.1.3 Công thức Runge-Kutta . . . . . . . . . . . . . . . . 72

6.1.4 Hệ phương trình vi phân. . . . . . . . . . . . . . . . 76

6.2 Bài toán biên tuyến tính cấp hai . . . . . . . . . . . . . . . 79

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

6 MỤC LỤC

Bài tập chương 6 . . . . . . . . . . . . . . . . . . . . . . . . . . 82

CÁC CHƯƠNG TRÌNH MATLAB 84

CÁC ĐỀ THI MẪU 104

CHỈ DẪN VÀ TRẢ LỜI 113

Chỉ dẫn và trả lời bài tập chương 1 . . . . . . . . . . . . . . . . 113

Chỉ dẫn và trả lời bài tập chương 2 . . . . . . . . . . . . . . . . 113

Chỉ dẫn và trả lời bài tập chương 3 . . . . . . . . . . . . . . . . 115

Chỉ dẫn và trả lời bài tập chương 4 . . . . . . . . . . . . . . . . 116

Chỉ dẫn và trả lời bài tập chương 5 . . . . . . . . . . . . . . . . 118

Chỉ dẫn và trả lời bài tập chương 6 . . . . . . . . . . . . . . . . 119

Đáp số các đề mẫu . . . . . . . . . . . . . . . . . . . . . . . . . 123

Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . 124

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CHƯƠNG MỘT

SỐ GẦN ĐÚNG VÀ SAI SỐ

Mục lục
1.1 Sai số . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Biểu diễn số thập phân . . . . . . . . . . . . . . . . . 10
Bài tập chương 1 . . . . . . . . . . . . . . . . . . . . . . . 12

§1.1 SAI SỐ

Trong hầu hếtcác bài toán kĩ thuật chúng ta thường không thể xác

định được giá trị chính xác của một đại lượng mà chỉ làm việc với giá

trị gần đúng của nó. Do đó việc tìm hiểu sự sai lệch giữa giá trị chính

xác và giá trị gần đúng là yêu cầu bắt buộc trước khi sử dụng các giá

trị gần đúng trong các phép toán tiếp theo. Độ sai lệch giữa giá trị

gần đúng và giá trị chính xác được gọi là sai số.

Số a được gọi là số gần đúng của số chính xác A, kí hiệu là a « A

(đọc là a xấp xỉ A), nếu a khác A không đáng kể và được dùng thay

cho A trong tính toán. Đại lượng ∆ “ |a ´ A| được gọi là sai số tuyệt

đối của số gần đúng a so với A. Trong thực tế, do không biết A, ta ước

lượng một đại lượng dương ∆a càng bé càng tốt thoả điều kiện

|A ´ a| ď ∆a (1.1)

được gọi là sai số tuyệt đối giới hạn của số gần đúng a so với A. Từ

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

8 Số GầN đÚNG VÀ SAI Số

công thức (1.1) ta có:

a ´ ∆a ď A ď a ` ∆a

Tuy nhiên ta thường viết bất đẳng thức trên dưới dạng A “ a ˘ ∆a .

Sai số tương đối giới hạn của số gần đúng a so với A là đại lượng

δa được tính theo công thức

|A ´ a|
δa “ pa ­“ 0q
|a|

Chú ý rằng sai số tuyệt đối giới hạn là đại lượng có thứ nguyên trùng

với thứ nguyên của đại lượng cần đo hoặc cần tính toán, trong khi sai

số tương đối giới hạn là đại lượng không có thứ nguyên. Do đó trong

thực hành, ta thường nhân sai số tương đối giới hạn với một trăm để

tính bằng phần trăm.

Ví dụ 1.1. Vận tốc của một vật thể đo được là v “ 2.8m{s với sai số 0.5%. Khi đó sai
0.5
số tuyệt đối là: ∆v “ ¨ 2.8m{s “ 0.014m{s.
100
Ví dụ 1.2. Đo độ dài hai đoạn thẳng ta được a “ 10cm và b “ 1cm với ∆a “ ∆b “
0.01 0.01
0.01cm. Khi đó ta có δa “ “ 0.1% trong khi δb “ “ 1% hay δb “ 10δa .
10 1

Hiển nhiên là phép đo a chính xác hơn phép đo b mặc dù ∆a “ ∆b .

Như vậy độ chính xác của một phép đo thể hiện qua sai số tương đối.

Bây giờ ta tìm công thức tổng quát của sai số. Giả sử phải tìm đại

lượng y theo công thức

y “ f px1 , x2 , . . . , xn q

Gọi x̄i , ȳ và xi , y, i “ 1, 2, . . . , n, là các giá trị chính xác và giá trị gần

đúng của đối số và hàm số. Nếu f là hàm khả vi liên tục thì
ÿn ˇˇ ˇ
ˇ Bf ˇˇ
|y ´ ȳ| “ |f px1 , x2 , . . . , xn q ´ f px̄1 , x̄2 , . . . , x̄n q| « ˇ Bxi ˇ |xi ´ x̄i |
i“1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

1.2 Biểu diễn số thập phân 9

Bf
trong đó các đạo hàm riêng được tính tại các điểm trung gian. Do
Bxi
Bf
liên tục và ∆xi khá bé ta có thể xem
Bxi

n ˇˇ
ÿ ˇ
ˇ
Bf
∆y “ ˇ ˇ
ˇ Bxi px1 , x2 , . . . , xn qˇ ∆xi (1.2)
i“1

là sai số tuyệt đối cần tìm của hàm số và do đó ta có công thức tính

sai số tương đối:


ÿn ˇˇ ˇ
∆y Bpln f q ˇˇ
δy “ “ ˇ
ˇ Bxi ˇ ∆xi (1.3)
|y| i“1

Ví dụ 1.3. Diện tích của hình tròn được tính theo công thức S “ πR2 với π “ 3.14 ˘

0.002 và R “ 5.25 ˘ 0.001pmq. Tính sai số của s “ 3.14p5.25q2 “ 86.54625pm2 q.


BS BS
Xem S như là hàm của hai biến π và R, ta có “ R2 và “ 2πR. Vậy ∆s “
Bπ BR
p5.25q2 ˆ 0.002 ` 2 ˆ 3.14 ˆ 5.25 ˆ 0.001 « 0.0881.

Từ các công thức sai số tổng quát (1.2) và (1.3), ta thu được đánh

giá sai số của một số trường hợp đặc biệt sau.

ˇ ˇ
ˇ Bf ˇ
Trường hợp 1: Xét hàm y “ f px1 , . . . , xn q “ x1 ˘ ¨ ¨ ¨ ˘ xn . Khi đó ˇ
ˇ ˇ“
Bxi ˇ
1, @i “ 1, n. Do đó từ công thức (1.2) ta được ∆y “ ∆x1 ` ∆x2 `

¨ ¨ ¨ ` ∆xn . Nói cách khác, sai số tuyệt đối của một tổng bằng tổng

các sai số tuyệt đối.

ˇ ˇ
ˇ B ln f ˇ
Trường hợp 2: Xét hàm y “ f px1 , . . . , xn q “ x1 x2 . . . xn . Khi đó ˇ
ˇ ˇ“
Bxi ˇ
1
. Do đó từ công thức (1.3) ta được δy “ δx1 ` δx2 ` ¨ ¨ ¨ ` δxn .
|xi |
Nói cách khác, sai số tương đối của một tích bằng tổng các sai

số tương đối.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

10 Số GầN đÚNG VÀ SAI Số

§1.2 BIỂU DIỄN SỐ THẬP PHÂN

Bất kì một số thập phân a nào cũng có thể viết dưới dạng
$
& a“α α ř
m
m m´1 . . . α1 α0 ¨ α´1 α´2 . . . α´n “ αk 10k
k“´n (1.4)
%
m, n P N, m ě 0, n ě 1, αm ‰ 0, αk P t0, 1, 2 . . . , 9u

Ví dụ, số a “ 12.3456 được viết dưới dạng

a “ 1 ˆ 101 ` 2 ˆ 100 ` 3 ˆ 10´1 ` 4 ˆ 10´2 ` 5 ˆ 10´3 ` 6 ˆ 10´4 .

Làm tròn một số thập phân a theo cách viết (1.4) là bỏ một số các

chữ số bên phải a sau dấu chấm thập phân để được một số r
a ngắn

gọn hơn và gần đúng nhất so với a. Giả sử ta muốn làm tròn đến chữ

số thứ k p1 ď k ă nq sau dấu chấm thập phân của số a, ta xét chữ số

thứ k ` 1 là α´pk`1q . Nếu α´pk`1q ě 5, ta tăng αk lên một đơn vị; còn

nếu α´pk`1q ă 5, giữ nguyên chữ số αk . Sau đó bỏ phần đuôi từ chữ

a so với a được gọi là sai số làm


số α´pk`1q trở đi. Sai số thực sự của r

tròn

θar “ |a ´ r
a|

Khi đó sai số tuyệt đối của r


a so với A được đánh giá như sau

|r
a ´ A| ď |r
a ´ a| ` |a ´ A| ď θar ` ∆a “ ∆ar

Vì θar ě 0 nên ∆ā ě ∆a , nên sau khi làm tròn sai số tăng lên. Do đó

trong thực tế tính toán ta tránh làm tròn các phép toán trung gian,

chỉ làm tròn kết quả cuối cùng.

Trường hợp làm tròn số trong bất đẳng thức, ta sử dụng các khái

niệm làm tròn lên và làm tròn xuống. Làm tròn lên r
a “ a` hay

làm tròn xuống r


a “ a´ cần lưu ý đến chiều bất đẳng thức. Ví dụ,

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

1.2 Biểu diễn số thập phân 11

a ă 13.9236 khi làm tròn lên được a ă 13.93 và b ą 78.6789 khi làm tròn

xuống được 78.67.

Cho a « A với sai số tuyệt đối ∆a . Trong cách viết thập phân (1.4)

của số a, chữ số αk được gọi là đáng tin, nếu

1
∆a ď 10k
2

Trong trường hợp ngược lại, chữ số αk là chưa đáng tin.

Ví dụ 1.4. Xét a “ 12.3456 với ∆a “ 0.001. Ta có các chữ số 1, 2, 3, 4 là các chữ số

đáng tin, còn các chữ số 5, 6 là không đáng tin.

Trong cách viết thập phân (1.4) của số a, chữ số có nghĩa là tất

cả các chữ số bắt đầu từ một chữ số khác không tính từ trái sang.

Ví dụ 1.5. Số 107 có ba chữ số có nghĩa, số 01070 có bốn chữ số có nghĩa và số

0.01070 cũng có bốn chữ số có nghĩa.

Chúng ta trình bày số gần đúng a của số chính xác A với sai số

tuyệt đối ∆a theo một trong các quy tắc sau:

Cách thứ nhất: Viết số gần đúng a kèm theo sai số tuyệt đối ∆a dưới

dạng: a ˘ ∆a . Cách này thường dùng để biểu diễn các kết quả

đơn lẻ.

Cách thứ hai: Viết số gần đúng theo quy ước: mọi chữ số có nghĩa

đều đáng tin. Điều đó có nghĩa là sai số tuyệt đối ∆a không lớn

hơn một nửa đơn vị của chữ số cuối cùng bên phải. Ví dụ, nếu

viết a “ 0.5 thì sai số tuyệt đối được hiểu là ∆a ď p1{2q10´1 “ 0.05,

trong khi nếu viết a “ 0.5000 thì ta có ∆a ď p1{2q10´4 “ 0.00005.

Cách này thường dùng để trình bày các bảng số.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

12 Số GầN đÚNG VÀ SAI Số

BÀI TẬP

Câu 1. Cho a “ 1.85 với sai số tương đối δa “ 0.12%. Tính sai số tuyệt

đối của a.

Câu 2. Làm tròn đến hai chữ số lẻ sau dấu chấm thập phân của các

số trong các biểu thức sau:


(a) a “ 12.6724 (c) a ď 12.8713
(b) a “ 1.5476 (d) a ě 1.2354

Câu 3. Xác định số các chữ số đáng tin trong cách viết thập phân

của các số sau:


(a) a “ 1.3452, ∆a “ 0.0023
(b) a “ 154.2341, ∆a “ 6.23 ˆ 10´3
(c) a “ 3.4167, δa “ 0.25%
Câu 4. Cho hình cầu có bán kính R “ 5 ˘ 0.0003pmq và số π “ 3.14 ˘

0.002. Tính sai số tuyệt đối của thể tích hình cầu.

Câu 5. Cho a “ 1.5 ˘ 0.02, b “ 0.123 ˘ 0.001, c “ 3.7 ˘ 0.05. Hãy tính sai

số tuyệt đối và sai số tương đối của:

(a) A “ a ` b ` c

(b) B “ 2a ´ 5b ` 3c

(c) C “ a2 ` b2 c

Câu 6. Cho hàm f pxq “ 3x5 ´ 2x2 ` 7 và x “ 1.234 ˘ 0.00015. Tính ∆f .

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CHƯƠNG HAI

PHƯƠNG TRÌNH PHI TUYẾN

Mục lục
2.1 Đặt bài toán . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Phương pháp chia đôi . . . . . . . . . . . . . . . . . 15
2.3 Phương pháp lặp đơn . . . . . . . . . . . . . . . . . . 16
2.4 Phương pháp Newton . . . . . . . . . . . . . . . . . . 19
Bài tập chương 2 . . . . . . . . . . . . . . . . . . . . . . . 22

§2.1 ĐẶT BÀI TOÁN

Mục đích của chương này là tìm nghiệm gần đúng của phương

trình

f pxq “ 0 (2.1)

với f pxq là hàm liên tục trên một khoảng đóng hay mở nào đó.

Nghiệm của phương trình (2.1) là giá trị p sao cho f ppq “ 0. Trong

giáo trình này ta chỉ xét những nghiệm đơn cô lập. Về mặt hình học,

nghiệm của phương trình (2.1) là hoành độ giao điểm của đường cong

y “ f pxq với trục hoành. Khoảng đóng ra, bs (đôi khi ta cũng xét khoảng

mở pa, bq) mà trên đó tồn tại duy nhất nghiệm của phương trình (2.1)

được gọi là khoảng cách li nghiệm.

Thông thường, để tìm nghiệm của phương trình (2.1) chúng ta tiến

hành theo hai bước sau:

Bước 1: Tìm tất cả các khoảng cách li nghiệm của phương trình (2.1).

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

14 PHƯƠNG TRÌNH PHI TUYẾN

Bước 2: Trong từng khoảng cách li nghiệm, tìm nghiệm gần đúng của

phương trình bằng một phương pháp nào đó với sai số cho trước.

Định lý 2.1. Nếu hàm f pxq liên tục trên đoạn ra, bs và giá trị của hàm

trái dấu tại hai đầu mút thì phương trình (2.1) có nghiệm trên ra, bs.

Thêm vào đó, nếu hàm f pxq đơn điệu thì nghiệm là duy nhất.

Chúng ta có thể tìm các khoảng cách li nghiệm của một phương trình

bằng nhiều cách và định li 2.1 là một công cụ hữu ích cho mục đích

này.

Ví dụ 2.1. Tìm các khoảng cách li nghiệm của phương trình f pxq “ x3 ´ 3x ` 1 “ 0.

Chúng ta tính giá trị của hàm tại một số điểm đặc biệt và lập bảng giá trị như sau:

x ´2 ´1 0 1 2
f pxq ´1 3 1 ´1 3
Từ bảng trên ta thấy phương trình có nghiệm nằm trong các khoảng không giao nhau

p´2, ´1q, p0, 1q, p1, 2q. Vì phương trình bậc ba có tối đa ba nghiệm, nên mỗi đoạn trên

chứa duy nhất một nghiệm. Vậy chúng là các khoảng cách li nghiệm của phương trình đã

cho.

Ví dụ 2.2. Xét phương trình f “ x5 ` x ´ 12 “ 0. Ta có f 1 “ 5x4 ` 1 ą 0 với mọi x.

Cho nên f là hàm đơn điệu tăng. Ta cũng có f p1q ă 0 và f p2q ą 0, nên phương trình

chỉ có duy nhất nghiệm nằm trong r1, 2s.

Công thức đánh giá sai số tổng quát của nghiệm gần đúng của

phương trình (2.1) được thể hiện qua định li sau.

Định lý 2.2. Giả sử hàm f pxq liên tục trên ra, bs, khả vi trong pa, bq.

Nếu x˚ là nghiệm gần đúng của nghiệm chính xác p trong ra, bs và @x P

ra, bs, |f 1 pxq| ě m ą 0. Thế thì ta có công thức đánh giá sai số tổng quát

sau đây
|f px˚ q|
|x˚ ´ p| ď (2.2)
m

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

2.2 Phương pháp chia đôi 15

Ví dụ 2.3. Xét phương trình f pxq “ x3 ´ 5x2 ` 12 “ 0 trong r´2, ´1s có nghiệm
ˇ ˇ
gần đúng x˚ “ ´1.37. Khi đó |f 1 pxq| “ ˇ3x2 ´ 10xˇ ě 13 “ m, @x P r´2, ´1s.
|f p´1.37q|
Do đó: |p ´ x˚ | ď « 0.0034.
13

§2.2 PHƯƠNG PHÁP CHIA ĐÔI

Xét phương trình (2.1) có nghiệm chính xác p trong khoảng cách

li nghiệm ra, bs và f paqf pbq ă 0. Đặt a0 “ a, b0 “ b, d0 “ b0 ´ a0 “ b ´ a

và x0 là điểm giữa của đoạn ra0 , b0 s. Tính giá trị f px0 q. Nếu f px0 q “ 0

thì x0 chính là nghiệm và quá trình dừng lại. Ngược lại ta xét dấu

của f px0 q. Nếu f px0 qf pa0 q ă 0, đặt a1 “ a0 , b1 “ x0 . Nếu f px0 qf pb0 q ă 0,

đặt a1 “ x0 , b1 “ b0 . Như vậy ta thu được ra1 , b1 s Ă ra0 , b0 s và độ dài


d0 b´a
d 1 “ b1 ´ a 1 “ “ . Tiếp tục quá trình chia đôi như vậy đến n
2 2
lần, ta được các kết quả:
$

& a n ď p ď bn , an ` bn
a n ď xn “ ď bn ,
2
b ´ a @n “ 0, 1, 2, . . . (2.3)

% f pan qf pbn q ă 0, d n “ bn ´ a n “ n
2

n“0 là dãy tăng và bị chặn trên, còn tbn un“0 là


Như vậy ta được tan u8 8

dãy giảm và bị chặn dưới. Do đó chúng cùng hội tụ. Từ (2.3) ta có

lim an “ lim bn “ lim xn “ p (2.4)


nÑ8 nÑ8 nÑ8

Thông thường ta sử dụng công thức đánh giá sai số:

b´a
|p ´ xn | ď (2.5)
2n`1

Ví dụ 2.4. Cho phương trình f pxq “ 5x3 ´ cos 3x “ 0 trong khoảng cách li nghiệm

r0, 1s. Bằng phương pháp chia đôi, hãy tìm nghiệm gần đúng x5 và đánh giá sai số của

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

16 PHƯƠNG TRÌNH PHI TUYẾN

nó. Kết quả được cho trong bảng sau:

n 0 1 2 3 4 5
an p´q 0 0 1{4 3{8 7{16 15{32
bn p`q 1 1{2 1{2 1{2 1{2 1{2
xn 1{2 1{4 3{8 7{16 15{32 31{64
signf pxn q ` ´ ´ ´ ´

31 1´0 1 31 1
Như vậy x5 “ và ∆x5 “ 6
“ . Do đó p “ ˘ .
64 2 64 64 64

Phương pháp chia đôi là phương pháp đơn giản nhất để tìm

nghiệm gần đúng của phương trình (2.1), tuy nhiên độ chính xác

không cao. Thông thường phương pháp chia đôi được sử dụng nếu

không thể sử dụng các phương pháp khác hoặc với mục đích thu hẹp

khoảng cách li nghiệm. Thuật toán của phương pháp chia đôi được

thể hiện trong Chương trình 7.1.

§2.3 PHƯƠNG PHÁP LẶP ĐƠN

Đây là phương pháp phổ biến để giải phương trình (2.1) trong

khoảng cách li nghiệm ra, bs. Trước tiên ta chuyển từ phương trình

(2.1) về dạng tương đương trong ra, bs

x “ gpxq. (2.6)

Khi đó nghiệm của phương trình (2.6) còn được gọi là điểm bất động

của hàm gpxq. Về mặt hình học nó là hoành độ giao điểm của đường

thẳng y “ x và đường cong y “ gpxq. Chọn một giá trị ban đầu x0 P ra, bs

tuỳ ý. Xây dựng dãy lặp txn u8


n“1 theo công thức lặp

xn “ gpxn´1 q @n “ 1, 2, 3, . . . (2.7)

Bài toán của chúng ta là khảo sát sự hội tụ của dãy txn u8
n“1 ; dãy có

hội tụ về nghiệm của phương trình (2.6) hay không; sự hội tụ và giới

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

2.3 Phương pháp lặp đơn 17

hạn của dãy phụ thuộc như thế nào vào giá trị lặp ban đầu x0 ; và

cuối cùng là công thức đánh giá sai số.

Định nghĩa 2.1. Hàm gpxq được gọi là hàm co trong đoạn ra, bs nếu tồn

tại một số q : 0 ď q ă 1, gọi là hệ số co, sao cho

@x1 , x2 P ra, bs, |gpx1 q ´ gpx2 q| ď q |x1 ´ x2 |

?
Ví dụ 2.5. Xét hàm gpxq “ x trong đoạn r1, 2s. Ta có @x1 , x2 P r1, 2s,

? ? 1 1
| x1 ´ x 2 | “ ? ? |x1 ´ x2 | ď |x1 ´ x2 |
x1 ` x 2 2
?
Do đó hàm gpxq “ x là hàm co trong đoạn r1, 2s với hệ số co là q “ 0.5.

Ta có các định lí sau đây.

Định lý 2.3. Nếu gpxq là hàm co trên ra, bs, thì nó liên tục trên đó.

Định lý 2.4. Nếu hàm gpxq liên tục trên ra, bs, khả vi trong pa, bq và

Dq : 0 ď q ă 1 sao cho @x P pa, bq, |g 1 pxq| ď q, thì gpxq là hàm co trên ra, bs

với hệ số co là q.
?
Ví ˇ dụ 2.6. Xét ˇ hàm gpxq “ 3
10 ´ x trên đoạn r0, 1s. Ta có |g 1 pxq| “
ˇ ˇ
ˇ a ´1 ˇ 1
ˇ 3 ˇ ď ? « 0.078 “ q ă 1. Do đó nó là hàm co trên r0, 1s.
ˇ 3 p10 ´ xq2 ˇ 3 3 92

x2 ´ ex `2
Ví dụ 2.7. Bây giờ xét hàm gpxq “ trên đoạn r0, 1s. Ta có g 1 pxq “
3
2x ´ ex
. Khảo sát hàm g 1 pxq trên đoạn r0, 1s cho ta
3
2 ln 2 ´ 2 1
max g 1 pxq “ « ´0.2046 và min g 1 pxq “ ´
xPr0,1s 3 xPr0,1s 3

1
Từ đây ta được @x P r0, 1s, |g 1 pxq| ď “ q ă 1. Do đó nó là hàm co trên r0, 1s.
3

Sau đây là một định lý quan trọng và thường được gọi là nguyên

lý ánh xạ co. Định lý này là cơ sở của phương pháp lặp đơn.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

18 PHƯƠNG TRÌNH PHI TUYẾN

Định lý 2.5 (Nguyên li ánh xạ co). Giả sử gpxq là hàm co trên đoạn

ra, bs với hệ số co là q. Đồng thời, @x P ra, bs, gpxq P ra, bs. Khi đó với mọi

n“1 xác định theo công thức


giá trị x0 ban đầu trong ra, bs, dãy lặp txn u8

(2.7) sẽ hội tụ về nghiệm duy nhất p của phương trình (2.6) và ta có công

thức đánh giá sai số

qn
|xn ´ p| ď |x1 ´ x0 | (2.8)
1´q

hoặc

q
|xn ´ p| ď |xn ´ xn´1 | (2.9)
1´q

Ví dụ 2.8. Xét phương trình x3 ` x ´ 1000 “ 0 trong khoảng cách li nghiệm r9, 10s.
?
Chuyển phương trình đã cho về dạng: x “ gpxq “ 3 1000 ´ x. Khi đó @x P r9, 10s,
1
|g 1 pxq| ď ? 3
“ q ă 1. Do đó gpxq là hàm co trên r9, 10s. Ta cũng dễ dàng kiểm
3 9902
tra rằng @x P r9, 10s, gpxq P r9, 10s. Do đó phương pháp lặp hội tụ. Chọn x0 “ 10, xây
?
dựng dãy lặp theo công thức xn`1 “ 3 1000 ´ xn , @n “ 0, 1, 2, . . . . Từ công thức
q
(2.9) ta có sai số của nghiệm gần đúng xn là |xn ´ x| ď |xn ´ xn´1 | “ ∆xn .
1´q
Ta có bảng sau:

n xn ∆xn
0 10
1 9.966554934 0.1127 ˆ 10´3
2 9.966667166 0.3779 ˆ 10´6
3 9.966666789 0.1270 ˆ 10´8
4 9.966666791 0.6735 ˆ 10´11

Ví dụ 2.9. Bây giờ ta xét phương trình x “ gpxq “ cos x có nghiệm duy nhất trong

đoạn r0, 1s. Dễ thấy gpxq là hàm co trong r0, 1s với hệ số co q “ sin 1 ă 1, và

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

2.4 Phương pháp Newton 19

@x P r0, 1s, gpxq “ cos x P r0, 1s. Chọn x0 “ 1, phương pháp lặp cho ta bảng sau:

n xn ∆xn
0 1
1 0.5403023059 2.6049536001
2 0.8575532158 1.7977551565
3 0.6542897905 1.1518260770
... ...... ......
32 0.7390859996 0.0000121985
33 0.7390845496 0.0000082171
34 0.7390855264 0.0000055351

Qua hai ví dụ vừa nêu, ta nhận thấy rằng tốc độ hội tụ (thể hiện

qua số lần lặp) của phương pháp lặp phụ thuộc vào giá trị của hệ số

co q. Nếu hệ số co càng bé (gần với 0), thì phương pháp lặp hội tụ càng

nhanh. Ngược lại, nếu hệ số co là lớn (gần với 1), thì phương pháp lặp

hội tụ rất chậm. Ví dụ 2.8 cho thấy đến lần lặp thứ 4, ta đã có nghiệm

gần đúng với 9 chữ số lẻ đáng tin sau dấu phẩy thập phân. Còn trong

ví dụ 2.9, để đạt được 4 chữ số lẻ đáng tin, ta phải cần đến khoảng

hơn 30 lần lặp. Thuật toán của phương pháp lặp đơn được thể hiện

trong Chương trình 7.2.

§2.4 PHƯƠNG PHÁP NEW TON

Xét phương trình (2.1) trong khoảng cách ly nghiệm ra, bs chứa duy

nhất nghiệm chính xác p. Giả sử hàm f pxq có đạo hàm trong ra, bs. Ta

xây dựng phương pháp Newton1 bằng hình học như sau: từ điểm có

hoành độ xn´1 trên đồ thị của đường cong y “ f pxq, ta kẻ tiếp tuyến

với đường cong. Hoành độ giao điểm của tiếp tuyến với trục hoành sẽ

là xn .Ta dễ dàng viết phương trình tiếp tuyến:

y ´ f pxn´1 q “ f 1 pxn´1 qpx ´ xn´1 q


1
Còn được gọi là phương pháp Newton-Raphson

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

20 PHƯƠNG TRÌNH PHI TUYẾN

cho y “ 0, x “ xn ta thu được công thức xác định xn cũng là công thức

lặp của phương pháp Newton như sau:

f pxn´1 q
xn “ xn´1 ´ @n “ 1, 2, 3, . . . (2.10)
f 1 pxn´1 q

Do cách xây dựng bằng hình học như vậy nên phương pháp Newton

cũng còn được gọi là phương pháp tiếp tuyến. Nói chung, sự hội tụ

của dãy lặp Newton phụ thuộc vào cách chọn giá trị lặp ban đầu x0 .

Ta có định lý sau.

Định lý 2.6. Giả sử hàm f pxq có đạo hàm đến cấp hai liên tục và các

đạo hàm f 1 pxq và f 2 pxq không đổi dấu trên đoạn ra, bs. Khi đó nếu chọn

x0 thoả điều kiện Fourier f px0 qf 2 px0 q ą 0, thì dãy lặp txn u8
n“1 xác định

theo công thức (2.10) sẽ hội tụ về nghiệm p của phương trình (2.1).

Chú ý:

: Để đánh giá sai số của phương pháp Newton, ta sử dụng công

thức đánh giá sai số tổng quát (2.2).

: Điều kiện Fourier chỉ là điều kiện đủ, không phải là điều kiện

cần. Từ điều kiện Fourier, ta có thể đưa ra quy tắc chọn giá trị

ban đầu x0 như sau: Nếu đạo hàm cấp một và đạo hàm cấp hai

cùng dấu, thì chọn x0 “ b, ngược lại chọn x0 “ a.

: Trong phương pháp Newton, điều kiện f 1 pxq ‰ 0 trong khoảng

cách li nghiệm ra, bs là tiên quyết. Nếu có một điểm c P ra, bs để

cho f 1 pcq “ 0 thì phương pháp thường dùng là chia đôi để loại bỏ

điểm c đó trước khi sử dụng phương pháp Newton.


?
Ví dụ 2.10. Cho một số A ą 0. Chúng ta muốn tính gần đúng p “ A P ra, bs với

0 ă a ă b. Ta có p là nghiệm của phương trình f pxq “ x2 ´ A “ 0 và công thức lặp

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

2.4 Phương pháp Newton 21

Newton có dạng
ˆ ˙
f pxn´1 q x2 ´ A 1 A
xn “ xn´1 ´ 1 “ xn´1 ´ n´1 “ xn´1 `
f pxn´1 q 2xn´1 2 xn´1

với mọi n“ 1, 2, 3, . . . , và thoả công thức đánh giá sai số:


ˇ 2 ˇ
|f pxn q| ˇxn ´ Aˇ
|p ´ xn | ď “ “ ∆xn
m 2a
?
Có thể chứng tỏ rằng dãy lặp hội tụ về A với mọi giá trị lặp dương ban đầu. Với trường
?
hợp A “ 2, p “ A P r1, 2s, x0 “ 1 ta có bảng sau

n xn ∆xn
0 1.0000000000
1 1.5000000000 1.25 ˆ 10´1
2 1.4166666667 3.48 ˆ 10´3
3 1.4142156863 3.01 ˆ 10´6
4 1.4142135624 2.26 ˆ 10´12

Ví dụ 2.11. Bây giờ xét phương trình f pxq “ x3 ´ 3x ` 1 “ 0 trong khoảng cách li

nghiệm [0, 1]. Ta nhận thấy f 1 pxq


“ 3x2 ´ 3 triệt tiêu tại x “ 1 P r0, 1s. Do đó ta dùng
1
phương pháp chia đôi để thu hẹp khoảng cách li nghiệm. Vì f p0q ą 0 và f p q ă 0 nên
2
1 1 1 1 9
nghiệm thuộc r0, s, mà trong đó f pxq ă 0. Dễ thấy @x P r0, s, |f pxq| ě “m
2 2 4
và f 2 pxq “ 6x ě 0. Vì đạo hàm cấp một và đạo hàm cấp hai khác dấu, chọn x0 “ 0,

xây dựng dãy txn u8


n“0 theo công thức:

x3n´1 ´ 3xn´1 ` 1 2x3n´1 ´ 1


xn “ xn´1 ´ “ .
3x2n´1 ´ 3 3x2n´1 ´ 3
Khi đó nghiệm gần đúng xn thoả mãn đánh giá:
ˇ 3 ˇ
ˇxn ´ 3xn ` 1ˇ
|x ´ xn | ď “ ∆xn .
9{4

Kết quả tính toán cho ta bảng sau:

n xn ∆x n
0 0.0000000000
1 0.3333333333 1.65 ˆ 10´2
2 0.3472222222 8.70 ˆ 10´5
3 0.3472963532 2.55 ˆ 10´9

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

22 PHƯƠNG TRÌNH PHI TUYẾN

Thuật toán của phương pháp Newton được thể hiện trong Chương

trình 7.3.

BÀI TẬP

Câu 1. Tìm khoảng cách li nghiệm của các phương trình sau:
(a) x4 ´ 4x ` 1 “ 0 (e) 1 ´ x ´ e´2x “ 0
(b) ex ´x2 ` 3x ´ 2 “ 0 (f ) x4 ´ 4x3 ` 2x2 ´ 8 “ 0
(c) x cos x ´ 2x2 ` 3x ´ 1 “ 0 (g) ex ´x2 ` x “ 0
(d) 4 sin x ` 1 ´ x “ 0 (h) 3x2 ` ln x “ 0

Câu 2. Tìm sai số của nghiệm gần đúng x˚ theo công thức đánh giá

sai số tổng quát:

(a) x4 ´ 4x3 ` 2x2 ´ 8 “ 0 trong r3, 4s; x˚ “ 3.62.

(b) ex ´x2 ` x “ 0 trong r´1, 0s; x˚ “ ´0.44.

(c) 4 sin x ` 1 ´ x “ 0 trong r2, 3s; x˚ “ 2.7.

Câu 3. Sử dụng phương pháp chia đôi tìm nghiệm gần đúng x5 của

phương trình f pxq “ 0 trong khoảng cách ly nghiệm đã cho. Sử dụng

công thức đánh giá sai số tổng quát, tính sai số của nó và so sánh với

sai số tính công thức đánh giá sai số của phương pháp chia đôi.

(a) f pxq “ x3 ` 2x2 ´ 7 “ 0 trong r1, 2s.

(b) f pxq “ 3x2 ` ln x “ 0 trong r0.2, 1s

Câu 4. Mỗi một hàm sau đây đều có cùng chung điểm bất động p “

1.124123 là nghiệm của phương trình x4 ` 2x2 ´ x ´ 3 “ 0 :


c
? x`3
(a) g1 pxq “ 4 3 ` x ´ 2x2 (c) g3 pxq “
x2 ` 2
c
x ` 3 ´ x4 3x4 ` 2x2 ` 3
(b) g2 pxq “ (d) g4 pxq “
2 4x3 ` 4x ´ 1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Bài tập chương 2 23

Hãy thực hiện bốn lần lặp cho mỗi hàm gk pxq, k “ 1, 2, 3, 4 với cùng giá

trị lặp ban đầu x0 “ 1 và so sánh các kết quả với nhau. Hàm nào cho

chúng ta dãy lặp hội tụ về nghiệm tốt hơn?

Câu 5. Sử dụng phương pháp lặp, tìm nghiệm gần đúng với sai số

nhỏ hơn 10´3 của các phương trình sau:

(a) x3 ´ 3x2 ´ 5 “ 0 trong đoạn r3, 4s, chọn x0 “ 3.5;

(b) x3 ´ x ´ 1 “ 0 trong đoạn r1, 2s, chọn x0 “ 1.5;

x2 ´ ex `2
(c) x “ trong đoạn r0, 1s, chọn x0 “ 0.5.
3

Câu 6. Với các phương trình dưới đây, hãy xác định khoảng cách ly

nghiệm ra, bs mà trong đó phương pháp lặp hội tụ. Đánh giá số lần lặp

cần thiết để tìm nghiệm gần đúng với sai số nhỏ hơn 10´4 . Chọn x0 là

điểm giữa của khoảng cách ly nghiệm.


5
(a) x “ 2 ` 2 (c) x “ 6´x
x
1
(b) x “ pex {3q1{2 (d) x “ psin x ` cos xq
2

Câu 7. Sử dụng phương pháp Newton tìm nghiệm gần đúng của các

phương trình sau với sai số nhỏ hơn 10´6 .

(a) ex `2´x ` 2 cos x ´ 6 “ 0 trong đoạn r1, 2s;

(b) ln px ´ 1q ` cos px ´ 1q “ 0 trong đoạn r1.3, 2s;

(c) 2x cos 2x ´ px ´ 2q2 “ 0 trong đoạn r2, 3s và r3, 4s;

(d) px ´ 2q2 ´ ln x “ 0 trong đoạn r1, 2s và re, 4s;

(e) ex ´3x2 “ 0 trong đoạn r0, 1s và r3, 5s;

(f ) sin x ´ e´x “ 0 trong đoạn r0, 1s, r3, 4s và r6, 7s.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

24 PHƯƠNG TRÌNH PHI TUYẾN

Câu 8. Vận tốc rơi của một vật được tính theo công thức:

gm ´ c
¯
v“ 1 ´ e´ m t
c

với g “ 9.8m{s2 . Biết c “ 13.5kg{s, hãy xác định khối lượng m để cho

v “ 36m{s tại thời điểm t “ 6s. Tính đến ba chữ số đáng tin sau dấu

phảy thập phân.

Câu 9. Phương trình Van der Waals đối với chất khí có dạng
´ a¯
p` pν ´ bq “ RT
ν2

với R “ 0.082054L ¨ atm{pmol ¨ Kq, a, b là các hằng số phụ thuộc vào chất

khí cụ thể; p là áp suất; T là nhiệt độ, V là thể tích; n là số mole,

ν “ V {n là thể tích mole. Hãy xác định thể tích mole ν của hai chất

khí là carbon dioxide (CO2 ) và oxygen (O2 ) dưới áp suất 1, 10 và 100

atm ở nhiệt độ 300K, 500K và 700K. Biết rằng đối với carbon dioxide ta

có a “ 3.592, b “ 0.04267; còn đối với oxygen ta có a “ 1.360, b “ 0.03183.

Chọn sai số là 10´4 .

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CHƯƠNG BA

HỆ PHƯƠNG TRÌNH ĐẠI SỐ


TUYẾN TÍNH

Mục lục
3.1 Phương pháp Gauss . . . . . . . . . . . . . . . . . . . 26
3.2 Phương pháp nhân tử LU . . . . . . . . . . . . . . . 31
3.3 Phương pháp Choleski . . . . . . . . . . . . . . . . . 32
3.4 Chuẩn vectơ và chuẩn ma trận . . . . . . . . . . . . 34
3.5 Phương pháp lặp . . . . . . . . . . . . . . . . . . . . . 36
Bài tập chương 3 . . . . . . . . . . . . . . . . . . . . . . . 42

Trong chương này chúng ta nêu lên một số phương pháp dùng để

giải hệ phương trình đại số tuyến tính

Ax “ b (3.1)

rất thường gặp trong các bài toán khoa học kĩ thuật. Ta chỉ xét hệ

gồm n phương trình với n ẩn. Do vậy ma trận hệ số A là ma trận

vuông cấp n, và vectơ nghiệm x cũng như vectơ tự do b là các vectơ

cột n chiều thuộc Rn . Ta luôn giả thiết rằng det A ­“ 0, và do đó bao

giờ hệ cũng có nghiệm duy nhất x “ A´1 b. Tuy nhiên việc tìm ma trận

nghịch đảo A´1 đôi khi còn khó khăn gấp nhiều lần so với việc giải

trực tiếp hệ phương trình xuất phát. Dưới đây chúng ta sẽ xét một số

phương pháp thường dùng để giải hệ phương trình (3.1).

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

26 Hệ phương trình đại số tuyến tính

§3.1 PHƯƠNG PHÁP GAUSS

Trước khi trình bày phương pháp Gauss, chúng ta xét một số

trường hợp đơn giản khi ma trận hệ số A của hệ phương trình (3.1)

có dạng đặc biệt.

Trường hợp đơn giản nhất là trường hợp hệ phương trình có ma

trận hệ số có dạng đường chéo:


¨ ˛
a11 0 ¨¨¨ 0
˚ 0 a22 ¨¨¨ 0 ‹
A“˚˝ ¨¨¨ ¨¨¨

¨¨¨ ¨¨¨ ‚
0 0 ¨¨¨ ann

Khi ấy hệ tương đương với n phương trình bậc nhất aii xi “ bi , @i “ 1, n.

Vì det A “ a11 a22 ¨ ¨ ¨ ann ­“ 0 nên aii ­“ 0, @i. Và do đó nghiệm của hệ có

thể được viết dưới dạng:

bi
xi “ , i “ 1, 2, 3, ¨ ¨ ¨ , n
aii

Trường hợp thứ hai khi ma trận hệ số A có dạng tam giác trên:
¨ ˛
a11 a12 ¨ ¨ ¨ a1n
˚ 0 a22 ¨ ¨ ¨ a2n ‹
A“˚ ˝ ¨¨¨

¨¨¨ ¨¨¨ ¨¨¨ ‚
0 0 ¨ ¨ ¨ ann

Với giả thiết det A ­“ 0, ta có aii ­“ 0, @i “ 1, n, và nghiệm của hệ được

cho bởi công thức:


$ bn

& xn “ a

nn ˜ ¸
1 ř
n (3.2)

’ xk “ bk ´ akj xj , k “ n ´ 1, ¨ ¨ ¨ , 1
%
akk j“k`1

Cuối cùng khi ma trận hệ số A có dạng tam giác dưới:


¨ ˛
a11 0 ¨ ¨ ¨ 0
˚ a21 a22 ¨ ¨ ¨ 0 ‹
A“˚ ˝ ¨¨¨ ¨¨¨ ¨¨¨ ¨¨¨ ‚

an1 an2 ¨ ¨ ¨ ann

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

3.1 Phương pháp Gauss 27

Tương tự det A ­“ 0 ñ aii ­“ 0, @i “ 1, n, và nghiệm của hệ có dạng:


$ b1

’ x1 “
& a11 ˜ ¸
1 ř
k´1 (3.3)

’ x “ b ´ a x , k “ 2, ¨ ¨ ¨ , n
% k k kj j
akk j“1

Thuật toán giải hệ phương trình với ma trận tam giác được thể hiện

trong Chương trình 7.4 và 7.5. Bây giờ chúng ta sẽ trình bày phương

pháp Gauss để giải hệ phương trình tổng quát dạng (3.1). Nội dung

của phương pháp là sử dụng các phép biến đổi sơ cấp theo hàng để

chuyển về một hệ phương trình mới tương đương với hệ phương trình

cũ mà ma trận hệ số có dạng cơ bản. Các phép biến đổi sơ cấp thường

hay sử dụng là:

: Nhân một hàng cho một số khác không.

: Hoán chuyển hai hàng cho nhau.

: Cộng một hàng cho một hàng khác đã nhân với một số khác

không.

Xét hệ thống phương trình sau:


$

’ a11 x1 ` a12 x2 ` ... ` a1n xn “ b1
&
a21 x1 ` a22 x2 ` ... ` a2n xn “ b2
’ ...
’ ... ... ...
%
an1 x1 ` an2 x2 ` ... ` ann xn “ bn

Do định thức của ma trận hệ số A khác không nên một trong các số

a11 , a21 , . . . , an1 phải khác không. Giả sử a11 ­“ 0. Lấy phương trình thứ
ak1
k với k “ 2, n trừ cho phương trình thứ nhất đã nhân với , ta được
a11
một hệ mới có dạng như sau:
$

’ a11 x1 ` a12 x2 ` . . . ` a1n xn “ b1

& p1q p1q p1q
a22 x2 ` . . . ` a2n xn “ b2

’ ... ... ...

% p1q p1q p1q
an2 x2 ` . . . ` ann xn “ bn

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

28 Hệ phương trình đại số tuyến tính

p1q p1q
Trong các số a22 , . . . , an2 phải có một số khác không, vì nếu ngược lại
p1q p1q
thì det A “ 0, trái với giả thiết. Giả sử a22 ­“ 0. Còn nếu chỉ có ap2 ­“ 0
p1q
và a22 “ 0 thì ta thực hiện phép hoán chuyển hai phương trình thứ 2

và thứ p. Tiếp tục biến đổi cho n ´ 2 phương trình cuối. Và cứ tiếp tục

cho đến phương trình thứ n, ta được hệ phương trình sau


$

’ a11 x1 ` a12 x2 ` ... ` a1n xn “ b1

& p1q p1q p1q
a22 x2 ` ... ` a2n xn “ b2

’ ... ... ...

% pn´1q pn´1q
ann x n “ bn

Đây là hệ phương trình có ma trận hệ số có dạng tam giác trên và có

thể giải được bằng công thức (3.2).

Ví dụ 3.1. Xét hệ phương trình đại số tuyến tính sau:


$

’ x1 ´ x2 ` 2x3 ´ x4 “ ´8
&
2x1 ´ 2x2 ` 3x3 ´ 3x4 “ ´20

’ x 1 ` x 2 ` x3 “ ´2
%
x1 ´ x2 ` 4x3 ` 3x4 “ 4
Ma trận hệ số mở rộng có dạng
¨ ˛
1 ´1 2 ´1 : ´8
˚ 2 ´2 3 ´3 : ´20 ‹
Ap0q “˚
˝ 1

1 1 0 : ´2 ‚
1 ´1 4 3 : 4
Ta thực hiện các phép biến đổi sau: ph2 “ h2 ´2h1 q, ph3 “ h3 ´h1 q, ph4 “ h4 ´h1 q,

khi đó ma trận trở thành


¨ ˛
1 ´1 2 ´1 : ´8
˚ 0 0 ´1 ´1 : ´4 ‹
Ap1q “˚
˝ 0

2 ´1 1 : 6 ‚
0 0 2 4 : 12
p1q
Phần tử a22 “ 0, do đó để tiếp tục, ta thực hiện phép chuyển đổi giữa hàng thứ hai và

thứ ba và thu được


¨ ˛
1 ´1 2 ´1 : ´8
˚ 0 2 ´1 1 : 6 ‹
Ap2q “˚
˝ 0

0 ´1 ´1 : ´4 ‚
0 0 2 4 : 12

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

3.1 Phương pháp Gauss 29

Cuối cùng lấy hàng thứ tư cộng cho hai lần hàng thứ ba ta được:
¨ ˛
1 ´1 2 ´1 : ´8
˚ 0 2 ´1 1 : 6 ‹
Ap3q “˚
˝ 0

0 ´1 ´1 : ´4 ‚
0 0 0 2 : 4

Và sử dụng công thức (3.2) ta có thể dễ dàng tìm được x “ r´7, 3, 2, 2sT .

Thuật toán giải hệ phương trình bằng phương pháp Gauss được

thể hiện trong Chương trình 7.6. Trong ví dụ 3.1 ở phần trên, ở bước
p1q
thứ hai, do a22 “ 0 nên ta phải hoán chuyển hai hàng thứ hai và thứ

ba. Để tránh trường hợp này, ta có thể cải tiến phương pháp Gauss

theo hướng như sau. Tại mỗi bước, khi chọn phần tử để biến đổi, ta

sẽ chọn phần tử có trị tuyệt đối lớn nhất, sao cho không cùng hàng và

cột với những phần tử đã chọn trước. Phần tử như vậy thường được

gọi là phần tử chính hay phần tử trội. Sau đó ta sẽ biến đổi để cho

tất cả các phần tử trên cùng cột của phần tử trội bằng không. Qua n

bước như vậy ta sẽ tìm được nghiệm dễ dàng 1 . Ta minh hoạ phương

pháp này bằng ví dụ sau.

Ví dụ 3.2. Xét hệ phương trình trong ví dụ trước có ma trận hệ số mở rộng


¨ ˛
1 ´1 2 ´1 : ´8
˚ 2 ´2 3 ´3 : ´20 ‹
Ap0q “˚
˝ 1

1 1 0 : ´2 ‚
1 ´1 4 3 : 4

p0q
Đầu tiên ta sẽ chọn phần tử chính là phần tử a43 “ 4 và thực hiện các phép biến đổi

p4h3 ´ h4 q, p4h2 ´ 3h4 q, p2h1 ´ h4 q ta thu được


¨ ˛
1 ´1 0 ´5 : ´20
˚ 5 ´5 0 ´21 : ´92 ‹
Ap1q “˚
˝ 3

5 0 ´3 : ´12 ‚
1 ´1 4 3 : 4
1
Phương pháp này cũng được gọi là phương pháp Gauss-Jordan hay Jordan

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

30 Hệ phương trình đại số tuyến tính

Bước tiếp theo, phần tử chính được chọn không được nằm trên hàng thứ tư và cột thứ ba.
p1q
Đó là phần tử a24 “ ´21. Tiếp tục thực hiện các phép biến đổi p21h1 ´ 5h2 q, p7h3 ´

h2 q, p7h4 ` h2 q ta thu được


¨ ˛
´4 4 0 0 : 40
˚ 5 ´5 0 ´21 : ´92 ‹
Ap2q “˚
˝ 16

40 0 0 : 8 ‚
12 ´12 28 0 : ´64

Tiếp theo phần tử chính được chọn không được nằm trên hàng thứ hai, thứ tư và cột thứ
p2q
ba, thứ tư và do đó phần tử chính sẽ là phần tử a32 “ 40. Thực hiện phép biến đổi

p10h1 ´ h3 q, p8h2 ` h3 q, p10h4 ` 3h3 q ta được


¨ ˛
´56 0 0 0 : 392
˚ 56 0 0 ´168 : ´728 ‹
Ap3q “ ˚˝ 16 40

0 0 : 8 ‚
168 0 280 0 : ´616

Cuối cùng phần tử chính không cùng nằm trên hàng và cột của những phần tử chính đã
p3q
được chọn trước là phần tử a11 “ ´56. Thực hiện các phép biến đổi ph2 ` h1 q, p7h3 `

2h1 q, ph4 ` 3h1 q ta có ma trận cuối cùng


¨ ˛
´56 0 0 0 : 392
˚ 0 0 0 ´168 : ´336 ‹
Ap4q “ ˚ ˝

0 280 0 0 : 840 ‚
0 0 280 0 : 560

và hệ phương trình đầu tương đương với hệ sau


$

’ ´56x1 “ 392
&
´168x4 “ ´336

’ 280x2 “ 840
%
280x3 “ 560

Từ đây chúng ta cũng suy ra được x “ r´7, 3, 2, 2sT .

Thuật toán giải hệ phương trình bằng phương pháp phần tử trội

được thể hiện trong Chương trình 7.7. Các phương pháp có sử dụng

các phép biến đổi sơ cấp cơ bản có ưu điểm là đơn giản, dễ lập

trình. Tuy nhiên nếu phần tử được chọn để biến đổi gần với không thì

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

3.2 Phương pháp nhân tử LU 31

phương pháp Gauss có thể cho kết quả không chính xác. Hơn nữa,

nếu các phép toán cộng, trừ, nhân, chia được làm đúng hoàn toàn,

thì các phương pháp trên cho chúng ta nghiệm đúng của hệ phương

trình. Tuy nhiên, khi thực hiện trên các công cụ tính toán, ta vẫn gặp

phải sai số làm tròn. Cho nên các phương pháp Gauss vẫn được xem

như là các phương pháp gần đúng.

§3.2 PHƯƠNG PHÁP NHÂN TỬ LU

Nội dung của phương pháp nhân tử LU là phân tích ma trận hệ số

A thành tích của hai ma trận L và U , trong đó L là ma trận tam giác

dưới và U là ma trận tam giác trên. Khi đó việc giải hệ phương trình

(3.1) sẽ đưa về việc giải hai hệ phương trình Ly “ b và U x “ y mà ma

trận hệ số là các ma trận tam giác và nghiệm thu được từ các công

thức (3.2) và (3.3). Ta có định lí sau đây.

Định lý 3.1. Nếu A là ma trận không suy biến, thì bao giờ cũng tồn

tại một ma trận P không suy biến sao cho ma trận P A phân tích được

thành tích của ma trận tam giác dưới L và ma trận tam giác trên U ,

nghĩa là P A “ LU .

Có rất nhiều phương pháp phân tích A “ LU , tuy nhiên ta thường

xét trường hợp ma trận L có đường chéo chính bằng 1 và gọi là phương

pháp Doolittle. Khi đó L và U có dạng:

¨ ˛ ¨ ˛
1 0 ¨¨¨ 0 u11 u12 ¨¨¨ u1n
˚ l21 1 ¨¨¨ 0 ‹ ˚ 0 u22 ¨¨¨ u2n ‹
L“˚ ‹ và U “˚ ‹
˝ ¨¨¨ ¨¨¨ ¨¨¨ ¨¨¨ ‚ ˝ ¨¨¨ ¨¨¨ ¨¨¨ ¨¨¨ ‚
ln1 ln2 ¨¨¨ 1 0 0 ¨¨¨ unn

Các phần tử của hai ma trận L và U được xác định theo công thức

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

32 Hệ phương trình đại số tuyến tính

sau:
$

’ u1j “ a1j p1 ď j ď nq

’ ai1

’ li1 “ p2 ď i ď nq

& u11
ř
i´1
(3.4)
’ uij “ aij ´ lik ukj p1 ă i ď jq



’ ´ k“1
ř ¯

’ 1
% lij “ aij ´ j´1 k“1 lik ukj p1 ă j ă iq
ujj

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


$
& 2x1 ` 2x2 ´ 3x3 “ 9
´4x1 ´ 3x2 ` 4x3 “ ´15
%
2x1 ` x2 ` 2x3 “ 3

Ta phân tích ma trận hệ số


¨ ˛ ¨ ˛ ¨ ˛
2 2 ´3 1 0 0 u11 u12 u13
˝ ´4 ´3 4 ‚ “ ˝ l21 1 0 ‚¨ ˝ 0 u22 u23 ‚
2 1 2 l31 l32 1 0 0 u33

với u11 “ 2; u12 “ 2; u13 “ ´3; l21 “ ´2; l31 “ 1; u22 “ 1; u23 “ ´2;

l32 “ ´1; u33 “ 3.

Do đó: ¨ ˛ ¨ ˛ ¨ ˛
1 0 0 9 9
Ly “ b ðñ ˝ ´2 1 0 ‚y “ ˝ ´15 ‚ ùñ y “ ˝ 3 ‚
1 ´1 1 3 ´3
¨ ˛ ¨ ˛ ¨ ˛
2 2 ´3 9 2
U x “ y ðñ ˝ 0 1 ´2 ‚x “ ˝ 3 ‚ ùñ x “ ˝ 1 ‚
0 0 3 ´3 ´1

Thuật toán phân rã LU được thể hiện trong Chương trình 7.8.

§3.3 PHƯƠNG PHÁP CHOLESKI

Đây là trường hợp đặt biệt của phương pháp nhân tử LU, và được

dùng cho trường hợp ma trận hệ số A đối xứng và xác định dương. Ma

trận vuông A được gọi là đối xứng nếu AT “ A. Nghĩa là các phần tử

của nó đối xứng với nhau qua đường chéo chính, aij “ aji , @i, j “ 1, n.

Còn ma trận A là xác định dương nếu @x P Rn , x ‰ 0 : xT Ax ą 0. Để

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

3.3 Phương pháp Choleski 33

kiểm tra tính xác định dương của một ma trận, ta thường dùng định

lí sau đây.

Định lý 3.2. Một ma trận là xác định dương khi và chỉ khi tất cả các

định thức con chính của nó đều dương.

Trong đó định thức con chính cấp k, 1 ď k ď n của ma trận là định

thức con thu được từ k hàng và k cột đầu tiên của ma trận đó.
¨ ˛
1 1 ´1
Ví dụ 3.4. Xét ma trận A “ ˝ 1 2 0 ‚ có ∆1 “ |1| “ 1 ą 0, ∆2 “
´1 0 4
ˇ ˇ
ˇ ˇ ˇ 1 1 ´1 ˇ
ˇ 1 1 ˇ ˇ ˇ
ˇ ˇ ˇ 0 ˇˇ “ 2 ą 0. Do đó A là xác định dương.
ˇ 1 2 ˇ “ 1 ą 0 và ∆3 “ ˇ 1 2
ˇ ´1 0 4 ˇ

Ta có định lí Choleski:

Định lý 3.3. Ma trận A là đối xứng và xác định dương khi và chỉ khi

tồn tại một ma trận B tam giác dưới, khả đảo sao cho A “ BB T .

Khi đó ma trận tam giác dưới B có thể tìm được theo công thức

sau:
$ ? ai1

’ b11 “ a11 ; bi1 “ p2 ď i ď nq

’ d b11


& ř 2
i´1
bii “ aii ´ bik p1 ă i ď nq (3.5)

’ k“1

’ 1 ´ ř ¯


% bij “ aij ´ j´1k“1 bik bjk p1 ă j ă iq
bjj
Ví dụ 3.5. Xét hệ phương trình
¨ ˛¨ ˛ ¨ ˛
1 1 ´1 x1 1
Ax “ ˝ 1 2 0 ‚˝ x2 ‚ “ ˝ 2 ‚ “ b
´1 0 4 x3 3
¨ ˛
1 1 ´1
Vì ma trận A “ ˝ 1 2 0 ‚ là đối xứng và xác định dương, nên từ công thức
´1 0 4
(3.5) ta có thể xác định các hệ số bij , i ą j của ma trận tam giác dưới B như sau

?
b11 “ 1, b21 “ 1, b31 “ ´1, b22 “ 1, b32 “ 1, b33 “ 2

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

34 Hệ phương trình đại số tuyến tính


¨ ˛
1 0 0
và do đó A “ BB T với B “ ˝ 1 1 ?0 ‚. Hệ phương trình xuất phát sẽ tương
´1 1 2
"
By “ b
đương với hai hệ . Ta được
BT x “ y ¨ ˛
¨ ˛ ¨ ˛ 1
1 0 0 1 ˚
˝ 1 1 0 ‚ ˝ ‚ñ y “ ˚ 1 ‹

By “ b ô ? y “ 2 ˝ 3 ‚
´1 1 2 3 ?
¨ ˛ 2
¨ ˛ 1 ¨ ˛
1 1 ´1 ˚ 3
1 ‹
B T x “ y ô ˝ 0 1 ?1 ‚x “ ˚ ‹
˝ 3 ‚ñ x “
˝ ´1{2 ‚.
0 0 2 ? 3{2
2

Thuật toán phân rã Choleski được thể hiện trong Chương trình

7.9. Chú ý rằng các phần tử nằm trên đường chéo chính của ma trận

B và các định thức con chính của ma trận A có mối quan hệ sau:
d
a ∆k
b11 “ ∆1 , bkk “ , pk “ 2, 3, . . . , nq
∆k´1

§3.4 CHUẨN VECTƠ VÀ CHUẨN MA TRẬN

Xét không gian tuyến tính thực Rn . Chuẩn của vectơ x P Rn là một

số thực, ký hiệu là }x}, thoả các điều kiện sau đây:

(1) @x P Rn , }x} ě 0, }x} “ 0 ô x “ 0

(2) @x P Rn , @λ P R, }λx} “ |λ| . }x}

(3) @x, y P Rn , }x ` y} ď }x} ` }y}. Điều kiện này thường được gọi là bất

đẳng thức tam giác.

Trong Rn có thể có rất nhiều chuẩn, tuy nhiên chúng ta chỉ xét chủ

yếu hai chuẩn thường dùng sau đây: @x “ rx1 , x2 , . . . , xn sT P Rn


n
ÿ
}x}1 “ |x1 | ` |x2 | ` ¨ ¨ ¨ ` |xn | “ |xk | (3.6)
k“1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

3.4 Chuẩn vectơ và chuẩn ma trận 35

}x}8 “ maxp|x1 | , |x2 | , . . . , |xn |q “ max |xk | (3.7)


k“1,n

Bây giờ chúng ta định nghĩa chuẩn ma trận tương ứng với chuẩn

vectơ.

Định nghĩa 3.1. Chuẩn ma trận tương ứng với chuẩn vectơ được xác

định theo công thức:

}Ax}
}A} “ max }Ax} “ max (3.8)
}x}“1 }x}
}x}­“0
ˆ ˙
1 2
Ví dụ 3.6. Xác định chuẩn của ma trận A “ tương ứng với chuẩn một của
3 4
ˆ ˙
x1
vectơ. Với mọi x “ P R2 , sao cho }x}1 “ |x1 | ` |x2 | “ 1, ta có
x2

}Ax}1 “ |x1 ` 2x2 | ` |3x1 ` 4x2 | ď 4 |x1 | ` 6 |x2 | “ 4 ` 2 |x2 | ď 6

Do đó }A}1 “ 6.

Từ công thức (3.8) ta dễ dàng suy ra được rằng: }Ax} ď }A} }x}

Định lý 3.4. Chuẩn ma trận theo công thức (3.8) tương ứng với chuẩn

vectơ được xác định như sau:


n
ÿ
}A}1 “ max |aij | (3.9)
1ďjďn
i“1

n
ÿ
}A}8 “ max |aij | (3.10)
1ďiďn
j“1

Định nghĩa 3.2. Xét dãy các vectơ txpmq u8m“0 với x
pmq P Rn . Ta nói dãy

› ›
các vectơ này hội tụ về vectơ x khi m Ñ `8 nếu và chỉ nếu ›xpmq ´ x› Ñ 0

khi m Ñ `8 (hội tụ theo chuẩn).

Khi đó ta kí hiệu lim xpmq “ x và chuẩn có thể lấy một chuẩn bất
mÑ8
kì trong các công thức (3.6) hoặc (3.7). Ta cũng có thể nói dãy vectơ

txpmq u hội tụ về x theo chuẩn đã cho.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

36 Hệ phương trình đại số tuyến tính

Bây giờ xét hệ phương trình Ax “ b pdet A ­“ 0q có nghiệm x “ A´1 b.

Cho b một số gia ∆b, khi đó nghiệm x tương ứng sẽ có số gia là ∆x, và

A∆x “ ∆b ô ∆x “ A´1 ∆b. Ta có


› › › ›
}∆x} “ ›A´1 ∆b› ď ›A´1 › }∆b}

}b} “ }Ax} ď }A} }x}

Từ đây chúng ta dễ dàng suy ra được

}∆x} › › }∆b}
ď }A} . ›A´1 ›
}x} }b}

Số
› ›
kpAq “ }A} . ›A´1 › (3.11)

được gọi là số điều kiện của ma trận A. Ta có thể chứng tỏ được rằng

1 ď kpAq ď `8

Số điều kiện của ma trận đặc trưng cho tính ổn định của hệ thống

phương trình đại số tuyến tính. Giá trị của kpAq càng gần với 1 thì hệ

càng ổn định. Số điều kiện càng lớn thì hệ càng mất ổn định.
ˆ ˙ ˆ ˙
1 2 3
Ví dụ 3.7. Xét hệ phương trình Ax “ b với A “ và b “ . Dễ
1 2.01 3.01
ˆ ˙ ˆ ˙
1 3
thấy hệ có nghiệm là x “ . Bây giờ xét hệ Ax̃ “ b̃ với b̃ “ . Nghiệm
1 3.1
ˆ ˙
´17
của hệ bây giờ là x̃ “ . Ta nhận thấy k8 pAq “ 1207.01 " 1. Do đó b « b̃,
10
nhưng x và x̃ khác nhau rất xa.

§3.5 PHƯƠNG PHÁP LẶP

Kỹ thuật lặp dùng để giải hệ phương trình đại số tuyến tính (3.1)

cũng tương tự như phương pháp lặp đã xét trong chương 2. Muốn

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

3.5 Phương pháp lặp 37

thế, chúng ta chuyển hệ (3.1) về dạng tương đương x “ T x ` c với T là

một ma trận vuông cấp n và c là một vectơ đã biết. Xuất phát từ vectơ

m“0 theo công thức


ban đầu xp0q , ta xây dựng một dãy các vectơ txpmq u8

lặp

xpmq “ T xpm´1q ` c (3.12)

với m “ 1, 2, 3, . . . . Ta có định lí sau đây:

Định lý 3.5. Nếu }T } ă 1 thì dãy lặp các vectơ xác định theo công thức

(3.12) sẽ hội tụ về nghiệm x của hệ với mọi vectơ lặp ban đầu xp0q . Khi

đó ta có các công thức đánh giá sai số như sau:

› › }T }m ›› p1q ›
› pmq › p0q ›
›x ´ x › ď ›x ´ x › (3.13)
1 ´ }T }

› › }T } ›› pmq ›
› pmq › ›
›x ´ x› ď ›x ´ xpm´1q › (3.14)
1 ´ }T }

Bây giờ chúng ta sẽ xét một dạng ma trận hệ số của hệ phương

trình Ax “ b mà có thể chuyển dễ dàng về dạng x “ T x ` c.

Định nghĩa 3.3. Ma trận A được gọi là ma trận đường chéo trội nghiêm

ngặt nếu nó thoả mãn điều kiện sau đây:

n
ÿ
|aij | ă |aii | (3.15)
j“1
j­“i

Chúng ta có thể dễ dàng kiểm tra rằng nếu A là ma trận đường

chéo trội nghiêm ngặt thì det A ­“ 0 và aii ­“ 0, @i “ 1, n. Xét hệ phương

trình (3.1) với A là ma trận đường chéo trội nghiêm ngặt. Ta phân tích

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

38 Hệ phương trình đại số tuyến tính

ma trận A theo dạng


¨ ˛ ¨ ˛
a11 a12 ¨ ¨ ¨ a1n a11 0 ¨ ¨ ¨ 0
˚ a21 a22 ¨ ¨ ¨ a2n ‹ ˚ 0 a22 ¨ ¨ ¨ 0 ‹
A “˚ ‹ ˚
˝ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ‚“ ˝ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨
‹´
¨¨¨ ‚
¨ an1 an2 ¨ ¨ ¨ ann ˛ ¨0 0 ¨¨¨ ann ˛
0 0 ¨¨¨ 0 0 ´a12 ¨ ¨ ¨ ´a1n
˚ ´a21 0 ¨¨¨ 0 ‹ ˚ ¨ ¨ ¨ ´a2n ‹
´˚ ‹´˚ 0 0 ‹“
˝ ¨¨¨ ¨¨¨ ¨¨¨ ¨¨¨ ‚ ˝ ¨¨¨ ¨¨¨ ¨¨¨ ¨¨¨ ‚
´an1 ´an2 ¨ ¨ ¨ 0 0 0 ¨¨¨ 0
“D´L´U

Chú ý rằng do aii ­“ 0, @i “ 1, n nên det D ­“ 0. Và như vậy tồn tại ma

trận nghịch đảo:


¨ ˛
1
˚ 0 ¨¨¨ 0 ‹
˚ a11 ‹
˚ 1 ‹
˚ 0 ¨¨¨ 0 ‹
D´1 “˚ a22 ‹
˚ ¨¨¨ ¨¨¨ ¨¨¨ ¨¨¨ ‹
˚ ‹
˝ 1 ‚
0 0 ¨¨¨
ann
Khi đó hệ

Ax “ b ðñ pD ´ L ´ U qx “ b (3.16)

Bây giờ chúng ta sẽ xét một vài phương pháp để chuyển hệ phương

trình (3.1) về dạng x “ T x ` c.

Từ hệ (3.16) ta có Dx “ pL ` U qx ` b. Do tồn tại D´1 nên x “

D´1 pL ` U qx ` D´1 b. Ký hiệu Tj “ D´1 pL ` U q và cj “ D´1 b. Khi đó công

thức lặp theo (3.12) sẽ có dạng

xpmq “ Tj xpm´1q ` cj , m “ 1, 2, 3, . . . (3.17)

Phương pháp lặp dựa trên công thức lặp (3.17) được gọi là phương

pháp Jacobi. Dạng tường minh của công thức (3.17) như sau:
˜ ¸
i´1
ÿ ÿn
pmq 1 pm´1q pm´1q
xi “ ´ aij xj ´ aij xj ` bi (3.18)
aii j“1 j“i`1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

3.5 Phương pháp lặp 39

với i “ 1, 2, . . . , n. Ta có
ř
n
|aij |
› › n ˇˇ
ÿ ˇ
ˇ
j“1
}TJ }8 “ ›D´1 pL ` U q›8 “ max ˇ aij ˇ “ max j­“i ă1
i“1,n
ˇ aii ˇ i“1,n |aii |
j“1
j­“i

do A là ma trận đường chéo trội nghiêm ngặt. Vậy }TJ }8 ă 1, nghĩa là

phương pháp Jacobi luôn hội tụ với mọi vectơ lặp ban đầu xp0q .

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


$
& 10x1 ` x2 ´ x3 “ 7
x1 ` 10x2 ` x3 “ 8
%
´x1 ` x2 ` 10x3 “ 9

Với vectơ lặp ban đầu xp0q “ p0, 0, 0qT , hãy tính vectơ xp3q và đánh giá sai số của nó.

Ta có » fi » fi
0.0 ´0.1 0.1 0.7
Tj “ – ´0.1 0.0 ´0.1 fl và cj “ – 0.8 fl
0.1 ´0.1 0.0 0.9
Do đó: » fi » fi
0.7 0.71
xp1q “ Tj xp0q ` cj “ – 0.8 fl; xp2q “ Tj xp1q ` cj “ – 0.64 fl;
0.9 0.89
» fi
0.725
xp3q “ Tj xp2q ` cj “ – 0.640 fl. Ta có }Tj }8 “ 0.2. Vì vậy
0.907
› › 0.2 ›› p3q ›
› p3q › ›
›x ´ x› ď ›x ´ xp2q › “ 0.0043
8 1 ´ 0.2 8

Ví dụ 3.9. Hệ phương trình Ax “ b cho bởi


$

’ 10x1 ´ x2 ` 2x3 “ 6
&
´x1 ` 11x2 ´ x3 ` 3x4 “ 25

’ 2x 1 ´ x 2 ` 10x 3 ´ x4 “ ´11
%
3x2 ´ x3 ` 8x4 “ 15
có nghiệm duy nhất x “ r1, 2, ´1, 1sT . Để chuyển từ hệ Ax “ b về dạng x “

Tj x ` cj , ta biến đổi như sau


$

’ x1 “ 0.100x2 ´ 0.200x3 ` 0.600
&
x2 “ 0.091x1 ` 0.091x3 ´ 0.273x4 ` 2.273
’ x3 “ ´0.200x1 ` 0.100x2 ` 0.100x4 ´ 1.100

%
x4 “ ´0.375x2 ` 0.125x3 ` 1.875

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

40 Hệ phương trình đại số tuyến tính

Khi đó ma trận Tj và vectơ cj có dạng:


¨ ˛ ¨ ˛
0 0.100 ´0.200 0 0.600
˚ 0.091 0 0.091 ´0.273 ‹ ˚ 2.273 ‹
Tj “ ˚ ‹,c “ ˚ ‹
˝ ´0.200 0.100 0 0.100 ‚ j ˝ ´1.100 ‚
0 ´0.375 0.125 0 1.875
1
Chọn chuẩn vô cùng và ta có }Tj }8 “ ă 1. Do đó phương pháp lặp hội tụ. Chọn
2
xp0q “ r0, 0, 0, 0sT . Bảng sau đây cho chúng ta kết quả tính toán sau 10 lần lặp.
m 1 2 3 4 5
pmq
x1 0.6000 1.0473 0.9326 1.0152 0.9890
pmq
x2 2.2727 1.7159 2.0533 1.9537 2.0114
pmq
x3 ´1.1000 ´0.8052 ´1.0493 ´0.9681 ´1.0103
pmq
x4 1.8750 0.8852 1.1309 0.9739 1.0214

m 6 7 8 9 10
pmq
x1 1.0032 0.9981 1.0006 0.9997 1.0001
pmq
x2 1.9922 2.0023 1.9987 2.0004 1.9998
pmq
x3 ´0.9945 ´1.0020 ´0.9990 ´1.0004 ´0.9998
pmq
x4 0.9944 1.0036 0.9989 1.0006 0.9998

Quá trình lặp dừng lại dựa theo đánh giá:


› › 1{2 ›› p10q ›
› p10q › ›
›x ´ x› ď ›x ´ xp9q › “ 8.0 ˆ 10´4 ă 10´3
8 1 ´ 1{2 8
› p10q ›
Trong khi sai số thực sự là ›x ´ x›8 “ 0.0002.

Phương pháp lặp Jacobi được thể hiện trong Chương trình

7.10. Trong công thức (3.18), để tính các toạ độ của vectơ lặp

xpmq , chúng ta chỉ sử dụng các toạ độ của xpm´1q . Tuy nhiên với
pmq pmq pmq
i ą 1, x1 , x2 , . . . , xi´1 đã được tính và xấp xỉ nghiệm chính xác
pm´1q pm´1q pm´1q pmq
x1 , x2 , . . . , xi´1 tốt hơn x1 , x2 , . . . , xi´1 . Do đó khi tính xi
pmq pmq pmq
chúng ta nên sử dụng các giá trị vừa tính xong x1 , x2 , . . . , xi´1 .

Ta thu được
˜ ¸
i´1
ÿ n
ÿ
pmq 1 pmq pm´1q
xi “ ´ aij xj ´ aij xj ` bi (3.19)
aii j“1 j“i`1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

3.5 Phương pháp lặp 41

với i “ 1, 2, . . . , n. Công thức (3.19) thường được gọi là công thức

lặp Gauss-Seidel. Bây giờ ta sẽ viết dạng ma trận của phương pháp

Gauss-Seidel.

Từ hệ phương trình (3.16) ta được pD ´ Lqx “ U x ` b. Ma trận D ´ L

cũng có ma trận nghịch đảo và do đó x “ pD ´ Lq´1 U x ` pD ´ Lq´1 b.

Đặt Tg “ pD ´ Lq´1 U và cg “ pD ´ Lq´1 b. Khi đó công thức lặp có dạng

xpmq “ Tg xpm´1q ` cg , m “ 1, 2, 3, . . .

Ví dụ 3.10. Xét hệ phương trình trong ví dụ 3.9


$

’ 10x1 ´ x2 ` 2x3 “ 6
&
´x1 ` 11x2 ´ x3 ` 3x4 “ 25

’ 2x 1 ´ x 2 ` 10x 3 ´ x4 “ ´11
%
3x2 ´ x3 ` 8x4 “ 15

Công thức lặp theo phương pháp Gauss-Seidel có dạng


$ pmq pm´1q pm´1q

’ x1 “ 0.100x2 ´ 0.200x3 ` 0.600

& pmq pmq pm´1q pm´1q
x2 “ 0.091x1 ` 0.091x3 ´ 0.273x4 ` 2.273
’ pmq pmq pmq pm´1q

’ x3 “ ´0.200x1 ` 0.100x2 ` 0.100x4 ´ 1.100
% pmq pmq pmq
x4 “ ´0.375x2 ` 0.125x3 ` 1.875

Chọn x0 “ r0, 0, 0, 0sT . Bảng sau đây cho chúng ta kết quả tính toán sau 5 lần lặp.

m 1 2 3 4 5
pmq
x1 0.6000 1.0300 1.0065 1.0009 1.0001
pmq
x2 2.3272 2.0370 2.0036 2.0003 2.0000
pmq
x3 ´0.9873 ´1.0140 ´1.0025 ´1.0003 ´1.0000
pmq
x4 0.8789 0.9844 0.9983 0.9999 1.0000

Ta thấy đến lần lặp thứ năm, nghiệm thu được bằng phương pháp

Gauss-Seidel tốt hơn nhiều so với phương pháp Jacobi. Phương pháp

lặp Gauss-Seidel được thể hiện trong Chương trình 7.11.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

42 Hệ phương trình đại số tuyến tính

BÀI TẬP

Câu 1. Sử dụng phương pháp phần tử trội giải các hệ phương trình

sau:
$
& x1 ` 2x2 ` 4x3 “ 3

(a) 2x1 ` 5x2 ` 3x3 “ 5

%
x1 ` 4x2 ` 6x3 “ 6
$

’ 3x1 ` 2x2 ` 5x3 ` x4 “ 1


& 2x ` 6x2 ` 3x3 ` 2x4 “ 2
1
(b)

’ x1 ` 4x2 ` x3 ` 3x4 “ 3


% 5x ` 2x2 ` 2x3 ` x4 “ 4
1

Câu 2. Tìm phân rã LU của các ma trận sau:


» fi » fi
1 1 1 4 3 2
(a) A “ – 1 2 3 fl (b) A “ – 2 3 1 fl
3 2 4 1 4 3
» fi » fi
1 1 1 1 3 2 1 0
— 1 ´1 1 ´1 ffi — 1 3 1 4 ffi
(c) A “ —
– 1

fl (d) A “ —


1 ´1 ´1 2 1 3 1 fl
1 ´1 ´1 1 2 2 1 3

Câu 3. Chứng tỏ ma trận A là đối xứng và xác định dương và tìm ma

trận B trong phân rã Choleski.


» fi » fi
1 2 1 4 ´3 0
(a) A “ – 2 5 3 fl (b) A “ – ´3 4 ´2 fl
1 3 6 0 ´2 4
» fi » fi
2 ´1 0 0 3 2 1 1
— ´1 2 ´1 0 ffi — 2 4 3 2 ffi
(c) A “ —
– 0 ´1
ffi (d) A “ — ffi
2 ´1 fl – 1 3 5 1 fl
0 0 ´1 2 1 2 1 7

Câu 4. Tính số điều kiện theo chuẩn 1 và chuẩn 8 của các ma trận

sau:
» fi » fi
1 5 7 2 ´2 1
(a) A “ – 3 3 5 fl (b) A “ – 3 ´5 4 fl
2 1 8 4 ´1 3

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Bài tập chương 3 43


» fi
1 1 1
1
» fi — 2 3 4 ffi
2 ´2 1 4 — ffi
— 1 1 1 1 ffi
— 3 — ffi
´4 2 5 ffi — 2 3 4 5 ffi
(c) A “ —
– 4
ffi (d) A “ — ffi
´6 1 3 fl — 1 1 1 1 ffi
— ffi
5 ´8 2 2 — 3 4 5 6 ffi
– fl
1 1 1 1
4 5 6 7
Câu 5. Sử dụng phương pháp Jacobi tìm vectơ lặp xp3q của các hệ

sau:
#
5x1 ´ 2x2 “ 2.55
(a)
2x1 ` 4x2 “ 3.16
#
12.35x1 ` 4.14x2 “ 11.87
(b)
5.93x1 ` 13.72x2 “ 17.64
$
& 8x1 ` 2x2 ´ x3 “ 4

(c) x1 ` 9x2 ´ 2x3 “ 8

%
2x1 ` 2x2 ` 11x3 “ 9
$
& 3.47x1 ` 0.55x2 ` 0.21x3
’ “ 1.25
(d) 0.33x1 ` 4.12x2 ` 0.18x3 “ 2.45

%
0.45x1 ` 0.16x2 ` 3.98x3 “ 2.06
$

’ 15x1 ´ 2x2 ` 3x3 ´ x4 “ 18


& 2x ` 16x ´ 3x ` 2x4 “ 20
1 2 3
(e)

’ ´x1 ` 4x2 ` 17x3 ` 3x4 “ 16


% 3x ´ 2x ` x3 ` 18x4 “ 24
1 2

Câu 6. Sử dụng phương pháp Gauss-Seidel tìm vectơ lặp xp3q của các

hệ trong bài tập 5.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CHƯƠNG BỐN

NỘI SUY VÀ XẤP XỈ HÀM

Mục lục
4.1 Đa thức nội suy Lagrange . . . . . . . . . . . . . . . 45
4.2 Đa thức nội suy Newton . . . . . . . . . . . . . . . . 49
4.3 Spline bậc ba . . . . . . . . . . . . . . . . . . . . . . . 52
4.4 Bài toán xấp xỉ hàm thực nghiệm . . . . . . . . . . 57
Bài tập chương 4 . . . . . . . . . . . . . . . . . . . . . . . 59

Trong chương này chúng ta sẽ xét hàm y “ f pxq cho dưới dạng

bảng số

x x0 x1 x2 ¨ ¨ ¨ xn
(4.1)
y y0 y1 y2 ¨ ¨ ¨ yn

trong đó n là số nguyên dương. Các giá trị xk , k “ 0, n được gọi là các

điểm nút (mốc) và được sắp theo thứ tự tăng dần theo chỉ số k, còn

các giá trị yk “ f pxk q, k “ 0, n là giá trị cho trước của hàm tương ứng

tại xk . Bài toán đặt ra là hãy xây dựng một đa thức P pxq thoả điều kiện

P pxk q “ yk , k “ 0, n và được gọi là đa thức nội suy của hàm f pxq. Về mặt

hình học, trong mặt phẳng xOy cho một tập các điểm tMk pxk , yk qunk“0 ,

cần xây dựng một đường cong đa thức đi qua các điểm đã cho. Nói

chung có thể tồn tại nhiều đa thức như vậy. Tuy nhiên nếu bậc của

đa thức P pxq là nhỏ hơn hay bằng n thì ta có thể chứng minh rằng sự

tồn tại của đa thức nội suy là duy nhất.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

4.1 Đa thức nội suy Lagrange 45

§4.1 ĐA THỨC NỘI SUY L AGRANGE

Xét bảng số (4.1) của hàm f pxq với n ě 1. Chúng ta sẽ tìm đa thức

nội suy Ln pxq có bậc nhỏ hơn hay bằng n của hàm f pxq trên rx0 , xn s

gọi là đa thức nội suy Lagrange. Trước tiên ta xây dựng các đa thức
pkq
phụ pn pxq, k “ 0, n có bậc bằng n và thoả điều kiện
"
pkq 1, j“k
pn pxj q “
0, j ­“ k
pkq
Do các đa thức pn pxq có n nghiệm x0 , . . . , xk´1 , xk`1 , . . . , xn và có bậc

nhỏ hơn hay bằng n nên ta có thể viết chúng dưới dạng:

pnpkq pxq “ Ck px ´ x0 q . . . px ´ xk´1 qpx ´ xk`1 q . . . px ´ xn q

pkq
với Ck là hằng số. Từ điều kiện pn pxk q “ 1, ta thu được:

1
Ck “
pxk ´ x0 q . . . pxk ´ xk´1 qpxk ´ xk`1 q . . . pxk ´ xn q

Khi đó ta có:

px ´ x0 q . . . px ´ xk´1 qpx ´ xk`1 q . . . px ´ xn q


pnpkq pxq “ k “ 0, n
pxk ´ x0 q . . . pxk ´ xk´1 qpxk ´ xk`1 q . . . pxk ´ xn q

Ta gọi đa thức sau đây là đa thức nội suy Lagrange:


n
ÿ
Ln pxq “ pkn pxqyk (4.2)
k“0

Dễ dàng kiểm tra rằng đa thức xây dựng theo công thức (4.2) thoả tất

cả các yêu cầu đề ra là deg Ln pxq ď n và Ln pxk q “ yk , @k “ 0, n.


x 0 1 3
Ví dụ 4.1. Xây dựng đa thức Lagrange nội suy bảng số: . Trước tiên ta
y 1 ´1 2
tìm các đa thức phụ (chú ý rằng n “ 2).
p0q px ´ 1qpx ´ 3q 1
p2 pxq “ “ px2 ´ 4x ` 3q
p0 ´ 1qp0 ´ 3q 3
p1q px ´ 0qpx ´ 3q 1
p2 pxq “ “ ´ px2 ´ 3xq
p1 ´ 0qp1 ´ 3q 2
p2q px ´ 0qpx ´ 1q 1 2
p2 pxq “ “ px ´ xq
p3 ´ 0qp3 ´ 1q 6

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

46 Nội suy và xấp xỉ hàm

Do đó

1 1 1 7 19
L2 pxq “ px2 ´ 4x ` 3q ` px2 ´ 3xq ` px2 ´ xq “ x2 ´ x ` 1
3 2 3 6 6

là đa thức Lagrange cần tìm. Bây giờ để xấp xỉ giá trị của hàm tại một điểm nào đó trong

đoạn [0, 3], ví dụ tại x “ 2, chúng ta có thể sử dụng đa thức Lagrange:

7 19 2
yp2q « L2 p2q “ 22 ´ 2 ` 1 “ ´
6 6 3

Ta xét một cách viết khác của đa thức Lagrange. Đặt

ωpxq “ px ´ x0 qpx ´ x1 q . . . px ´ xn q

pkq
Khi ấy các đa thức phụ pn pxq có dạng

ωpxq
ppkq
n pxq “
ω 1 pxk qpx ´ xk q

Đa thức Lagrange trở thành


n
ÿ ÿn
ωpxq yk
Ln pxq “ 1
y k “ ωpxq 1
(4.3)
k“0
ω pxk qpx ´ xk q k“0
ω pxk qpx ´ xk q

Chúng ta có thể sử dụng công thức (4.3) để xây dựng đa thức La-

grange. Muốn thế ta lập bảng như sau.

x x0 x1 ... xn
x0 x ´ x0 x0 ´ x1 ... x 0 ´ xn D0
x1 x 1 ´ x 0 x ´ x1 ... x 1 ´ xn D1
... ... ... ... ... ...
xn x n ´ x 0 x n ´ x1 ... x ´ xn Dn
ωpxq

Ta có thể xem bảng số trên như một ma trận vuông cấp n ` 1 với các

hàng và cột được đánh số bởi x0 , x1 , . . . , xn . Tại các vị trí trên đường

chéo chính ứng với phần tử xi ta điền biểu thức x ´ xi . Còn tại các vị

trí ở hàng xi , cột xj ta điền giá trị xi ´ xj . Khi đó tích các phần tử nằm

trên cùng một hàng tương ứng với mẫu số trong tổng của công thức

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

4.1 Đa thức nội suy Lagrange 47

(4.3). Ta ký hiệu chúng là Dk “ ω 1 pxk qpx ´ xk q. Còn tích các phần tử

nằm trên đường chéo chính là ωpxq. Khi đó đa thức Lagrange sẽ là:

ÿn
yk
Ln pxq “ ωpxq
k“0
Dk

x 0 1 3 4
Ví dụ 4.2. Cho bảng số . Sử dụng đa thức Lagrange, tính gần đúng
y 1 1 2 ´1
giá trị của hàm tại x “ 2. Ta thành lập bảng sau:

x“2 0 1 3 4
0 2 ´1 ´3 ´4 ´24
1 1 1 ´2 ´3 6
3 3 2 ´1 ´1 6
4 4 3 1 ´2 ´24
4

Do đó
ˆ ˙
1 1 1 1
yp2q « L3 p2q “ 4 ´ ` ` ` “2
24 6 3 24

Thuật toán sử dụng đa thức nội suy Lagrange để tính gần đúng

giá trị của hàm được thể hiện trong Chương trình 7.13. Đặc biệt khi

các điểm nút cách đều với bước h “ xk`1 ´ xk “ const , @k. Nghĩa là
x ´ x0
xk “ x0 ` kh. Đặt q “ , ta thu được
h

x ´ xk “ pq ´ kqh, xi ´ xj “ pi ´ jqh


ωpxq “ qpq ´ 1q . . . pq ´ nqhn`1
ω 1 pxk q “ p´1qn´k k!pn ´ kq!hn

Khi đó công thức Lagrange có dạng

ÿn
p´1qn´k qpq ´ 1q . . . pq ´ nq
Ln pxq “ yk (4.4)
k“0
k!pn ´ kq!pq ´ kq

Bây giờ ta nêu công thức đánh giá sai số của đa thức nội suy La-

grange. Giả sử hàm f pxq có đạo hàm đến cấp n ` 1 liên tục trên đoạn

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

48 Nội suy và xấp xỉ hàm

ra, bs, được cho dưới dạng bảng số (4.1) với yk “ f pxk q, @k “ 0, n. Lấy

một điểm x̄ P ra, bs sao cho x̄ ­“ xk , @k “ 0, n. Ta sẽ tìm giá trị λ thoả

f px̄q “ Ln px̄q ` λωpx̄q (4.5)

Xét hàm phụ

F pxq “ f pxq ´ Ln pxq ´ λωpxq

Vì Ln pxq, ωpxq là các đa thức và f pxq có đạo hàm đến cấp n ` 1 liên

tục nên F pxq cũng có đạo hàm đến cấp n ` 1 liên tục. Ta nhận thấy

F pxq “ 0 tại n ` 2 điểm x̄, x0 , . . . , xn trong đoạn [a, b]. Do đó nếu áp

dụng định lí Rolle n ` 1 lần trên đoạn [a, b] ta sẽ có một điểm ξ P ra, bs

sao cho F pn`1q pξq “ 0. Nghĩa là

F pn`1q pξq “ f pn`1q pξq ´ λpn ` 1q! “ 0

và như vậy ta được


f pn`1q pξq
λ“
pn ` 1q!
Thay giá trị λ vừa tìm được vào trong công thức (4.5) ta được

f pn`1q pξq
f px̄q “ Ln px̄q ` ωpx̄q (4.6)
pn ` 1q!

với mọi x̄ P ra, bs và x̄ ­“ xk , @k “ 0, n. Tuy nhiên, nếu x̄ “ xk , @k “

0, n thì công thức (4.6) vẫn đúng, do đó công thức (4.6) là đúng với

mọi x̄ P ra, bs. Trong công thức (4.6), thay x̄ bằng x và đặt Mn`1 “
ˇ ˇ
max ˇf pn`1q pxqˇ. Khi đó sai số giữa hàm f pxq và đa thức Lagrange nội
xPra,bs
suy bảng (4.1) được đánh giá theo công thức sau

Mn`1
|f pxq ´ Ln pxq| ď |ωpxq| (4.7)
pn ` 1q!

Ví dụ 4.3. Xét hàm f pxq “ 2x trong đoạn r0, 1s. Để tính gần đúng giá trị của hàm

tại x “ 0.45, ta sử dụng đa thức Lagrange với các điểm nút nội suy x0 “ 0, x1 “

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

4.2 Đa thức nội suy Newton 49

0.25, x2 “ 0.5, x3 “ 0.75, x4 “ 1. Khi đó sai số mắc phải được xác định như sau. Ta
ˇ ˇ
có n “ 4, f p5q pxq “ pln 2q5 2x cho nên M5 “ max ˇf p5q pxqˇ “ 2pln 2q5 . Như vậy
xPr0,1s

2pln 2q5
|2x ´ L4 p0.45q| ď p0.45qp0.20qp0.05qp0.30qp0.55q « 0.2 ˆ 10´5
5!

§4.2 ĐA THỨC NỘI SUY NEW TON

Xét bảng số (4.1) của hàm số f pxq trên đoạn ra, bs “ rx0 , xn s. Trên

đoạn rxk , xk`1 s ta xét đại lượng


yk`1 ´ yk
f rxk , xk`1 s “
xk`1 ´ xk
và được gọi là tỉ sai phân cấp một của hàm trên đoạn rxk , xk`1 s. Bằng

quy nạp, ta có thể định nghĩa tỉ sai phân cấp p của hàm trên đoạn

rxk , xk`p s như sau


f rxk`1 , xk`2 , . . . , xk`p s ´ f rxk , xk`1 , . . . , xk`p´1 s
f rxk , xk`1 , . . . , xk`p s “
xk`p ´ xk
Chú ý rằng tỉ sai phân là hàm số đối xứng của các đối số, nghĩa là

f rxk , xk`1 s “ f rxk`1 , xk s. Hơn nữa, tỉ sai phân cấp n của đa thức bậc

n là hằng số và tỉ sai phân cấp lớn hơn n của đa thức cấp n bằng

không. Thông thường, để tính tỉ sai phân của hàm số ta thành lập

bảng được gọi là bảng tỉ sai phân. Để minh họa ta xét ví dụ sau.

Ví dụ 4.4. Lập bảng tỉ sai phân của hàm cho bởi:


x 1.0 1.3 1.6 1.9
y 0.76 0.62 0.45 0.28
Ta được
xk f pxk q f rxk , xk`1 s f rxk , xk`1 , xk`2 s
1.0 0.76
´0.47
1.3 0.62 ´0.17
´0.57
1.6 0.45 ´0.00
´0.57
1.9 0.28

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

50 Nội suy và xấp xỉ hàm

Ví dụ, tỉ sai phân cấp hai của hàm trên đoạn r1.0, 1.6s là f r1.0, 1.3, 1.6s “ ´0.17.

Bây giờ ta sẽ xây dựng đa thức Nn pxq bậc không cao hơn n thoả

Nn pxk q “ yk , @k “ 0, n. Theo định nghĩa của tỉ sai phân cấp một của
f pxq ´ y0
hàm f pxq: f rx, x0 s “ . Do đó: f pxq “ y0 ` px ´ x0 qf rx, x0 s. Lại
x ´ x0
dùng định nghĩa của tỉ sai phân cấp hai của hàm f pxq:

f rx, x0 s ´ f rx0 , x1 s
f rx, x0 , x1 s “
x ´ x1

ta được

f pxq “ y0 ` f rx0 , x1 spx ´ x0 q ` f rx, x0 , x1 spx ´ x0 qpx ´ x1 q.

Tiếp tục quá trình trên đến bước thứ n ta thu được

f pxq “ y0 ` f rx0 , x1 spx ´ x0 q ` f rx0 , x1 , x2 spx ´ x0 qpx ´ x1 q ` ¨ ¨ ¨ `


`f rx0 , x1 , . . . , xn spx ´ x0 qpx ´ x1 q . . . px ´ xn´1 q`
`f rx, x0 , x1 , . . . , xn spx ´ x0 qpx ´ x1 q . . . px ´ xn q

Đặt
p1q
Nn pxq “ y0 ` f rx0 , x1 spx ´ x0 q ` f rx0 , x1 , x2 spx ´ x0 qpx ´ x1 q`
(4.8)
` ¨ ¨ ¨ ` f rx0 , x1 , . . . , xn spx ´ x0 qpx ´ x1 q . . . px ´ xn´1 q

Rn pxq “ f rx, x0 , x1 , . . . , xn spx ´ x0 qpx ´ x1 q . . . px ´ xn q

ta được

f pxq “ Nnp1q pxq ` Rn pxq

Công thức (4.8) được gọi là công thức Newton tiến xuất phát từ điểm

nút x0 của hàm số f pxq và Rn pxq là sai số của đa thức nội suy Newton.

Bằng cách làm tương tự, ta có thể xây dựng công thức Newton lùi

xuất phát từ điểm nút xn của hàm số f pxq như sau


p2q
Nn pxq “ yn ` f rxn´1 , xn spx ´ xn q`
`f rxn´2 , xn´1 , xn spx ´ xn´1 qpx ´ xn q` (4.9)
` ¨ ¨ ¨ ` f rx0 , x1 , . . . , xn spx ´ x1 qpx ´ x2 q . . . px ´ xn q

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

4.2 Đa thức nội suy Newton 51

Do tính duy nhất của đa thức nội suy, ta có với cùng một bảng số thì

Ln pxq “ Nnp1q pxq “ Nnp2q pxq

Vì vậy ta có thể sử dụng công thức (4.7) để đánh giá sai số của các

công thức nội suy Newton.


x 0.0 0.3 0.7 1.0
Ví dụ 4.5. Cho bảng số . Dùng công thức
y 2.0000 2.2599 2.5238 2.7183
Newton tiến tính gần đúng giá trị của hàm tại x “ 0.12. Trước tiên ta lập bảng tỉ sai phân

xk f pxk q f rxk , xk`1 s f rxk , . . . , xk`2 s f rxk , . . . , xk`3 s


0.0 2.0000
0.8663
0.3 2.2599 ´0.2950
0.6598 0.2786
0.7 2.5238 ´0.0164
0.6483
1.0 2.7183

Như vậy giá trị gần đúng của hàm tại x “ 0.12 được tính
p1q
yp0.12q « N3 p0.12q
“ 2.0000 ` 0.8663p0.12q ` 0.2950p0.12qp0.18q`
`0.2786p0.12qp0.18qp0.58q « 2.1138

Tương tự như trường hợp của công thức nội suy Lagrange, chúng

ta xét trường hợp các điểm nút cách đều với bước h. Muốn thế ta đưa

vào khái niệm sau. Đại lượng ∆yk “ yk`1 ´ yk được gọi là sai phân hữu

hạn cấp 1 của hàm tại điểm xk . Tương tự ta có thể định nghĩa sai

phân hữu hạn cấp p của hàm tại điểm xk như sau ∆p yk “ ∆p∆p´1 yk q.

Ta có thể dễ dàng chứng minh bằng quy nạp công thức sau, thể hiện

mối quan hệ giữa khái niệm tỉ sai phân và sai phân hữu hạn:
∆p y k
f rxk , xk`1 , . . . , xk`p s “
p!hp
Khi đó các công thức (4.8) và (4.9) sẽ có dạng
p1q ∆y0 ∆2 y 0
Nn pxq “ y0 ` q` qpq ´ 1q ` ¨ ¨ ¨ `
1! 2! (4.10)
∆n y 0
` qpq ´ 1q . . . pq ´ n ` 1q
n!

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

52 Nội suy và xấp xỉ hàm

x ´ x0
với q “ và
h
p2q ∆yn´1 ∆2 yn´2
Nn pxq “ yn ` p` ppp ` 1q ` ¨ ¨ ¨ `
n 1! 2! (4.11)
∆ y0
` ppp ` 1q . . . pp ` n ´ 1q
n!
x ´ xn
với p “ .
h
Ví dụ 4.6. Sử dụng bảng giá trị của hàm sin lượng giác với bước h “ 5o , tính gần đúng

giá trị của sin 32o . Ta có bảng sai phân

xk f pxk q ∆ ∆2 ∆3
30o 0.5000 0.0736 ´0.0044 ´0.0005
35o 0.5736 0.0692 ´0.0049
40o 0.6428 0.0643
45o 0.7071
32 ´ 30
và q “ “ 0.4. Khi đó theo công thức (4.10) ta đượcsin 32o « 0.5303.
5

§4.3 SPLINE BẬC BA

Việc xây dựng một đa thức đi qua các điểm nội suy cho trước trong

trường hợp n lớn là rất khó khăn và khó ứng dụng. Một trong những

cách khắc phục là trên từng đoạn liên tiếp của các cặp điểm nút nội

suy ta nối chúng lại bởi các đường cong đơn giản như đoạn thẳng

chẳng hạn. Tuy nhiên khi đó tại các điểm nút hàm sẽ mất tính khả

vi. Do đó người ta cố gắng xây dựng một đường cong bằng cách nối

các đoạn cong nhỏ lại với nhau sao cho vẫn bảo toàn tính khả vi

của hàm. Đường cong như vậy được gọi là đường spline (đường ghép

trơn). Các hàm trên các đoạn nhỏ thông thường là các đa thức và bậc

cao nhất của các đa thức đó là bậc của spline. Trong phần này chúng

ta sẽ chỉ xét công thức nội suy spline bậc ba.

Định nghĩa 4.1. Cho hàm f pxq xác định trên đoạn ra, bs và một phép

phân hoạch của nó: a “ x0 ă x1 ă x2 ă ¨ ¨ ¨ ă xn “ b. Đặt yk “ f pxk q, k “

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

4.3 Spline bậc ba 53

0, 1, . . . , n. Một spline bậc ba nội suy hàm f pxq trên ra, bs là hàm gpxq thoả

các điều kiện sau:

(a) gpxq có đạo hàm đến cấp hai liên tục trên đoạn ra, bs.

(b) Trên mỗi đoạn rxk , xk`1 s k “ 0, 1, . . . , n ´ 1, gpxq “ gk pxq là một đa

thức bậc ba.

(c) gpxk q “ f pxk q “ yk , @k “ 0, 1, . . . , n.

Dựa trên định nghĩa này, ta đi tìm công thức xác định spline bậc

ba. Xét đoạn rxk , xk`1 s với k “ 0, 1, . . . , n ´ 1. Đặt hk “ xk`1 ´ xk . Vì gk pxq

là đa thức bậc ba, nên ta viết nó dưới dạng:

gk pxq “ ak ` bk px ´ xk q ` ck px ´ xk q2 ` dk px ´ xk q3

Từ điều kiện (3), ta thấy ngay: ak “ gpxk q “ gk pxk q “ yk và

ak ` bk hk ` ck h2k ` dk h3k “ gpxk`1 q “ gk pxk`1 q “ yk`1

Từ đây ta được
$
’ y ´ yk
& bk “ k`1 ´ ck hk ´ dk h2k , @k “ 0, 1, . . . , n ´ 1
hk (4.12)
’ y ´ yk´1
% bk´1 “ k ´ ck´1 hk´1 ´ dk´1 h2k´1 , @k “ 1, . . . , n
hk´1

trong đó phương trình thứ hai thu được từ phương trình thứ nhất

bằng cách giảm chỉ số xuống một đơn vị.

Xét tại điểm xk với k “ 1, 2, . . . , n ´ 1. Do tính khả vi của hàm đến

cấp hai theo tại xk ta có gk´1


1 pxk q “ gk1 pxk q và gk´1
2 px q “ g 2 px q . Từ điều
k k k

kiện gk´1
2 px q “ g 2 px q ta thu được:
k k k
$
’ c ´ ck
& dk “ k`1 ,
3hk (4.13)
’ c ´ ck´1 @k “ 1, 2, . . . , n ´ 1
% dk´1 “ k
3hk´1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

54 Nội suy và xấp xỉ hàm

Thay (4.13) vào (4.12) ta được


$
’ y ´ yk hk
& bk “ k`1 ´ pck`1 ` 2ck q,
hk 3 @k “ 1, 2, . . . , n ´ 1 (4.14)
’ yk ´ yk´1 hk´1
% bk´1 “ ´ pck ` 2ck´1 q
hk´1 3

Từ điều kiện gk´1


1 pxk q “ gk1 pxk q ta có

bk “ bk´1 ` 2ck´1 hk´1 ` 3dk´1 h2k´1

Thay các đại lượng đã biết trong (4.13) và (4.14) vào biểu thức trên ta

được hệ phương trình dùng để xác định các hệ số ck :


$
& h c yk`1 ´ yk yk ´ yk´1
k´1 k´1 ` 2phk´1 ` hk qck ` hk ck`1 “ 3 ´3 ,
hk hk´1 (4.15)
% @k “ 1, 2, . . . , n ´ 1

Hệ phương trình (4.15) dùng để xác định các hệ số ck với k “ 0, 1, . . . , n.

Khi đó từ các công thức (4.14), (4.13) và ak “ yk ta có thể xác định tất

cả các hệ số của đa thức gk pxq. Nói chung hệ phương trình (4.15) có

vô số nghiệm. Vì vậy để có tính duy nhất, ta phải bổ sung thêm một

số điều kiện, và thông thường các điều kiện đó là các điều kiện biên.
4.3.1 SPLINE BẬC BA TỰ NHIÊN

Điều kiện để xác định một spline bậc ba tự nhiên là: g 2 paq “ g 2 pbq “ 0.

Từ đây ta thu được c0 “ cn “ 0. Điều kiện này bổ sung hai phương

trình vào hệ (4.15) dùng để xác định n`1 hệ số c0 , c1 , . . . , cn´1 , cn . Thuật

toán xác định spline bậc ba tự nhiên như sau: giải hệ AC “ B với A là

ma trận hệ số cấp n ` 1, B là vectơ tự do và C “ pc0 , c1 , c2 , . . . , cn´1 , cn qT .

Ta có:
¨ ˛
1 0 0 ... 0 0
˚ h0 2ph0 ` h1 q h1 ... 0 0 ‹
˚ ‹
˚ 0 h1 2ph1 ` h2 q ... 0 0 ‹
A“˚
˚


˚ ... ... ... ... ... ... ‹
˝ 0 0 0 ... 2phn´2 ` hn´1 q hn´1 ‚
0 0 0 ... 0 1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

4.3 Spline bậc ba 55

và ¨ ˛
0
˚ y2 ´ y1 y1 ´ y0 ‹
˚ 3 ´3 ‹
˚ h1 h0 ‹
˚ ‹
B“˚ ......... ‹
˚ yn ´ yn´1 yn´1 ´ yn´2 ‹
˚ 3 ´3 ‹
˝ hn´1 hn´2 ‚
0

Sau khi tìm được tất cả các giá trị của c0 , c1 , c2 , . . . , cn´1 , cn , các hệ số

khác của gk pxq được xác định bởi:


$

’ a k “ yk ,

& yk`1 ´ yk hk
bk “ ´ pck`1 ` 2ck q, @k “ 0, 1, 2, . . . , n ´ 1 (4.16)
’ hk 3

’ c ´ ck
% dk “ k`1
3hk

x 0 2 5
Ví dụ 4.7. Xây dựng spline bậc ba tự nhiên nội suy bảng số: . Ta có
y 1 1 4
n “ 2, h0 “ 2, h1 “ 3. Do là spline tự nhiên nên c0 “ c2 “ 0. Hệ số c1 còn lại được

xác định từ phương trình

y2 ´ y1 y1 ´ y0 3
2ph0 ` h1 qc1 “ 3 ´3 ñ c1 “
h1 h0 10

Khi đó từ (4.16) ta được:


1 1
Với k “ 0 : a0 “ 1, b0 “ ´ , d0 “
5 20
2 1
Với k “ 1 : a1 “ 1, b1 “ , d1 “ ´
5 30
Vậy spline
$cần tìm có dạng
’ 1 1
& 1 ´ x ` x3 , x P r0, 2s
gpxq “ 5 20
% 1 ` 2 px ´ 2q ` 3 px ´ 2q2 ´ 1 px ´ 2q3 , x P r2, 5s

5 10 30
x 0 1 2 3
Ví dụ 4.8. Xây dựng spline bậc ba tự nhiên nội suy bảng số: . Ta có
y 1 2 4 8
n “ 3, h0 “ h1 “ h2 “ 1, c0 “ c3 “ 0. Các hệ số c1 và c2 được xác định từ hệ

phương trình:

ˆ ˙ˆ ˙ ˆ ˙
4 1 c1 3 2 7
“ ùñ c1 “ , c2 “
1 4 c2 6 5 5

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

56 Nội suy và xấp xỉ hàm

13 2 19 1
Do đó: a0 “ 1, b0 “ , d0 “ ; a1 “ 2, b1 “ , d1 “ ; a2 “ 4, b2 “
15 15 15 3
46 7
, d2 “ ´ . Và spline cần tìm có dạng:
15 15
$
’ 13 2

’ 1 ` x ` x3 , 0ďxď1

’ 15 15
&
19 2 1
gpxq “ 2 ` px ´ 1q ` px ´ 1q2 ` px ´ 1q3 , 1 ď x ď 2

’ 15 5 3


’ 46
% 4 ` px ´ 2q ` px ´ 2q2 ´ 7 px ´ 2q3 , 2 ď x ď 3
7
15 5 15

Thuật toán xây dựng spline bậc ba tự nhiên được thể hiện trong

Chương trình 7.14.

4.3.2 SPLINE BẬC BA RÀNG BUỘC

Điều kiện để xác định spline bậc ba ràng buộc là: g 1 paq “ α, g 1 pbq “ β.

Từ đây ta có thêm hai phương trình:


$
’ y ´ y0
& 2h0 c0 ` h0 c1 “ 3 1 ´ 3α
h0
’ yn ´ yn´1
% hn´1 cn´1 ` 2hn´1 cn “ 3β ´ 3
hn´1

bổ sung vào hệ (4.15) và ta thu được hệ phương trình đại số tuyến

tính AC “ B gồm n ` 1 phương trình ứng với n ` 1 ẩn là c0 , c1 , . . . , cn .

Ma trận A và vectơ B có dạng:


¨ ˛
2h0 h0 0 ... 0 0
˚ h0 2ph0 ` h1 q h1 ... 0 0 ‹
˚ ‹
˚ 0 h1 2ph1 ` h2 q ... 0 0 ‹
A“˚
˚


˚ ... ... ... ... ... ... ‹
˝ 0 0 0 ... 2phn´2 ` hn´1 q hn´1 ‚
0 0 0 ... hn´1 2hn´1
¨ y1 ´ y0 ˛
3 ´ 3α
˚ h0 ‹
˚ y2 ´ y1 y1 ´ y0 ‹
˚ 3 ´3 ‹
˚ h1 h0 ‹
˚ ‹
B“˚
˚ ......... ‹

˚ yn ´ yn´1 yn´1 ´ yn´2 ‹
˚ 3 ´3 ‹
˚ hn´1 hn´2 ‹
˝ yn ´ yn´1 ‚
3β ´ 3
hn´1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

4.4 Bài toán xấp xỉ hàm thực nghiệm 57

Sau khi tìm được các hệ số ck , các hệ số ak ,bk và dk cũng xác định

theo công thức (4.16) tương tự như trường hợp của spline bậc ba tự

nhiên.

x 0 1
Ví dụ 4.9. Xây dựng spline bậc ba ràng buộc nội suy bảng số: , thoả điều kiện
y 1 1
y 1 p0q “ 1, y 1 p1q “ 1. Ta có n “ 1, h0 “ 1. Từ đây ta được c0 “ ´3, c1 “ 3. Do

đó a0 “ 1, b0 “ 1, d0 “ 2. Spline cần tìm có dạng: gpxq “ 1 ` x ´ 3x2 ` 2x3 với

x P r0, 1s.

x 0 1 2
Ví dụ 4.10. Xây dựng spline bậc ba ràng buộc nội suy bảng số: thoả
y 1 2 1
điều kiện y 1 p0q “ 0, y 1 p2q “ 0. Ta có n “ 2, h0 “ h1 “ 1, α “ β “ 0, do đó hệ

phương trình xác định c0 , c1 , c2 có dạng:


¨ ˛¨ ˛ ¨ ˛
2 1 0 c0 3
˝ 1 4 1 ‚˝ c1 ‚ “ ˝ ´6 ‚ ùñ c0 “ 3, c1 “ ´3, c2 “ 3
0 1 2 c2 3

Vậy: a0 “ 1, b0 “ 0, d0 “ ´2; a1 “ 2, b1 “ 0, d1 “ 2 và spline cần tìm có dạng


"
1 ` 3x2 ´ 2x3 , 0ďxď1
gpxq “
2 ´ 3px ´ 1q2 ` 2px ´ 1q3 , 1 ď x ď 2

Thuật toán xây dựng spline bậc ba ràng buộc được thể hiện trong

Chương trình 7.15.

§4.4 BÀI TOÁN XẤP XỈ HÀM THỰC NGHIỆM

Trong mặt phẳng xOy cho tập các điểm tMk pxk , yk qunk“1 , trong đó có

ít nhất hai điểm nút xi và xj khác nhau với i ­“ j và n là rất lớn. Khi đó

việc xây dựng một đường cong đi qua tất cả những điểm đã cho không

có ý nghĩa thực tế. Thay vào đó chúng ta sẽ tìm một hàm f pxq đơn giản

sao cho nó thể hiện tốt nhất dáng điệu của tập điểm tMk pxk , yk qunk“1

và không nhất thiết đi ngang qua các điểm đó. Có nhiều phương pháp

để giải quyết vấn đề trên, và một trong những phương pháp như vậy

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

58 Nội suy và xấp xỉ hàm

là phương pháp bình phương bé nhất. Nội dung của phương pháp là

tìm cực tiểu của phiếm hàm:


n
ÿ
gpf q “ rf pxk q ´ yk s2 ÝÑ min (4.17)
k“1

Dạng của hàm cần xác định f pxq phụ thuộc vào nhiều yếu tố. Tuy

nhiên, các dạng đơn giản nhất thường gặp trong thực tế là: f pxq “

A ` Bx, f pxq “ A ` Bx ` Cx2 , f pxq “ A cos x ` B sin x, f pxq “ A eBx ,

f pxq “ AxB , . . . . Nghĩa là để xác định f pxq ta cần xác định các hệ

số A, B, C, . . . từ điều kiện (4.17). Để minh họa cho phương pháp, ta

xét trường hợp thường gặp sau đây với f pxq “ Appxq ` Bqpxq. Khi đó

phương trình (4.17) có dạng:


n
ÿ
gpA, Bq “ pAppxk q ` Bqpxk q ´ yk q2 ÝÑ min
k“1

Bài toán quy về việc tìm cực tiểu của hàm hai biến gpA, Bq. Toạ độ

điểm dừng của hàm được xác định từ hệ phương trình


$
’ Bg ř
n

& “2 pAppxk q ` Bqpxk q ´ yk qppxk q “ 0
BA k“1
’ Bg “ 2 ř

n
pAppxk q ` Bqpxk q ´ yk qqpxk q “ 0
%
BB k“1

Sau khi đơn giản, ta thu được hệ hai phương trình với hai ẩn A và B.
$ ˆ n ˙ ˆ n ˙ ˆ n ˙
’ ř 2 ř ř

& p pxk q A ` ppxk qqpxk q B “ ppxk qyk
ˆ n k“1 ˙ ˆk“1 ˙ ˆ k“1 ˙ (4.18)
’ ř ř
n ř
n

% ppx k qqpx k q A ` q 2 px q B
k “ qpx qy
k k
k“1 k“1 k“1

Theo giả thiết của bài toán và bất đẳng thức Cauchy, ta có định thức

của ma trận hệ số luôn khác không, nên hệ phương trình (4.18) lúc

nào cũng nghiệm duy nhất A và B. Đó là các hệ số cần tìm.

Ví dụ 4.11. Tìm hàm f pxq “ A ` Bx xấp xỉ tốt nhất bảng số:

x 1 1 2 2 2 3 3 4 5 6
y 1 2 2 3 4 4 5 5 6 7

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Bài tập chương 4 59

Ta có n “ 10, ppxq “ 1, qpxq “ x. Để thiết lập hệ phương trình (4.18), ta có các


ř
n řn ř
n ř
n
tổng sau: xk “ 29, yk “ 39, x2k “ 109 và xk yk “ 140. Khi ấy hệ
k“1 k“1 k“1 k“1
phương trình xác định A và B có dạng:
" "
10A `29B “ 39 A “ 0.7671
ùñ
29A `109B “ 140 B “ 1.0803

Do đó đường thẳng cần tìm là: f pxq “ 0.7671 ` 1.0803x.

ř
m
Trường hợp cần xấp xỉ bảng số bởi đa thức bậc m: Pm pxq “ Ak xk ,
k“0
ta có hệ phương trình dùng để xác định các hệ số A0 , A1 , . . . , Am như

sau:
$ ˆ n ˙ ˆ n ˙
’ ř ř m ř
n

’ mA 0 ` x k A 1 ` ¨ ¨ ¨ ` x Am “ yk

’ k

’ ˆ n ˙ ˆk“0 ˙ ˆ k“0 ˙ k“0

& ř ř
n ř
n ř
n
xk A0 ` x2k A1 ` ¨ ¨ ¨ ` xm`1
k Am “ xk y k
k“0 k“0 k“0 k“0




’ ˆ n ˙. . . ˆ n ˙. . . ˆ n .˙
..... ...

’ ř ř ř ř
n

% xm A0 ` m`1
xk A1 ` ¨ ¨ ¨ ` x2m Am “ xm
k k k yk
k“0 k“0 k“0 k“0

BÀI TẬP

Câu 1. Xây dựng đa thức nội suy Lagrange đối với các bảng số sau:
x 2 3 5 x 0.3 0.5 0.8
(a) (b)
y 3 1 4 y 1.25 1.47 1.88
x 0 1 3 4 x 1.2 1.4 1.6 1.8
(c) (d)
y 3 2 1 5 y 2.25 3.16 3.78 4.55

Câu 2. Sử dụng đa thức nội suy Lagrange hãy xấp xỉ giá trị của hàm

f pxq tại x˚ với các điểm nút đã cho. Lấy 4 chữ số lẻ sau dấu phảy thập

phân. So sánh với giá trị chính xác.

(a) f pxq “ sin x, x0 “ 30o , x1 “ 35o , x2 “ 40o , x3 “ 45o , x˚ “ 32o

(b) f pxq “ e´x cos x, x0 “ 0.2, x1 “ 0.4, x2 “ 0.6, x3 “ 0.8, x˚ “ 0.5

(c) f pxq “ lnp1 ` xq, x0 “ 7, x1 “ 8, x2 “ 9, x3 “ 10, x˚ “ 8.25

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

60 Nội suy và xấp xỉ hàm

Câu 3. Cho bảng tỷ sai phân:

x0 “ 1 f px0 q “?
f rx0 , x1 s “?
x1 “ 3 f px1 q “? f rx0 , x1 , x2 s “ 1
f rx1 , x2 s “ 2
x2 “ 4 f px2 q “ 6

Hãy tìm các giá trị còn thiếu trong bảng.

Câu 4. Làm các bài trong câu 1 sử dụng đa thức nội suy Newton tiến.

Câu 5. Xây dựng spline bậc ba tự nhiên nội suy các bảng số:
x 0 2 3 x 1 2 3 4
(a) (b)
y 2 1 1 y 2 2 1 4

Câu 6. Cho spline bậc ba tự nhiên:


#
3 ´ 2x ` x3 , nếu 0 ď x ď 1
gpxq “
a ` bpx ´ 1q ` cpx ´ 1q2 ` dpx ´ 1q3 , nếu 1 ď x ď 3

Hãy xác định a, b, c, d.

Câu 7. Cho spline bậc ba tự nhiên:


#
1 ` b0 px ´ 1q ` d0 px ´ 1q3 , nếu 1 ď x ď 2
gpxq “
3 ` b1 px ´ 2q ` 4px ´ 2q2 ` d1 px ´ 2q3 , nếu 2 ď x ď 3

Hãy xác định b0 , d0 , b1 , d1 .

Câu 8. Xây dựng spline bậc ba gpxq nội suy các bảng số và thoả các

điều kiện đã cho.


x 2 3 4 x 0 1 2 3
(a) , (b) ,
y 1 4 2 y 1 ´1 2 0
g 1 p2q “ 0, g 1 p4q “ 1 g 1 p0q “ 1, g 1 p3q “ 0

Câu 9. Cho spline bậc ba:


#
1 ` x ` x2 ` x 3 , nếu 0 ď x ď 2
gpxq “
a ` bpx ´ 2q ` cpx ´ 2q2 ` dpx ´ 2q3 , nếu 2 ď x ď 3

Hãy xác định a, b, c, d biết rằng g 1 p3q “ 1.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Bài tập chương 4 61

Câu 10. Cho spline bậc ba:


#
2 ` b0 px ´ 1q ´ 3px ´ 1q2 ` d0 px ´ 1q3 , nếu 1 ď x ď 2
gpxq “
4 ` b1 px ´ 2q ` 2px ´ 2q2 ` d1 px ´ 2q3 , nếu 2 ď x ď 3

Hãy xác định b0 , d0 , b1 , d1 biết rằng g 1 p1q “ g 1 p3q.

Câu 11. Cho bảng số:

x 1 2 3 4 5 6 7
y 1.02 3.96 8.55 16.01 25.30 35.87 48.58

Tìm hàm f pxq “ A ` Bx ` Cx2 xấp xỉ tốt nhất bảng số trên.

Câu 12. Cho bảng số:

x 1.0 1.2 1.4 1.6 1.8 2.0


y 2.27 2.37 2.45 2.52 2.60 2.62
?
Tìm hàm f pxq “ A x ` B cos x xấp xỉ tốt nhất bảng số trên.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CHƯƠNG NĂM

ĐẠO HÀM VÀ TÍCH PHÂN

Mục lục
5.1 Tính gần đúng đạo hàm . . . . . . . . . . . . . . . . 62
5.2 Công thức Newton-Cotes . . . . . . . . . . . . . . . . 64
Bài tập chương 5 . . . . . . . . . . . . . . . . . . . . . . . 68

§5.1 TÍNH GẦN ĐÚNG ĐẠO HÀM

Trong phần này ta đưa ra các công thức xấp xỉ các đạo hàm cấp

một và cấp hai của hàm y “ f pxq dựa vào các giá trị rời rạc yk của hàm

tại các điểm nút xk . Trước tiên ta xây dựng đa thức nội suy Lagrange

Lpxq xấp xỉ hàm f pxq và sau đó f 1 pxq « L1 pxq và f 2 pxq « L2 pxq.

Xét trường hợp đơn giản với bảng số có ba điểm nút cách đều:

x x0 ´ h x0 x0 ` h
y f px0 ´ hq f px0 q f px0 ` hq

Đây là trường hợp thường dùng để xấp xỉ các đạo hàm. Đa thức

Lagrange có dạng:

px ´ x0 ` hqpx ´ x0 q px ´ x0 ` hqpx ´ x0 ´ hq
Lpxq “ 2
f px0 ` hq ´ f px0 q `
2h h2
px ´ x0 qpx ´ x0 ´ hq
` f px0 ´ hq
2h2
Khi đó

x ´ x0 ` h x ´ x0
L1 pxq “ pf px0 ` hq ´ 2f px0 q ` pf px0 ` hq ` f px0 ´ hqq `
2h2 2h2
x ´ x0 ´ h
` pf px0 ` hq ´ 2f px0 qq, (5.1)
2h2

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

5.2 Công thức Newton-Cotes 63

f px0 ` hq ´ 2f px0 q ` f px0 ´ hq


L2 pxq “ . (5.2)
h2

Từ (5.1) ta được
$

’ ´3f px0 ´ hq ` 4f px0 q ´ f px0 ` hq

’ f 1 px0 ´ hq « L1 px0 ´ hq “

’ 2h
&
f px0 ` hq ´ f px0 ´ hq
f 1 px0 q « L1 px0 q “

’ 2h



’ f px0 ´ hq ´ 4f px0 q ` 3f px0 ` hq
% f 1 px0 ` hq « L1 px0 ` hq “
2h

Công thức thứ nhất và thứ ba được gọi là các công thức sai phân tiến

và lùi, còn công thức thứ hai được gọi là công thức sai phân hướng

tâm. Đối với đạo hàm cấp hai, ta dùng công thức (5.2) để xấp xỉ tại

điểm x0 và cũng gọi là công thức sai phân hướng tâm.

Ví dụ 5.1. Sử dụng công thức sai phân hướng tâm tính đạo hàm cấp một và cấp hai của
2
hàm f pxq “ x e´x tại x0 “ 1 với những giá trị khác nhau của h cho ta bảng sau:

h f 1 p1q f 2 p1q
0.200 ´0.343802 ´0.740291
0.150 ´0.354226 ´0.738399
0.100 ´0.361776 ´0.736962
0.050 ´0.366348 ´0.736064
0.010 ´0.367818 ´0.735771
0.005 ´0.367864 ´0.735761
0.001 ´0.367878 ´0.735759

Giá trị chính xác viết đến sáu chữ số sau dấu chấm thập phân là f 1 p1q “ ´0.367879 và

f 2 p1q “ ´0.735758.

Trường hợp bảng số có năm điểm nút cách đều, bằng cách làm

tương tự, ta thu được công thức xấp xỉ đạo hàm cấp một như sau:

f px0 ´ 2hq ´ 8f px0 ´ hq ` 8f px0 ` h ´ f px0 ` 2hqq


f 1 px0 q «
12h

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

64 Đạo hàm và tích phân

§5.2 CÔNG THỨC NEW TON-COTES

Mục đích của phần này là tính gần đúng tích phân xác định

żb
I“ f pxq dx, (5.3)
a

với f pxq là hàm xác định và khả tích trên ra, bs. Ý tưởng xuất phát

từ việc xấp xỉ hàm f pxq trên đoạn ra, bs bởi đa thức nội suy Lagrange

Ln pxq và

żb żb
I“ f pxq dx « I “ ˚
Ln pxq dx. (5.4)
a a

b´a
Xét một phép phân hoạch đều của đoạn ra, bs: h “ , x0 “ a,
n
xk “ x0 ` kh, @k “ 0, n. Ta xây dựng đa thức nội suy Lagrange Ln pxq

xấp xỉ hàm f pxq trên đoạn ra, bs xác định theo công thức (4.4) trong

chương 4, trong đó yk “ f pxk q, k “ 0, n.

Thay biểu thức (4.4) vào công thức xấp xỉ (5.4) và sử dụng phép
x ´ x0
đổi biến q “ , ta thu được
h
żb n
ÿ
I“ f pxqdx « I “ pb ´ aq ˚
Hk yk , (5.5)
a k“0

ở đây
żn
p´1qn´k qpq ´ 1q . . . pq ´ nq
Hk “ dq, k “ 0, n (5.6)
nk!pn ´ kq! q´k
0

Công thức (5.5) được gọi là công thức Newton-Cotes và các hệ số (5.6)

được gọi là các hệ số Cotes. Hệ số Cotes có các tính chất sau đây.
n
ÿ
Hk “ H0 ` H1 ` ¨ ¨ ¨ ` Hn “ 1 (5.7a)
k“0
Hk “ Hn´k , @k “ 0, n (5.7b)

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

5.2 Công thức Newton-Cotes 65

Đối với công thức đánh giá sai số của công thức Newton-Cotes, ta có

định lí sau.

Định lý 5.1. Sai số của công thức Newton-Cotes cho bởi:


żn
Mn`1 hn`2
˚
|I ´ I | ď |qpq ´ 1q . . . pq ´ nq| dq n lẻ. (5.8a)
pn ` 1q!
0
żn
Mn`2 hn`3 ˇ 2 ˇ
|I ´ I ˚ | ď ˇq pq ´ 1q . . . pq ´ nqˇ dq n chẵn. (5.8b)
pn ` 2q!
0
ˇ ˇ
với Mm “ max ˇf pmq pxqˇ.
xPra,bs

Bây giờ ta sẽ xét một vài trường hợp thường dùng của công thức

Newton-Cotes.
5.2.1 CÔNG THỨC HÌNH THANG

Trong công thức (5.5), cho n “ 1 ta được x0 “ a, x1 “ b, h “ b ´ a,

y0 “ f paq, y1 “ f pbq. Từ các tính chất (5.7) của hệ số Cotes: H0 ` H1 “ 1


1
và H0 “ H1 , ta thu được: H0 “ H1 “ . Khi đó công thức (5.5) có dạng
2
y0 ` y1
I « I˚ “ h (5.9)
2

và được gọi là công thức hình thang. Ý nghĩa hình học của công thức

(5.9) là: tích phân (5.3) biểu diễn diện tích của hình thang cong tạo

bởi đường cong f pxq và các đường thẳng x “ a, x “ b và y “ 0. Theo

(5.9), diện tích này được xấp xỉ bởi diện tích hình thang vuông.

Trong công thức đánh giá sai số (5.8a) của công thức Newton-

Cotes, cho n “ 1 ta thu được


ż1 ż1
M2 h3 M2 h3 M2 h3
˚
|I ´ I | ď |qpq ´ 1q| dq “ qp1 ´ qqdq “ (5.10)
2! 2 12
0 0

Trong thực tế, công thức (5.9) ít được sử dụng trực tiếp. Thông thường

ta chia nhỏ đoạn ra, bs và áp dụng công thức hình thang trên từng

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

66 Đạo hàm và tích phân

đoạn nhỏ. Cụ thể, chia đoạn [a, b] thành n đoạn bằng nhau với bước
b´a
chia h “ ; các điểm chia x0 “ a, xk “ x0 ` kh, yk “ f pxk q, k “ 0, n
n
và sử dụng công thức (5.9) cho từng đoạn nhỏ, ta thu được:

şb xş1 xş2 xşn


I “ f pxqdx “ f pxqdx ` f pxqdx ` ¨ ¨ ¨ ` f pxqdx «
a x0 x1 xn´1
y0 ` y1 y1 ` y2 yn´1 ` yn
«h `h ` ¨¨¨ ` h
2 2 2
Cuối cùng ta có:

żb ´y
0 yn ¯
I“ f pxqdx « I ˚ “ h ` y1 ` y2 ` ¨ ¨ ¨ ` yn´1 ` (5.11)
2 2
a

Công thức (5.11) được gọi là công thức hình thang mở rộng. Từ công

thức (5.10) ta thu được công thức đánh giá sai số của công thức

(5.11).

h2 M2
|I ´ I ˚ | ď pb ´ aq (5.12)
12

với M2 “ max |f 2 pxq|.


xPra,bs

ş1 dx
Ví dụ 5.2. Xét tích phân I “ . Cần chia đoạn r0, 1s tối thiểu thành bao nhiêu
0 1`x
đoạn, để khi tính theo công thức (5.11), ta có sai số nhỏ hơn 10´4 ? Với số đoạn chia

vừa tìm được, hãy xấp xỉ I .


1
Ta có a “ 0, b “ 1, f pxq “ . Gọi n là số đoạn chia, ta được h “ 1{n. Số đoạn
1`x
h2 M2
chia n được tìm từ bất đẳng thức: pb ´ aq ă 10´4 , với M2 “ max |f 2 pxq| “
ˇ ˇ 12 xPr0,1s
ˇ 2 ˇ 4
max ˇˇ ˇ “ 2. Từ đây ta được: n2 ą 10 ùñ n ą 40.82. Vậy số đoạn chia
xPr0,1s p1 ` xq 3 ˇ 6
là n “ 41.
1 k 41
Khi đó ta có: h “ và các điểm chia xk “ . Khi đó yk “ f pxk q “ . Và
41 41 41 ` k
ˆ ˙
1 1 41 41 1
I « I˚ “ ` ` ¨¨¨ ` ` “ 0.69318436
41 2 42 81 4

Ta có thể so sánh với giá trị chính xác I “ ln 2 “ 0.69314718.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

5.2 Công thức Newton-Cotes 67

Thuật toán tính gần đúng tích phân xác định bằng công thức hình

thang được thể hiện trong chương trình 7.16.

5.2.2 CÔNG THỨC SIMPSON

Trong công thức (5.5), cho n “ 2 ta thu được

a`b b´a a`b


x0 “ a, x1 “ , x2 “ b, h “ , y0 “ f paq, y1 “ f p q, y2 “ f pbq
2 2 2
ˆ ˙
1 ş2 1 8 1
H0 “ pq ´ 1qpq ´ 2qdq “ ´6`4 “ ,
40 4 3 6
1 ş2 2 1 ş2 1
H1 “ ´ qpq ´ 2qdq “ , H2 “ qpq ´ 1qdq “
20 3 40 6
Khi đó công thức (5.5) có dạng

h
I « I˚ “ py0 ` 4y1 ` y2 q (5.13)
3

và công thức đánh giá sai số

h5 M4
|I ´ I ˚ | ď
90
ˇ ˇ
với M4 “ max ˇf p4q pxqˇ.
xPra,bs

Tương tự như trong trường hợp công thức hình thang, ta chia đoạn
b´a
ra, bs thành n “ 2m đoạn nhỏ bằng nhau với bước chia h “ và sử
2m
dụng công thức (5.13) cho từng cặp đoạn nhỏ liền nhau, ta thu được

công thức sau:

şb h
I “ f pxqdx « I ˚ “ ry0 ` y2m ` 4py1 ` y3 ` ¨ ¨ ¨ ` y2m´1 q`
a 3 (5.14)
`2py2 ` y4 ` ¨ ¨ ¨ ` y2m´2 qs

Công thức (5.14) được gọi là công thức Simpson mở rộng, và sai số

của nó được đánh giá bởi

h4 M4
|I ´ I ˚ | ď pb ´ aq (5.15)
180

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

68 Đạo hàm và tích phân

ş1 dx
Ví dụ 5.3. Xét tích phân I “ . Để so sánh ta cũng xét phương pháp Simpson
0 1`x
với n
“ 10. Khi đó ta có
" ˆ ˙ ˆ ˙*
˚ 1 1 10 10 10 10
I«I “ 1` `4 ` ¨¨¨ ` `2 ` ¨¨¨ ` “
30 2 11 19 12 18
“ 0.69315023

So với giá trị chính xác I “ ln 2 ta có sai số khoảng 0.305 ˆ 10´5 .

Thuật toán tính gần đúng tích phân xác định bằng công thức

Simpson được thể hiện trong chương trình 7.17.

BÀI TẬP

Câu 1. Sử dụng các công thức sai phân hướng tâm, tính gần đúng

đạo hàm cấp một và cấp hai của các hàm sau đây tại điểm x0 với bước

h lần lượt là 0.1, 0.05, 0.01, 0.005 và 0.001.


(c) f pxq “ x3 ´ e´x , x0 “ 1
2
(a) f pxq “ x2 cosp5xq, x0 “ 1.2
2
(b) f pxq “ sinpx2 q ` cospx2 q, x0 “ 0.5 (d) f pxq “ ln x ´ 3 , x0 “ 3
x
Câu 2. Sử dụng công thức hình thang mở rộng với n đã cho xấp xỉ

các tích phân sau:


ş1 x ş2
(a) 3
dx, n “ 10 (c) x ln xdx, n“8
0 1`x 1
ş
2.5 ş1
(b) e2x cos 3xdx, n“6 (d) x tan xdx, n “ 10
1.3 0.5

Câu 3. Làm lại câu 2 bằng công thức Simpson.


ş1
Câu 4. Xấp xỉ tích phân I “ e´x dx với bước h “ 0.05.
2

(a) Sử dụng công thức hình thang.

(b) Sử dụng công thức Simpson.


ş2
Câu 5. Xác định giá trị của n cần thiết để xấp xỉ tích phân I “ ln xdx
1
với sai số nhỏ hơn 10´5 .

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Bài tập chương 5 69

(a) Sử dụng công thức hình thang.

(b) Sử dụng công thức Simpson.

Câu 6. Cho hàm số f pxq dưới dạng bảng:

x 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0
y 1.72 1.81 1.87 1.94 2.02 2.13 2.23 2.29 2.33 2.39 3.02

Sử dụng các công thức hình thang và Simpson xấp xỉ các tích phân:

ż2 ż2
I1 “ f pxqdx và I2 “ xf 2 pxqdx
1 1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CHƯƠNG SÁU

PHƯƠNG TRÌNH VI PHÂN

Mục lục
6.1 Bài toán Cauchy . . . . . . . . . . . . . . . . . . . . . 70
6.2 Bài toán biên tuyến tính cấp hai . . . . . . . . . . . 79
Bài tập chương 6 . . . . . . . . . . . . . . . . . . . . . . . 82

§6.1 BÀI TOÁN CAUCHY

Trong phần này chúng ta sẽ xét một số phương pháp tìm nghiệm

gần đúng của một dạng bài toán của phương trình vi phân thường có

nhiều ứng dụng trong thực tế . Đó là bài toán Cauchy hay còn gọi là

bài toán với điều kiện ban đầu


"
y 1 ptq “ f pt, yptqq, t ě t0 ,
(6.1)
ypt0 q “ y0

với y “ yptq là hàm cần tìm, khả vi với t ě t0 , y0 là giá trị ban đầu cho

trước của hàm tại điểm t “ t0 và f pt, yq là hàm hai biến liên tục cùng

với các đạo hàm riêng của nó.

Chúng ta chỉ quan tâm đến các phương pháp giải số cho bài toán

(6.1) với giả thiết rằng chúng ta có đủ tất cả các điều kiện để đảm bảo

sự tồn tại và tính duy nhất nghiệm của bài toán. Trước tiên ta đưa ra

các công thức tìm nghiệm gần đúng của hàm tại điểm t1 “ t0 ` h với

bước h ą 0 đủ bé. Ta thường ký hiệu ypt1 q là giá trị chính xác của hàm

tại t1 và y1 là giá trị gần đúng: y1 « ypt1 q. Sau đó nếu xét bài toán trên

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

6.1 Bài toán Cauchy 71

một đoạn, ta chia đều đoạn đó với bước h đủ nhỏ và áp dụng liên tiếp

các công thức vừa tìm được.

6.1.1 CÔNG THỨC EULER

Euler dựa vào ý nghĩa hình học để đưa ra công thức tìm y1 đơn giản

nhất. Tại điểm pt0 , y0 q của đường cong y “ yptq ta kẻ tiếp tuyến có

phương trình:

y ´ y0 “ y 1 pt0 qpt ´ t0 q

Do y 1 pt0 q “ f pt0 , ypt0 qq “ f pt0 , y0 q đã biết, nên từ phương trình trên

ta có:

y “ y0 ` f pt0 , y0 qpt ´ t0 q

Thay t “ t1 trong biểu thức trên ta thu được y “ y1 “ y0 `f pt0 , y0 qpt1 ´t0 q

và được xem là giá trị gần đúng của ypt1 q. Từ đây ta có công thức Euler:

ypt1 q « y1 “ y0 ` hf pt0 , y0 q (6.2)


#
y 1 “ y ` t, t ě 0
Ví dụ 6.1. Xét bài toán có nghiệm chính xác là yptq “
yp0q “ 1
2 et ´t ´ 1. Sử dung công thức Euler với bước h “ 0.1 ta có:

yp0.1q « y1 “ y0 ` hf pt0 , y0 q “ y0 ` hpy0 ` t0 q “ 1 ` 0.1p1 ` 0q “ 1.1

6.1.2 CÔNG THỨC EULER CẢI TIẾN

Trong công thức (6.2) vai trò của f pt0 , y0 q chính là hệ số góc của tiếp

tuyến với đường cong tại điểm có hoành độ t0 và hoàn toàn không có

thông tin gì về đường cong tại điểm có hoành độ t1 . Vì lý do đó, người

ta thay vai trò của f pt0 , y0 q bởi trung bình cộng của các hệ số góc của

hai tiếp tuyến tại hai điểm t0 và t1 . Khi đó ta có công thức

f pt0 , y0 q ` f pt1 , y1 q
y1 “ y0 ` h
2

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

72 Phương trình vi phân

Ta thấy cả vế phải lẫn vế trái của công thức trên đều có chứa y1 là

ẩn cần tìm. Vì vậy, để đơn giản người ta thay giá trị y1 ở vế phải bởi

giá trị được xác định theo công thức (6.2). Ta thu được:

f pt0 , y0 q ` f pt1 , y0 ` hf px0 , y0 qq


y1 “ y0 ` h (6.3)
2

Ví dụ 6.2. Xét bài toán trong ví dụ 6.1. Sử dung công thức Euler cải tiến với bước h “ 0.1

ta có:

pt0 ` y0 q ` ppy0 ` hpy0 ` t0 qq ` t1 q


yp0.1q « y1 “ y0 ` h “
2
p0 ` 1q ` pp1 ` 0.1p1 ` 0qq ` 0.1q
“ 1 ` 0.1 “ 1.11
2

6.1.3 CÔNG THỨC RUNGE-KUTTA

Trong phần này chúng ta sẽ xét một phương pháp khác để đưa ra

công thức giải gần đúng bài toán Cauchy (6.1) có tên gọi là phương

pháp Runge-Kutta. Công thức xấp xỉ như sau:


$
’ řn

’ ypt1 q “ ypt0 ` hq « y1 “ y0 ` Ai Ki

’ i“1



& K1 “ hf pt0 , y0 q
K2 “ hf pt0 ` α2 h, y0 ` β21 K1 q (6.4)



’ K3 “ hf pt0 ` α3 h, y0 ` β31 K1 ` β32 K2 q


’ ...........................

%
Kn “ hf pt0 ` αn h, y0 ` βn1 K1 ` βn2 K2 ` ¨ ¨ ¨ ` βn,n´1 Kn´1 q

Trong đó các hệ số

A1 , A2 , . . . , An , α2 , α3 , . . . , αn
(6.5)
β21 , β31 , β32 , . . . , βn1 , βn2 , . . . , βn,n´1

được xác định theo phương pháp sau. Đặt


n
ÿ
φphq “ ypt0 ` hq ´ y0 ´ Ai Ki
i“1

như là một hàm phụ thuộc vào bước h. Giá trị tuyệt đối của φphq là

sai số tuyệt đối của giá trị gần đúng tại t0 ` h. Ta có thể giả thiết rằng

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

6.1 Bài toán Cauchy 73

nghiệm yptq, và do đó hàm φphq, có đạo hàm đến cấp m. Chú ý rằng

φp0q “ 0, khi đó ta có khai triển MacLaurin của φphq như sau:

1 1 pmq
φphq “ φ1 p0qh ` φ2 p0qh2 ` ¨ ¨ ¨ ` φ p0qhm ` ophm q
2 m!

Các hệ số của (6.5) được xác định theo điều kiện:

φ1 p0q “ φ2 p0q “ ¨ ¨ ¨ “ φpmq p0q “ 0 (6.6)

Khi đó φphq “ ophm q. Bây giờ chúng ta sẽ xét một số trường hợp

thường được sử dụng trong tính toán gần đúng.

(a) Trường hợp n = m = 1: Công thức (6.4) có dạng: ypt0 ` hq « y0 `

A1 K1 với K1 “ hf pt0 , y0 q và A1 là hệ số duy nhất cần xác định.

Khi đó

φphq “ ypt0 ` hq ´ y0 ´ A1 K1 “ ypt0 ` hq ´ y0 ´ A1 hf pt0 , y0 q

Điều kiện (6.6) trở thành

φ1 p0q “ y 1 pt0 q ´ A1 f pt0 , y0 q “ p1 ´ A1 qf pt0 , y0 q “ 0

Như vậy ta có A1 “ 1 và trong trường hợp này công thức trở

thành công thức Euler (6.2).

(b) Trường hợp n = m = 2: Khi đó công thức (6.4) có dạng:


$
& ypt0 ` hq « y0 ` A1 K1 ` A2 K2
K1 “ hf pt0 , y0 q
%
K2 “ hf pt0 ` α2 h, y0 ` β21 K1 q

với A1 , A2 , α2 , β21 là các hệ số cần xác định theo điều kiện (6.6):

φ1 p0q “ φ2 p0q “ 0 trong đó

φphq “ ypt0 ` hq ´ y0 ´ A1 K1 ´ A2 K2

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

74 Phương trình vi phân

Ta có:

φ1 phq “ y 1 pt0 ` hq ´ A1 f pt0 , y0 q ´ A2 tf pt0 ` α2 h, y0 ` β21 K1 q`


`hrα2 fx1 p. . . q ` β21 f pt0 , y0 qfy1 p. . . qsu
φ2 phq “ y 2 pt0 ` hq ´ A2 t2rα2 fx1 p. . . q ` β21 f pt0 , y0 qfy1 p. . . qs ` hr. . . su

Cho h “ 0 và từ điều kiện φ1 p0q “ φ2 p0q “ 0 ta thu được ba phương

trình dùng để xác định bốn hệ số cần tìm:


$
& 1 ´ A1 ´ A2 “ 0
1 ´ 2α2 A2 “0
%
1 ´ 2β21 A2 “ 0

Hệ phương trình này có vô số nghiệm. Trong đó bộ nghiệm tương


1
ứng với công thức thường sử dụng là: A1 “ A2 “ , α2 “ β21 “ 1.
2
Ta có:
$ 1

& ypt1 q “ ypt0 ` hq « y1 “ y0 ` rK1 ` K2 s
2
’ K1 “ hf pt0 , y0 q
%
K2 “ hf pt0 ` h, y0 ` K1 q

Công thức này chính là công thức Euler cải tiến (6.3).

(c) Trường hợp n = m = 4: Trong trường hợp này ta thường dùng công

thức có dạng sau:


$
’ 1

’ ypt1 q “ ypt0 ` hq « y1 “ y0 ` rK1 ` 2K2 ` 2K3 ` K4 s

’ 6



’ K “ hf pt , y q


1
ˆ
0 0
˙

& h K1
K2 “ hf t0 ` , y0 `
2 2 (6.7)



’ ˆ ˙

’ h K2

’ K3 “ hf t0 ` , y0 `

’ 2 2


%
K4 “ hf pt0 ` h, y0 ` K3 q

Công thức (6.7) được gọi là công thức Runge-Kutta bậc bốn và

thường gọi là công thức RK4.

Ví dụ 6.3. Cũng xét bài toán trong ví dụ 6.1. Sử dung công thức RK4 với bước h “ 0.1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

6.1 Bài toán Cauchy 75

ta có:
K1 “ h py0 ` t0 q “ 0.1p1 ` 0q “ 0.1
ˆ ˙ ˆ ˙
h K1 0.1 0.1
K2 “ h t0 ` ` y0 ` “ 0.1 0 ` `1` “ 0.11
2 2 2 2
ˆ ˙ ˆ ˙
h K2 0.1 0.11
K3 “ h t0 ` ` y0 ` “ 0.1 0 ` `1` “ 0.1105
2 2 2 2
K4 “ h pt0 ` h ` y0 ` K3 q “ 0.1 p0 ` 0.1 ` 1 ` 0.1105q “ 0.12105
1
yp0.1q « y1 “ 1 ` r0.1 ` 2 ˆ 0.11 ` 2 ˆ 0.1105 ` 0.12105s “ 1.110341667
6
Chú ý rằng giá trị chính xác của hàm tại 0.1 là yp0.1q “ 1.110341836. Nó cho thấy sự

vượt trội của công thức RK4 so với hai công thức còn lại.

Bây giờ để tìm nghiệm gần đúng của bài toán Cauchy trên đoạn

rt0 , t0 ` Hs, H ą 0, ta chia đoạn rt0 , t0 ` Hs thành n đoạn nhỏ bằng


H
nhau với bước h “ . Các điểm chia là tk “ t0 ` kh, k “ 0, n. Giá trị
n
gần đúng của hàm tại điểm tk được kí hiệu là yk « yptk q. Khi đó nếu

áp dụng liên tiếp công thức Euler, Euler cải tiến và RK4 ta được ba

công thức tương ứng như sau:

Công thức Euler:

yptk q « yk “ yk´1 ` hf ptk´1 , yk´1 q, k “ 1, 2, . . . , n

Công thức Euler cải tiến:


$

’ K “ hf ptk´1 , yk´1 q
& 1
K2 “ hf ptk´1 ` h, yk´1 ` K1 q k “ 1, 2, . . . , n

%yptk q « yk “ yk´1 ` 1 pK1 ` K2 q

2
Công thức RK4:
$

’ K1 “ hf ptk´1 , yk´1 q

’ ˆ ˙



’ h K1

’ K2 “ hf tk´1 ` , yk´1 `

’ 2 2

& ˆ ˙
h K2 k “ 1, 2, . . . , n
’ K3 “ hf tk´1 ` , yk´1 `

’ 2 2



’ K4 “ hf ptk´1 ` h, yk´1 ` K3 q





%yptk q « yk “ yk´1 ` 1 pK1 ` 2K2 ` 2K3 ` K4q

6

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

76 Phương trình vi phân


#
y 1 “ 1 ` py ´ tq2 , 2 ď t ď 3
Ví dụ 6.4. Xét bài toán có nghiệm chính xác y “
yp2q “ 1
1
t` . Sử dụng ba công thức Euler, Euler cải tiến và RK4 để xấp xỉ hàm yptq trên
1´t
đoạn r2, 3s với bước h “ 0.1 và so sánh với nghiệm chính xác. Kết quả cho ta bảng sau:

tk Euler RK2 RK4 yptk q


2.0 1.00000000 1.00000000 1.00000000 1.00000000
2.1 1.20000000 1.19050000 1.19090881 1.19090909
2.2 1.38100000 1.36603785 1.36666627 1.36666667
2.3 1.54807610 1.53002885 1.53076879 1.53076923
2.4 1.70461506 1.68492533 1.68571385 1.68571429
2.5 1.85297108 1.83253283 1.83333291 1.83333333
2.6 1.99483572 1.97420966 1.97499960 1.97500000
2.7 2.13145810 2.11099702 2.11176433 2.11176471
2.8 2.26378209 2.24370625 2.24444410 2.24444444
2.9 2.39253505 2.37297888 2.37368389 2.37368421
3.0 2.51828712 2.49932878 2.49999970 2.50000000

Các thuật toán của ba công thức Euler, Euler cải tiến và RK4 được

thể hiện trong các chương trình 7.18, 7.19 và 7.20.


6.1.4 HỆ PHƯƠNG TRÌNH VI PHÂN .

Phần này sẽ xét bài toán Cauchy cho hệ phương trình vi phân cấp

một và phương trình vi phân cấp cao. Phương pháp dùng để giải gần

đúng bài toán Cauchy cũng dựa trên các phương pháp đã xét trong

các mục trước. Ở đây để đơn giản cho cách trình bày, ta sẽ xét hệ gồm

hai phương trình vi phân cấp một


$ 1
& x ptq “ f pt, xptq, yptqq
y 1 ptq “ gpt, xptq, yptqq t P rt0 , t0 ` Hs (6.8)
%
xpt0 q “ α, ypt0 q “ β

và sử dụng cả ba công thức Euler, Euler cải tiến và Runge-Kutta cấp

bốn đối với hệ (6.8).


H
Chia đoạn rt0 , t0 `Hs thành n đoạn nhỏ bằng nhau có độ dài h “ .
n
Khi đó các điểm chia là tk “ t0 ` kh, k “ 0, 1, . . . , n. Giá trị gần đúng

của hàm xptq tại điểm tk là xk « xptk q, còn giá trị gần đúng của hàm

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

6.1 Bài toán Cauchy 77

yptq tại điểm tk là yk « yptk q. Ta có các công thức sau:

Công thức Euler:


$
& xptk q « xk “ xk´1 ` hf ptk´1 , xk´1 , yk´1 q

yptk q « yk “ yk´1 ` hgptk´1 , xk´1 , yk´1 q (6.9)

%
@k “ 1, 2, . . . , n;

Công thức Euler cải tiến:


$
’ K1x “ hf ptk´1 , xk´1 , yk´1 q




’ K1y “ hg ptk´1 , xk´1 , yk´1 q




’ K2x “ hf ptk´1 ` h, xk´1 ` K1x , yk´1 ` K1y q


& K “ hg pt
2y k´1 ` h, xk´1 ` K1x , yk´1 ` K1y q
(6.10)

’ 1

’ xptk q « xk “ xk´1 ` pK1x ` K2x q

’ 2

’ 1

’ yptk q « yk “ yk´1 ` pK1y ` K2y q

’ 2

%
@k “ 1, 2, . . . , n;

Công thức Runge-Kutta bậc bốn:


$

’ K1x “ hf ptk´1 , xk´1 , yk´1 q



’ K1y “ hg ptk´1 , xk´1 , yk´1 q

’ ˆ ˙

’ h K1x K1y

’ K2x “ hf tk´1 ` , xk´1 ` , yk´1 `



’ 2 2 2

’ ˆ ˙

’ h K1x K1y

’ K2y “ hg tk´1 ` , xk´1 ` , yk´1 `

’ 2 2 2

’ ˆ ˙

’ h K2x K2y

’ K3x “ hf tk´1 ` , xk´1 ` , yk´1 `

& 2 2 2
ˆ ˙ (6.11)
’ h K2x K 2y

’ K 3y “ hg t k´1 ` , x k´1 ` , y k´1 `

’ 2 2 2



’ K4x “ hf ptk´1 ` h, xk´1 ` K3x , yk´1 ` K3y q




’ K4y “ hg ptk´1 ` h, xk´1 ` K3x , yk´1 ` K3y q



’ 1

’ xptk q « xk “ xk´1 ` pK1x ` 2K2x ` 2K3x ` K4x q



’ 6

’ 1

’ yptk q « yk “ yk´1 ` pK1y ` 2K2y ` 2K3y ` K4y q

’ 6

%
@k “ 1, 2, . . . , n;
$ 1
& x ptq “ tx ´ 2y ` 1
Ví dụ 6.5. Xét hệ: y 1 ptq “ 2x ` ty ` sin t t ě 1 . Ta sử dụng công thức Euler
%
xp1q “ 0.25, yp1q “ 0.75
cải tiến để xấp xỉ giá trị của xptq và yptq tại t “ 1.2 với bước h “ 0.2.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

78 Phương trình vi phân

Ta có: t0 “ 1, x0 “ 0.25, y0 “ 0.75, h “ 0.2, f pt, x, yq “ tx ´ 2y ` 1,

gpt, x, yq “ 2x ` ty ` sin t. Và

K1x “ hf pt0 , x0 , y0 q “ hpt0 x0 ´ 2y0 ` 1q “

“ 0.2p1 ˆ 0.25 ´ 2 ˆ 0.75 ` 1q “ ´0.05

K1y “ hgpt0 , x0 , y0 q “ hp2x0 ` t0 y0 ` sin t0 q “

“ 0.2p2 ˆ 0.25 ` 1 ˆ 0.75 ` sin 1q “ 0.4183

K2x “ hf pt0 ` h, x0 ` K1x , y0 ` K1y q “

“ hppt0 ` hqpx0 ` K1x q ´ 2py0 ` K1y q ` 1q “

“ 0.2p1.2p0.25 ´ 0.05q ´ 2p0.75 ` 0.4183q ` 1q “ ´0.2193

K2y “ hgpt0 ` h, x0 ` K1x , y0 ` K1y q “

“ hp2px0 ` K1x q ` pt0 ` hqpy0 ` K1y q ` sinpt0 ` hqq “

“ 0.2p2p0.25 ´ 0.05q ` 1.2p0.75 ` 0.4183q ` sin 1.2q “ 0.5468


1 1
xp1.2q « x1 “ x0 ` pK1x ` K2x q “ 0.25 ` p´0.05 ´ 0.2193q “ 0.1154
2 2
1 1
yp1.2q « y1 “ y0 ` pK1y ` K2y q “ 0.75 ` p0.4183 ` 0.5468q “ 1.2326
2 2

Đối với phương trình vi phân cấp cao, ta chuyển về hệ phương

trình vi phân cấp một bằng cách đổi biến hàm. Ta cũng xét phương

trình vi phân cấp hai:


" 2
x ptq “ F pt, xptq, x1 ptqq t0 ď t ď t0 ` H
(6.12)
xpt0 q “ α, x1 pt0 q “ β

Ta biến đổi về bài toán Cauchy cho hệ phương trình vi phân cấp một

dạng (6.8) bằng phép đổi biến yptq “ x1 ptq. Khi đó ta có hệ:
$ 1
& x ptq “ f pt, x, yq “ y
y 1 ptq “ gpt, x, yq “ F pt, x, yq
%
xpt0 q “ α, ypt0 q “ β

Ví dụ 6.6. Xét phương trình vi phân cấp hai x2 ´ 2x1 ` 2x “ e2t sin t, 0 ď t ď 1 với

điều kiện ban đầu xp0q “ ´0.4, x1 p0q “ ´0.6. Đặt yptq “ x1 ptq, phương trình được

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

6.2 Bài toán biên tuyến tính cấp hai 79

biến đổi thành hệ:


$ 1
& x ptq “ f pt, x, yq “ y
y 1 ptq “ gpt, x, yq “ ´2x ` 2y ` e2t sin t
%
xpt0 q “ ´0.4, ypt0 q “ ´0.6

Phương pháp Runge-Kutta bậc bốn được dùng để xấp xỉ nghiệm gần đúng của hệ với

bước h “ 0.1. Kết quả được cho bởi bảng sau và so sánh với nghiệm chính xác xptq “

0.2 e2t psin t ´ 2 cos tq và yptq “ x1 ptq “ 0.2 e2t p4 sin t ´ 3 cos tq.

tk xptk q xk x1 ptk q yk
0.0 -0.4000000 -0.4000000 -0.6000000 -0.6000000
0.1 -0.4617330 -0.4617333 -0.6316304 -0.6316312
0.2 -0.5255591 -0.5255599 -0.6401478 -0.6401490
0.3 -0.5886001 -0.5886014 -0.6136630 -0.6136638
0.4 -0.6466103 -0.6466123 -0.5365821 -0.5365820
0.5 -0.6935640 -0.6935667 -0.3887395 -0.3887381
0.6 -0.7211485 -0.7211519 -0.1443834 -0.1443809
0.7 -0.7181489 -0.7181530 0.2289917 0.2289970
0.8 -0.6697068 -0.6697113 0.7719815 0.7719918
0.9 -0.5564381 -0.5564429 0.1534764 0.1534782
1.0 -0.3533944 -0.3533989 0.2578741 0.2578766

§6.2 BÀI TOÁN BIÊN TUYẾN TÍNH CẤP HAI

Các phương pháp tìm nghiệm gần đúng của phương trình vi phân

thường đòi hỏi các điều kiện được cho tại một thời điểm ban đầu nào

đó. Đối với phương trình vi phân bậc hai, ta cần hai giá trị xpt0 q và

x1 pt0 q. Tuy nhiên nhiều bài toán trong thực tế cho thấy điều kiện của

hàm cần tìm được cho tại nhiều thời điểm khác nhau. Vấn đề này dẫn

tới việc tìm nghiệm gần đúng của một dạng bài toán thứ hai được gọi

là bài toán biên. Trong phần này chúng ta chỉ xét bài toán biên của

phương trình vi phân thường tuyến tính cấp hai với điều kiện biên

được cho ở hai điểm có dạng


"
y 2 ptq ` pptqy 1 ptq ` qptqyptq “ f ptq, a ď t ď b,
(6.13)
ypaq “ α, ypbq “ β

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

80 Phương trình vi phân

với phương pháp được chọn là phương pháp sai phân hữu hạn. So với

một số phương pháp khác, phương pháp sai phân hữu hạn cho kết

quả không chính xác bằng, khối lượng tính toán nhiều hơn, nhưng

ổn định hơn và giải quyết được các trường hợp hai chiều, ba chiều

v.v... Ý tưởng của phương pháp là xấp xỉ các đạo hàm y 1 ptq, y 2 ptq trong

(6.13) bằng sai phân hữu hạn tại các điểm chia. Bài toán (6.13) trở

thành bài toán giải hệ phương trình tuyến tính ba đường chéo, và có

thể được thực hiện bằng phương pháp nhân tử LU.

Đầu tiên, chọn số tự nhiên n ą 0. Chia đều đoạn ra, bs thành n

đoạn bởi các điểm chia t0 “ a; tk “ t0 ` kh, k “ 1, 2 ¨ ¨ ¨ , n ´ 1; tn “ b,


b´a
với h “ là bước chia. Gọi yk « yptk q là giá trị xấp xỉ của hàm tại
n
điểm tk . Tại các điểm nút tk , k “ 1, 2 ¨ ¨ ¨ , n ´ 1 bên trong đoạn ra, bs, sử

dụng các công thức sai phân hướng tâm đã xét trong chương trước:

yptk`1 q ´ yptk´1 q yk`1 ´ yk´1


y 1 ptk q « “ (6.14a)
2h 2h
yptk`1 q ´ 2yptk q ` yptk´1 q yk`1 ´ 2yk ` yk´1
2
y ptk q « “ (6.14b)
h2 h2

Các công thức (6.14a) và (6.14b) có sai số là oph2 q. Thay giá trị xấp

xỉ của y 1 ptk q, y 2 ptk q của công thức (6.14a) và (6.14b) vào (6.13) tại các

điểm chia tk , k “ 1, 2, . . . , n ´ 1, ta thu được các phương trình

yk`1 ´ 2yk ` yk´1 yk`1 ´ yk´1


2
` pk ` qk yk “ fk , @k “ 1, 2, . . . , n ´ 1
h 2h

với pk “ pptk q, qk “ qpxk q và fk “ f pxk q. Bổ sung vào hệ phương trình

các điều kiện được suy ra từ các điều kiện biên y0 “ α, yn “ β và sau

khi biến đổi ta thu được hệ phương trình sau


$

’ y0 “ α, y˙n “ β ˆ
& ˆ1 pk 2
˙ ˆ
1 pk
˙
´ yk´1 ` qk ´ 2 yk ` ` yk`1 “ fk (6.15)

’ h2 2h h h2 2h
%
@k “ 1, 2, . . . , n ´ 1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

6.2 Bài toán biên tuyến tính cấp hai 81

Đây chính là hệ phương trình đại số tuyến tính gồm n ´ 1 phương

trình với n ´ 1 ẩn cần tìm là: y1 , y2 , . . . , yn´1 .


"
y 2 ` ty 1 ´ 16y “ ´4t, t P r0, 1s
Ví dụ 6.7. Xét bài toán biên . Sử dụng phương
yp0q “ 0, yp1q “ 1
pháp sai phân hữu hạn, hãy xấp xỉ yptq trong r0, 1s với bước h “ 0.25.

Ta có a “ 0, b “ 1, h “ 0.25 ñ n “ 4, tk “ 0.25k, yk « yptk q, k “ 0, 1, 2, 3, 4.

Từ các điều kiện biên ta thu được y0 “ 0, y4 “ 1. Cần xác định y1 , y2 , y3 . Mặt khác

pptq “ t ñ pk “ tk “ 0.25k , qptq “ ´16 ñ qk “ ´16, f ptq “ ´4t ñ fk “

´4tk “ ´k . Từ hệ phương trình (6.15) ta có hệ:


$
& ´48y1 ` 15.5y2 ` “ ´1
15y1 ´ 48y2 ` 17y3 “ ´2
%
14.5y2 ´ 48y3 “ ´3 ´ 17.5

Ta có kết quả: y1
“ 0.1021, y2 “ 0.2518, y3 “ 0.5031.
$
& 2 2 1 2 sin pln tq
y ` y ´ 2y “ , t P r1, 2s
Ví dụ 6.8. Xét bài toán biên t t t2 có nghiệm
%
yp1q “ 1, yp2q “ 2
C2 3 1
chính xác y “ C1 t ` 2 ´ sin pln tq ´ cos pln tq với C1 “ 1.13920701 và
t 10 10
C2 “ ´0.03920701. Chọn n “ 10 và do đó h “ 0.1 ta được kết quả như trong bảng

dưới đây

tk yk yptk q |yk ´ yptk q|


1.0 1.00000000 1.00000000
1.1 1.09260052 1.09262930 2.88 ˆ10´5
1.2 1.18704313 1.18708484 4.17 ˆ10´5
1.3 1.28333687 1.28338236 4.55 ˆ10´5
1.4 1.38140205 1.38144595 4.39 ˆ10´5
1.5 1.48112026 1.48115942 3.92 ˆ10´5
1.6 1.58235990 1.58239246 3.26 ˆ10´5
1.7 1.68498902 1.68501396 2.49 ˆ10´5
1.8 1.78888175 1.78889853 1.68 ˆ10´5
1.9 1.89392110 1.89392951 0.85 ˆ10´5
2.0 2.00000000 2.00000000

Thuật toán giải bài toán biên tuyến tính cấp hai bằng phương pháp

sai phân hữu hạn được thể hiện trong chương trình 7.21.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

82 Phương trình vi phân

BÀI TẬP

Câu 1. Sử dụng lần lượt các công thức Euler, Euler cải tiến (RK2) và

Runge-Kutta cấp bốn (RK4) xấp xỉ nghiệm của các bài toán Cauchy

sau và so sánh với nghiệm chính xác.


# y
y 1 “ ´ 1, 1 ď t ď 2, yp1q “ 1, với h “ 0.1
(a) t
Nghiệm chính xác: y “ xp1 ´ ln xq
#
y 1 “ 2ty ` 2t et , 0 ď t ď 1, yp0q “ 2, với h “ 0.1
2

(b)
Nghiệm chính xác: y “ p2 ` t2 q et
2

$
&y 1 cos t ´ y sin t “ 2t, 0 ď t ď 1, yp0q “ 0, với h “ 0.1
(c) 2
%Nghiệm chính xác: y “ t
cos t
$ 3 3
&y 1 “ t ` 2y , 1 ď t ď 2, yp1q “ 2, với h “ 0.1
(d) 3ty 2 ?
%
Nghiệm chính xác: y “ 3 t3 ` 7t2
$
&y 1 “ 2y ` t2 et , 1 ď t ď 2,
Câu 2. Xét bài toán Cauchy t , có nghiệm
%yp1q “ 0
chính xác x2 pex ´ eq.

(a) Sử dụng công thức Runge-Kutta cấp bốn với h “ 0.1 xấp xỉ hàm

yptq trong r1, 2s và so sánh với nghiệm chính xác.

(b) Sử dụng kết quả xấp xỉ của câu (a) và công thức nội suy Newton

tiến bậc ba để xấp xỉ giá trị của hàm tại các điểm sau và so sánh

với giá trị chính xác.

(i) yp1.04q (ii) yp1.32q (iii) yp1.66q

(c) Cũng sử dụng kết quả xấp xỉ của câu (a) và công thức Simpson
ş2
mở rộng để xấp xỉ tích phân I “ yptqdt và so sánh với giá trị
1
chính xác.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Bài tập chương 6 83

Câu 3. Sử dụng các công thức Euler, Euler cải tiến và Runge-Kutta

cấp bốn hãy xấp xỉ giá trị của hàm tại t1 “ t0 ` h với h “ 0.2 đối với các

hệ phương trình sau:


$ 1 $ 1
& x ptq “ x ´ 2y ` 1 & x ptq “ sinpx ` yq
(a) y 1 ptq “ 2x ` y ` t t ě 1 (b) y 1 ptq “ cospx ´ yq t ě 0
% %
xp1q “ 1.5, yp1q “ 1.2 xp0q “ 0.25, yp0q “ 0.35
$ 1 ´t
$ 1
& x ptq “ x e `2y & x ptq “ x2 ` y 2 ` t
(c) y 1 ptq “ 2x ` y e´t t ě 0 (d) y 1 ptq “ x2 ´ y 2 ´ t t ě 1
% %
xp0q “ 0.2, yp0q “ 0.4 xp1q “ 1.2, yp1q “ 0.7
$
1
& x ptq “ x ` y ´ cos t 0 ď t ď 1

Câu 4. Cho hệ: y 1 ptq “ ´2x ´ y ` sin t ` cos t có nghiệm chính xác

% xp0q “ 1, yp0q “ ´2
xptq “ p1 ´ tq cos t ´ sin t, yptq “ pt ´ 2q cos t ` t sin t. Sử dụng công thức

Runge-Kutta cấp bốn xấp xỉ nghiệm của hệ phương trình trong r0, 1s

với bước h “ 0.1 và so sánh với nghiệm chính xác.

Câu 5. Đối với các bài toán sau, sử dụng công thức Euler cải tiến,

tìm nghiệm gần đúng của xptq tại các điểm t1 và t2 với bước h đã cho.
" 2
x ´ 4x1 ` 3x “ ln t, t ě 1
(a) , h “ 0.1, t1 “ 1.1, t2 “ 1.2.
xp1q “ 0.24, x1 p1q “ 0.15
" 2
x “ tx ` 2x1 ` 1, t ě 0
(b) , h “ 0.2, t1 “ 0.2, t2 “ 0.4.
xp0q “ 0, x1 p1q “ 1
"
3x1 ptqx2 ptq “ 2xptq, 0 ď t ď 1
Câu 6. Xét bài toán có nghiệm chính
xp0q “ x1 p0q “ 1
ˆ ˙
t 3
xác x “ 1 ` . Sử dụng công thức Runge-Kutta cấp bốn xấp xỉ xptq
3
trong r0, 1s với bước h “ 0.1 và so sánh với nghiệm chính xác.

Câu 7. Sử dụng phương pháp sai phân hữu hạn, hãy xấp xỉ nghiệm

của các bài toán biên sau với bước h đã cho:


" 2 "
y ´ 4y “ ´4t2 , t P r0, 1s y 2 ` ty 1 ´ 8y “ 2 ln t, t P r1, 2s
(a) (b)
yp0q “ 0, yp1q “ 1, h “ 0.25 yp1q “ 0, yp2q “ 0, h “ 0.2
" 2 "
y ´ p1 ` t2 qy “ 1, t P r2, 3s y 2 ` ty 1 ´ 4t2 y “ t e´t , t P r0, 1s
(c) (d)
yp2q “ 1, yp3q “ 0, h “ 0.1 yp0q “ 0.2, yp1q “ 0.8, h “ 0.1

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB

Phương pháp chia đôi

[x, fx, n] = bisect(f, a, b, eps, N)

INPUT: f là biểu thức của hàm f pxq; a và b là hai điểm biên của khoảng

cách li nghiệm ra, bs; eps là sai số cho trước (giá trị mặc định là 10´6 );

N là số lần lặp tối đa cho phép (giá trị mặc định là 100).

OUTPUT: x là vectơ nghiệm chứa dãy lặp txn u; fx là vectơ chứa giá trị

của hàm f pxn q; n là số lần lặp thực tế.

Chương trình 7.1 bisect - Phương pháp chia đôi.


function [x, fx, n] = bisect(f, a, b, eps, N)
if nargin < 5, N = 100; end;
if nargin < 4, eps = 1.0E-6; end;
if nargin < 3
error(’Hàm phải có tối thiểu 3 đối số.’);
end;
fa = feval(f,a); x = []; fx = []; n = 0; err = eps+1;
while (n < N & err > eps)
n = n+1; c = a+(b-a)/2; fc = feval(f,c);
x = [x;c]; fx = [fx,fc];
if fa*fc > 0
a = c; fa = fc;
else
b = c;
end;
err = b-a;
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB 85

Phương pháp lặp đơn

[x, ss, n] = iteration(g, x0, q, eps, N)

INPUT: g là biểu thức của hàm lặp gpxq, x0 là giá trị lặp ban đầu, q là

hệ số co, eps là sai số cho trước (giá trị mặc định là 10´6 ) và N là số

lần lặp tối đa cho phép (giá trị mặc định là 100).

OUTPUT: x là vectơ nghiệm chứa dãy lặp txn u, ss là vectơ chứa sai số

và n là số lần lặp thực tế.

Chương trình 7.2 iteration - Phương pháp lặp đơn.


function [x, ss, n] = iteration(g, x0, q, eps, N)
if nargin < 5, N = 100; end;
if nargin < 4, eps = 1.0E-6; end;
if nargin < 3
error(’Hàm phải có tối thiểu 3 đối số.’);
end;
if (q < 0) || (q >= 1)
error(’Không là hàm co.’);
end;
x = []; ss = []; x = [x;x0]; n = 1;
err = eps+1; ss = [ss;err];
while (n < N & abs(err) > eps)
x1 = feval(g,x0); err = q/(1-q)*abs(x1-x0);
n = n+1; x = [x; x1]; ss = [ss; err];
x0 = x1;
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

86 CÁC CHƯƠNG TRÌNH MATLAB

Phương pháp Newton

[x, ss, n] = newton(f, f1, x0, m, eps, N)

INPUT: f và f1 là biểu thức của hàm f pxq và đạo hàm của nó, x0 là giá

trị lặp ban đầu, m là giá trị nhỏ nhất của đạo hàm cấp một, eps là

sai số cho trước (giá trị mặc định là 10´6 ) và N là số lần lặp tối đa cho

phép (giá trị mặc định là 100).

OUTPUT: x là vectơ nghiệm chứa dãy lặp txn u, ss là vectơ chứa sai số

và n là số lần lặp thực tế.

Chương trình 7.3 newton - Phương pháp Newton.


function [x, ss, n] = newton(f, f1, x0, m, eps, N)
if nargin < 6, N = 100; end;
if nargin < 5, eps = 1.0E-6; end;
if nargin < 4
error(’Hàm phải có tối thiểu 4 đối số.’);
end;
x = []; ss = []; x = [x;x0];
n = 1; err = eps+1; ss = [ss;err];
while (n < N & err > eps)
x1 = x0 - feval(f, x0)/feval(f1, x0);
err = abs(feval(f, x1))/m;
n = n+1; x = [x; x1]; ss = [ss; err]; x0 = x1;
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB 87

Giải hệ phương trình với ma trận hệ số có dạng tam giác

[x] = upper(N, a) và [x] = lower(N, a)

INPUT: N là số phương trình và số ẩn, a là ma trận hệ số cấp N ˆ pN `

1q, cột thứ N ` 1 là vectơ tự do.

OUTPUT: x là vectơ nghiệm.

Chương trình 7.4 upper - Ma trận hệ số tam giác trên.


function [x] = upper(N, a)
if nargin < 2,
error(’Hàm có tối thiểu 2 đối số’);
end;
x(N) = a(N,N+1)/a(N,N);
for k = N-1:-1:1
sum = 0;
for j = k+1:N
sum = sum+a(k,j)*x(j);
end;
x(k) = (a(k,N+1)-sum)/a(k,k);
end;
return;

Chương trình 7.5 lower - Ma trận hệ số tam giác dưới.


function [x] = lower(N, a)
if nargin $<$ 2,
error(’Hàm có tối thiểu 2 đối số’);
end;
x(1) = a(1,N+1)/a(1,1);
for k = 2:N
sum = 0;
for j = 1:k-1
sum = sum+a(k,j)*x(j);
end;
x(k) = (a(k,N+1)-sum)/a(k,k);
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

88 CÁC CHƯƠNG TRÌNH MATLAB

Giải hệ phương trình bằng phương pháp Gauss

[x] = gauss(N, a)

INPUT: N là số phương trình và số ẩn, a là ma trận hệ số cấp N ˆ pN `

1q, cột thứ N ` 1 là vectơ tự do.

OUTPUT: x là vectơ nghiệm.

Chương trình 7.6 gauss - Phương pháp Gauss.


function [x] = gauss(N, a)
if nargin < 2,
error(’Hàm có tối thiểu 2 đối số’);
end;
for k = 1:N
if a(k,k) == 0
flag = 0;
for i = k+1:N
if a(i,k) != 0
flag = 1;
for j = 1:N+1
tmp = a(k,j);
a(k,j) = a(i,j);
a(i,j) = tmp;
end;
break;
end;
end;
if flag == 0
error(’Ma trận suy biến.’);
end;
end;
for i = k+1:N
tmp = a(i,k);
for j = k:N+1
a(i,j) = a(i,j) - tmp*a(k,j)/a(k,k);
end;
end;
end;
x = c3upper(N,a);
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB 89

Giải hệ phương trình bằng phương pháp phần tử trội

[x] = jordan(N, a)

INPUT: N là số phương trình và số ẩn, a là ma trận hệ số cấp N ˆ pN `

1q, cột thứ N ` 1 là vectơ tự do.

OUTPUT: x là vectơ nghiệm.

Chương trình 7.7 jordan - Phương pháp phần tử trội.


function [x] = jordan(N, a)
if nargin < 2,
error(’Hàm có tối thiểu 2 đối số’);
end
for i = 1:N, b(i) = 0; end;
for k = 1:N
max = 0;
for i = 1:N
if b(i) == 0
for j = 1:N
if max < abs(a(i,j))
max = abs(a(i,j));
im = i; jm = j;
end;
end;
end;
end;
if max <= 0, error(’Ma trận suy biến.’); end;
b(im) = jm; max = a(im,jm);
for j = 1:N+1, a(im,j) = a(im,j)/max; end;
for i = 1:N
if i != im
tmp = a(i,jm);
for j = 1:N+1
a(i,j) = a(i,j) - a(im,j)*tmp;
end;
end;
end;
end;
for i = 1:N, x(b(i)) = a(i,N+1); end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

90 CÁC CHƯƠNG TRÌNH MATLAB

Phân rã ma trận bằng phương pháp nhân tử LU

[l, u] = LUfactor(N, a)

INPUT: N là cấp của ma trận, a là ma trận cấp N ˆ N .

OUTPUT: l là ma trận tam giác dưới và u là ma trận tam giác trên.

Chương trình 7.8 LUfactor - Phương pháp phân rã LU.


function [l, u] = LUfactor(N, a)
if nargin < 2,
error(’Hàm có tối thiểu 2 đối số’);
end;
l = zeros(N); u = zeros(N);
for i = 1:N, l(i,i) = 1; end;
for j = 1:N, u(1,j) = a(1,j); end;
if u(1,1) == 0,
error(’Không thể phân tích được.’);
end;
for i = 2:N, l(i,1) = a(i,1)/u(1,1); end;
for i = 2:N-1
for j = i:N
sum = 0;
for k = 1:i-1, sum = sum + l(i,k)*u(k,j);end;
u(i,j) = a(i,j)-sum;
end;
if u(i,i) == 0,
error(’Không thể phân tích được.’);
end;
for j = i+1:N
sum = 0;
for k = 1:i-1, sum = sum+l(j,k)*u(k,i);end;
l(j,i) = (a(j,i)-sum)/u(i,i);
end;
end;
sum = 0;
for k = 1:N-1, sum = sum+l(N,k)*u(k,N); end;
u(N,N) = a(N,N)-sum;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB 91

Phân rã ma trận bằng phương pháp Choleski

[b] = choleski(N, a)

INPUT: N là cấp của ma trận, a là ma trận đối xứng và xác định dương

cấp N ˆ N .

OUTPUT: b là ma trận tam giác dưới.

Chương trình 7.9 choleski - Phương pháp Choleski.


function [b] = choleski(N, a)
if nargin < 2,
error(’Hàm có tối thiểu 2 đối số’);
end;
for i = 1:N, for j = 1:N
if a(i,j) != a(j,i)
error(’Ma trận không đối xứng.’);
end;
end; end;
b = zeros(N);
if a(1,1) <= 0
error(’Ma trận không xác định dương.’); end;
b(1,1) = sqrt(a(1,1));
for i = 2:N, b(i,1) = a(i,1)/b(1,1); end;
for k = 2:N
ak = 0;
for j = 1:k-1, ak = ak+b(k,j)*b(k,j); end;
ak = a(k,k)-ak;
if ak <= 0
error(’Ma trận không xác định dương.’);
end;
b(k,k) = sqrt(ak);
for i = k+1:N
ak = 0;
for j = 1:k-1, ak = ak+b(i,j)*b(k,j); end;
b(i,k) = (a(i,k)-ak)/b(k,k);
end;
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

92 CÁC CHƯƠNG TRÌNH MATLAB

Phương pháp lặp Jacobi

[x, ss, n]=jacobi(N, a, x0, eps, maxit)

INPUT: N là cấp của ma trận, a là ma trận hệ số cấp Nˆ(N+1), x0 là

vectơ lặp ban đầu, eps là sai số (giá trị mặc định là 10´6 ) và maxit là

số lần lặp tối đa cho phép.

OUTPUT: x là vectơ nghiệm, ss là sai số thực tế và n là số lần lặp thực

tế.

Chương trình 7.10 jacobi - Phương pháp Jacobi.


function [x, ss, n] = jacobi(N, a, x0, eps, maxit)
if nargin < 5, maxit = 100; end;
if nargin < 4, eps = 1.0E-6; end;
if nargin < 3,
error(’Hàm có ít nhất 3 đối số.’);
end;
n=0;
for l = 1:maxit
n = n+1;
for k = 1:N
sum = 0;
for j = 1:N
if j != k, sum = sum+a(k,j)*x0(j); end;
end;
x(k) = (a(k,N+1)-sum)/a(k,k);
end;
ss = 0;
for k = 1:N
if abs(x(k)-x0(k)) > ss,
ss = abs(x(k)-x0(k));
end;
end;
if ss < eps, break; end;
for k = 1:N, x0(k) = x(k); end;
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB 93

Phương pháp lặp Gauss-Seidel

[x, ss, n]=seidel(N, a, x0, eps, maxit)

INPUT: N là cấp của ma trận, a là ma trận hệ số cấp Nˆ(N+1), x0 là

vectơ lặp ban đầu, eps là sai số (giá trị mặc định là 10´6 ) và maxit là

số lần lặp tối đa cho phép.

OUTPUT: x là vectơ nghiệm, ss là sai số thực tế và n là số lần lặp thực

tế.

Chương trình 7.11 seidel - Phương pháp Gauss-Seidel.


function [x, ss, n] = seidel(N, a, x0, eps, maxit)
if nargin < 5, maxit = 100; end;
if nargin < 4, eps = 1.0E-6; end;
if nargin < 3,
error(’Hàm có ít nhất 3 đối số.’);
end;
n = 0;
for l = 1:maxit
n = n+1;
for k = 1:N
sum=0;
for j = 1:N
if j < k, sum = sum+a(k,j)*x(j);
elseif j > k, sum = sum+a(k,j)*x0(j);
end;
end;
x(k) = (a(k,N+1)-sum)/a(k,k);
end;
ss = 0;
for k = 1:N
if abs(x(k)-x0(k)) > ss
ss = abs(x(k)-x0(k));
end;
end;
if ss < eps, break; end;
for k=1:N, x0(k)=x(k); end;
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

94 CÁC CHƯƠNG TRÌNH MATLAB

Đa thức nội suy Lagrange

[yx] = lagrange(N, x, y, xx)

INPUT: N là số các điểm nút nội suy, x và y là các vectơ chứa các giá

trị của đối số và của hàm, xx là giá trị của đối số.

OUTPUT: yx là giá trị xấp xỉ của hàm tại xx.

Chương trình 7.12 lagrange - Đa thức Lagrange.


function [yx] = c4lagrange(N, x, y, xx)
for i = 1:N,
if xx == x(i),
yx = y(i);
return;
end;
end;
omega = 1;
for i = 1:N, omega = omega*(xx-x(i));end;
for k = 1:N
D(k) = 1;
for i = 1:N
if i != k, D(k) = D(k)*(x(k)-x(i)); end;
end;
D(k) = D(k)*(xx-x(k));
end;
yx = 0; for k = 1:N, yx=yx+y(k)/D(k); end;
yx = yx*omega;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB 95

Giải hệ phương trình với ma trận ba đường chéo

[x] = tridiag(N, a, b, c, d)

INPUT: N là số phương trình và số ẩn, b là vectơ chứa các phần tử

thuộc đường chéo chính, a và c là các vectơ chứa các phần tử nằm

trên và dưới đường chéo chính, d là vectơ tự do.

OUTPUT: x là vectơ nghiệm.

Chương trình 7.13 tridiag : Ma trận ba đường chéo.


function [x] = tridiag(N, a, b, c, d)
if nargin < 5,
error(’Ham co toi thieu 5 doi so.’);
end;
u(1) = a(1); v(1) = b(1); l(1) = c(1)/u(1);
y(1) = d(1);
for i = 2:N-1
u(i) = a(i)-l(i-1)*v(i-1);
v(i) = b(i);
l(i) = c(i)/u(i);
y(i) = d(i)-l(i-1)*y(i-1);
end;
u(N) = a(N)-l(N-1)*v(N-1);
y(N) = d(N)-l(N-1)*y(N-1);
x(N) = y(N)/u(N);
for i = N-1:-1:1
x(i) = (y(i)-v(i)*x(i+1))/u(i);
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

96 CÁC CHƯƠNG TRÌNH MATLAB

Spline bậc ba tự nhiên

[a, b, c, d] = nspline(N, x, y)

INPUT: N là số các điểm nút nội suy, x và y là các vectơ chứa các giá

trị của đối số và của hàm.

OUTPUT: a, b, c, d là các vectơ hệ số.

Chương trình 7.14 nspline - Spline bậc ba tự nhiên.


function [a, b, c, d] = nspline(N, x, y)
if nargin < 3, error(’Hàm phải có ba đối số.’); end;
for i = 1:N-1, h(i) = x(i+1)-x(i); end;
A(1) = 1; A(N) = 1; B(1) = 0; C(N-1) = 0;
for i = 2:N-1
A(i) = 2*(h(i-1)+h(i));
B(i) = h(i); C(i-1) = h(i);
end;
D(1) = 0; D(N) = 0;
for i = 2:N-1
D(i) = 3*((y(i+1)-y(i))/h(i)-(y(i)-y(i-1))/h(i-1));
end;
c = tridiag(N,A,B,C,D);
for i = 1:N-1
a(i) = y(i);
b(i) = (y(i+1)-y(i))/h(i)-h(i)*(c(i+1)+2*c(i))/3;
d(i) = (c(i+1)-c(i))/3/h(i);
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB 97

Spline bậc ba ràng buộc

[a, b, c, d] = cspline(N, x, y)

INPUT: N là số các điểm nút nội suy, x và y là các vectơ chứa các giá

trị của đối số và của hàm.

OUTPUT: a, b, c, d là các vectơ hệ số.

Chương trình 7.15 cspline - Spline bậc ba ràng buộc.


function [a, b, c, d] = cspline(N, x, y, alpha, beta)
if nargin < 5, error(’Hàm phải có năm đối số.’); end;
for i = 1:N-1, h(i) = x(i+1)-x(i); end;
A(1) = 2*h(1); A(N) = 2*h(N-1);
B(1) = h(1); C(N-1) = h(N-1);
for i = 2:N-1
A(i) = 2*(h(i-1)+h(i)); B(i) = h(i); C(i-1)=h(i);
end;
D(1) = 3*(y(2)-y(1))/h(1)-3*alpha;
D(N) = 3*beta-3*(y(N)-y(N-1))/h(N-1);
for i = 2:N-1
D(i) = 3*((y(i+1)-y(i))/h(i)-(y(i)-y(i-1))/h(i-1));
end;
c = tridiag(N,A,B,C,D);
for i = 1:N-1
a(i) = y(i);
b(i) = (y(i+1)-y(i))/h(i)-h(i)*(c(i+1)+2*c(i))/3;
d(i) = (c(i+1)-c(i))/3/h(i);
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

98 CÁC CHƯƠNG TRÌNH MATLAB

Công thức hình thang

[y] = trapez(f, a, b, n)

INPUT: f là hàm dưới dấu tích phân, a là điểm đầu, b là điểm cuối và

n là số đoạn chia.

OUTPUT: y là giá trị gần đúng của tích phân.

Chương trình 7.16 trapez - Công thức hình thang.


function [y] = trapez(f, a, b, n)
if nargin < 4, error(’Hàm có ít nhất 4 đối số’); end;
if n <= 0, error(’Không thể tính tích phân’); end;
h = (b-a)/n;
y = (feval(f,a)+feval(f,b))/2;
for i = 1:n-1, y = y+feval(f,a+i*h); end;
y = y*h;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB 99

Công thức Simpson

[y] = simpson(f, a, b, n)

INPUT: f là hàm dưới dấu tích phân, a là điểm đầu, b là điểm cuối và

n là số đoạn chia.

OUTPUT: y là giá trị gần đúng của tích phân.

Chương trình 7.17 simpson - Công thức Simpson.


function [y] = simpson(f, a, b, n)
if nargin < 4, error(’Hàm có ít nhất 4 đối số’); end;
if n <= 0, error(’Không thể tính tích phân’); end;
if mod(n,2) != 0,
error(’Số đoạn chia phải là số chẵn.’);
end;
h = (b-a)/n; m=n/2;
y = feval(f,a)+feval(f,b)+4*feval(f,a+h);
for i = 1:m-1
y = y+2*feval(f,a+2*i*h)+4*feval(f,a+(2*i+1)*h);
end;
y = y*h/3;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

100 CÁC CHƯƠNG TRÌNH MATLAB

Công thức Euler

[y, x] = euler(f, x0, y0, h, x1)

INPUT: f là hàm theo hai biến, x0 là điểm đầu, y0 là giá trị ban đầu, h

là bước chia và x1 là điểm cuối.

OUTPUT: x và y là hai vectơ chứa giá trị của đối số và của hàm.

Chương trình 7.18 euler - Công thức Euler.


function [y, x] = euler(f, x0, y0, h, x1)
if nargin < 4,
error(’Hàm có ít nhất 4 đối số.’);
end;
if nargin < 5, x1 = x0+h; end;
x = []; x = [x,x0]; n = (x1-x0)/h;
for i = 1:n, x(i+1) = x(i)+h; end;
y = []; y = [y,y0];
for i = 1:n, y(i+1) = y(i)+h*f(x(i),y(i)); end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB 101

Công thức Euler cải tiến

[y, x] = eulerim(f, x0, y0, h, x1)

INPUT: f là hàm theo hai biến, x0 là điểm đầu, y0 là giá trị ban đầu, h

là bước chia và x1 là điểm cuối.

OUTPUT: x và y là hai vectơ chứa giá trị của đối số và của hàm.

Chương trình 7.19 eulerim - Công thức Euler cải tiến.


function [y, x] = c6eulerim(f, x0, y0, h, x1)
if nargin < 4,
error(’Hàm có ít nhất 4 đối số.’);
end;
if nargin < 5, x1 = x0+h; end;
x = []; x = [x,x0]; n = (x1-x0)/h;
for i = 1:n, x(i+1) = x(i)+h; end;
y = []; y = [y,y0];
for i = 1:n
K1 = h*f(x(i),y(i));
K2 = h*f(x(i)+h,y(i)+K1);
y(i+1)=y(i)+(K1+K2)/2;
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

102 CÁC CHƯƠNG TRÌNH MATLAB

Công thức Runge-Kutta cấp 4

[y, x] = rk4(f, x0, y0, h, x1)

INPUT: f là hàm theo hai biến, x0 là điểm đầu, y0 là giá trị ban đầu, h

là bước chia và x1 là điểm cuối.

OUTPUT: x và y là hai vectơ chứa giá trị của đối số và của hàm.

Chương trình 7.20 rk4 - Công thức Runge-Kutta cấp 4.


function [y, x] = rk4(f, x0, y0, h, x1)
if nargin < 4,
error(’Hàm có ít nhất 4 đối số.’);
end;
if nargin < 5, x1 = x0+h; end;
x = []; x = [x,x0]; n = (x1-x0)/h;
for i = 1:n, x(i+1) = x(i)+h; end;
y = []; y = [y,y0];
for i = 1:n
K1 = h*f(x(i),y(i));
K2 = h*f(x(i)+h/2,y(i)+K1/2);
K3 = h*f(x(i)+h/2,y(i)+K2/2);
K4 = h*f(x(i)+h,y(i)+K3);
y(i+1) = y(i)+(K1+2*K2+2*K3+K4)/6;
end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC CHƯƠNG TRÌNH MATLAB 103

Bài toán biên tuyến tính cấp 2

[y]=btb(p, q, f, a, b, n, alpha, beta)

INPUT: p, q, f là các hàm cho trước, a, b là hai điểm biên, n là số đoạn

chia, alpha, beta là các giá trị cho trước của hàm tại hai biên.

OUTPUT: y là vectơ chứa giá trị của hàm.

Chương trình 7.21 btb - Bài toán biên tuyến tính.


function [y]=c6btb(p, q, f, a, b, n, alpha, beta)
if nargin < 8,
error(’Hàm có ít nhất 8 đối số.’);
end;
h = (b-a)/n;
for i = 1:n+1, x(i) = a+(i-1)*h; end;
y(1) = alpha; y(n+1) = beta;
for i = 1:n-1,
A(i) = q(x(i+1))-2/h/h;
end;
for i = 1:n-2,
B(i) = 1/h/h+p(x(i+1))/2/h;
end;
for i = 1:n-2,
C(i) = 1/h/h-p(x(i+2))/2/h;
end;
for i = 1:n-1, D(i) = f(x(i+1)); end;
D(1) = D(1)-(1/h/h-p(x(2))/2/h)*alpha;
D(n-1) = D(n-1)-(1/h/h+p(x(n))/2/h)*beta;
Y = tridiag(n-1,A,B,C,D);
for i = 1:n-1, y(i+1) = Y(i); end;
return;

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC ĐỀ THI MẪU

CÁC ĐỀ THI GIỮA KỲ


ĐỀ SỐ 1

Câu 1. Biết A có giá trị gần đúng là a “ 2.6508 với sai số tương đối là

δa “ 0.61%. Ta làm tròn a thành a˚ “ 2.65. Sai số tuyệt đối của a˚ là:

a 0.0170
⃝ b 0.0172
⃝ c 0.0174
⃝ d 0.0176

Câu 2. Cho biểu thức f “ x3 ` xy ` y 3 . Biết x “ 3.6991 ˘ 0.0010 và

y “ 0.3958 ˘ 0.0021. Sai số tuyệt đối của f là:

a 0.0501
⃝ b 0.0503
⃝ c 0.0505
⃝ d 0.0507

Câu 3. Phương trình f pxq “ 2x cos 2x ´ px ´ 2q2 “ 0 nhận khoảng nào

sau đây làm khoảng cách li nghiệm:

a r2.0, 2.2s
⃝ b r2.2, 2.4s
⃝ c r2.4, 2.6s
⃝ d r2.6, 2.8s

Câu 4. Phương trình f pxq “ 5x3 ` 13x ´ 18 “ 0 trên khoảng cách li

nghiệm r0, 1s có nghiệm gần đúng x˚ “ 1.01. Sai số nhỏ nhất theo công

thức đánh giá sai số tổng quát của x˚ là:

a 0.0211
⃝ b 0.0213
⃝ c 0.0215
⃝ d 0.0217

Câu 5. Cho phương trình f pxq “ 4x3 ´ 12x2 ` 15x ´ 20 “ 0 trong khoảng

cách li nghiệm r2, 3s. Theo phương pháp chia đôi, nghiệm gần đúng x5

của phương trình là:

a 2.3281
⃝ b 2.3283
⃝ c 2.3285
⃝ d 2.3287

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC ĐỀ THI MẪU 105


?
Câu 6. Hàm gpxq “ 4
6x ` 17 là hàm co trong r0, 1s. Giá trị của hệ số co

q là:

a 0.1762
⃝ b 0.1772
⃝ c 0.1782
⃝ d 0.1792

?
Câu 7. Cho phương trình x “ 3
4x ` 18 thoả điều kiện lặp đơn trên r3, 4s.

Nếu chọn x0 “ 3.1 thì nghiệm gần đúng x2 theo phương pháp lặp đơn là:

a 3.1219
⃝ b 3.1229
⃝ c 3.1239
⃝ d 3.1249

?
Câu 8. Cho phương trình x “ 3
4x ` 18 thoả điều kiện lặp đơn trên r3, 4s.

Nếu chọn x0 “ 3.1 thì sai số tuyệt đối nhỏ nhất của nghiệm gần đúng x2

theo công thức hậu nghiệm là:

a 0.0001
⃝ b 0.0003
⃝ c 0.0005
⃝ d 0.0007

Câu 9. Cho phương trình f pxq “ 4x3 ´ 13x2 ` 16x ´ 21 “ 0. Với x0 “ 2.5

nghiệm gần đúng x1 tính theo phương pháp Newton là:

a 2.4902
⃝ b 2.4904
⃝ c 2.4906
⃝ d 2.4908

Câu 10. Cho phương trình f pxq “ 3x3 ` 6x2 ` 10x ` 27 “ 0 trong khoảng

cách ly nghiệm r´2.3, ´2.2s. Trong phương pháp Newton, chọn x0 theo

điều kiện Fourier, sai số của nghiệm gần đúng x1 tính theo công thức

sai số tổng quát là:

a 0.0001
⃝ b 0.0002
⃝ c 0.0003
⃝ d 0.0004

¨ ˛
´6 ´5 7
Câu 11. Cho A “ ˝ 3 6 5 ‚. Phân tích A “ LU theo phương
8 ´7 ´7
pháp Doolittle (ma trận L có đường chéo chính bằng 1), phần tử u33 của

ma trận U là:

a 35.51
⃝ b 35.52
⃝ ⃝c 35.53 d 35.54

¨ ˛
3 5 α
Câu 12. Cho A “ ˝ 5 11 2 ‚. Với những giá trị nguyên nào của α thì
α 2 9
ma trận A là xác định dương:

a α “ ´4
⃝ b α “ ´2
⃝ c α“2
⃝ d α“4

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

106 CÁC ĐỀ THI MẪU


ˆ ˙
2 ´3
Câu 13. Cho A “ . Phân tích A “ BB T theo phương pháp
´3 10
Choleski, ma trận B là:
ˆ ˙ ˆ ˙ ˆ ˙
1.41 0 1.41 0 1.41 0
a
⃝ ⃝b c

´2.12 2.35 2.12 2.35 ´2.12 2.37
ˆ ˙
1.41 0
d

2.12 2.37
¨ ˛
4 2 ´2
Câu 14. Cho A “ ˝ 2 3 ´2 ‚. Phân tích A “ BB T theo phương
´2 ´2 5
pháp Choleski, tổng các phần tử trpBq “ b11 ` b22 ` b33 của ma trận B là:

a 5.2820
⃝ b 5.2830
⃝ c 5.2840
⃝ d 5.2850

ˆ ˙
´8 ´9
Câu 15. Cho A “ . Số điều kiện tính theo chuẩn một của
5 6
ma trận A là:

a 84
⃝ b 85
⃝ ⃝c 86 d 87

¨ ˛
´3 ´2 ´8
Câu 16. Cho A “ ˝ 3 ´3 8 ‚. Số điều kiện tính theo chuẩn vô
7 7 7
cùng của ma trận A là:

a 19.06
⃝ b 19.07
⃝ c 19.08
⃝ d 19.09

"
14x1 ´ 2x2 “ 7
Câu 17. Cho hệ phương trình . Theo phương
´2x1 ` 17x2 “ 5
pháp Jacobi, ma trận lặp Tj là:
ˆ ˙ ˆ ˙ ˆ ˙
0 ´0.14 0 0.14 0 0.14
a
⃝ b
⃝ c

0.12 0 0.12 0 ´0.12 0
ˆ ˙
0 ´0.14
d

´0.12 0
"
12x1 ` 2x2 “ 5
Câu 18. Cho hệ phương trình . Với xp0q “
´5x1 ` 9x2 “ 3
r0.2, 1.0sT , vectơ xp3q tính theo phương pháp Jacobi là:
ˆ ˙ ˆ ˙ ˆ ˙ ˆ ˙
0.338 0.338 0.338 0.338
⃝a b
⃝ c
⃝ d

0.522 0.523 0.524 0.525
"
8x1 ´ 7x2 “ 3
Câu 19. Cho hệ phương trình . Theo phương
´5x1 ` 18x2 “ 7
pháp Gauss-Seidel, ma trận lặp Tg là:

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC ĐỀ THI MẪU 107


ˆ ˙ ˆ ˙ ˆ ˙
0 0.88 0 0.88 0 0.88
a
⃝ b
⃝ c

0 0.24 0 0.25 0 0.26
ˆ ˙
0 0.88
d

0 0.27
"
15x1 ´ 3x2 “ 6
Câu 20. Cho hệ phương trình . Với xp0q “
´2x1 ` 16x2 “ 4
r0.9, 1.0sT , vectơ xp3q tính theo phương pháp Gauss-Seidel là:
ˆ ˙ ˆ ˙ ˆ ˙ ˆ ˙
0.462 0.462 0.462 0.462
⃝a b
⃝ c
⃝ ⃝d
0.302 0.304 0.306 0.308

ĐỀ SỐ 2

Câu 1. Biết A có giá trị gần đúng là a “ 0.5090 với sai số tương đối là

δa “ 0.83%. Ta làm tròn a thành a˚ “ 0.51. Sai số tuyệt đối của a˚ là:

a 0.0053
⃝ b 0.0055
⃝ c 0.0057
⃝ d 0.0059

Câu 2. Cho biểu thức f “ x3 ` xy ` y 3 . Biết x “ 0.8474 ˘ 0.0039 và

y “ 1.3573 ˘ 0.0074. Sai số tuyệt đối của f là:

a 0.0603
⃝ b 0.0605
⃝ c 0.0607
⃝ d 0.0609

Câu 3. Phương trình f pxq “ e´x `x2 ´ 5 nhận khoảng nào sau đây làm

khoảng cách li nghiệm:

a r´1.4, ´1.3s ⃝
⃝ b r´1.3, ´1.2s ⃝
c r´1.2, ´1.1s ⃝
d r´1.1, ´1.0s

Câu 4. Phương trình f pxq “ 6x3 ` 7x ´ 9 “ 0 trên khoảng cách li nghiệm

r0, 1s có nghiệm gần đúng x˚ “ 0.83. Sai số nhỏ nhất theo công thức

đánh giá sai số tổng quát của x˚ là:

a 0.0342
⃝ b 0.0344
⃝ c 0.0346
⃝ d 0.0348

Câu 5. Cho phương trình f pxq “ 4x3 ´ 14x2 ` 14x ´ 12 “ 0 trong khoảng

cách li nghiệm r2, 3s. Theo phương pháp chia đôi, nghiệm gần đúng x5

của phương trình là:

a 2.6090
⃝ b 2.6092
⃝ c 2.6094
⃝ d 2.6096

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

108 CÁC ĐỀ THI MẪU


?
Câu 6. Hàm gpxq “ 4
2x ` 5 là hàm co trong r0, 1s. Giá trị của hệ số co q

là:

a 0.1490
⃝ b 0.1492
⃝ c 0.1494
⃝ d 0.1496

?
Câu 7. Cho phương trình x “ 3
8x ` 7 thoả điều kiện lặp đơn trên r3, 4s.

Nếu chọn x0 “ 3.2 thì nghiệm gần đúng x2 theo phương pháp lặp đơn là:

a 3.1931
⃝ b 3.1933
⃝ c 3.1935
⃝ d 3.1937

?
Câu 8. Cho phương trình x “ 3
8x ` 7 thoả điều kiện lặp đơn trên r3, 4s.

Nếu chọn x0 “ 3.2 thì sai số tuyệt đối nhỏ nhất của nghiệm gần đúng x2

theo công thức hậu nghiệm là:

a 0.0002
⃝ b 0.0004
⃝ c 0.0006
⃝ d 0.0008

Câu 9. Cho phương trình f pxq “ 5x3 ´ 13x2 ` 6x ´ 24 “ 0. Với x0 “ 2.8

nghiệm gần đúng x1 tính theo phương pháp Newton là:

a 2.7872
⃝ b 2.7874
⃝ c 2.7876
⃝ d 2.7878

Câu 10. Cho phương trình f pxq “ 6x3 ` 11x2 ` 18x ` 4 “ 0 trong khoảng

cách ly nghiệm r´0.3, ´0.2s. Trong phương pháp Newton, chọn x0 theo

điều kiện Fourier, sai số của nghiệm gần đúng x1 tính theo công thức

sai số tổng quát là:

a 0.0011
⃝ b 0.0013
⃝ c 0.0015
⃝ d 0.0017

¨ ˛
´8 ´8 ´3
Câu 11. Cho A “ ˝ ´5 9 ´9 ‚. Phân tích A “ LU theo phương
´5 7 ´2
pháp Doolittle (ma trận L có đường chéo chính bằng 1), phần tử u33 của

ma trận U là:

a 5.92
⃝ b 5.94
⃝ c 5.96
⃝ d 5.98

¨ ˛
4 4 α
Câu 12. Cho A “ ˝ 4 6 2 ‚. Với những giá trị nguyên nào của α thì
α 2 7
ma trận A là xác định dương:

a α “ ´4
⃝ b α “ ´2
⃝ c α“0
⃝ d α“6

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC ĐỀ THI MẪU 109


ˆ ˙
4 2
Câu 13. Cho A “ . Phân tích A “ BB T theo phương pháp
2 6
Choleski, ma trận B là:
ˆ ˙ ˆ ˙ ˆ ˙
2.00 0 2.00 0 2.00 0
a
⃝ ⃝b c

1 2.24 ´1 2.24 2.28
ˆ ˙
2.00 0
d

´1 2.28
¨ ˛
4 2 ´5
Câu 14. Cho A “ ˝ 2 3 3 ‚. Phân tích A “ BB T theo phương
´5 3 25
pháp Choleski, tổng các phần tử trpBq “ b11 ` b22 ` b33 của ma trận B là:

a 5.3182
⃝ b 5.3184
⃝ c 5.3186
⃝ d 5.3188

ˆ ˙
´6 ´2
Câu 15. Cho A “ . Số điều kiện tính theo chuẩn một của
9 ´7
ma trận A là:

a 4
⃝ b 5
⃝ c 6
⃝ d 7

¨ ˛
´3 5 9
Câu 16. Cho A “ ˝ ´9 ´6 ´7 ‚. Số điều kiện tính theo chuẩn vô
´8 2 ´8
cùng của ma trận A là:

a 5.4742
⃝ b 5.4744
⃝ c 5.4746
⃝ d 5.4748

"
16x1 ´ 7x2 “ 5
Câu 17. Cho hệ phương trình . Theo phương
2x1 ` 9x2 “ 6
pháp Jacobi, ma trận lặp Tj là:
ˆ ˙ ˆ ˙ ˆ ˙
0 ´0.44 0 ´0.44 0 0.44
a
⃝ b
⃝ c

´0.22 0 0.22 0 0.22 0
ˆ ˙
0 0.44
d

´0.22 0
"
19x1 ` 3x2 “ 7
Câu 18. Cho hệ phương trình . Với xp0q “
3x1 ` 12x2 “ 3
r0.5, 0.3sT , vectơ xp3q tính theo phương pháp Jacobi là:
ˆ ˙ ˆ ˙ ˆ ˙ ˆ ˙
0.342 0.342 0.342 0.342
⃝a b
⃝ c
⃝ d

0.163 0.165 0.167 0.169
"
19x1 ´ 2x2 “ 4
Câu 19. Cho hệ phương trình . Theo phương
´2x1 ` 9x2 “ 4
pháp Gauss-Seidel, ma trận lặp Tg là:

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

110 CÁC ĐỀ THI MẪU


ˆ ˙ ˆ ˙ ˆ ˙
0 0.11 0 ´0.11 0 0.11
a
⃝ b
⃝ c

0 0.02 0 0.02 0 ´0.02
ˆ ˙
0 ´0.11
d

0 ´0.02
"
12x1 ` 4x2 “ 7
Câu 20. Cho hệ phương trình . Với xp0q “
2x1 ` 15x2 “ 5
r0.2, 0.4sT , vectơ xp3q tính theo phương pháp Gauss-Seidel là:
ˆ ˙ ˆ ˙ ˆ ˙ ˆ ˙
0.494 0.494 0.494 0.494
⃝a b
⃝ c
⃝ ⃝d
0.261 0.263 0.265 0.267

CÁC ĐỀ THI CUỐI KỲ

ĐỀ SỐ 1

Câu 1. Cho phương trình f pxq “ 2 ex ´12.75x “ 0 có khoảng cách ly

nghiệm r0, 1s. Dùng phương pháp Newton, tính nghiệm gần đúng x2

và đánh giá sai số ∆x2 .


$
& 22x1 ` 5x2 ´ 3x3 “ 27.42
Câu 2. Cho hệ phương trình: 3x1 ` 27x2 ` x3 “ 25.66
%
2x1 ´ 3x2 ` 25x3 “ 22.83
Sử dụng phương pháp Gauss-Seidel với xp0q “ p0, 0, 0qT , tìm vectơ xp3q .

x 2.2 2.5 2.7 3.0


Câu 3. Cho bảng số: . Sử dụng đa thức nội
y 2.32 3.05 3.78 4.26
suy Lagrange (hoặc Newton), hãy xấp xỉ giá trị của hàm tại x “ 2.35.

x 1.0 1.5 2.0 2.5


Câu 4. Cho bảng số: . Sử dụng công thức
y 1.67 2.17 3.18 4.12
spline bậc ba tự nhiên, hãy xấp xỉ giá trị của hàm tại x “ 1.25 và

x “ 2.25.

x 1.2 1.3 1.4 1.5 1.6


Câu 5. Cho bảng số: . Sử dụng phương
y 1.2 1.7 2.3 2.8 3.5
?
pháp bình phương bé nhất, tìm hàm dạng f pxq “ Ax ` B 2x ` 1 xấp

xỉ tốt nhất bảng số trên.

x 0.2 0.4 0.6 0.8


Câu 6. Cho bảng số: . Sử dụng đa thức nội suy
y 1.4 2.6 3.5 4.1
Newton tiến, hãy xấp xỉ đạo hàm cấp một của hàm tại x “ 0.5.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CÁC ĐỀ THI MẪU 111

ş
x2 ` 3
1.8
Câu 7. Cho tích phân I “ 3
dx. Hãy xấp xỉ tích phân I
1.2 x ` x ` 7
bằng công thức Simpson mở rộng với n “ 6.
$
&y 1 ptq “ 2y 2 ` 3y ` sin t , t ě 1
Câu 8. Xét bài toán Cauchy: t . Sử dụng
%yp1q “ 1.2
công thức Runge-Kutta cấp 4, hãy xấp xỉ giá trị của hàm tại t “ 1.2

với bước h “ 0.2.

Câu
$ 9. Xét bài toán Cauchy đối với hệ ptvp:
’ x 1 ptq “ 2xy ´ t ` 1, t ě 0.5
&
y 1 ptq “ x2 ´ 3y 2 ` t2 , . Sử dụng công thức Euler, hãy xấp

%
xp0.5q “ 0.3, yp0.5q “ 0.7
xỉ các giá trị của hàm tại t “ 1 với bước h “ 0.5.
#
y 2 ptq ` p2t ` 1qy 1 ptq ´ 15yptq “ ´4t2 e´t ,
Câu 10. Cho bài toán biên:
yp0q “ 0.2, yp1q “ 1.3
với 0 ď t ď 1. Sử dụng phương pháp sai phân hữu hạn, xấp xỉ giá trị

của hàm trong r0, 1s bước h “ 0.25.

ĐỀ SỐ 2

Câu 1. Cho phương trình f pxq “ 2x ´ 3x ` sin x “ 0 có khoảng cách

li nghiệm r0.5, 1s. Dùng phương pháp Newton, chọn x0 theo điều kiện

Fourier, tính nghiệm gần đúng x2 và đánh giá sai số ∆x2 theo công

thức sai số tổng quát.


$
4.5x1 ` 0.2x2 ´ 0.5x3 “ 1.2
&
Câu 2. Cho hệ phương trình: 0.2x1 ` 4.5x2 ´ 0.4x3 “ 1.5 .
%
´0.5x1 ´ 0.4x2 ` 4.5x3 “ 2.5
Sử dụng phân rã Choleski A “ BB T tính tổng T “ b11 ` b22 ` b33 .
$
& 11x1 ` 3x2 ` 5x3 “ 12.27
Câu 3. Cho hệ phương trình: 2x1 ` 13x2 ´ 6x3 “ 25.73 . Với
%
2x1 ` 5x2 ` 17x3 “ 18.49
x p0q “ r0.3, 0.5, 0.1s , hãy tìm vectơ xp3q bằng phương pháp Gauss-
T

Seidel.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

112 CÁC ĐỀ THI MẪU

x 1.0 1.5 2.0


Câu 4. Cho spline bậc ba gpxq nội suy bảng số: của
y 4.2 3.5 6.5
hàm f pxq và thoả điều kiện f 1 p1.0q “ 0.2, f 1 p2.0q “ 0. Hãy xấp xỉ hàm

f pxq tại x “ 1.28 và x “ 1.85.

x 22 23 24 25 26 27 28
Câu 5. Cho bảng số . Sử dụng
f pxq 1.2 1.5 1.8 1.7 1.5 1.9 2.0
? B
phương pháp bình phương bé nhất, tìm hàm dạng f pxq “ A x `
x
xấp xỉ tốt nhất bảng số trên.

x 1.0 1.5 2.0 2.5


Câu 6. Cho bảng số . Sử dụng đa thức nội suy
y 2.5 4.3 2.5 5.7
Newton tính gần đúng đạo hàm y 1 pxq tại điểm x “ 1.2.

ş2
Câu 7. Xét tích phân: I “ ln p2x ` 5q dx. Dùng công thức Simpson mở
1
rộng, xác định số đoạn chia tối thiểu (nmin ) để sai số nhỏ hơn 10´5 .

Với giá trị n “ nmin vừa tìm được, hãy xấp xỉ tích phân trên.
" 1
y “ y 2 ` e´t `1.5t, 1 ď t
Câu 8. Xét bài toán Cauchy . Sử dụng
yp1q “ 0.7
công thức Runge-Kutta cấp 4, hãy xấp xỉ giá trị của hàm yptq tại

t “ 1.2 với bước h “ 0.2.

Câu 9. Xét bài toán Cauchy đối với ptvp cấp 2:


" 2
x ptq “ cos p2xptqq ` sin px1 ptqq ` 3t, 1 ď t
. Thực hiện phép đổi
xp1q “ 2; x1 p1q “ 0
biến yptq “ x1 ptq và sử dụng công thức Euler cải tiến, hãy xấp xỉ giá

trị của hàm xptq và đạo hàm x1 ptq tại điểm t “ 1.2 với bước h “ 0.2.
" 2
y ` pt2 ` 1qy 1 ´ 16y “ ´4t2 , 1.4 ď t ď 1.8
Câu 10. Xét bài toán biên: .
yp1.4q “ 2; yp1.8q “ 0.8
Bằng phương pháp sai phân hữu hạn, hãy xấp xỉ giá trị của hàm yptq

trong r1.4, 1.8s với bước h “ 0.1.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

CHỈ DẪN VÀ TRẢ LỜI

CHỈ DẪN VÀ TRẢ LỜI BÀI TẬP CHƯƠNG 1


0.12
1 ∆a “ 1.85 “ 0.00222
100

2 (a) a « 12.67; (b) a « 1.55; (c) a ď 12.88; (d) a ě 1.23.

3 (a) 3; (b) 4; (c) 2.

4 ∆V “ 0.4276

5 (a) ∆A “ 0.071; (b) ∆B “ 0.195; (c) ∆C “ 0.06084747 « 0.061

6 ∆f “ 0.006

CHỈ DẪN VÀ TRẢ LỜI BÀI TẬP CHƯƠNG 2


1 Ta có:
(a) r0, 1s và r1, 2s (e) x “ 0 và r0.5; 1s
(b) r0, 1s (f ) r´2, ´1s và r3, 4s
(c) r0, 1s và r1, 2s (g) r´1, 0s
(d) r´3, ´2s, r´1, 0s và r2, 3s (h) r0.2, 1s

2 (a) m “ 12, ∆ “ 0.0152.


(b) m “ 2, ∆ “ 0.0053.
(c) m “ 1 ´ 4 cosp2q « 2.664587, ∆ “ 0.0036.

91 1
3 (a) x5 “ , ∆x 5 “ “ 0.015625. Sai số theo công thức đánh giá sai số
64 64
tổng quát: m “ 7, ∆x5 “ 0.0117.
0.8
(b) x5 “ 0.4875, ∆x5 “ “ 0.0125. Sai số theo công thức đánh giá sai số
? 64
tổng quát: m “ 2 6, ∆x5 “ 0.0012.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

114 CHỈ DẪN VÀ TRẢ LỜI

4 Ta có:
(a) x4 “ 1.107821, sai số “ 0.016302 (c) x4 “ 1.123639, sai số “ 0.000484
(b) x4 “ 0.987506, sai số “ 0.136617 (d) x4 “ 1.124123, sai số “ 0.000000

?
5 (a) x “ 3 3x2 ` 5, q “ 0.1984251315, p « x4 “ 3.430986278
?
(b) x “ 3 x ` 1, q “ 0.2099868417, p « x3 “ 1.324939363
x2 ´ ex `2 1
(c) x “ , q “ , p « x4 “ 0.2572656364
3 3

6 (a) p P r2.6, 2.8s, q “ 0.568958, n “ 11, x11 “ 2.69064136


(b) p P r0.8, 1.0s, q “ 0.475945, n “ 7, x7 “ 0.90996735
(c) p P r0.4, 0.6s, q “ 0.875023, n “ 67, x67 “ 0.44806306
(d) p P r0.6, 0.8s, q “ 0.130347, n “ 2, x2 “ 0.70479592

7 (a) x0 “ 2, m “ 0.68876626, p “ 1.82938372 ˘ 0.68 ˆ 10´6


(b) x0 “ 1.3, m “ 0.15852901, p “ 1.39774848 ˘ 0.64 ˆ 10´9
(c) Trong r2, 3s: x0 “ 2, m “ 3.27332655, p “ 2.37068706 ˘ 0.38 ˆ 10´6
Trong r3.5, 4s: x0 “ 4, m “ 10.69000787, p “ 3.72211282 ˘ 0.77 ˆ 10´7
(d) Trong r1, 2s: x0 “ 1, m “ 0.5, p “ 1.41239117 ˘ 0.1 ˆ 10´12
Trong r3, 4s: x0 “ 3, m “ 1.66666667, p “ 3.05710355 ˘ 0.1 ˆ 10´12
(e) Trong r0.5, 1s: x0 “ 1, m “ 1.35127873, p “ 0.91000757 ˘ 0.75 ˆ 10´9
Trong r3, 5s: x0 “ 5, m “ 2.08553692, p “ 3.73307903 ˘ 0.48 ˆ 10´8
(f ) Trong r0, 1s: x0 “ 0, m “ 0.90818175, p “ 0.58853274 ˘ 0.11 ˆ 10´9
Trong r3, 4s: x0 “ 3, m “ 0.63532798, p “ 3.09636396 ˘ 0.29 ˆ 10´7
Trong r6, 7s: x0 “ 6, m “ 0.75481414, p “ 6.28504900 ˘ 0.36 ˆ 10´6

8 m “ 75.20954 ˘ 0.88 ˆ 10´4 pkgq

9 Đối với carbon dioxide:

CO2 p=1 p = 10 p = 100


T = 300K 24.5126 2.3545 0.0795
T = 500K 40.9822 4.0578 0.3663
T = 700K 57.4180 5.7243 0.5576

Đối với oxygen:

O2 p=1 p = 10 p = 100
T = 300K 24.5928 2.4384 0.2264
T = 500K 41.0257 4.1016 0.4116
T = 700K 57.4460 5.7521 0.5842

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Chỉ dẫn và trả lời bài tập chương 3 115

CHỈ DẪN VÀ TRẢ LỜI BÀI TẬP CHƯƠNG 3


5 13 5
1 (a) x1 “ ´ , x2 “ , x3 “ .
6 12 12
21 6 23
(b) x1 “ , x2 “ 0, x3 “ ´ , x4 “ .
26 13 26
» fi » fi
1 0 0 1 1 1
2 (a) L “ – 1 1 0 fl, U “ – 0 1 2 fl
3 ´1 1 0 0 3
» fi
1 0 0 »
4 3 2

— 1 ffi 3
(b) L “ — 1 0 ffi, U “ — 0 0 ffi
— ffi — ffi
— 2 2
5
ffi – fl
– 1 13
0 0

1 2
4 6
» fi » fi
1 0 0 0 1 1 1 1
— 1 1 0 0 ffi — 0 ´2 0 ´2 ffi
(c) L “ —– 1 0 1 0 fl, U “ – 0
ffi — ffi
0 ´2 ´2 fl
1 1 1 1 0 0 0 4
» fi » fi
1 0 0 0 3 2 1 0
— 1
— 0 7 2
ffi — ffi
— 1 0 0 ffi 4 ffi
— 3 3 3
— ffi — ffi
(d) L “ — 2 ffi, U “ —
ffi — ffi
— 1 ffi — 17 11 ffi
´ 1 0 ffi — 0 0

— 3 7 7 7
— ffi
ffi — ffi
– 2 2 1 fl – 30 fl
1 0 0 0
3 7 17 7
» fi
1 0 0
3 (a) ∆1 “ 1, ∆2 “ 1, ∆3 “ 4, B “ – 2 1 0 fl
1 1 2
» fi
2 0 0
— ? ffi
— 3 7 ffi
(b) ∆1 “ 4, ∆2 “ 5, ∆3 “ 12, B “ — ´ 2 0
— ffi
— 2? ?


– 4 7 2 21 fl
0 ´
7 7
» ? fi
2 0 0 0
— ? ?
2 6

— ´ 0 0
— ffi

— 2 2
? ?

(c) ∆1 “ 2, ∆2 “ 3, ∆3 “ 4, ∆4 “ 5, B “ —
— ffi
6 2 3 ffi
— 0 ´ 0 ffi

— 3 3
? ?


3 5
– fl
0 0 ´
2 2

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

116 CHỈ DẪN VÀ TRẢ LỜI

(d) ∆1 “»3, ?
∆2 “ 8, ∆3 “ 21, ∆4 “ 124, fi
3 0 0 0
— ? ?
— 2 3 2 6

0 0

— ffi
— 3 3
— ? ? ?

B“—

3 7 6 42 ffi

— 3 0 ffi
— ? 12
? ?4 ?


3 6 42 2 651
– fl
´
3 3 21 21

40 91
4 (a) k1 pAq “ , k8 pAq “
3 9
315 324
(b) k1 pAq “ , k8 pAq “
19 19
255
(c) k1 pAq “ , k8 pAq “ 153
2
(d) k1 pAq “ 28375, k8 pAq “ 28375

5
p3q p3q
(a) x1 “ 0.617, x2 “ 0.456
p3q p3q
(b) x1 “ 0.62712, x2 “ 1.01466
p3q p3q p3q
(c) x1 “ 0.31692, x2 “ 0.97236, x3 “ 0.56451
p3q p3q p3q
(d) x1 “ 0.24672, x2 “ 0.55608, x3 “ 0.46922
p3q p3q p3q p3q
(e) x1 “ 1.33283, x2 “ 1.02953, x3 “ 0.53931, x4 “ 1.21863

6
p3q p3q
(a) x1 “ 0.60630, x2 “ 0.48685
p3q p3q
(b) x1 “ 0.66939, x2 “ 1.05658
p3q p3q p3q
(c) x1 “ 0.32771, x2 “ 0.98015, x3 “ 0.58039
p3q p3q p3q
(d) x1 “ 0.23490, x2 “ 0.55469, x3 “ 0.46771
p3q p3q p3q p3q
(e) x1 “ 1.31504, x2 “ 1.03712, x3 “ 0.56097, x4 “ 1.19823

CHỈ DẪN VÀ TRẢ LỜI BÀI TẬP CHƯƠNG 4


7 2 47
1 (a) L2 pxq “ x ´ x ` 14
6 6
(b) L2 pxq “ 0.5333x2 ` 0.6733x ` 1
1 3 7 2 1
(c) L3 pxq “ x ´ x ´ x`3
3 6 6
(d) L3 pxq “ 9.1667x3 ´ 42.1250x2 ` 67.5083x ´ 33.9400

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Chỉ dẫn và trả lời bài tập chương 4 117

x 30 35 40 45
2 (a) Bảng số: , L3 px˚ q “ 0.529936,
y 0.5000 0.5736 0.6428 0.7071
f px˚ q “ 0.529919
x 0.2 0.4 0.6 0.8
(b) Bảng số: , L3 px˚ q “ 0.53238125,
y 0.8024 0.6174 0.4530 0.3131
f px˚ q “ 0.53228073
x 7 8 9 10
(c) Bảng số: , L3 px˚ q “ 2.22462266,
y 2.0794 2.1972 2.3026 2.3979
f px˚ q “ 2.22462355

3 f px0 q “ 6, f px1 q “ 4, f rx0 , x1 s “ ´1.

2 3
´2
7
4
p1q
(a) 3 1 7{6 ñ N2 pxq “ 3 ´ 2px ´ 2q ` px ´ 2qpx ´ 3q.
6
3{2
5 4

0.3 1.25
1.1000
(b) 0.5 1.47 0.5333 ñ
1.3667
0.8 1.88
p1q
ñ N2 pxq “ 1.25 ` 1.1px ´ 0.3q ` 0.5333px ´ 0.3qpx ´ 0.5q.
0 3
´1
1 2 1{6
(c) ´1{2 1{3 ñ
3 1 9{6
4
4 5
p1q 1 1
ñ N3 pxq “ 3 ´ x ` xpx ´ 1q ` xpx ´ 1qpx ´ 3q.
6 3
1.2 2.25
4.55
1.4 3.16 ´3.625
(d) 3.10 9.1667 ñ
1.6 3.78 1.875
3.85
1.8 4.55
p1q
ñ N3 pxq “ 2.25 ` 4.55px ´ 1.2q ´ 3.625px ´ 1.2qpx ´ 1.4q `
` 9.1667px ´ 1.2qpx ´ 1.4qpx ´ 1.6q.

2 1
$
&2 ´ x ` x3 ,
’ nếu 0 ď x ď 2
5 (a) gpxq “ 3 24
%1 ´ 1 px ´ 2q ` 1 px ´ 2q2 ´ 1 px ´ 2q3 ,

nếu 2 ď x ď 3
6 4 12

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

118 CHỈ DẪN VÀ TRẢ LỜI

8 8
$
’ 2` px ´ 1q ´ px ´ 1q3 , nếu 1 ď x ď 2
15 15




16 8 5
&
(b) gpxq “ 2 ´ px ´ 2q ´ px ´ 2q2 ` px ´ 2q3 , nếu 2 ď x ď 3

’ 15 5 3
11 17 17

nếu 3 ď x ď 4

%1 ` px ´ 3q ` px ´ 3q ´ px ´ 3q3 ,
2

15 5 15

1
6 a “ 2, b “ 1, c “ 3, d “ ´
2

2 4 2 4
7 b0 “ , d0 “ , b 1 “ , d1 “ ´
3 3 3 3

17 11
$
&1 ` px ´ 2q ´ px ´ 2q3 ,
’ nếu 2 ď x ď 3
8 (a) gpxq “ 2 2
%4 ` 1 px ´ 3q ´ 8px ´ 3q2 ` 11 px ´ 3q3 ,

nếu 3 ď x ď 4
2 2
25 16
$
’ 1 ` x ´ x 2 ` x3 , nếu 0 ď x ď 1
3 3




1 23
&
(b) gpxq “ ´1 ` px ´ 1q ` px ´ 1q2 ´ 5px ´ 1q3 , nếu 1 ď x ď 2

’ 3 3
2
%2 ` px ´ 2q ´ px ´ 2q2 ` 14 px ´ 2q3 ,
22

nếu 2 ď x ď 3


3 3 3

9 a “ 15, b “ 17, c “ 7, d “ ´10.

10 5 7
10 b0 “ , d0 “ , b1 “ , d1 “ ´1.
3 3 3

11 A “ ´0.2214, B “, 0.1246 C “ 0.9811

12 A “ 2.0050, B “ 0.4867

CHỈ DẪN VÀ TRẢ LỜI BÀI TẬP CHƯƠNG 5


h “ 0.1 h “ 0.05 h “ 0.01 h “ 0.005 h “ 0.001
1 (a) f 1 p1.2q 3.964713 4.227127 4.312622 4.315306 4.316164
f 2 p1.2q ´25.73669 ´25.88950 ´25.93781 ´25.93932 ´25.93980
Giá trị chính xác f 1 p1.2q “ 4.316200 và f 2 p1.2q “ ´25.93982
h “ 0.1 h “ 0.05 h “ 0.01 h “ 0.005 h “ 0.001
(b) f 1 p0.5q 0.708128 0.718166 0.721374 0.721475 0.721507
f 2 p0.5q 0.208379 0.222112 0.226517 0.226657 0.226699
Giá trị chính xác f 1 p0.5q “ 0.721508 và f 2 p0.5q “ 0.226701
h “ 0.1 h “ 0.05 h “ 0.01 h “ 0.005 h “ 0.001
(c) f 1 p1q 3.743304 3.737646 3.735834 3.735778 3.735760
f 2 p1q 5.270354 5.265773 5.264302 5.264256 5.264242
Giá trị chính xác f 1 p1q “ 3.735759 và f 2 p1q “ 5.264241

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Chỉ dẫn và trả lời bài tập chương 6 119

h “ 0.1 h “ 0.05 h “ 0.01 h “ 0.005 h “ 0.001


(d) f 1 p3q 0.407806 0.407507 0.407411 0.407408 0.407407
f 2 p3q ´0.210213 ´0.209961 ´0.209880 ´0.209877 ´0.209877
Giá trị chính xác f 1 p3q “ 0.407407 và f 2 p3q “ ´0.209877

2 Ta có:
(a) I « 0.372508 (c) I « 0.637197
(b) I « 42.61379 (d) I « 0.384965

3 Ta có:
(a) I « 0.373553 (c) I « 0.636295
(b) I « 43.63994 (d) I « 0.384180

4 Ta có:

(a) I « 0.746670
(b) I « 0.746824

5 Ta có:
M 2 h2
(a) M2 “ maxxPr1,2s |f 2 pxq| “ 1, pb ´ aq ă 10´5 ñ n ą 91.287. Chọn
12
n “ 92 ñ I « 0.38628944
M 4 h4
(b) M4 “ maxxPr1,2s ˇf p4q pxqˇ “ 6, pb ´ aq ă 10´5 ñ n ą 7.598. Chọn
ˇ ˇ
180
n “ 8 ñ I « 0.38629204

Chú ý rằng giá trị chính xác I “ 2 ln 2 ´ 1 “ 0.38629436

6 Công thức hình thang: I1 “ 2.1380, I2 “ 7.3307. Công thức Simpson: I1 “


2.1293, I2 “ 7.2251.

CHỈ DẪN VÀ TRẢ LỜI BÀI TẬP CHƯƠNG 6


1 (a) Ta có:

tk yk pEulerq yk pRK2q yk pRK4q yptk q


1.0 1.00000000 1.00000000 1.00000000 1.00000000
1.1 1.00000000 0.99545455 0.99515907 0.99515880
1.2 0.99090909 0.98178375 0.98121462 0.98121413
1.3 0.97348485 0.95975290 0.95892712 0.95892646
1.4 0.94836830 0.93000862 0.92893968 0.92893887
1.5 0.91610889 0.89310448 0.89180328 0.89180234
1.6 0.87718282 0.84951978 0.84799526 0.84799419
1.7 0.83200674 0.79967358 0.79793315 0.79793197
1.8 0.78094832 0.74393543 0.74198528 0.74198400
1.9 0.72433433 0.68263360 0.68047900 0.68047762
2.0 0.66245719 0.61606168 0.61370711 0.61370564

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

120 CHỈ DẪN VÀ TRẢ LỜI

(b) Ta có:

tk yk pEulerq yk pRK2q yk pRK4q yptk q


0.0 2.00000000 2.00000000 2.00000000 2.00000000
0.1 2.00000000 2.03010050 2.03020081 2.03020084
0.2 2.06020100 2.12313629 2.12325388 2.12325398
0.3 2.18424147 2.28673129 2.28682400 2.28682425
0.4 2.38094642 2.53468232 2.53478294 2.53478348
0.5 2.66530300 2.88877820 2.88905604 2.88905719
0.6 3.06023585 3.38178166 3.38265499 3.38265742
0.7 3.59946368 4.06212211 4.06446211 4.06446739
0.8 4.33191286 5.00119874 5.00669797 5.00670952
0.9 5.32845586 6.30475931 6.31659622 6.31662144
1.0 6.69220135 8.13075149 8.15479098 8.15484549

(c) Ta có:

tk yk pEulerq yk pRK2q yk pRK4q yptk q


0.0 0.00000000 0.00000000 0.00000000 0.00000000
0.1 0.00000000 0.01005021 0.01005021 0.01005021
0.2 0.02010042 0.04086423 0.04081358 0.04081355
0.3 0.06132143 0.09436384 0.09420770 0.09420764
0.4 0.12602342 0.17403828 0.17371282 0.17371271
0.5 0.21820796 0.28544762 0.28487369 0.28487348
0.6 0.34407810 0.43711259 0.43618657 0.43618619
0.7 0.51301315 0.64207607 0.64065570 0.64065504
0.8 0.73926795 0.92072781 0.91860867 0.91860749
0.9 1.04503770 1.30619619 1.30307005 1.30306791
1.0 1.46629963 1.85544433 1.85081978 1.85081572

(d) Ta có:

tk yk pEulerq yk pRK2q yk pRK4q yptk q


1.0 2.00000000 2.00000000 2.00000000 2.00000000
1.1 2.14166667 2.14012906 2.14004780 2.14004775
1.2 2.28025812 2.27730238 2.27715259 2.27715249
1.3 2.41617064 2.41189944 2.41169077 2.41169065
1.4 2.54972645 2.54422900 2.54396897 2.54396883
1.5 2.68119157 2.67454620 2.67424078 2.67424062
1.6 2.81078855 2.80306459 2.80271862 2.80271845
1.7 2.93870570 2.92996502 2.92958246 2.92958227
1.8 3.06510393 3.05540207 3.05498622 3.05498602
1.9 3.19012194 3.17950908 3.17906273 3.17906252
2.0 3.31388024 3.30240194 3.30192747 3.30192725

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Chỉ dẫn và trả lời bài tập chương 6 121

2 (a) Ta có:

tk yk yptk q
1.0 0.00000000 0.00000000
1.1 0.34591029 0.34591988
1.2 0.86662169 0.86664254
1.3 1.60718135 1.60721508
1.4 2.62031131 2.62035955
1.5 3.96760190 3.96766629
1.6 5.72087932 5.72096153
1.7 7.96377179 7.96387348
1.8 10.79350178 10.79362466
1.9 14.32293573 14.32308154
2.0 18.68292657 18.68309708

x 1.0 1.1 1.2 1.3


(b) Sử dụng bảng ta thu được:
y 0.000000 0.345910 0.866621 1.607181
(i) yp1.04q « 0.12027100. Giá trị chính xác: yp1.04q “ 0.11998750. Sai số:
∆ “ 0.00028350.
(ii) yp1.32q « 1.78652215. Giá trị chính xác: yp1.32q “ 1.78620315. Sai số:
∆ “ 0.00031900.
(iii) yp1.66q « 7.00251482. Giá trị chính xác: yp1.04q “ 7.00205956. Sai số:
∆ “ 0.00045527.

e
(c) I « 5.71717197. Ta có: F ptq “ yptqdt “ pt2 ´ 2t ` 2q et ´ t3 . Giá trị chính
ş
3
xác I “ F p2q ´ F p1q “ 5.71717277. Sai số: ∆ “ 0.00000080.

Euler RK2 RK4


3 (a) xp1.2q 1.520000 1.314000 1.283553
yp1.2q 2.240000 2.368000 2.345040

Euler RK2 RK4


(b) xp1.2q 0.362928 0.385533 0.387710
yp1.2q 0.549001 0.547774 0.548164

Euler RK2 RK4


(c) xp1.2q 0.400000 0.444749 0.455955
yp1.2q 0.560000 0.605849 0.616663

Euler RK2 RK4


(d) xp1.2q 1.786000 1.979590 2.033934
yp1.2q 0.690000 0.846370 0.869250

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

122 CHỈ DẪN VÀ TRẢ LỜI

4 Ta có bảng kết quả sau:

tk xk xptk q yk yptk q
0.0 1.000000 1.000000 ´2.000000 ´2.000000
0.1 0.795671 0.795670 ´1.880525 ´1.880525
0.2 0.585384 0.585384 ´1.724386 ´1.724386
0.3 0.373216 0.373215 ´1.535417 ´1.535416
0.4 0.163219 0.163218 ´1.317931 ´1.317930
0.5 ´0.040633 ´0.040634 ´1.076662 ´1.076661
0.6 ´0.234507 ´0.234508 ´0.816686 ´0.816684
0.7 ´0.414763 ´0.414765 ´0.543345 ´0.543342
0.8 ´0.578013 ´0.578015 ´0.262166 ´0.262163
0.9 ´0.721164 ´0.721166 0.021220 0.021223
1.0 ´0.841469 ´0.841471 0.301165 0.301169

5 (a) xpt1 q « 0.254400, xpt2 q « 0.267634.


(b) xpt1 q « 0.260000, xpt2 q « 0.694800.

6 Ta có bảng kết quả sau:

tk xk xptk q
0.0 1.00000000 1.00000000
0.1 1.10337038 1.10337037
0.2 1.21362964 1.21362963
0.3 1.33100002 1.33100000
0.4 1.45570372 1.45570370
0.5 1.58796298 1.58796296
0.6 1.72800001 1.72800000
0.7 1.87603704 1.87603704
0.8 2.03229630 2.03229630
0.9 2.19699999 2.19700000
1.0 2.37037035 2.37037037

7 Ta có:

(a) yp0.25q « 0.1952, yp0.5q « 0.4235, yp0.75q « 0.6952.


(b) yp0.2q « ´0.0300, yp0.4q « ´0.0490, yp0.6q « ´0.0536, yp0.8q « ´0.0392
tk 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9
(c)
yk 0.751 0.553 0.397 0.277 0.185 0.116 0.066 0.032 0.011
tk 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9
(d)
yk 0.243 0.286 0.331 0.378 0.428 0.482 0.543 0.614 0.698

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Đáp số các đề mẫu 123

ĐÁP SỐ CÁC ĐỀ MẪU


Các đề thi trắc nghiệm giữa kỳ

Đề số 1:

01. ⃝
a 02. ⃝
b 03. ⃝
b 04. ⃝
d 05. ⃝
a 06. ⃝
d 07. ⃝
c 08. ⃝
c
09. ⃝
b 10. ⃝
d 11. ⃝
b 12. ⃝
c 13. ⃝
a 14. ⃝
d 15. ⃝
b 16. ⃝
c
17. ⃝
b 18. ⃝
c 19. ⃝
a 20. ⃝
d

Đề số 2:

01. ⃝
a 02. ⃝
d 03. ⃝
b 04. ⃝
b 05. ⃝
c 06. ⃝
d 07. ⃝
a 08. ⃝
c
09. ⃝
b 10. ⃝
d 11. ⃝
d 12. ⃝
c 13. ⃝
a 14. ⃝
a 15. ⃝
a 16. ⃝
b
17. ⃝
d 18. ⃝
a 19. ⃝
a 20. ⃝
d

Các đề thi cuối kỳ

Đề số 1:
6. y 1 p0.5q “ 4.5000
1. x2 “ 0.1896, ∆x2 “ 0.0001
7. I “ 0.2642
2. x3 “ r1.1924, 0.7841, 0.9119sT
8. yp1.2q “ 6.5795
3. yp2.35q « 2.5659
9. xp1q “ 0.7600, yp1q “ 0.1350
4. yp1.25q “ 1.8673, yp2.25q “ 3.6698
10. y “ p0.2, 0.2039, 0.3574, 0.6871, 1.3q
5. A “ 8.0768, B “ ´4.6240

Đề số 2:
6. y 1 p0.5q “ 4.5493
1. x2 “ 0.8535, ∆x2 “ 0.0001
7. n “ 4, I “ 2.0768
2. T “ 6.3412
8. yp1.2q “ 1.2917
3. x3 “ r0.3493, 2.1185, 0.4235sT
9. xp1.2q “ 2.0469, x1 p1.2q “ 0.5745
4. yp1.28q “ 3.5636, yp1.85q “ 5.9591
10. y “ p2, 1.3890, 1.0626, 0.8922, 0.8q
5. A “ 0.5678, B “ ´29.3008

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

Tài liệu tham khảo

[1] RICHARD L. BURDEN and J. DOUGLAS FAIRES, Numerical Anal-

ysis, Brooks/Cole Publishing Company - 1997.

[2] STEVEN C. CHAPRA and RAYMOND P. CANALE, Numerical Meth-

ods for Engineers, McGraw-Hill - 1988.

[3] PHẠM KỲ ANH, Giải tích số, NXB Đại Học Quốc Gia, Hà Nội -

2000.

[4] LÊ TRỌNG VINH, Giải tích số, NXB Khoa Học Kỹ Thuật, Hà Nội -

2000.

[5] PHAN VĂN HẠP - LÊ ĐÌNH THỊNH, Phương pháp tính và các thuật

toán, NXB Giáo Dục,Hà Nội - 2000.

[6] NGUYỄN MINH CHƯƠNG (chủ biên)- NGUYỄN VĂN KHẢI -

KHUẤT VĂN NINH - NGUYỄN VĂN TUẤN - NGUYỄN TƯỜNG, Giải

tích số, NXB Giáo Dục,Hà Nội - 2000.

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)


lOMoARcPSD|22842530

TÀI LIỆU THAM KHẢO 125

Downloaded by Nguy?n Duy Lâm (nguyenduylam778@gmail.com)

You might also like