Tải bản đầy đủ (.pdf) (52 trang)

Numerical methods sách môn toán học tính toán (nguyễn đức thịnh) 1

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (622.26 KB, 52 trang )

lOMoARcPSD|2935381

Mục lục
1 Chuẩn bị
1.1 Ơn tập về phép tính . . . . . . .
1.2 Sai số làm tròn và số học máy tính
1.3 Thuật tốn và sự hội tụ . . . . .
1.4 Ngơn ngữ lập trình . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.


.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.

.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.

.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.

.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.

.
.

.
.
.
.

1
1
1
1
1

2 Giải phương trình một biến
2.1 Phương pháp chia đơi . . . . . . . . . . .
2.2 Phương pháp Newton và mở rộng . . . . .
2.3 Lặp điểm bất động . . . . . . . . . . . . .
2.4 Phân tích sai số của các phương pháp lặp .
2.5 Tăng tốc độ hội tụ . . . . . . . . . . . . .
ă
2.6 Nghim ca a thc v phng pháp Muller

.
.
.
.
.
.


.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.


.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.

.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.

.
.
.
.
.
.

.
.
.
.
.
.

4
4
5
8
9
9
9

3 Nội suy và xấp xỉ bằng đa thức
3.1 Đa thức nội suy và đa thức Lagrange
3.1.1 Nội suy tổng quát . . . . . . .
3.1.2 Đa thức nội suy . . . . . . . .
3.1.3 Đa thức Lagrange . . . . . .
3.2 Xấp xỉ số liệu và phương pháp Neville

3.3 Sai phân chia . . . . . . . . . . . .
3.4 Nội suy Hermite . . . . . . . . . . .
3.5 Nội suy Newton . . . . . . . . . . .
3.6 Nội suy spline bậc ba . . . . . . . .
3.7 Đường cong tham số . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

11
11

11
11
12
13
13
13
13
15
15

4 Đạo hàm và tích phân bằng số
4.1 Đạo hàm bằng số . . . . . . . . . .
4.1.1 Công thức hai điểm . . . . . .
4.1.2 Công thức ba điểm . . . . . .
4.1.3 Công thức bốn điểm . . . . .
4.2 Ngoại suy Richardson . . . . . . . .
4.3 Tích phân bằng số . . . . . . . . . .
4.3.1 Quy tắc hình thang . . . . . .
4.3.2 Quy tắc Simpson . . . . . . .
4.3.3 Cơng thức Newton–Cotes đóng
4.3.4 Cơng thức Newton–Cotes mở
4.4 Tích phân Romberg . . . . . . . . .
4.5 Phương pháp cầu phương thích ứng .
4.6 Cầu phương Gauss . . . . . . . . .
4.7 Tích phân bội . . . . . . . . . . . .
4.8 Tích phân suy rộng . . . . . . . . .

.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

16

16
17
17
18
19
19
20
21
23
23
23
23
23
23
23

.
.
.
.

.
.
.
.

.
.
.
.


.
.
.
.

i

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

Mục lục

ii

5 Bài toán giá trị ban đầu của phương trình vi phân thường
5.1 Lý thuyết cơ bản về bài toán giá trị ban đầu . . . . . . .
5.2 Phương pháp Picard . . . . . . . . . . . . . . . . . . .
5.3 Phương pháp chuỗi Taylor . . . . . . . . . . . . . . . .
5.4 Phương pháp Euler . . . . . . . . . . . . . . . . . . .
5.5 Phương pháp Taylor bậc cao . . . . . . . . . . . . . . .
5.6 Phương pháp Runge–Kutta . . . . . . . . . . . . . . .
5.6.1 Phương pháp Runge–Kutta bậc hai . . . . . . . .
5.6.2 Phương pháp trung điểm . . . . . . . . . . . . .
5.6.3 Phương pháp Euler cải biên . . . . . . . . . . .
5.6.4 Phương pháp Runge–Kutta bậc cao . . . . . . .
5.6.5 Runge–Kutta bậc bốn . . . . . . . . . . . . . .
5.7 Điều khiển sai số và phương pháp Runge–Kutta–Fehlberg

5.8 Phương pháp đa bước . . . . . . . . . . . . . . . . . .
5.9 Phương pháp đa bước với bước nhảy biến thiên . . . . .
5.10 Phương pháp ngoại suy . . . . . . . . . . . . . . . . .
5.11 Phương trình cấp cao và hệ phương trình vi phân . . . .
5.12 Sự ổn định . . . . . . . . . . . . . . . . . . . . . . . .
5.13 Phương trình vi phân cứng . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

24
25
25
27
28
29
30
30
30
30
30
30
32
32
32
32
32
32
32

6 Phương pháp trực tiếp giải hệ phương trình tuyến tính
6.1 Hệ phương trình tuyến tính . . . . . . . . . . . . . .
6.1.1 Hệ ba đường chéo . . . . . . . . . . . . . .
6.2 Chiến thuật chốt . . . . . . . . . . . . . . . . . . .
6.3 Đại số tuyến tính và ma trận nghịch đảo . . . . . . .

6.4 Định thức của ma trận . . . . . . . . . . . . . . . .
6.5 Phân tích ma trận . . . . . . . . . . . . . . . . . .
6.6 Các dạng ma trận đặc biệt . . . . . . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.


.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.

.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.


.
.
.
.
.
.
.

.
.
.
.
.
.
.

33
33
33
34
34
34
34
34

7 Kỹ thuật lặp trong đại số tuyến tính
7.1 Chuẩn của véctơ và ma trận . . . . .
7.2 Giá trị riêng và véctơ riêng . . . . . .
7.3 Lặp điểm bất động . . . . . . . . . .
7.4 Kỹ thuật lặp Jacobi và Gauss–Seidel .

7.5 Ma trận nghịch đảo . . . . . . . . .
7.6 Kỹ thuật giảm dư giải hệ tuyến tính . .
7.7 Giới hạn sai số và tinh chỉnh phép lặp
7.8 Phương pháp gradient liên hợp . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

35
35
36
36
38
39
40
40
40


8 Lý thuyết xấp xỉ
8.1 Xấp xỉ bình phương nhỏ nhất . . . . . . . . . . . .
8.1.1 Bài toán tổng quát . . . . . . . . . . . . . .
8.1.2 Xấp xỉ hàm rời rạc . . . . . . . . . . . . . .
8.1.3 Xấp xỉ hàm khả tích . . . . . . . . . . . . .
8.2 Đa thức trực giao và xấp xỉ bình phương nhỏ nhất . .
8.3 Đa thức Chebyshev và [Economization] chuỗi lũy thừa
8.4 Xấp xỉ hàm hữu tỷ . . . . . . . . . . . . . . . . . .
8.5 Xấp xỉ đa thức lượng giác . . . . . . . . . . . . . .
8.6 Biến đổi Fourier nhanh . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.


.
.
.
.
.
.
.
.
.

41
41
41
42
43
43
43
43
43
43

9 Xấp xỉ giá trị riêng
9.1 Đại số tuyến tính và giá trị riêng . . . .
9.2 Ma trận trực giao và biến đổi đồng dạng
9.3 Phương pháp lũy thừa . . . . . . . . .
9.4 Phương pháp Householder . . . . . .
9.5 Thuật toán QR . . . . . . . . . . . . .
9.6 Phân tích giá trị kỳ dị . . . . . . . . . .


.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.


.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.

.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

44
44
44
44
44
44
44



.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.

.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

ii

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Mục lục


iii

10 Nghiệm số của hệ phương trình phi tuyến
10.1 Điểm bất động của hàm nhiều biến . .
10.2 Phương pháp Newton . . . . . . . . .
10.3 Phương pháp tựa Newton . . . . . . .
10.4 Phương pháp độ dốc nhất . . . . . . .
10.5 Đồng luân và các phương pháp mở rộng

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.

.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.

.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.

.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.

.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.

.
.
.

45
45
45
45
45
45

11 Bài tốn giá trị biên của phương trình vi phân thường
11.1 Phương pháp bắn tuyến tính . . . . . . . . . . . . . .
11.2 Phương pháp bắn cho bài toán phi tuyến . . . . . . . .
11.3 Phương pháp sai phân hữu hạn cho bài tốn tuyến tính
11.4 Phương pháp sai phân hữu hạn cho bài toán phi tuyến .
11.5 Phương pháp Rayleigh–Ritz . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.


.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.


.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.


.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.


.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.


.
.
.
.
.

46
46
46
46
46
46

12 Nghiệm số của phương trình đạo hàm riêng
12.1 Phương trình đạo hàm riêng Elliptic . . . .
12.2 Phương trình đạo hàm riêng Parabolic . . .
12.3 Phương trình đạo hàm riêng Hyperbolic . .
12.4 Giới thiệu về phương pháp phần tử hữu hạn

.
.
.
.

.
.
.
.

.

.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.

.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.

.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.

.
.
.

.
.
.
.

.
.
.
.

47
47
47
47
47



.
.
.
.
.

.
.

.
.
.

.
.
.
.
.

.
.
.
.

.
.
.
.
.

.
.
.
.

.
.
.
.

.

.
.
.
.

.
.
.
.
.

.
.
.
.

.
.
.
.
.

.
.
.
.

.

.
.
.

iii

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 1

Chuẩn bị
1.1

Ơn tập về phép tính

1.2

Sai số làm trịn và số học máy tính

1.3

Thuật tốn và sự hội tụ

1.4


Ngơn ngữ lập trình

Để phục vụ tốt cho việc tính tốn cho các ví dụ cụ thể, hay khó hơn, là xây dựng cơng thức cho một bài tốn
tổng qt, ta có thể dùng các ngơn ngữ như MATLAB, Mathematica, Python.
Thơng tin

MATLAB

Mathematica

Python

Năm ra đời, tác giả
Tác giả, công ty
Hệ điều hành: Windows (1),
macOS (2), Linux (3), Android
(4), iOS (5), Raspberry Pi (6)
Phiên bản năm 2021

1989
MathWorks

1986
Wolfram Research

1989
Guido van Rossum

1, 2, 3


1, 2, 3, 6

tất cả

R2021a (9.10)
49 – 2 150$ không kèm
Toolbox

12.2
177 – 5 780$/năm,
miễn phí trên (6)

3.9.5
miễn phí,
mã nguồn mở

20.8 – 30.5GB

4.3 – 11.9GB

27 – 100.6MB

Giá
Dung lượng tải – cài đặt trên
Windows
Độ phổ biến theo chỉ số PYPL1
Độ phổ biến theo chỉ số TIOBE

1.71%
1.23%


29.9%
11.87%

Python, ngồi những ưu điểm được mơ tả trong bảng trên, cịn khả năng tính tốn mạnh mẽ, ngơn ngữ dễ hiểu,
dễ lập trình, nhiều mơi trường phát triển tích hợp (IDE), cộng đồng sử dụng lớn,. . . Hầu hết các bài toán đề cập trong
cuốn sách, với sự hỗ trợ của Python, đều được giải quyết ngắn gọn, mà khơng địi hỏi ta phải nhớ q nhiều kiến
thức toán học.
Để sử dụng Python, ta thực hiện các bước:
1) Tải và cài đặt Python từ địa chỉ
/>2) Một IDE Python, phổ biến gồm Anaconda và Pycharm, cả hai đều có phiên bản miễn phí và có phí. Trong
Anaconda tích hợp Spyder có chức năng tương tự Pycharm. Tuy nhiên, vì phải làm việc thường xun với
biểu thức tốn học, ta lựa chọn Jupyter Notebook, cũng được tích hợp trong Anaconda. Bản miễn phí của
Anaconda ở địa chỉ
/>1

Số liệu lấy từ />
1

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

Chương 1. Chuẩn bị

2

Jupyter Notebook có các đặc điểm:
a) Chạy trên nền web, chẳng hạn, trên Chrome hoặc Firefox, mà lý do chính khiến ta sử dụng chính là

khả năng kết xuất cơng thức tốn học trơng như biểu diễn lý thuyết của chúng.
b) Thực thi cơng việc theo nhóm lệnh, thường gọi là môđun. Mỗi tệp gồm nhiều môđun. Sau thi thực hiện
môđun này, một số đối tượng sẽ được lưu vào bộ nhớ, và những mơđun khác có thể sử dụng các ô nhớ
này, kể cả những môđun ở tệp khác. Điều này rất hữu dụng khi ta cần kiểm thử tính tốn và lập trình,
bằng cách chỉ chạy một số môđun nhất định mà không phải biên dịch tồn bộ tệp đó. Tuy nhiên, đơi khi
ta gặp trục trặc, khi hai môđun dùng chung ký hiệu nhưng lại có chức năng khác nhau.
c) Jupyter Notebook có vài nhược điểm. Thứ nhất, mặc định nó khơng có chế độ hồn thiện từ khóa
khi gõ. Ta khắc phục điều này bằng cách cài đặt Jupyter TabNine, được quản lý trong phần mở rộng
Nbextensions. Các bước như sau:
i) Trong thực đơn Start của Windows, mở Anaconda Promp, gõ lệnh cài Jupyter TabNine:
python -m pip install jupyter - tabnine -- user

ii) Gõ tiếp lệnh sau để tích hợp Jupyter TabNine vào Nbextensions:
jupyter nbextension install -- py j up y te r_ t ab n in e -- user

iii) Mở Jupyter Notebook, chọn thẻ Nbextensions, bỏ chọn ơ vơ hiệu hóa Nbextensions, rồi chọn kích
hoạt Jupyter TabNine, như hình

d) Nhược điểm thứ hai Jupyter Notebook là khả năng duyệt file hạn chế. Cụ thể, nó chỉ duyệt được các
file trong thư mục gốc, và trong thư mục con của thư mục gốc. Để khắc phục điều này, ta thay đổi thư
mục gốc của nó. Nhấp chuột phải vào biểu tượng Jupyter Notebook, chọn Properties, mục Target, rồi
dò tới đoạn cuối, thay xâu nằm trong dấu nháy kép “. . . ” bởi đường dẫn tới thư mục mà ta cần chỉ định,
như hình



2

Downloaded by EBOOKBKMT VMTC ()


Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 1. Chuẩn bị

3

Và cuối cùng, để chạy một môđun của Jupyter Notebook, hãy chắc rằng mơđun đó đang ở trạng thái được
chọn, hoặc con trỏ đang đặt tại đó, rồi nhấn tổ hợp phím Shift + Enter.



3

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 2

Giải phương trình một biến
2.1

Phương pháp chia đơi


Xét phương trình
f (x) = 0, x ∈ [a, b] .

Giả sử
a) f ∈ C [a, b].
b) f (a) f (b) < 0.
Khi đó



a) ∃x ∗ ∈ [a, b] , f x ∗ = 0.
b) Xét dãy đoạn [an , bn ] xác định bởi
i) [a0 , b0 ] = [a, b].
an + bn

. Nếu f (an ) f (cn ) < 0, đặt [an+1 , bn+1 ] = [an , cn ]; ngược lại, tức là f (cn ) f (bn ) ≤ 0, đặt
2
[an+1 , bn+1 ] = [cn , bn ].

ii) Đặt cn =

thì
i) an , bn −−−→ x ∗ .
n→∞

ii) ∀xn ∈ [an , bn ] : |xn − x ∗ | ≤ bn − an =

b−a

(thường chọn xn = an ).

2n
[a0 , b0 ] ⊃ [a1 , b1 ] ⊃ ... là các khoảng chứa nghiệm x ∗ và
bn − an =

bn − 1 − an − 1
2

=

b−a
2n

.

Ví dụ 2.1. Xét phương trình x 3 + 2x − 1 = 0, x ∈ [0, 2].
a) Kiểm tra điều kiện thực hiện phương pháp
b) Xây dựng dãy đoạn chứa nghiệm sau 5 bước
c) Cho 1 nghiệm gần đúng với sai số 10−2
d) Cần thực hiện bao nhiêu bước lặp để thu được nghiệm có sai số 10−6 .

Giải.

a) f (x) = x 3 + 2x − 1. Dễ thấy f ∈ C [0, 2]; f (0) = −1 < 0, f (2) = 11 > 0.

b, c) Bảng tính khoảng gần đúng và đánh giá sai số

4

Downloaded by EBOOKBKMT VMTC ()



lOMoARcPSD|2935381

Chương 2. Giải phương trình một biến

5

bn

f (an )

n
0
1
2
3
4

an
0
0
0
0.25
0.375

2
1
0.5
0.5
0.5


cn
1
0.5
0.25
0.375
0.4375

5
6
7

0.4375
0.4375
0.453125

0.5
0.46875
0.46875

0.46875
0.453125
0.460938

8

0.453125

0.460938


0.457031











f (bn )
+
+
+
+
+
+
+
+
+

f (cn )
+
+





+


+

+

εn
2
1
0.5
0.25
0.125
0.0625
0.03125
0.015625
0.0078125

Khoảng chứa nghiệm sau 5 bước là [0.4375, 0.5].
Nghiệm gần đúng với sai số 10−2 là x8 = a8 = 0.453125.
d)

2.2

b−a
2n

< 10−6 ⇒ n > log2

b−a

10−6

= 20.9316. Chọn n = 21.

Phương pháp Newton và mở rộng

Xét phương trình
f (x) = 0, x ∈ [a, b] .

Giả sử
a) f ′ , f ′′ không đổi dấu trên [a, b].
b) f (a) f (b) < 0.
Khi đó



a) ∃!x ∗ ∈ (a, b) , f x ∗ = 0.
b) Xét dãy {xn }:

i) x0 ∈ [a, b] saochof (x0 ) f ′′ > 0 (thường chọn x0 là a hoặc b).

ii) Công thức lặp

f (xn )
, n = 0, 1, ...
xn+1 = xn − ′
f (xn )
y

y = f (x)


a

x∗
x3

x
x2

x1

(2.1)

y

y = f (x)

a

x∗

x
x3x2 x1

x0 = b

x0 = b

thì
i) {xn } đơn điệu và lim xn = x ∗ .

n→∞

ii) Công thức sai số

|xn − x ∗ | ≤

M
2m

2

|xn − xn−1 | , n = 1, 2, ...

(2.2)

trong đó M ≥ |f ′′ (x)|, 0 < m ≤ |f ′ (x)| , ∀x ∈ [a, b].


5

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 2. Giải phương trình một biến

6


Cơng thức Newton cải biên
f (xn )
xn+1 = xn − ′
f (x0 )

(2.3)

có số phép tính mỗi bước ít hơn nhưng tốc độ hội tụ chậm hơn công thức Newton.
Nếu f ′′ không đổi dấu trên [a, b] thì f ′ đơn điệu. Khi đó f ′ khơng đổi dấu nếu f ′ (a) f ′ (b) > 0; và kéo theo
m = min{|f ′ (a)| , |f ′ (b)|}.
Để xác định M, có thể khảo sát hàm số |f ′′ (x)| trên [a, b], hoặc thông qua miền giá trị của hàm sơ cấp và tính
chất hàm trị tuyệt đối, hoặc đánh giá “thô” bằng cách đọc mức giá trị của đồ thị hàm số |f ′′ (x)|.
Ví dụ 2.2. Cho phương trình x 3 = x 2 + 3 (∗) với x ∈ [1, 4].
a) Kiểm tra điều kiện thực hiện phương pháp.
b) Tìm nghiệm gần đúng sau 3 bước (tới x3 ).
c) Tìm sai số của các nghiệm gần đúng ở ý trên.
d) Tìm nghiệm gần đúng với sai số 10−6 , cho biết số bước lặp đã thực hiện.
e) Tìm nghiệm gần đúng sau 3 bước theo công thức Newton cải biên.

Giải.

a) (∗) ⇔ f (x) = x 3 − x 2 − 3 = 0. Ta có
f ′ (x) = 3x 2 − 2x, f ′′ (x) = 6x − 2 ≥ 4 > 0, ∀x ∈ [1, 4] .
Mặt khác f ′ (1) = 1 > 0, f ′ (4) = 40 > 0 ⇒ f ′ (x) > 0, ∀x ∈ [1, 4].

f (1) = −3 < 0, f (4) = 45 > 0.

b–d) f (4) f ′′ > 0 ⇒ x0 = 4. Công thức lặp
f (xn )

xn3 − xn2 − 3
xn+1 = xn − ′
= xn −
f (xn )
3xn2 − 2xn
và sai số |xn − x ∗ | ≤

M
2m

2

|xn − xn−1 | =: εn trong đó

|f ′′ (x)| = f ′′ (x) = 6x − 2 ≤ 22, ∀x ∈ [1, 4] ⇒ M = 221
m = min{|f ′ (1)| , |f ′ (4)| = min{1, 40} = 1.

n
0
1
2
3
4
5

xn
4
2.875
2.21883
1.92841

1.86641
1.86371

6

1.86371

εn
13.9219
4.73619
0.927734
0.0422842
0.0000803536
2.76859 · 10−10

Nghiệm gần đúng có sai số 10−6 : x6 = 86371.
f (xn )
xn3 − xn2 − 3
d) Công thức Newton cải biên: xn+1 = xn − ′
= xn −
.
f (x0 )
40
1

Đánh giá bằng đồ thị được M = 20 + 2.5 = 22.5



6


Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 2. Giải phương trình một biến

7

n
0
1
2
3

xn
4
2.875
2.56255
2.38103

Một ứng dụng đơn giản của cơng thức Newton, là tìm nghịch đảo x =

f (x) =
Ta có f ′ (x) = −

1

x2

1
x

1
a

của số thực a. Xét phương trình

− a = 0.

2
, f ′′ (x) = 3 . Theo công thức Newton
x
1
f (xn )

xn+1 = xn − ′
= xn −
f (xn )

xn



−a
1

(∗ )


= xn (2 − axn )

xn2

trong đó x0 được chọn sao cho |1 − ax0 | < 1. Khi đó



1 − axn+1 = 1 − a 2xn − axn2 = (1 − axn )2
n

⇒ 1 − axn = (1 − ax0 )2 ⇒

1

a

1

n

− xn = (1 − ax0 )2 −−−→ 0
a

n→∞

1

⇒ xn −−−→ .

n→∞

Ví dụ 2.3. Tính gần đúng
dấu phảy.

1
9.347

a

bằng dãy lặp trên tới khi có hai phần tử của dãy trùng nhau tới 5 chữ số sau

Giải. Với a = 9.347, có thể chọn x0 = 0.1, ta có |1 − ax0 | = 0.0653 < 1. Công thức lặp (∗) cho ta bảng giá trị
n
1
2
3

Một ứng dụng khác, khai căn x =
cơng thức lặp



xn
0.10653
0.106984
0.106986

a. Xét phương trình f (x) = x 2 − a = 0. Ta có f ′ (x) = 2x, f ′′ (x) = 2, và


1
xn2 − a
f (xn )
=
= xn −
xn+1 = xn − ′
f (xn )
2xn
2
Ví dụ 2.4. Tính gần đúng





xn +

a
xn



.

2.

Giải. Chọn x0 = 2. Ta có dãy nghiệm gần đúng tới khi hai phần tử liên tiếp trùng nhau tới 5 chữ số sau dấu phảy:
n
1
2

3
4
5



xn
1.5
1.41667
1.41422
1.41421
1.41421

7

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 2. Giải phương trình một biến

2.3

8

Lặp điểm bất động


Xét phương trình
x = g (x) , x ∈ [a, b] .

Giả sử g là ánh xạ co trên [a, b], tức là
a) g (x) ∈ [a, b] ∀x ∈ [a, b]; và
b) ∃q < 1, ∀x, y ∈ [a, b]:

(∗)

|g (x) − g (y)| ≤ q |x − y | .

Khi đó



a) ∃!x ∗ ∈ [a, b] , x ∗ = g x ∗ .
b) Xét dãy {xn }:

a+b

i) x0 ∈ [a, b] bất kì (thường chọn x0 =

2

).

ii) Cơng thức lặp

(2.4)


xn+1 = g (xn ) , n = 0, 1, ...
thì
i)

lim xn = x ∗ .

n→∞

ii) Cơng thức đánh giá sai số:

|xn − x ∗ | ≤
|xn − x ∗ | ≤

qn
1−q
q
1−q

|x1 − x0 |

(2.5)

|xn − xn−1 |

Giả sử |g ′ (x)| ≤ q < 1, ∀x ∈ [a, b]. Khi đó ∀x, y ∈ [a, b]:

|g (x) − g (y)| = |g ′ (c)| · |x − y | ≤ q |x − y |
tức là điều kiện (∗) thỏa mãn.
Ví dụ 2.5. Biến đổi x 3 = x 2 + 3 ⇔ x =



3

x 2 + 3, với x ∈ [1, 4].

a) Kiểm tra điều kiện thực hiện phương pháp.
b) Cho trước x0 = 2.5, tính nghiệm gần đúng tới x3 .
c) Tìm sai số của các nghiệm gần đúng ở trên.
d) Tìm nghiệm với sai số 10−4 và xác định số bươc lặp đã thực hiện.
e) Khơng cần tìm dãy nghiệm gần đúng, hãy xác định cần bao nhiêu bước lặp để thu được nghiệm có
sai số 10−10 .

Giải.

a) Đặt g (x) =


3

x 2 + 3. Ta có
2x

g ′ (x) =
3

x2

2/3 > 0, ∀x ∈ [1, 4]

+3


⇒ g (1) ≤ g (x) ≤ g (4) ⇒ 1.5874 ≤ g (x) ≤ 2.6684 ⇒ 1 ≤ g (x) ≤ 42
2 9 − x2

′′

g (x) =

5/3 = 0 ⇔ x = 3 ∈ [1, 4]

9 x2 + 3
2

Đánh giá bằng đồ thị 1.6 ≤ g (x) ≤ 2.6 + 0.2.





8

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 2. Giải phương trình một biến


9

⇒ |g ′ (x)| ≤ max{|g ′ (1)| , |g ′ (4)| , |g ′ (3)|} =
= max{0.264567, 0.374513, 0.381571} = 0.381571 = q < 13 .
b–d) Công thức lặp và sai số
xn+1 = g (xn ) =

|xn − x ∗ | ≤

p
3

xn2 + 3

q

1−q

n
0
1
2
3
4
5
...

xn
2.5
2.09917

1.94927
1.8945
1.87475
1.86766

9

1.86377

|xn − xn−1 | =: εn .
εn
0.247314
0.0924898
0.033789
0.0121887
0.0043737
0.000071735

Nghiệm gần đúng có sai số 10−4 là x9 = 1.86377.
e) Xét
qn
1−q

|x1 − x0 | < 10−10 ⇒ q n <

⇒ n > logq

10−10 (1 − q)

|x1 − x0 |


10−10 (1 − q)

|x1 − x0 |

= 23.4491 ⇒ chọn n = 24.

2.4

Phân tích sai s ca cỏc phng phỏp lp

2.5

Tng tc hi t

2.6

ă
Nghim của đa thức và phương pháp Muller

Định lý 2.1 (Định lý chặn nghiệm Cauchy). Cho P (x) = a0 x n + a1 x n−1 + ... + an−1 x + an , a0 6 = 0. Đặt
| ai |
M = max
. Khi đó mọi nghiệm thực của P đều nằm trong khoảng [− (M + 1) , M + 1].
1≤i ≤n |a0 |
Định nghĩa 2.1. Đa thức P (x) gọi là khử bội nếu khơng có đa thức Q (x) bậc dương sao cho Q 2 | P.

Định lý 2.2 (Sturm). Với mọi đa thức P (x),

Ngoài ra P và


P
gcd (P, P ′ )

P
gcd (P, P ′ )

là khử bội.

có cùng tập nghiệm.

Định lý 2.3. Dãy Sturm của đa thức một biến P (x) xác định bởi
P0 = P
P1 = P ′
3

Đánh giá bằng đồ thị q = 0.38 + 0.005.



9

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 2. Giải phương trình một biến


10

Pi+1 = − Pi −1 mod Pi



đến khi Pk +1 = 0.
Ký hiệu V (a) là số lần đổi dấu của dãy P0 (a) , P1 (a) , ... , Pk (a), trong đó mỗi số 0 (nếu có) trong dãy chỉ
tính là một lần đổi dấu. Khi đó, số nghiệm của P trong khoảng (a, b] là V (a) − V (b).



10

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 3

Nội suy và xấp xỉ bằng đa thức
3.1

Đa thức nội suy và đa thức Lagrange

Cho không gian véctơ V . Ánh xạ tuyến tính L : V → R gọi là một phiếm hàm tuyến tính.

Ví dụ 3.1. Trên không gian hàm V thường xét một số phiếm hàm:
L (f ) = f (x0 )
L (f ) = f
L (f ) =

3.1.1

(k )

Z

(x0 )

b

f (x) f0 (x) dx.
a

Nội suy tổng quát

Cho hệ n hàm độc lập tuyến tính {f1 , f2 , ... , fn } trong V và n phiếm hàm độc lập tuyến tính L1 , L2 , ... , Ln . Khi đó
tồn tại duy nhất hàm P có dạng
P =

n
X

ci fi

i=1


sao cho

Li (P) = bi , ∀i = 1, n

Thật vậy,

(∗) ⇔ Li




n
X

cj fj

j=1

n
X
j=1

n
X
j=1

!

(∗)


= bi , ∀i = 1, n



Li fj cj = bi , ∀i = 1, n
aij cj = bi , ∀i = 1, n

hay
Ac = b



trong đó A = aij n , b = (b1 , b2 , ... , bn ), c = (c1 , c2 , ... , cn ). Với các giả thiết độc lập tuyến tính của hệ hàm và hệ
phiếm hàm, ta có |A| 6 = 0. Do đó, bài tốn có nghiệm duy nhất.

3.1.2

Đa thức nội suy

Tìm
P (x) =

n
X

ai x i

i=0


11

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

Chương 3. Nội suy và xấp xỉ bằng đa thức

12

sao cho, tại mốc nội suy xi :
(∗)

P (xi ) = yi , ∀i = 0, n.

Đây là trường hợp đặc biệt của bài toán nội suy tổng quát với hệ hàm
f0 = 1, f1 = x, f2 = x 2 , ... , fn = x n



j

và phiếm hàm Li (f ) = f (xi ). Ta có Li x j = xi với i, j = 0, n, trong đó quy ước 00 = 1. Hoặc, ta biến đổi trực tiếp
(∗) ⇔

n
X

j


aj xi = bi , i = 0, n

j=0




1

Định thức của hệ là định thức Vandermonde: |A| =

Q

i








a0
x0n
y0
 a 1   y1 
x1n 
   

   
x2n 
  a 2  =  y2  .

x0 x02 · · ·
x1 x12 · · ·
x2 x22 · · ·
..........
xn xn2 · · ·

1
1

⇔
1

xnn

 · · · 

· · · 

an

yn



xj − xi 6 = 0.


Ví dụ 3.2. Tìm đa thức nội suy của hàm số có giá trị cho trong bảng
0
3

−1

x
y

4

1
2

2
7

Giải. Đa thức nội suy có dạng P (x) = a + bx + cx 2 + dx 3 .
Cách 1) Ta có
P (−1) = a − b + c − d = 4,
P (1) = a + b + c + d = 2,

P (0) = a = 3,
P (2) = a + 2b + 4c + 8d = 7

Giải hệ được a = 3, b = −2, c = 0, d = 1, và kết luận P (x) = 3 − 2x + x 3 .
Cách 2) Giải hệ




1
1

1
1

3.1.3

−1
0
1
2

−1

 

 

a
4
   
0 
 b  = 3 .
1   c  2
8
d
7

1

0
1
4

Đa thức Lagrange

Tìm
P (x) =

n
X

(3.1)

yi Li (x)

i=0



(

trong đó Li xj = δij =
Ta có Li (x) = C

Y
j 6 =i

0 nếu i 6 = j


1 nếu i = j

.



x − xj . Mặt khác Li (xi ) = 1 nên C
Li (x) =

Q
j 6 =i



xi − xj = 1. Vậy

Y x − xj
xi − xj

(3.2)

j 6 =i

Ví dụ 3.3. Trong Ví dụ 3.2, tìm đa thức nội suy bằng đa thức Lagrange.

Giải. Các đa thức Lagrange



12


Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 3. Nội suy và xấp xỉ bằng đa thức

L−1 (x)
L0 (x)
L1 (x)
L2 (x)

=
=
=
=

13

(x − 0) (x − 1) (x − 2)

(−1 − 0) (−1 − 1) (−1 − 2)
(x + 1) (x − 1) (x − 2)

(0 + 1) (0 − 1) (0 − 2)
(x + 1) (x − 0) (x − 2)


=−
=

x3

=

(2 + 1) (2 − 0) (2 − 1)

6

x

6

2



−x −

x

3

x2

+

2


2

=−

(1 + 1) (1 − 0) (1 − 2)
(x + 1) (x − 0) (x − 1)

x3

3

2

+

x

2

2

x

x
2

3
+1


+x

x

− .
6

Vậy
P (x) = 4L−1 (x) + 3L0 (x) + 2L1 (x) + 7L2 (x) = x 3 − 2x + 3.

Định lý 3.1. Cho hàm số f ∈ C n+1 [a, b]. Giả sử P (x) là đa thức nội suy hàm f (x) tại các mốc nội suy
xi ∈ [a, b] , i = 0, n. Khi đó với mỗi x ∈ [a, b], tồn tại ξ (x) ở giữa min xi và max xi , sao cho
0≤i ≤n

f (x) = P (x) +



n
f (n+1) ξ (x) Y

(n + 1)!

3.2

Xấp xỉ số liệu và phương pháp Neville

3.3

Sai phân chia


3.4

Nội suy Hermite

3.5

Nội suy Newton

i=0

0≤i ≤n

(x − xi ).

Định nghĩa 3.1 (Sai phân). Cho dãy yi , i = 0, n. Sai phân cấp k của dãy tại phần tử yi , i = 0, n − k được
định nghĩa đệ quy:

∆0 yi = yi , ∀i

∆k yi = ∆k −1 yi+1 − ∆k −1 yi , k = 1, n.

(3.3)

Ba sai phân cấp đầu tiên:

∆yi = ∆1 yi = ∆0 yi+1 − ∆0 yi = yi+1 − yi

∆2 yi = ∆1 yi+1 − ∆1 yi = (yi+2 − yi+1 ) − (yi+1 − yi ) = yi+2 − 2yi+1 + yi
∆3 yi = ∆2 yi+1 − ∆2 yi = (yi+3 − 2yi+2 + yi+1 ) − (yi+2 − 2yi+1 + yi )

= yi+3 − 3yi+2 + 3yi+1 − yi .

Tổng quát:

∆k yi =

k
X
j=0

Ta dùng lược đồ sai phân

(−1)k −j Ck yi+j .
j

∆ k − 1 yi


∆ k yi

+

∆k −1 yi+1


13

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh



lOMoARcPSD|2935381

Chương 3. Nội suy và xấp xỉ bằng đa thức

14

để xây dựng bảng sai phân

∆2 yi

∆yi

yi
y0

∆3 yi

...

∆ 3 y0

...

∆ y0
∆2 y0

y1


∆ y1
2

∆ y1

y2

..
.

∆y2
..
.

y3
..
.
Giả sử các mốc nội suy cách đều

Công thức Newton tiến: tính t =

P (x) =



h

k −1
n
X

∆k y0 Y

k!

k =0

Cơng thức Newton lùi: tính t =

∆ 2 y0
2!

x − xn
h

k!

n bang so moc -1

t (t − 1) + · · · +

∆n y0
n!

t (t − 1) · · · (t − n + 1)

(t + i)
(3.5)

i=0


= yn + ∆yn−1 t +

(3.4)



k −1
n
X
∆k yn−k Y
k =0

h lla khoang cách giӳa 2 mӕc nӝi
suy

(t − i)

i=0

= y0 + ∆y0 t +

P (x) =

xi − xi −1 = h, ∀i = 1, n.

x − x0

∆2 yn−2
2!


t (t + 1) + · · · +

∆ n y0
n!

t (t + 1) · · · (t + n − 1)

Ví dụ 3.4. Trong Ví dụ 3.2, tìm đa thức nội suy bằng đa thức nội suy Newton.

Giải. Các mốc nội suy cách đều với h = 1. Ta có bảng sai phân

∆ 2 yi

∆yi

yi
4

−1

3

0
6

−1

2

∆3 yi


6

5
7
Công thức Newton tiến: t =

x − (−1)
1

= x + 1 và

P (x) = 4 + (−1) t +

0

6

t (t − 1) (t − 2)
2!
3!
= 4 − (x + 1) + (x + 1) x (x − 1) = x 3 − 2x + 3.

Công thức Newton lùi: t =

x −2
1

t (t − 1) +



6

6
t (t + 1) (t + 2)
3!
= 7 + 5 (x − 2) + 3 (x − 2) (x − 1) + (x − 2) (x − 1) x

P (x) = 7 + 5t +

2!

t (t + 1) +

= x 3 − 2x + 3.



14

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 3. Nội suy và xấp xỉ bằng đa thức

3.6


Nội suy spline bậc ba

3.7

Đường cong tham số



15

15

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh


lOMoARcPSD|2935381

Chương 4

Đạo hàm và tích phân bằng số
Trong Chương 3, giả sử với các cách chọn mốc nội suy thích hợp, ta xây dựng được các đa thức nội suy tương
ứng P (x) của f (x). Vì nói chung, f (x) chưa biết, nên trong các tính tốn, ta thường thay f (x) bởi P (x):
f

(k )

Z


(x) ≈ P (k) (x) , k = 0, 1, 2, ... , và

b
a

f (x) dx ≈

Z

b

P (x) dx.
a

Xét hàm số f (x), mà tại các mốc xi , i = 0, n, ta đã xác định được f (xi ) = yi . Ta có
f (x) = P (x) + r (x)
trong đó
n
X

P (x) =

yi Li (x),

i=0

r (x) =




n
f (n+1) ξ (x) Y

(n + 1)!

i=0

(x − xi ).

Để việc đánh giá sai số sau này được thuận lợi, ta thường xét các mốc nội suy cách đều, với xi − xi −1 = h, ∀i =
1, n. Khi đó

P (x) =

n
k −1
X
∆k y0 Y

k!

k =0

r (x) =
với t =

x − x0

4.1


Đạo hàm bằng số

h

hn+1

(n + 1)!

i=0

(t − i),

t (t − 1) · · · (t − n) f

(n+1)


ξ (x)

.



Giả sử g (x) = f (n+1) ξ (x) khả vi tới cấp cần thiết1 . Ta có
f

Ở đây P ′ (x) = ∂t P · ∂x t, với ∂x t =
r
1


(k )

(x) =

hn+1
(n + 1)!

1
h

(k )

(x) = P (k ) (x) + r (k ) (x)

, và tổng quát P (k ) (x) =

(

k  
X
k
i=0

i

1
hk

∂t k P. Ngoài ra


∂x i [t (t − 1) · · · (t − n)] × g

(k −i)

)

(x)

Giả thiết này khó có thể kiểm tra được, vì ngồi f ra, bản thân ξ (x) cũng chưa biết

16

Downloaded by EBOOKBKMT VMTC ()


lOMoARcPSD|2935381

Chương 4. Đạo hàm và tích phân bằng số

=

hn+1
(n + 1)!

(

17

k  

X
k

i

i=0

∂t i [t (t − 1) · · · (t − n)]

1
hi

×g

(k −i)

)

(x)



= O hn−k +1 .

Trong tính tốn, có thể n rất lớn. Khi đó, ta khơng nội suy f (x) tại tất cả các mốc xi , i = 0, n. Với mỗi x, để xấp
xỉ f (k) (x), ta chọn một số lượng mốc liên liếp nhất định sao cho bên trái và bên phải x có số mốc bằng nhau, hoặc
cùng lắm là chênh nhau một mốc. Sau đó mới xây dựng đa thức nội suy của f (x) tại các mốc đó.

4.1.1


Cơng thức hai điểm

Với hai mốc nội suy x0 , x1 :
P (x) = y0 + (y1 − y0 ) t

Ta được
f ′ (x0 ) =

y1 − y0
h

 y1 − y0
h
− f ′′ ξ (x0 ) =
+ O (h)
h

2

gọi là công thức sai phân tiến. Tương tự, ta cũng có cơng thức sai phân lùi
f ′ (x1 ) =

y1 − y0
h

+

 y1 − y0
h ′′
f ξ (x1 ) =

+ O (h) .
2
h

Nếu chủ yếu sử dụng công thức sai phân tiến để xấp xỉ f ′ (xi ), thì
f ′ (xi ) =


f (xn ) =

1
2
3

4
5
6

yi+1 − yi
h

yn − yn−1
h

n = 2
Y = MatrixSymbol ( ’Y ’ , n , 1)
D = [ Y [ i ] for i in range ( n ) ]

12


13

N *= ( t - i ) / ( i + 1)

8
9
10
11

P += N

14
15

16
17
18
19

20
21
22

2
h
 yn − yn−1
h ′′
+ f ξ (xn ) =
+ O (h) .
2

h

(4.1)

from sympy import *
x , t , h , x0 = symbols ( ’x t h x0 ’)
g = symbols ( ’g ’ , cls = Function )

P = D [0]
for k in range (1 , n ) :
for i in range ( n - k ) :
D [ i ] = D [ i + 1] - D [ i ]
N = D [0]
for i in range ( k ) :

7

 yi+1 − yi
h
− f ′′ ξ (xi ) =
+ O (h) , i = 0, n − 1, và

P
k =
r =
for
r

# n mốc nội suy x0 , x1 , ... , xn−1 , ứng với công thức n–điểm
# sai phân


# đa thức nội suy
# ∆k yi

#

∆k y0
k!

t (t − 1) · · · (t − k + 1)


# t −Y0,0 + Y1,0 + Y0,0
1
1 / factorial ( n ) * g ( x )
i in range ( n ) :
*= x - x0 - i * h

# cấp đạo hàm

for i in range ( n ) :
display (( P . diff (t , k ) / h ** k ) . subs (t , i ) )
display ( r . diff (x , k ) . subs (x , x0 + i * h ) )

# P k (xi )
# r (k ) (xi )

Chương trình Python 4.1: Lập cơng thức tính gần đúng đạo hàm

4.1.2


Cơng thức ba điểm

Với ba mốc nội suy x0 , x1 , x2 :
P (x) = y0 + (y1 − y0 ) t +


y2 − 2y1 + y0
2

t (t − 1)

17

Downloaded by EBOOKBKMT VMTC ()

Nguyễn Đức Thịnh



×