3MỤC LỤC Trang
LỜI NÓI ĐẦU 6
Chương 1
MỞ ĐẦU VỀ TÍNH TOÁN KHOA HỌC
8
1.1
Mở đầu
1.2 Phân tích sai số
Bài tập
8
13
22
Chương 2
CƠ SỞ MATLAB
24
2.1
72
76
87
90
Chương 4
TÍNH TRỊ RIÊNG VÀ VECTOR RIÊNG CỦA MA TRẬN
93
4.1 Mở đầu 934
4.2 Các phương pháp trực tiếp
4.3 Phương pháp lặp
4.4 Các hàm tính trị riêng của ma trận trong Matlab
Bài tập
94
100
102
109
Chương 5
135
143
149
151
157
159
163
Chương 7
GIẢI PHƯƠNG TRÌNH VÀ TỐI ƯU HÓA
165
7.1
Giải phương trình
7.2 Giải hệ phương trình phi tuyến
7.3 Bài toán Tối ưu hóa
7.4 Qui hoạch tuyến tính
7.5 Qui hoạch toàn phương
7.6 Bài toán qui hoạch không ràng buộc
Bài tập
165
178
226
Chương 9
ĐỒ HỌA TRONG MATLAB
228
9.1
Đồ hoạ 2 chiều.
9.2 Đồ hoạ 3 chiều.
9.3 Hoạt hình
228
233
243
Chương 10
BIỂU DIỄN PHỔ
245
10.1 Biểu diễn phổ dữ liệu.
10.2 Tương quan giữa 2 chuỗi thời gian
245
246
toán khoa học phát triển mạnh mẽ. Các phần mềm tin học đã trợ giúp cho các nhà
nghiên cứu kinh tế, nghiên cứu xã hội, kỹ sư, kiến trúc sư , bác sỹ… giải quyết
nhanh chóng và hiệu quả các công việc của họ.
Cũng vì lý do như trên mà nội dung của nhiều môn học truyền thống của
các trường đại học cũng phải thay đổi cả về phương pháp giảng dạy, phương
pháp học tập, phương pháp nghiên cứu và thực hành.
Cuốn sách này sẽ trình bày về Các phương pháp tính toán số. Đây chỉ là một
khía cạnh nghiên cứu của Tính toán khoa học. Mục đích của cuốn sách là dùng
làm tài liệu giảng dạy, học tập, nghiên cứu và tham khảo cho sinh viên đại học và
học viên cao học ngành CNTT và các ngànhkỹ thuật.
Nội dung từng chương mục của cuốn sách cố gắng được giới thiệu ngắn gọn
theo cấu trúc: giới thiệu bài toán, cơ sở lý thuyết, ứng dụng thực tiễn, các phương
pháp toán học và sử dụng các công cụ đã có trong Matlab để giải bài toán đặt ra.
Các bài tập trong các chương cũng được chia làm 2 loại: một loại yêu cầu học
viên sử dụng các hàm đã cài đặt sẵn của Matlab để giải các bài toán cụ thể, một
loại khác lại yêu cầu học viên cài đặt chương trình để giải các bài toán tổng quát
theo các phương pháp toán học đã được giới thiệu.
7
Do hạn chế về không gian và thời gian nên chúng tôi đi sâu về việc trình
bày các công thức và phương pháp cài đặt chương trình tính toán và ít trình bày
các chứng minh của định lý và công thức. Nếu muốn tìm hiểu kỹ hơn về điều
này, bạn đọc cần đọc thêm những giáo trình về giải tích số.
Đây là lần xuất bản đầu tiên nên trong cuốn sách không thể tránh được một
số thiếu sót về nội dung và chế bản. Rất mong nhận được những góp ý chân tình
và thẳng thắn của bạn đọc.
Để hoàn thành giáo trình này tôi xin chân thành cảm ơn sự giúp đỡ của
PGS-TS Nguyễn Đức Nghĩa và những gợi ý bổ ích của PGS-TS Tô Văn Ban;
Đồng thời tôi cũng xin cảm ơn sự giúp đỡ, khích lệ, đọc bản thảo và đóng góp ý
kiến của các Giáo sư, Tiến sỹ và giảng viên Bộ môn Toán, Khoa CNTT Học
vụ cho việc tính toán và kỹ thuật cài đặt hàm Matlab theo các thuật toán đã
nghiên cứu. Giáo trình không sử dụng các công cụ toán học nào quá phức tạp
ngoài các phương pháp tính toán giải tích và đại số tuyến tính quen thuộc. Tuy
nhiên người đọc cũng cần nắm được các kiến thức cơ bản về lý thuyết phương
trình vi phân thường.
9
Phương pháp nghiên cứu của bất kỳ một lĩnh vực tính toán khoa học nào
cũng được mô tả khái quát như trong Hình 1.1.
Có thể diễn giải sơ đồ trong Hình 1.1 như sau. Đầu tiên ta nghiên cứu bài
toán thực tế cần phải giải quyết. Trong hầu hết các trường hợp, bài toán được đặt
ra ban đầu phụ thuộc vào rất nhiều tham số và các yếu tố ngẫu nhiên, cho nên
không thể có một phương pháp giải được bài toán trong trường hợp hoàn toàn
tổng quát. Để xây dựng được mô hình bài toán, cần phải bổ sung các giả thiết
hợp lý và hiệu quả cho mốt số tham số thích hợp nhất; đồng thời cũng cần phải
xấp xỉ một số yếu tố trong xây dựng cấu trúc của bài toán.
Hình 1.1. Mô hình tính toán khoa học
Sau khi đã bảo đảm rằng các kết quả là hoàn toàn đúng đắn và phù hợp với
bài toán, ta có thể thông báo hay trình bày kết quả dưới dạng: báo cáo kĩ thuật, đồ
họa, quảng cáo hay bài báo khoa học
Trong các chương mục của giáo trình, chúng tôi tập trung trình bày :
- Cơ sở toán học của các phương pháp tính toán số sử dụng cho các bài
toán được nghiên cứu;
- Khai thác sử dụng các thuật toán từ các gói phần mềm tính toán số và tính
toán kí hiệu;
- Quản lí dữ liệu và biểu diễn kết quả.
1.1.3 Quan hệ giữa các phương pháp tính rời rạc và liên tục
Nhiều khái niệm trong toán học cổ điển được định nghĩa bởi những
quá trình giới hạn. Chẳng hạn, đạo hàm của một hàm số f(x) được định nghĩa bởi
giới hạn:
0
( ) ( ) ( )
lim
h
df x f x h f x
dx h
.
Tương tự, tích phân xác định (tích phân Riemann) của một hàm số cũng
được định nghĩa bởi giới hạn:
b-a
0
k 1
quá trình giới hạn đóng vai trò to lớn trong việc này. Để dễ dàng nghiên cứu giáo
trình này bạn đọc nên đọc thêm các giáo trình về giải tích số.
Như vậy, các phương pháp toán học rời rạc (phương pháp số) và các
phương pháp toán học liên tục (phương pháp giải tích) là hai lĩnh vực nghiên cứu
khác nhau nhưng hỗ trợ cho nhau trong việc giải quyết các bài toán thực tế.
Sau đây chúng tôi sẽ trình bày một thí dụ minh họa về phương pháp nghiên
cứu TTKH: mô tả mối quan hệ giữa phát biểu về mặt toán học của các bài toán,
bao gồm cả những giả thiết hợp lý được sử dụng trong các mô hình thực tế,
những công cụ giải tích cho một số trường hợp, các giả thiết nhằm đơn giản hoá
bài toán và các phương pháp số dùng để giải bài trong trường hợp tổng quát.
Cuối cùng chúng ta sẽ quan sát kết quả tính toán được dưới một trong hai dạng
tĩnh hoặc động.
Phương pháp tiếp cận của TTKH nói chung là đa nguyên tắc. Chúng bao
gồm nhiều kĩ thuật tính toán và phương pháp toán học, từ giải tích tiệm cận đến
các sơ đồ tính toán số, từ phương pháp tính toán song song đến sự vận dụng tính
toán kí hiệu.
Đầu tiên chúng tôi trình bày các công cụ và kỹ thuật cơ bản trong TTKH
bằng cách minh hoạ bằng các bài toán cỡ nhỏ (Small-Scale). Điều đó có vẻ như
mâu thuẫn với ý nghĩa cơ bản của định nghĩa về TTKH được nêu ở trên. Tuy
nhiên ở đây chúng tôi muốn minh hoạ các kĩ thuật tính toán cho một số công việc
cụ thể còn hơn để bạn đọc bị choáng ngợp vì kích thước lớn của bài toán. Cũng
cần phải nói thêm rằng, có nhiều bài toán cỡ lớn đòi hỏi những công cụ và các
phương pháp giải đặc biệt phù hợp với kích cỡ của chúng (chẳng hạn, các thuật
toán lặp cho ma trận cỡ lớn). Những vấn đề như vậy vượt quá phạm vi nghiên
cứu của giáo trình này. Vì vậy, ta nên áp dụng phương pháp tiếp cận đa nguyên
tắc và khai thác các kỹ năng giải bài toán bằng cách bắt đầu từ các bài toán đáng
quan tâm với kích thước vừa và nhỏ.
12
Bây giờ ta nghiên cứu dáng điệu của các đường cong traction được cho bởi
Nói chung, phương trình vi phân mô tả họ đường cong traction có dạng:
2
2 2
2
( )
y
y x a
dy
dx
.
Chúng có thể giải được bằng công cụ giải tích dưới dạng đóng. Lời giải của
bài toán sẽ tìm được dưới dạng hàm ẩn là:
2 2
2 2
( )
. ( ) 0
a y x
a arcth a y x x
a
13
1.2 PHÂN TÍCH SAI SỐ
1.2.1 Khái niệm về sai số
a A
a . (1.1)
a được gọi là sai số tuyệt đối giới hạn của a . Như vậy, nếu
a là một sai số
tuyệt đối giới hạn củ a thì một số
a cũng là một sai số tuyệt đối giới hạn. Vì
thế cần ước lượng
a sao cho nó càng nhỏ càng tốt. Từ (1.1) ta có:
a a A a a
hoặc có thể viết là:
A a a
(1.2)
14
Do thực tế ta chỉ xét ta sai số tuyệt đối giới hạn, nên khi nói về sai số tuyệt
đối giới hạn ta chỉ cần nói gọn là sai số tuyệt đối.
Sai số tuyệt đối của số a không cùng thứ nguyên với a. Điều đó hạn chế
a
a a
.
Để sai số qui tròn không vượt quá 1/2 đơn vị của hàng thập phân được giữ
lại cuối cùng, người ta phải căn cứ vào chữ số bỏ đi đầu tiên là lớn hơn hay nhỏ
hơn 5. Nếu nó lớn hơn hoặc bằng 5 thì cần phải cộng thêm 1 vào chữ số được giữ
lại cuối cùng.
Thí dụ 1. Qui tròn số 15,67528 với 4 chữ số lẻ thập phân thành 15,6753;
Qui tròn số =3,141592… với 2 chữ số lẻ thập phân thành 3,14.
Do đó có thể viết : =3,140,16.
Sai số của số đã qui tròn
Từ các khái niệm về sai số qui tròn ta có:
a A
a và aa
a
'
'
.
Do đó
aAaaaAa
a
'
''
10
2 1
=
2 1 2 1 2 1
;
- Chọn xấp xỉ của
2
rồi tính thông qua khai triển Nhị thức Newton:
10
2 1 3363 2378 2
.
Vì
2
là số vô tỷ nên cần phải được qui tròn trước khi tính biểu thức. Để
thấy sự ảnh hưởng của qui tròn trong quá trình tính toán ta sẽ tính biểu thức với
4 giá trị xấp xỉ khác nhau của
2
Một số thập phân a được viết dưới dạng:
a =
10
s
s
s
a
, trong đó s là một số nguyên và a
s
{0,1,2,3, ,9}.
Chẳng hạn nếu:
a = -3,1416 = -(3.10
0
+ 1.10
-1
+ 4.10
-2
+ 1.10
-3
+ 6.10
-4
)
thì a
0
=3, a
-1
= 1, a
-2
= 4, a
-24
=0,5960×10
-7
.
Nghĩa là khi tính toán với số thực dấu phảy động, kết quả có 23 chữ số nhị phân
có nghĩa, tương tương với 7 chữ số có nghĩa trong hệ thập phân.
Với chuẩn IEEE độ chính xác kép (=2, n=53) thì =2
-53
=1,1102×10
-16
.
Nghĩa là khi tính toán với số thực dấu phảy động, kết quả có 53 số chữ nhị phân
có nghĩa, tương tương với 16 chữ số có nghĩa trong hệ thập phân.
1.2.5 Hiện tượng tràn số
Hiện tượng tràn số lớn (overflow): xảy ra khi số thu được là quá lớn đối
với giới hạn lưu trữ của hệ số thực dấu phảy động đang sử dụng. Khi xảy ra hiện
tượng này thông thường các máy tính đều thông báo lỗi (Matlab không thông báo
lỗi mà gán cho số giá trị inf và tiếp tục thực hiện tính toán).
17
Hiện tượng tràn số nhỏ (underflow): xảy ra khi số thu được là quá nhỏ
đối với giới hạn lưu trữ của hệ số thực dấu phảy động đang sử dụng. Khi xảy ra
hiện tượng này thông thường các máy tính không thông báo lỗi và gán cho số giá
trị 0 và tiếp tục thực hiện tính toán.
1.2.6 Cách viết một số xấp xỉ
Cách viết 1
Viết số a cùng với sai số tuyệt đối hoặc sai số tương đối của nó:
A a a
x
j
, j=1,2,…,n và cần lập công thức tính sai số của hàm.
Sai số của tổng: u= x+y
Từ u= x+y và
( ) ( )
u u x x y y
ta suy ra :
| |
u x y x y
hay
x y x y
. (1.4)
Tương tự ta cũng có công thức tính sai số của hiệu:
x y x y
. (1.5)
Sai số của một tích: u=xy
Từ u= xy và
( )( )
u u x x y y
là các công thức tính sai số cần ghi nhớ:
i
i
i
f
u x
x
, (1.8)
xy=
(x/y)=
x+
y và
x
n
=n.
x. (1.9)
Thí dụ 6. Hãy tính sai số tuyệt đối và sai số tương đối của thể tích hình cầu
v=V
v =26,5.0,4
1,1 (cm
3
) .
Vậy V=26,51,1 (cm
3
).
1.2.8 Bài toán ngược của lí thuyết sai số
Cho hàm số u=f(x
1
, x
2
, ,x
n
) là hàm khả vi. Cần phải chọn các sai số
x
i
,
i=1,2,…,n bằng bao nhiêu để
u ≤M (M là hằng số cho trước). Để giải bài toán
này ta có thể sử dụng một trong các nguyên lí ảnh hưởng đều sau đây:
Nguyên lý 1. Nếu coi
i
i
n
x x
. (1.10)
Nguyên lý 2. Nếu coi
x
i
= c, i=
n,1
(với c là hằng số) thì từ (1.8) ta có:
, 1,
i
i i
i i
u M
x i n
f f
x x
. (1.11)
Nguyên lý 3. Nếu coi
.
Từ đó suy ra:
, 1,
i
i
j
j
j
x M
x i n
f
x
x
. (1.12)
Thí dụ 7. Một hình trụ có bán kính đáy R=2 m và chiều cao h=3 m. Hỏi
các sai số
R và
h tối đa bằng bao nhiêu để thể tích V của hình trụ được tính
=2
Rh =37,7 , suy ra
R =
0,1
3.37,7
< 0,001 (m).
V
h
=
R =12,6 , suy ra
h =
0,1
3.12,6
< 0,003 (m).
1.2.9 Phương pháp biên
Giả sử y =f(x
1
, x
2
, ,x
n
p p n
f x x x x x x y
.
20
Và do đó ta có đánh giá sai số:
y y y
.
1.2.10 Sai số tính toán và sai số phương pháp
Trong quá trình tính toán, ta thường làm tròn các kết quả tính toán trung
gian. Sai số của kết quả cuối cùng được sinh ra do nhiều lần qui tròn đó gọi là sai
số tính toán.
Khi cần giải một bài toán phức tạp, người ta thường tìm cách thay bài toán
gốc đã cho bởi một bài toán đơn giản và dễ tính toán hơn cho việc tính bằng tay
hay bằng MTĐT. Việc thay đổi bài toán như vậy sẽ gây ra một sai số. Sai số này
được gọi là sai số phương pháp.
Sai số của kết quả cuối cùng là tổng hợp của hai loại sai số trên. Sau đây là
các thí dụ minh hoạ cho sai số tính toán và sai số phương pháp:
Thí dụ 8. Hãy tính tổng
3 3 3 3 3 3
1 1 1 1 1 1
1 2 3 4 5 6
A
.
Giải. Ta tính trực tiếp từng số hạng, rồi cộng kết quả lại. Khi đó sẽ không có
= 0;
3
3
1
= 0,037 ,
3
= 1.10
-4
;3
6
1
=0,005 ,
6
= 4.10
-4
.
Cuối cùng ta được:
a =0,899 và | a-A|
1
+
2
+
1 2 3
n
B
n
với sai số tuyệt đối không quá 5.10
-3
.
21
Giải. Vế phải của biểu thức là một chuỗi đan dấu hội tụ, do đó B tồn tại.
Tuy nhiên không thể tính B một cách trực tiếp. Vì vậy, thay cho việc tính B ta
tính giá trị của biểu thức:
1
3 3 3 3
1 1 1 1
( 1)
1 2 3
n
n
B
n
.
Việc tính B
n
đơn giản hơn tính B, nhưng khi đó ta sẽ mắc một sai số phương
pháp là
n
,
cho nên ta có thể chọn n=6.
Ta có
3
6
3
1
3.10
6 1
B B
và B
6
= A = 0,899 9.10
-4
.
Từ đó suy ra:
6 6
0,899 0,899
B B B B
3.10
-3
+ 9.10
0
.
2. Tính sai số tuyệt đối khi biết sai số tương đối của các giá trị:
a = 122,5216 ,
a=0,04;
b = 334,564 m
2
,
b=0,006;
c =102
0
36’12”,
c = 0,8%.
3. Định nghĩa sai số qui tròn.Hãy qui tròn các số sau đây đến 6 chữ số có nghĩa
rồi tính sai số tuyệt đối và sai số tương đối của chúng.
a=-15,58810018 ,
b=125,4305172 7,
c=0,00134056452 ,
d=- 0,01000010035.
4. Thế nào là chữ số có nghĩa, chữ số đáng tin. Xác định số chữ số đáng tin của
các số sau:
a = -15,5881001 với
a =0,545;
b = 125,4305172 với
với x= 1,6; y= 1,3 và z=12,341.
7. Tính xấp xỉ giá trị của arctg0,8 với sai số tuyệt đối 10
-5
.
23
8. Tính xấp xỉ số e với sai số tuyệt đối là 10
-6
theo công thức sau:
e =
1 1 1 1
1
1 2 3
! ! ! n!
9. Tính xấp xỉ giá trị của biểu thức A= ln(1,2) với sai số tuyệt đối 10
-7
theo công
thức:
3 5
1
2
1 3 5
x x x
ln x
x