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

Giáo trình phương pháp số

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 (1.81 MB, 100 trang )

NGUYỄN CHÍ TRUNG
NGUYỄN TÂN ÂN
NGUYỄN THỊ THU THỦY

PHƯƠNG PHÁP TÍNH
VÀ BÀI TOÁN TỐI ƯU
HÀ NỘI - 2010
NCT-FIT-HNUE Computional methods and Optimization Problems
MỤC LỤC
MỞ ĐẦU 5
Chương 1 TÍNH GẦN ĐÚNG VÀ SAI SỐ 8
1. Số gần đúng và sai số của nó 8
1.1. Số gần đúng và sai số 8
1.2. Chữ số có nghĩa và chữ số đáng tin 9
1.3. Cách viết số gần đúng 10
1.4. Sai số làm tròn 10
2. Sự lan truyền sai số 11
2.1. Mở đầu 11
2.2. Sai số của tổng 11
2.3. Sai số của tích 12
2.4. Sai số của thương 13
2.5. Sai số của hàm bất kỳ 14
3. Các loại sai số 14
3.1. Các loại sai số mắc phải khi giải một bài toán thực tế 14
3.2. Các loại đánh giá sai số phương pháp 15
BÀI TẬP 15
Chương 2. TÍNH GIÁ TRỊ VÀ XẤP XỈ HÀM SỐ 16
1. Tính giá trị hàm số 16
1.1. Thuật toán Hoocner tính giá trị đa thức 16
1.2. Tính hàm nhờ chuỗi lũy thừa 17
2. Bài toán nội suy hàm số 18


2.1. Đa thức nội suy Lagrange trên mốc không đều 18
2.2. Đa thức nội suy Lagrange với mốc cách đều 22
2.3. Đa thức nội suy Newton trên mốc không cách đều 23
2.4. Đa thức nội suy Newton trên mốc cách đều 27
2.5. Nội suy tổng quát (nội suy Hermit) 29
3. Xấp xỉ bình phương cực tiểu 30
3.1. Phương pháp chung 30
3.2. Một số dạng hàm cụ thể. 30
BÀI TẬP 33
CHƯƠNG 3 GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH PHI TUYẾN 34
1. Nghiệm và khoảng phân ly nghiệm 34
2. Phương pháp chia đôi 35
2.1. Mô tả phương pháp 35
2.2. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp chia đôi 36
3. Phương pháp lặp đơn 37
3.1. Mô tả phương pháp 37
3.2. Cách chọn ϕ(x) thỏa điều kiện hội tụ của phương pháp lặp đơn 39
2
NCT-FIT-HNUE Computional methods and Optimization Problems
3.3. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp lặp đơn 40
4. Phương pháp tiếp tuyến (Newton) 40
4.1. Mô tả phương pháp 40
4.2. Sự hội tụ của phương pháp 41
4.3. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp Newton 42
5. Phương pháp cát tuyến 43
5.1. Mô tả phương pháp 43
5.2. Thuật toán tìm nghiệm xấp xỉ bằng phương pháp Cát tuyến 43
6. Phương pháp dây cung 44
6.1. Mô tả phương pháp 44
6.2. Sự hội tụ của phương pháp 44

BÀI TẬP 44
Chương 4 PHƯƠNG PHÁP SỐ TRONG ĐẠI SỐ TUYẾN TÍNH 46
1. Đại số ma trận 46
1.1. Vectơ cột và vectơ hàng 46
1.2. Ma trận 47
2. Hệ phương trình đại số tuyến tính 50
2.1. Giới thiệu 50
2.2. Giới thiệu phương pháp Cramer 51
2.3. Phương pháp khử Gauss 52
2.4. Phương pháp Gauss-Seidel 55
2.5. Phương pháp giảm dư 59
2.6. Vấn đề ổn định của nghiệm của hệ phương trình 62
3. Tính gần đúng giá trị riêng và véc tơ riêng của ma trận 63
3.1. Giới thiệu 63
3.2. Ma trận đồng dạng 64
3.3. Tìm giá trị riêng bằng phương pháp Đa-nhi-lép-ski 64
3.4. Tìm vectơ riêng bằng phương pháp Đan-nhi-lep-ski 67
BÀI TẬP 69
Chương 5 TÍNH GẦN ĐÚNG ĐẠO HÀM VÀ TÍCH PHÂN 71
1. Tính gần đúng đạo hàm 71
1.1. Đạo hàm cấp 1 71
1.2. Đạo hàm cấp hai 71
2. Tính gần đúng tích phân 72
2.1. Giới thiệu bài toán 72
2.2. Công thức hình chữ nhật trung tâm 72
2.3. Công thức hình thang 74
2.4. Công thức Simpson (hay công thức Parabol) 76
2.5. Các thuật toán “hcn, ht, sim” tính gần đúng tích phân xác định 78
Chương 6 BÀI TOÁN QUI HOẠCH TUYẾN TÍNH 79
1. Giới thiệu bài toán tối ưu tổng quát 79

1.1. Ví dụ mở đầu 79
1.2. Mô hình bài toán tối ưu tổng quát 79
3
NCT-FIT-HNUE Computional methods and Optimization Problems
1.3. Dạng chuẩn tắc và dạng chính tắc 80
2. Đặc điểm của tập các phương án của bài toán QHTT 81
2.1. Tập lồi và đa diện lồi 81
2.2. Đặc điểm của tập các phương án của bài toán QHTT 83
3. Thuật toán đơn hình giải bài toán QHTT 84
3.1. Đường lối chung của thuật toán 84
3.2. Các định lý cơ bản của thuật toán đơn hình 85
3.4. Thuật toán đơn hình 89
4. Tìm phương án cực biên ban đầu 94
4.1. Nhận xét 94
4.2. Định nghĩa ràng buộc chuẩn 95
4.3. Phương pháp phạt hay phương pháp bài toán M 96
BÀI TẬP 100

4
NCT-FIT-HNUE Computional methods and Optimization Problems
MỞ ĐẦU
1. Giới thiệu môn học Phương pháp tính
Có các tên gọi sau: Phương pháp tính (Computional methods), phương pháp số (Numerical
methods), Giải tích số (Numerical analysis), rộng hơn nữa là Toán học tính toán (Computional
mathematics, Numerical mathematics) (theo Bách khoa toàn thư về khoa học và kỹ thuật, NXB
Mc. Graw Hill 1992).
Là một khoa học nghiên cứu cách giải gần đúng, mà chủ yếu giải bằng số (gọi là giải số) các
phương trình, các bài toán xấp xỉ hàm số và các bài toán tối ưu hóa. Một cách ngắn gọn là giải
các bài toán bằng số trên máy tính.
2. Phân biệt toán tính và toán lí thuy

ết
Toán lí thuyết quan tâm đến các vấn đề định tính của bài toán: tồn tại, duy nhất, tính chất nghiệm
của các bài toán.
Toán tính quan tâm đến xây dựng phương pháp, thuật toán để để tìm nghiệm bài toán trên máy
tính.
Thuật toán được xây dựng phải thỏa mãn yêu cầu về tính khả thi và tính ổn định.
Một thuật toán là khả thi nếu nó thực hiện được trên máy tính. Một thuật toán gọi là ổn định nếu
sai số tính toán (do máy tính làm tròn số) không b
ị khuếch đại trong quá trình tính.
Ví dụ 1 (tính ổn định). Giả sử cần tính tích phân
)1(
1
1
0
≥=


ndxexI
xn
n
.
Tích phân từng phần: đặt u=x
n
thì du = nx
n-1
dx; đặt dv=e
x-1
dx thì v = e
x-1
ta được

.1
1
1
1
0
11
0
1

−−−
−=−=

n
xnxn
n
nIdxexnexI

Ngoài ra ta có
.3679.0
1
)1(
1
0
11
1
0
1
≈=−==
−−


e
xedxexI
xx

Như vậy, để tính
ta thu được công thức truy hồi tính được In về mặt lý thuyết:
n
I
.3679.0
,2,1
1
1
=
≥−=

I
nnII
nn

Về mặt thực tế tính trên máy tính không cho kết quả mong muốn khi n lớn. Cụ thể là tính trên
máy tính với n=25 ta được bảng kết quả sau (liệt kê theo từng hàng)
0.3679 0.2642 0.2073 0.1709 0.1455
0.1268 0.1124 0.1009 0.0916 0.0839
5
NCT-FIT-HNUE Computional methods and Optimization Problems
0.0774 0.0718 0.0669 0.0627 0.0590
0.0555 0.0572 -0.0295 1.5596 -30.1924
635.0403 -13969.8864 321308.3881 -7711400.3133 192785008.8325
Kết quả giảm dần từ 0.3679 (khi n=1) đến 0.0555 (khi n=16)
Kết quả sau đó kết quả thay đổi thất thường và giá trị tuyệt đối tăng rất nhanh.

Điều này hoàn toàn không phù hợp với lý thuyết vì theo lý thuyết thì
khi 0→
n
I

→n do đó
.
1
1
0
1
0
+
=≤≤

n
dxxI
n
n

Hiện tượng kết quả tính toán nêu trên là sự không ổn định của thuật toán: sai số ban đầu khi
tính
n
I
3679.0
1
1
≈=
e
I đã bị khuyếch đại trong quá trình tính.

Nguyên nhân: thay vì
e
I
1
1
= ta thu được
, trong đó
δ
+=
11
~
II
δ
là sai số. Giả sử các tính toán
tiếp theo không mắc phải sai số. Với n = 2 ta được
.22)21()(21
~
21
~
21112
δδδ
−=−−=+−=−= IIIII

Thu được
2
~
I với sai số
δ
2|
~

|
22
=− II . Tương tự, ở bước thứ n thay cho giá trị đúng ta thu
được giá trị gần đúng
n
I
n
I
~
với sai số
δ
!|
~
| nII
nn
=−
. Do đó, dù
δ
có bé thì khi n đủ lớn, sai số vẫn
đủ lớn và ta không thể nhận được giá trị chấp nhận được là gần đúng cho
.
n
I
Ví dụ 2 (tính khả thi). Cho hệ phương trình đại số tuyến tính
bAx =
, (1)
trong đó A là ma trận vuông cấp n với định thức khác 0.
Về lý thuyết có thể giải hệ trên bằng công thức Cramer



=
i
i
x , (i =1, , n), (2)
trong đó
, còn nhận được từ Adet=∆
i


do việc thay cột thứ i bởi cột tự do b. Nhưng việc
tính toán ra nghiệm bằng số cụ thể lại là một việc không đơn giản. Theo công thức (2) cần phải
tính n +1 định thức cấp n. Mỗi định thức là tổng của n! số hạng, mỗi số hạng là tích của n thừa
số. Do vậy, để tính mỗi số hạng cần thực hiện n – 1 phép nhân. Như vậy, tất cả
số phép tính nhân
cần thực hiện trong (2) là Q = n!(n+1)(n-1).
Giả sử n = 20. Khi đó
. Nếu tốc độ của máy tính là 100 triệu phép tính/giây thì
thời gian để thực hiện khối lượng tính toán trên là
giờ = năm. Một thời
gian lớn vô cùng! Và như vậy, thuật toán nêu trên là hoàn toàn không khả thi dù máy tính có
tăng tốc độ lên gấp hàng nghìn, hàng vạn lần.
20
10*7073.9≈Q
9
10*2.6965
5
10*0782.3
6
NCT-FIT-HNUE Computional methods and Optimization Problems
Ở trên ta mới chỉ xét việc giải một hệ cỡ 20, mà thực tế khoa học và công nghệ đòi hỏi phải giải

các hệ phương trình đại số tuyến tính cỡ hàng vạn, hàng triệu hoặc hơn thế nữa. Vì thế, cần phải
nghiên cứu đề xuất các phương pháp hiệu quả để có thể giải được các hệ thống phương trình cỡ
lớn. Đó là một trong các nhiệ
m vụ của ngành Phương pháp tính.
Chương 1 gồm các nội dung sau:
Các khái niệm cơ bản: số xấp xỉ (hay số gần đúng), sai số tuyệt đối và sai số tương đối, chữ số có
nghĩa và chữ số đáng tin, cách viết số gần đúng, sai số quy tròn và quy tắc làm tròn để số còn lại
gồm các số đáng tin;
Sự lan truyền sai số đầu vào dẫn đến sai số đầu ra x
Æ f(x), từ đó tính được sai số của tổng, hiệu,
tích, thương.
Các loại sai số: giới thiệu các nguyên nhân dẫn đến sai số: sai số khi xây dựng mô hình hóa các
đối tượng, sai số về phương pháp thực hiện, sai số do tính toán. Và, cách đánh giá tiên nghiệm,
hậu nghiệm đối với sai số.
7
NCT-FIT-HNUE Computional methods and Optimization Problems
Chương 1 TÍNH GẦN ĐÚNG VÀ SAI SỐ
1. Số gần đúng và sai số của nó
1.1. Số gần đúng và sai số
Định nghĩa 1.1 Số a được gọi là số gần đúng hay số xấp xỉ của số đúng
A
(tức giá trị đúng của
đại lượng cần quan tâm) và ký hiệu là
Aa

, nếu sai khác không đáng kể. Nếu a A Aa
<
thì
được gọi là xấp xỉ thiếu, còn nếu thì được gọi là xấp xỉ thừa của a Aa > a
A

.
Thí dụ: Đối với số 2A = thì
1
1, 41a
=
là xấp xỉ thiếu, còn
2
1, 42a
=
là xấp xỉ thừa vì
2 1,4142135623 = ; đối với số 3,1415926535
π
=
thì 3,14 là xấp xỉ thiếu, còn 3,15 là xấp xỉ
thừa.
Định nghĩa 1-1.1 Số
||
A
a

=−
được gọi là sai số tuyệt đối của số gần đúng a .
Thông thường số đúng
không biết nên ta cũng không biết chính xác sai số tuyệt đối của số
gần đúng
, mà chỉ có thể đánh giá nó. Vì thế ta có thể xem đánh giá tốt nhất của ∆ là sai số
tuyệt đối giới hạn
của , đó là số bé nhất có thể biết được, thỏa mãn điều kiện
A
a

a
a

a
A ∆≤−
α
(1-1.1)
Từ bất đẳng thức trên suy ra

aa
aAa ∆
+
≤≤∆− . (2-1.1)
Để đơn giản người ta thường viết
a

Aa
=
±∆ để ám chỉ rằng
a


là sai số tuyệt đối giới hạn c a ủ
a
.
Ví dụ 1-1.1. Nếu coi 14,3=a là xấp xỉ của
π
thì sai số tuyệt đối là 0,002
a


≤ .
Sai số tuyệt đối không phản ánh đầy đủ mức độ chính xác của phép đo hoặc tính toán. Chẳng
hạn, đo chiều dài của hai thanh sắt bằng cùng một thước đo ta nhận được các kết quả sau:
1
±=

nhưng rõ ràng là phép đo thứ
Định nghĩa 2-1.1. Sai số tương đối của số gần đúng , ký hiệu bở
cmcml
2
±=
Tuy sai số tuyệt đối của hai phép đo trên là như nhau (= 0,1 cm)
cmcml
1,05,7
1,06,115
nhất chính xác hơn. Để thể hiện điều đó ta đưa vào khái niệm sau.
a i
δ
, là
A
aA
A

=

=
δ
(3-1.1)
ết
nhận sai số tương đối của số

gần đúng
là số
với giả thi là
0A ≠ .
Tuy nhiên, do số A và
∆ không biết nên trong thực hành ta sẽ chấp

a
a
δ
d đây, gọi là sai số tương đối giới hạn của a ưới
8
NCT-FIT-HNUE Computional methods and Optimization Problems
a
a
a

=
δ
(4-1.1)
Người ta thường tính sai số tương đối bằng phần trăm. Vì thế
%100
||
×

=
a
a
a
δ

.
Trở lại phép đo chiều dài của các thanh sắt ta thấy rằng sai số tương đối của

1
l
1
0,1
100% 0,09%
115,6
δ
=×= , của là
2
l
2
0,1
100% 1,33%
7,5
δ
=× = . Rõ ràng là
1
δ
nhỏ hơn rất nhiều
so với
2
δ
và phép đo thứ nhất chính xác hơn nhiều so với phép đo thứ hai.
1.2. Chữ số có nghĩa và chữ số đáng tin
Một số viết ở dạng thập phân có thể gồm nhiều chữ số. Chẳng hạn số 20,15 có 4 chữ số; số
3,1412 có 5 chữ số.
Định nghĩa 1-1.2. Những chữ số có nghĩa của một số là những chữ số của số đó kể từ chữ số

khác không đầu tiên tính từ trái sang phải.
Ví dụ 1-1.2. Trong các số sau, những chữ số được gạch dưới là những chữ số có nghĩa: 12,57;
20,15 ; 0,03047 ; 0,304500 .
Giả sử
là số gần đúng của và có biểu diễn a A a
nmm −−−−
±
ααααααα
,
2101`

tức là

±=
++++++++±=






s
s
s
n
n
m
m
m
m

a
10.
)10 10.10.10 10.10.(
1
1
0
01
1
1
α
αααααα
(1-1.2)
trong đó
s
α
là những số nguyên từ 0 đến 9, gọi là chữ số hàng thứ s của số a.
Định nghĩa 2-1.2. Gọi là sai số tuyệt đối của số , chữ số hàng thứ s của số a được gọi là
chữ số đáng tin (hay chữ số đúng) nếu sai số tuyệt đối của số a không vượt quá một nửa đơn vị
của hàng thứ s (tức là
a

a
s
a
10.
2
1
≤∆ ), và gọi là chữ số nghi ngờ nếu sai số tuyệt đối của số a
không vượt quá một nửa đơn của hàng thứ s (tức là
s

a
10.
2
1
>∆
), trong đó là sai số tuyệt đối
của số a.

a

Từ định nghĩa trên suy ra rằng nếu α
s
là chữ số đáng tin thì mọi chữ số có nghĩa bên trái nó đều
là đáng tin, và nếu α
s
là đáng ngờ thì mọi chữ số bên phải nó đều là đáng ngờ. Việc đánh giá
các chữ số đáng tin và đáng ngờ của một số gấn đúng a không phụ thuộc vào bản thân các chữ số
đó mà phụ thuộc vào sai số tuyệt đối của a và vị trí của chúng.
9
NCT-FIT-HNUE Computional methods and Optimization Problems
Ví dụ 2-1.2. Số gần đúng a = 3.7284 với
a

= 0.0047 có 3 chữ số đáng tin là 3, 7 và 2, còn các
chữ số 8 và 4 là đáng ngờ.
1.3. Cách viết số gần đúng
Có hai cách viết số gần đúng.
Cách 1: Viết kèm theo sai số
a
a ∆±

Cách này thường dùng để viết các kết quả đo đạc, thực nghiệm, trong đó là sai số của thiết
bị đo.
a

Ví dụ 1-1.3. 150 cm ± 0.1 cm; 65 kg ± 0.1 kg
Cách 2: Viết theo quy ước: mọi chữ số có nghĩa đều đáng tin, có nghĩa là sai số tuyệt đối
a


không lớn hơn một nửa đơn vị ở hàng cuối cùng.
Ví dụ 2-1.3. Theo cách này ta viết a = 23.54 nếu
2
1
10 0.005
2
a

∆≤ × = .
1.4. Sai số làm tròn
Khi thực hiện các tính toán nếu số có quá nhiều chữ số trong biểu diễn thập phân, chẳng hạn
=3.14151926535, thì để cho thuận tiện người ta thu gọn số này bằng cách bỏ bớt một số chữ
số cuối để được một số

a
a
'a

ngắn gọn hơn và gần đúng nhất với . Việc làm này được gọi là quy
tròn hoặc làm tròn số. Số
a

'
|
a
aa'|
θ
=− được gọi là sai số làm tròn.
Dưới đây là quy tắc làm tròn số nhằm bảo đảm cho sai số làm tròn không vượt quá nửa đơn vị
của chữ số cuối cùng được giữ lại:

Nếu bỏ đi nhiều chữ số khác 0 và chữ số bỏ đi đầu tiên ≥ 5 thì thêm vào chữ số giữ lại
cuối cùng một đơn vị, còn nếu chữ số bỏ đi đầu tiên < 5 thì để nguyên chữ số giữ lại cuối
cùng.

Nếu chỉ bỏ đi một chữ số 5 thì chữ số được giữ lại cuối cùng nếu là chữ số lẻ thì tăng
thêm 1, còn nếu là chẵn thì giữ nguyên.
Ví dụ 1-1.4. Đối với số =3.14151926535 ta làm tròn thành 3.141519, 3.14152, 3.1415, 3.142,
3.14 nếu cần giữ lại 6, 5, 4, 3 hoặc 2 chữ số sau dấu chấm thập phân. Sai số làm tròn tương ứng
không vượt quá
a
1
2
×10
-6
,
1
2
×10
-5
,
1

2
×
10
-4
,
1
2
×
10
-3

1
2
×
10
-2
.
Ví dụ 2-1.4. Số 12.25 ta làm tròn thành 12.2 với sai số là 0.05 =
1
2
×
10
-1
.
Bây giờ giả sử a là xấp xỉ của A với sai số tuyệt đối là
a

. Giả sử ta làm tròn a thành a' với
sai số làm tròn là
'a

θ
, tức là | a' - a| ≤
'a
θ
. Kho đó sai số tuyệt đối của số a’ là
=| A-a’| = | A-a +a-a’| ≤ | A -a| + | a - a’| ≤
'a

a

+
'a
θ

Như vậy việc quy tròn thường làm tăng sai số tuyệt đối. Điều này dẫn đến kết cục là sau khi làm
tròn một số chữ số đáng tin trở nên đáng ngờ.
10
NCT-FIT-HNUE Computional methods and Optimization Problems
Ví dụ 3-1.4. Cho a = 0.35 với =0.003. Do đó các chữ số 3 và 5 là đáng tin. Sau khi làm tròn
thành a’ = 0.4 ta có
=
a
a

'a
∆ ∆ +
'a
θ
= 0.003 + 0.05 = 0.053 >
1

2
×
10 . Vì thế chữ số 4 trong a’ là
đáng ngờ. Trong trường hợp này không nên quy tròn số
a .
-1
2. Sự lan truyền sai số
2.1. Mở đầu
Trên đây ta đã định nghĩa các loại sai số của một số gần đúng. Trong thực tế tính toán các đại
lượng gần đúng thường xuất hiện trong một biểu thức phức tạp. Thí dụ thể tích của hình cầu
được tính bằng V = (1/6)πd
3
, trong đó ta chỉ biết xấp xỉ của số π và đường kính d. Vấn đề đặt
ra là biết sai số của π và d, liệu ta có thể tính được sai số của V không. Một cách tổng quát,
vấn đề đặt ra là sai số của các dữ liệu đầu vào lan truyền và dẫn đến sai số của kết quả tính toán
như thế nào?
Để giải quyết vấn đề này xét hàm số u của 2 biến số
x và y:
u = f(x,y)
Giả sử x là xấp xỉ của giá trị đúng X, y là xấp xỉ của giá trị đúng Y và ta coi u là xấp xỉ của giá
trị đúng u = f(X,Y). Biết sai số về x và y, hãy tính sai số của u.
Ký hiệu ∆x = x - X là số gia của x, còn dx là vi phân của biến x.
Theo định nghĩa về sai số tuyệt đối, ta có | ∆x | ≤

x
.
Theo công thức vi phân của hàm nhiều biến ta có:
du =
x
u



dx +
y
u


dy
Từ đây ta có
∆u ≈
x
u


∆x +
y
u



y
Suy ra
yxu
y
u
x
u




+∆


=∆
|||| (1-2.1)
Chú ý:
Công thức (1-2.1) là công thức quan trọng để tính sai số của hàm hai biến u = f(x,y) bất
kỳ dựa vào đạo hàm riêng của từng biến. Công thức (1-2.1) được sử dụng trong việc chứng minh
các công thức tính sai số của tổng, hiệu, tích thương biểu diễn hàm hai biến.
2.2. Sai số của tổng
Cho u = x y.±
Ta có
11
NCT-FIT-HNUE Computional methods and Optimization Problems
x
u


= 1, 1
u
y



.
Do đó, từ (1.6) suy ra

(1-2.2)
yx
u ∆+∆=∆

Như vậy,
sai số tuyệt đối của một tổng đại số bằng tổng các sai số tuyệt đối của các số hạng.
Ví dụ 1-2.2. Giả sử x = 3.6 và y = 6.4 là hai số đã được làm tròn. Tính tổng của chúng và xác
định sai số của tổng thu được.
Giải. Vì x và y đã được làm tròn đến một chữ số sau dấu chấm thập phân nên sai số tuyệt đối của
chúng là
x
∆ =
y
∆ = 0.05. Do đó u = x + y =3.6 + 6.4 =10.0 với sai số tuyệt đối là ∆
u
=

x
+
y
∆ = 0.05 + 0.05 = 0.1, tức là u = 10 ± 0.1.
Chú ý: Xét trường hợp u = x - y và x, y cùng dấu. Lúc đó ta có
yx
yx
u
u
u


+

=

=

)(
δ

Ta thấy rằng nếu | x -y | rất bé thì sai số tương đối rất lớn.
Ví dụ 2-2.2. Giả sử x = 15.29 và y = 15.14 là hai số đã được làm tròn. Xác định sai số tương đối
của x, y và của hiệu hai số trên.
Giải. Ta có hiệu u = x - y = 15.29 -15.14 = 0.15. Do x và y đã được làm tròn đến 2 chữ số sau
dấu chấm thập phân nên sai số tuyệt đối của chúng là

x
=

y
= 0.005. Vì thế sai số tuyệt đối
của hiệu là

u
=
x
∆ + ∆
y
= 0.01. Do đó sai số tương đối của hiệu là δ
u
=∆
u
/ |u| = 0.01/ 0.15 =
0.066 trong khi sai số tương đối của x và y tương ứng là
000327.0
29.15
005.0

==

=
x
x
x
δ
,
000330.0
14.15
005.0
==

=
y
y
y
δ
. Rõ ràng là sai số tương đối của hiệu lớn gấp 200 lần sai số tương
đối của từng số x và y.
Trong tính toán người ta cố gắng tránh việc trừ hai số gần nhau bằng cách biến đổi biểu thức của
hiệu (trong những trường hợp có thể được).
Thí dụ: Để tính hiệu u =
200210 − ta có thể biến đổi
)200201(
1
)200201(
)200201)(200201(
+
=

+
+−
=u
2.3. Sai số của tích
Giả sử u = xy. Ta có

x
y
u
=


.
Từ (1-1.2) suy ra
12
NCT-FIT-HNUE Computional methods and Optimization Problems

yxu
xy ∆+∆=∆
Do đó
yx
u
u
y
y
x
x
u
δδδ
+=


+

=

=

Vậy

yxu
δ
δ
δ
+
= (1-2.3)
Ta có quy tắc sau:
Sai số tương đối của một tích bằng tổng các sai số tương đối của các thừa số của tích.
Ví dụ 1-2.3. Giả sử X và Y là hai cạnh của một hình chữ nhật mà độ dài của chúng (tính bằng
cm) được làm tròn đến một chữ số sau dấu chấm thập phân là 15.6 và 8.2. Hỏi giá trị thực sự của
diện tích của hình chữ nhật nằm trong khoảng nào?
Giải: Ký hiệu x = 15.6, y = 8.2. Như vậy x là giá trị gần đúng của X và y là giá trị gần đúng của
Y với sai số tuyệt đối là 0.05. Do đó sai số tươ
ng đối của chúng là
0061.0
2.8
05.0
,0032.0
6.15
05.0
====

yx
δδ
. Theo (3-1.2) sai số tương đối của tích là
0093.00061.00032.0
=
+=
u
δ
. Vì u = x * y =15.6 * 8.2 =127.92 nên sai số tuyệt đối của u là
19.10093.0*92.127|| ===∆
uu
u
δ
. Do đó, 19.192.127*
±
=
YX , tức là giá trị thực sự của
diện tích của hình chữ nhật nằm trong khoảng từ 126.73 đến 129.11.
2.4. Sai số của thương
Cho . Ta có: yxu /=
x
u


=
y
1
,
y
u



=
2
y
x


Từ (1.6) suy ra

yxu
y
x
y
∆+∆=∆
2
1

Do đó
yxyxu
u
yxx
y
y
x
yx
y
u
∆+∆=









∆+∆=∆=

111
||
2
.
Suy ra:

yxyx
δ
δ
δ
+=
/
(1-2.4)
Ta có quy tắc sau:
Sai số tương đối của một thương bằng tổng các sai số tương đối của số chia và số bị chia.
13
NCT-FIT-HNUE Computional methods and Optimization Problems
2.5. Sai số của hàm bất kỳ
Cho hàm . Theo công thức vi phân của hàm nhiều biến ta có: ), ,,(
21 n
xxxfu =

du =
1
x
u


dx
1
+
2
x
u


dx
2
+ +
n
x
u


dx
n

Từ đây ta có
∆u ≈
1
x
u



∆x
1
+
2
x
u


∆x
2
+ +
n
x
u


∆x
n

Suy ra
n
x
n
xxu
x
u
x
u

x
u



++∆


+∆


=∆
21
21
(1-2.5)
Ví dụ 1-2.5. Tính sai số tuyệt đối và sai số tương đối của thể tích hình cầu:
V = (1/6)πd
3
nếu cho đường kính d = 3.7 ± 0.05 cm và π = 3.14 ± 0.0016.
Giải. Xem π và d là đối số của hàm V, áp dụng (1-2.4) và (1-2.5) ta có
δ
V
= δ
π
+ 3δ
d
(Hệ số 1/6 không ảnh hương đến sai số tương đối)
δ
π
= 0.0016/3.14 = 0.0005

δ
d
= 0.05/3.7 = 0.0135
Suy ra δ
V
= 0.0005 + 3 * 0.0135 = 0.04
Giá trị gần đúng của thể tích là V = (1/6)πd
3
= 26.5 cm
3
. Do đó, ta tính được sai số tương đối
của nó là ∆
V
= |V|*δ
V
= 26.5*0.04 = 1.06 ≈ 1.1 cm
3
. Vì thế
V = 26.5 ± 1.1 cm
3
.
3. Các loại sai số
3.1. Các loại sai số mắc phải khi giải một bài toán thực tế
Như đã biết, để nghiên cứu một đối tượng thực tế, chẳng hạn một đối tượng vật lý như dòng chảy
trong sông, hiện tượng dẫn nhiệt trong một thanh vật chất, hay một đối tượng kinh tế-xã hội,
người ta thường xây dựng mô hình toán học của đối tượng và nghiên cứu đối tượng thông qua
mô hình. Do tính chất phức tạp của đối tượng nên người ta không thể đư
a hết tất cả các yếu tố
liên quan vào mô hình, mà buộc phải loại bỏ những yếu tố không quan trọng và ảnh hưởng ít đến
đối tượng. Kết quả là người ta chỉ nhận được mô hình toán học phản ánh gần đúng đối tượng cần

nghiên cứu. Sai số mắc phải trong quá trình này gọi là sai số mô hình.
Khi đã có mô hình toán học, thường là các phương trình vi phân, tích phân hoặc phương trình đại
số, người ta phải gi
ải nó. Nói chung người ta không nhận được lời giải đúng của một bài toán
mà chỉ có thể nhận được lời giải gần đúng bằng một phương pháp nào đấy, thí dụ phương pháp
lặp giải phương trình phi tuyến, phương pháp hình thang tính tích phân, . Sai số mắc phải khi
14
NCT-FIT-HNUE Computional methods and Optimization Problems
phải giải một bài toán bằng phương pháp gần đúng được gọi là sai số phương pháp. Đây là loại
sai số mà chúng ta cần quan tâm khi nghiên cứu các phương pháp gần đúng (giải tích hoặc số trị)
vì sai số này phản ánh chất lượng của phương pháp và thông qua nó có thể đánh giá được khối
lượng tính toán cần thiết để có được lời giải với một độ chính xác cho trước.
Sau khi đã có phương pháp ho
ặc thuật toán giải một bài toán cần phải thực hiện nó trên máy tính
để có được lời giải số. Trong quá trình tính toán bằng số này không thể tránh khỏi việc làm tròn
số. Sai số xảy ra trong công đoạn này được gọi là sai số tính toán.
Một loại sai số nữa có thể mắc phải khi giải một bài toán thực tế là sai số dữ liệu khi các dữ liệu
đầu vào của bài toán nhận được bằng các phép đ
o đạc hoặc quan sát thực nghiệm hoặc là lời giải
gần đúng của một bài toán khác.
3.2. Các loại đánh giá sai số phương pháp
Sai số của một phương pháp số có thể được đánh giá tiên nghiệm hoặc hậu nghiệm.
Đánh giá sai số tiên nghiệm là đánh giá sai số nhận được trước khi thực hiện tính toán. Thí dụ,
để giải một phương trình phi tuyến bằng một phương pháp lặp đơn (xem Chương 3) ta có thể
đánh giá được sai số của nghiệm gần đúng nhận được sau n lần lặp theo công thức
01
*
1
xx
q

q
xx
n
n


≤− ,
trong đó 0< q< 1, x* là nghiệm đúng, x0 là xấp xỉ ban đầu.
Đánh giá sai số hậu nghiệm là đánh giá sai số nhận được sau khi tính toán được nghiệm. Thí
dụ, sau khi tính được x
n
theo phương pháp lặp đơn (xem Chương 3) ta có đánh giá hậu nghiệm
1
*
1



≤−
nnn
xx
q
q
xx
BÀI TẬP
1. Khi xác định hằng số khí của không khí, nhận được R =29.25. Hãy xác định các giới hạn
của R biết sai số tương đối giới hạn của R là 1%.
2. Đo trọng lượng của 1 dm
3
nước ở 0

0
C nhận được: p = 999.847g ± 0.001g
Hãy xác định sai số tương đối của phép đo trên.
3. Cho số e = 2.718281828459045 Hãy quy tròn số e đến chữ số có nghĩa thứ 13, 12 và
11 và xác định sai số quy tròn tuyệt đối.
4. Lấy a=2.718 thay cho số e. Hãy xác định sai số tương đối.
5. Hãy quy tròn các số dưới đây (xem là đúng) với ba chữ số có nghĩa đáng tin và xác định
sai số tuyệt đối ∆ và sai số tương đối δ của chúng:
a) 2.1514 b) 0.16152
c) 0.01204 d) - 0.00152281
15
NCT-FIT-HNUE Computional methods and Optimization Problems
Chương 2. TÍNH GIÁ TRỊ VÀ XẤP XỈ HÀM SỐ
1. Tính giá trị hàm số
1.1. Thuật toán Hoocner tính giá trị đa thức
a) Giới thiệu thuật toán
Cho đa thức p(x) bậc n có dạng tổng quát:
p(x) = a
0
x
n
+ a
1
x
n-1
+ a
2
x
n-2
+ … + a

n-1
x + a
n
(a
0
≠ 0)
Để tính giá trị p(x
0
) cần 2n-1 phép nhân và n phép cộng. Hơn nữa các số hạng của đa thức
thường lớn nên bất lợi trong tính toán.
Nếu ta phân tích đa thức thành
p(x) = (b
0
x
n-1
+ b
1
x
n-2
+ … + b
n-2
x + b
n-1
) ( x - x
0
) + b
n
(1-1.1)

Ta có ngay p(x

0
) = b
n
.
Khai triển (1-1.1) ta được:
p(x) = b
0
x
n
– b
0
x
n-1
x
0
+ b
1
x
n-1
– b
1
x
n-1
x
0
+ b
2
x
n-1
- … - b

n-1
x
n-1
x
0
+ b
n-2
x
2
– b
n-2
xx
0
+ b
n-1
x – b
n-1
x
0
x
0
+ b
n
=

b
0
x
n
+ (b

1
x
n-1
– b
0
x
n-1
x
0
)

+ (b
2
x
n-1
– b
1
x
n-1
x
0
) + … + (b
n-2
x
2
– b
n-1
x
n-1
x

0
)

+

(b
n-1
x - b
n-2
xx
0
) + (b
n

– b
n-1
x
0
)
=

kn
kk
n
k
n
xxbbxb


=

−+

)(
01
1
0
Vậy ta có đồng nhất thức :

=

−−
−+=+++
n
k
kn
kk
n
nn
n
xxbbxbaxaxa
1
01010
)(
Đồng nhất hai vế ta có
b
0
= a
0
, b
k

- b
k-1
x
0
= a
k
, ∀ k = n,1 hay
b
k
= a
k
+ b
k-1
x
0
, hay b
k
= a
k
+ c
k
với c
k
= b
k-1
x
0
Thuật toán Hoocner tính giá trị các hệ số của đa thức trong (1-2.1) như sau :






=∀
+=
=
=

nk
cab
xbc
ab
kkk
kk
,1
01
00
(2-1.1)
Hệ (2-1.1) cho thấy chỉ cần tính n phép nhân và n phép cộng và các số hạng tham gia tính toán
bé hơn phương pháp tính trực tiếp.
b) Sơ đồ tính bằng tay
Để tính bằng tay, ta biểu diễn (2-1.1) dưới bảng sau
16
NCT-FIT-HNUE Computional methods and Optimization Problems
a
0
a
1
… a
n

x
0
c
1
… c
n

b
0
b
1
… b
n
p(x
0
)=b
n
Ví dụ 1-1.1
Tính f(x) = 2x
5
- 3x
4
+ x
3
- 4x
2
+ 7x + 8 tại x = 2 như sau
2 -3 1 -4 7 8 2
4 2 6 4 22
2 1 3 2 11 30 p(2)=30


Chú ý: Khi phương trình p(x) = 0 có nghiệm x = x
0
thì lược đồ Hoocner cho phép tìm ước của
p(x) dưới dạng q(x) = b
0
x
n-1
+ b
1
x
n-2
+ … + b
n-2
x + b
n-1
1.2. Tính hàm nhờ chuỗi lũy thừa
Nếu hàm số y = f(x) dễ tính đạo hàm mọi cấp tại x = x
0
và biểu diễn hàm dưới dạng chuỗi Taylor
dưới đây hội tụ :


=
−=
0
0
0
)(
)(

!
)(
)(
k
k
k
xx
k
xf
xf (1-1.2)
thì ta có thể tính gấn đúng


=
−≈
n
k
k
k
xx
k
xf
xf
0
0
0
)(
)(
!
)(

)( (2-1.2)
và ước lượng sai số là :

1
0
)1(
)!1(
)(
)(
+
+

+
=
n
n
n
xx
n
cf
xR
hoặc trực tiếp ước lượng từ phần dư của chuỗi.
trong đó c là điểm nào đó giữa x và x
0
Ví dụ 1-1.2. Tính sin 36
0

Đặt x = 36
0
= π/ 6 + π/30. Đặt x

0
= π/6, suy ra x – x
0
= π/30
Áp dụng công thức 2-1.2 với n = 1 và x
0
= π/6 ta có:

)()()()(
!1
)(
)(
!0
)(
)(
0
'
00
1
0
0
)1(
0
0
0
)0(
xfxxxfxx
xf
xx
xf

xf −+=−+−=
Thay vào ta có sin 36
0
= sin (π/ 6 + π/30) = sin (π/6) + (π/30) cos (π/6) + R
1
17
NCT-FIT-HNUE Computional methods and Optimization Problems
=
1
2
3
.
302
1
R++
π
trong đó
2
2
1
10
302
sin









=
π
c
R
2. Bài toán nội suy hàm số
Một trong các bài toán cơ bản của giải tích số là nội suy hàm số. Bài toán này thường gặp trong
các trường hợp sau :
i) Cần phục hồi hàm số ) đối với mọi điểm x thuộc khoảng [a, b] nếu chỉ biết giá trị của nó
tại một số điểm
. Những giá trị này thường là các giá trị quan sát, hoặc đo đạc
được.
(xf
],[, ,,
10
baxxx
n

ii) Khi hàm cho bởi công thức quá phức tạp chẳng hạn )(xf

+
+
=
2
)cos(
2
3
)sin(
)(
)(

x
x
t
dt
xte
tx
xf
và cần tính ])(xf ,[ bax

∀ . Khi đó người ta tính gần đúng tại một số điểm rồi xây dựng
một hàm gần đúng với f(x) để tính các giá trị khác.
)(xf
iii) Ngoài ra, nội suy hàm số còn được sử dụng để xây dựng các công thức tính đạo hàm, tính
tích phân số hoặc tìm gần đúng nghiệm của phương trình.
Bài toán nội suy hàm một biến số được phát biểu như sau: Trên đoạn [a, b] cho tập các điểm
nút a
< x
1
< <x
no
x≤

b và tại các điểm này cho các giá trị ),0(),( nixfy
i
= àm )(xf .
xây dựng hàm )(xg d ính toán và trùng với hàm f ại các điểm nút trên tức là
i
= của h
Cần ễ t t)(x
),0(,)( ni =yxg

ii
= . Hàm g(x) được gọi là hàm nội suy. Các điểm nút x
i
( ni ,0= ) gọi là các
mốc nội suy.
Một số dạng hàm thường được dùng để nội suy hàm số là: )(xg
- Đa thức đại số
- Hàm hữu tỉ, tức là phân thức đại số
- Đa thức lượng giác
- Hàm ghép trơn (spline), tức là hàm đa thức từng mẩu.
Trong chương này chúng ta chỉ tập trung vào nội suy bởi đa thức đại số - một công cụ nội suy
kinh điển và một phần về nội suy bởi hàm ghép trơn - công cụ nội suy hiện đại. Các dạng nội
suy khác sẽ chỉ được giới thiệu qua. Nếu không nói rõ hơn ta sẽ ngầm định hiểu đa thức là đa
thức đại số.
2.1. Đa thức nội suy Lagrange trên mốc không đều
2.1.1. Thiết lập đa thức nội suy Lagrange
Đa thức nội suy Lagrange của hàm y = f(x) tại các điểm mốc x
i
∈ [a, b] ( ),0 ni = cho bởi công
thức sau:
18
NCT-FIT-HNUE Computional methods and Optimization Problems

=
=
n
i
iin
xlxfxL
1

)()()(
(1-2.1)
Trong đó đa thức l
i
(x) cho bởi công thức

=

+−
+−


=
−−−−
−−−−
=
n
j
ij
ji
j
niiiiii
nii
i
xx
xx
xxxxxxxx
xxxxxxxx
xl
0

110
110
)) ()() ((
)) ()() ((
)(

(2-2.1)
(Tử số khuyết nhân tử (x - x
i
), mẫu số khuyết nhân tử (x
i
- x
i
))
Ta thấy L
n
(x) thỏa mãn điều kiện nội suy
),0(),()( nixfxL
iin
==
(3-2.1)
Thật vậy, dễ thấy rằng




=
==
ji
ji

xl
ijji
,0
,1
)(
δ
(4-2.1)
Vì khi i = j, thay x ở tử số bởi x
i
thì tử số giống mẫu số. Khi i ≠ j thì trên tử số có số hạng dạng
(x
j
- x
j
) = 0 (lưu ý rằng tử số chỉ khuyết số hạng x
j
-x
i
). Thay (4-2.1) vào (1-2.1) ta thu được (4-
2.1)
Xét hai trường hợp đơn giản của đa thức nội suy Lagrange.
a) Nội suy Lagrange bậc nhất
Nội suy bậc nhất còn gọi là nội suy tuyến tính.
Khi n = 1, ta có hai mút nội suy x
0
và x
1
, và
01
0

1
10
1
01
)()()(
xx
xx
xf
xx
xx
xfxL


+


=

(5-2.1)
b) Nội suy Lagrange bậc hai
Khi n = 2 ta có ba nút nội suy và
2
x vµ
10
, xx
))((
))((
)(
))((
))((

)(
))((
))((
)()(
1202
10
2
2101
20
1
2010
21
02
xxxx
xxxx
xf
xxxx
xxxx
xf
xxxx
xxxx
xfxL
−−
−−
+
−−


+
−−



= (6-2.1)
trong đó
i =0, 1, 2.
),(
ii
xfy =
Ví dụ 1-2.1. Xây dựng đa thức nội suy cho hàm
xy
π
sin
=
tại các nút

6
1
,0
10
== xx và .
2
1
x
2
=
Giải. Ta có bảng giá trị của hàm
x 0 1/6 1/2
y 0 1/2 1
Áp dụng công thức (6-2.1) ta được
19

NCT-FIT-HNUE Computional methods and Optimization Problems
.3
2
7
)
6
1
2
1
)(0
2
1
(
)
6
1
)(0(
.1
)
2
1
6
1
)(0
6
1
(
)
2
1

)(0(
.
2
1
)
2
1
0)(
6
1
0(
)
2
1
)(
6
1
(
.0)(
2
2
xx
xx
xx
xx
xL −=
−−
−−
+
−−

−−
+
−−
−−
=


Ví dụ 2-2.1. Tìm đa thức nội suy hàm trên đoạn [-1, 1] dựa vào giá trị của hàm tại các
điểm
Sử dụng đa thức này tính gần đúng
x
y 3=
.1,1
10
==−=
2
x 0,xx 3.
Giải. Ta có bảng các giá trị của hàm
tại các điểm đã cho:
x
y 3=
x -1 0 1
y 1/3 1 3
Theo công thức (6-2.1) ta có đa thức nội suy
)342(
3
1
2
)1(3
)1)(1(

6
)1(
)01)(11(
)0)(1(
.3
)1.(1
)1)(1(
.1
)11.(1
)1(
.
3
1
)(
2
2
++=
+
+−+−

=
−+

+
+


+
+
−−−


=
xx
xx
xx
xx
xxxxxx
xL

Để tính
2/1
33 = ta xấp xỉ
2
1
3
6
11
)
2
1
(
2
=≈ L .
c) Đánh giá sai số
Vấn đề quan trọng đặt ra khi xấp xỉ hàm tại điểm x bất kì bởi đa thức nội suy là phải đánh
giá được sai số, tức độ lệch
-). Định lí sau đây cho ta đánh giá đó.
)(xf
)(xf
(xL

n
Định lý 4.2.1 Giả sử hàm số , tức là có đạo hàm liên tục đến cấp n+1 trên [a,
b] chứa tất cả các nút nội suy

)(xf
],[
)1(
baC
n+

i
x ),0( ni = . Khi đó sai số nội suy )()()( xLxfxR
nn

=
có dạng
),(
)!1(
)(
)(
1
)1(
x
n
f
xR
n
n
n +
+

+
=
ω
ξ
(7-2.1)
trong đó
ξ
là một diểm phụ thuộc x và thuộc [a , b] và

=
+
−=
n
i
in
xxx
0
1
)()(
ω
Hệ quả. Đối với sai số của đa thức nội suy Lagrange cho hàm f(x) tại các mút
có đánh giá
n
xxx ,,,
0
K
],[ ba∈
,)(
)!1(
)()(

1
1
x
n
M
xLxf
n
n
n +
+
+
≤−
ω
(8-2.1)

trong đó
bxa
n
n
xfM
≤≤
+
+
= ).(max
)1(
1


=
+

−=
n
i
in
xxx
0
1
)()(
ω
Ví dụ 3-2.1. Cho giá trị của hàm y=sin x tại 3 điểm bởi bảng sau:
20
NCT-FIT-HNUE Computional methods and Optimization Problems
x 0
4
π

2
π

y 0 0,707 1
Tính gần đúng sin
3
π
nhờ đa thức nội suy và đánh giá sai số.
Giải. Đa thức nội suy hàm y=sin x xây dựng theo các điểm đã cho là
.
)
42
(
2

)
4
(
.1
)
24
(
4
)
2
(
.707,0)(
2
πππ
π
πππ
π


+


=
xxxx
xL
Ta có
.851,0)
3
(
3

sin
2
≈≈
π
π
L
Theo công thức (8-2.1)
.)
3
(
!3
)
3
(
3
sin
3
3
2
π
ω
ππ
M
L ≤−
Dễ tính được
,1cosmax)('''max
2
0
2
0

3
===
≤≤≤≤
xxyM
xx
ππ

.
21623
.
433
)
3
(
3
3
πππππππ
ω
=−−=
Do đó
024,0
2166
1
)
3
(
3
sin
3
2

=×≤−
πππ
L
Như vậy, sin
3
π
=0,851 0,024 ±
Chú ý. Công thức đánh giá sai số (4.8) được thiết lập với giả thiết
Nếu điều
kiện trên không thoả mãn, tức là khi hàm
không có đủ độ trơn cần thiết thì ta không thể nói
gì về sai số nội suy cả. Trong trường hợp này cần phải xem xét bài toán cụ thể.
].,[)(
)1(
baCxf
n+

)(xf
Ví dụ 4-2.1. Cho hàm bởi công thức =
)(xf )(xf
x .
Khi đó đa thức nội suy hàm
tại các điểm
)(xf
1,1
10
=
=

=

2
x 0,xx là đa thức
2
2
)( xxL = .
Để đánh giá sai số
)()(
2
xLxf − ta không thể áp dụng công thức (8-2.1) vì hàm không có
đạo hàm tại x = 0. Nhưng ta có thể đánh giá được sai số nội suy trên đoạn [-1, 1] như sau
)(xf
4
1
maxmax)()(max
2
1
2
1
2
1
=−=−=−
≤≤≤
xxxxxLxf
xxx

21
NCT-FIT-HNUE Computional methods and Optimization Problems
2.1.2. Thuật toán nội suy Lagrange
Bài toán:
Cho bảng các giá trị ( , ),

ii
yx ),0( ni = . Tính giá trị của đa thức nội suy
Lagrange
tại điểm x cho trước theo công thức
)(xL
n


=
=



==
n
i
n
j
ij
ji
j
in
xx
xx
yxLy
0
0
)(
input: x, x
i

, y
i

),0( ni =

output: y là giá trị của hàm tại x
Algorithm:
1. Khởi tạo y = 0
2. for i = 0 Æ n
2.1. P = 1;
/* P chính là đa thức l
i
*/
2.2. for j = 0 Æ n
if (j ≠ i)
P = P * (x - x
j
) / (x
i
- x
j
)
2.3. y = y + y
i
*P
3. return y
2.2. Đa thức nội suy Lagrange với mốc cách đều
Giả sử hàm f(x) nhận các giá trị y
i
tại các điểm tương ứng x

i
(
noi ,=
) cách đều một khoảng h.
Đặt
h
xx
t
0

= , khi đó :
)(

))1((
))1((

)1(
.
1
1
1
0
nthxx
ithxx
ithxx
thxx
thxx
n
i
i

−=−
+−=−
−−=−
−=−
=−
+


)(


)1(
.
1
1
1
0
inhxx
hxx
hxx
ihxx
ihxx
ni
ii
ii
i
i
−−=−
−=−
=−

−=−
=

+


Do đó đa thức
trong công thức (2-2.1) có dạng
)(xl
i
).( 2.1.)1.(1) 1(
))) (1())(1() (1(
)(
0
inii
ntitittt
htxl
in
i
−−−

+

−−

=+

(1-2.2)
hay
1

0
)1()!(!)(
)) (1(
)(

−−−
−−
=+
n
i
iniit
nttt
htxl (2-2.2)
22
NCT-FIT-HNUE Computional methods and Optimization Problems
Vậy công thức nội suy Lagrange (1-2.1) trong trường hợp mốc cách đều một khoảng h có dạng :

=

−−

−−=+
n
i
i
n
n
iniit
xf
nttthtxL

0
1
0
)!(!)(
)()1(
)) (1()(
(3-2.2)
hay

=



−−
=+
n
i
i
ni
n
n
it
Cxf
n
nttt
htxL
0
1
0
)(

)()1(
!
)) (1(
)(
(4-2.2)
Ví dụ 1-2.2. Tìm hàm nội suy cho hàm f(x) thỏa mãn :
x
i
0 2 4
f(x
i
) 5 -2 1
Giải: Áp dụng công thức (4-2.2.2) ta có
5125)102410(
2
1
2
1
1
45
2
)2)(1(
2
.1
1
2
0
5
!2
)2)(1(

)2(
22
2
2
1
2
0
2
2
+−=+−=







+

+
−−
=










+




−−
=
tttt
ttt
ttt
t
C
t
C
t
C
ttt
tL

2.3. Đa thức nội suy Newton trên mốc không cách đều
Đa thức nội suy Lagrange (1-2.1), như ta đã thấy rất đơn giản và dễ tính nếu các nút nội suy đã
được cố định. Nhưng nếu như ta bổ sung thêm nút nội suy thì quá trình tính lại phải thực hiện lại
từ đầu. Đây là nhược điểm rất lớn của đa thức nội suy Lagrange. Để khắc phục nhược điểm này
người ta tính đa thức nội suy theo một cách khác hiệ
u quả hơn. Đó là công thức nội suy Newton.
Để xây dựng công thức này, ta cần đến khái niệm tỷ sai phân đối với các mốc không đều và khái
niệm sai phân đối với mốc cách đều.
2.3.1. Khái niệm tỷ sai phân
Giả sử ) là một hàm số xác định và liên tục trong đoạn (xf

[
]
ba, . Tiếp theo giả sử
a=
=b là tập các điểm nút, tại đó cho trước giá trị của hàm.
n
xxx <<<
10
Ta định nghĩa:
- Tỷ sai phân bậc 0 của hàm tại
là .
)(xf
i
x )(
i
xf
- Tỷ sai phân bậc 1 của hàm
tại và là )(xf
i
x
j
x
ji
ji
ji
xx
xfxf
xxf



=
)()(
),(
- Tỷ sai phân bậc 2 của hàm
tại , , là
)(xf
i
x
j
x
k
x
ki
kjji
kji
xx
xxfxxf
xxxf


=
),(),(
),,(
- Một cách tổng quát, tỷ sai phân bậc k của f tại

110
, ,,
+k
xxx
23

NCT-FIT-HNUE Computional methods and Optimization Problems
k
kk
k
xx
xxxfxxxf
xxxf


=

0
21110
10
), ,,(), ,,(
), ,,(
Dễ thấy rằng tỷ sai phân có các tính chất sau:
i) Thứ tự các nút trong tỷ sai phân có thể đảo ngược, chẳng hạn
),(
ji
xxf
=
),(
ij
xxf ,
),,(
kji
xxxf
=
),,(

ijk
xxxf
, ,
)., ,,(), ,,(
0110
xxxfxxxf
kkk −
=

ii) Nếu là đa thức bậc n thì tỷ sai phân bậc nhất là một đa thức bậc n-1, tỷ sai
phân bậc hai
là một đa thức bậc n-2, , tỷ sai phân bậc n của P
)(xP
n
),(
0
xxP
n
),,(
10
xxxP
n
n
(x) là đa thức bậc 0,
và tỷ sai phân bậc n + 1 của P
n
(x) là đa thức = 0. Kết luận này dễ chứng minh
dựa vào định lý Bezout.
), ,,,(
10 nn

xxxxP
2.3.2. Đa thức nội suy Newton trên mốc không cách đều
Từ định nghĩa các tỷ sai phân suy ra
),,().()()(
000
xxPxxxPxP
nnn

+
= vì
0
0
0
)()(
),(
xx
xpxp
xxP
x


=
),,().(),(),(
101100
xxxPxxxxPxxP
nnn
−+= vì
1
100
10

),(),(
),,(
xx
xxPxxP
xxxP


=
),,,().(),,(),,(
210221010
xxxxPxxxxxPxxxP
nnn

−=
. . . . . . . . . .
), ,,().(), ,(), ,,(
10111,010 −−−−


=
nnnnnn
xxxPxxxxxPxxxP
), ,,().(), ,,(), ,,(
01010 nnnnnnn
xxxPxxxxxPxxxP

+
=



), ,(0).(), ,(
1,011,0 nnnnn
xxxPxxxxxP
=
−−=


Từ các hệ thức trên và để ý rằng
= 0 ta được
), ,,(
0 nn
xxxP
), ,,()) ()((
) ,,())((),()()()(
10110
210101000
nnn
nnnn
xxxPxxxxxx
xxxPxxxxxxPxxxPxP

−−−+


+

+
=
(1-2.3)
Bây giờ, nếu

là đa thức nội suy của hàm tại các nút tức là

)(xP
n
)(xf
n
xxx , ,,
10
),()(
iin
xfxP = ),0( ni = thì công thức (4.3.1) có thể viết thành
), ,,()) ()((
) ,,())((),()()()(
10110
210101000
nn
n
xxxfxxxxxx
xxxfxxxxxxfxxxfxP

−−−+


+
−+=

(2-2.3)
hay
24
NCT-FIT-HNUE Computional methods and Optimization Problems


=

−−−+=
n
i
iin
xxxfxxxxxxxfxP
1
101100
), ,,()) ()(()()(
(3-2.3)
Đa thức
dạng (2-2.3) hay (3-2.3) được gọi là đa thức nội suy Newton (tiến) xuất phát từ
nút
. Nó trùng với đa thức nội suy Lagrange (vì đa thức nội suy là duy nhất) nhưng được viết
trong dạng khác.
)(xP
n
0
x
Nhận xét 1. Việc tính toán đa thức nội suy theo các công thức trên khắc phục được nhược điểm
của cách tính theo công thức Lagrange (1-2.1) vì khi bổ sung các nút nội suy mới chỉ cần tính
thêm một số số hạng mới cộng vào tổng cũ.
Nhận xét 2. Sau khi đã tính được các tỷ sai phân, để tính đa thức nội suy Newton một cách hữu
hiệu người ta thường dùng lược đồ Horner.
[
]
[
][]

), ,()(),,()(),()()()(
30221011000
+

+

+−+= xxfxxxxxfxxxxfxxxfxP
2.3.3. Đánh giá sai số của nội suy Newton mốc không đều
Từ định nghĩa của các tỷ sai phân viết cho hàm , tương tự như trong tiểu mục trước, có thể
thu được
)(xf
), ,,,()) ((), ,,()) ((
) ,,())((),()()()(
1001010
210101000
nnnn
xxxxfxxxxxxxfxxxx
xxxfxxxxxxfxxxfxf
−−+−−+


+

+
=


Để ý đến (2-2.3) ta viết được
), ,,,()()()(
101 nnn

xxxxfxxPxf
+
+=
ω
.
Từ đây suy ra biểu diễn sai số của đa thức nội suy Newton
), ,,,()()()(
101 nnn
xxxxfxxPxf
+
=−
ω
, (4-2.3)
trong đó

=
+
−=
n
i
in
xxx
0
1
)()(
ω
(5-2.3)
2.3.4. Sơ đồ tính tỷ sai phân và đa thức newton mốc không đều
Để tính các tỷ sai phân (t.s.p) trong công thức của đa thức nội suy Newton (4.3.2) người ta lập
bảng sau (thí dụ cho n=4)

x f(x) T.s.pbậc 1 T.s.p bậc 2 T.s.p bậc 3 T.s.p bậc 4
x
0
f(x
0
) f(x
o
,x
1
) f(x
0
,x
1
,x
2
) f(x
0
,x
1
,x
2
,x
3
) f(x
0
,x
1
,x
2
,x

3
,x
4
)
x
1
f(x
1
) f(x
1
,x
2
) f(x
1
,x
2
,x
3
) f(x
1
,x
2
,x
3
,x
4
)
x
2
f(x

2
) f(x
2
,x
3
) f(x
2
,x
3
,x
4
)
x
3
f x
3
) f(x
3
,x
4
)
x
4
f(x
4
)
25

×