Mặt khác đây là một bộ bài tập tương đối đầy đủ tạo cơ sở ban đầu cho những ai nuuốn đi sâu uào giải các bài toán uề khoa học hÿ thuật uò kính tế trong quá trình công tác của mình.. Chươ
Trang 2LE VAN DOANH TRAN KHAC TUAN
101 THUAT TOAN VA CHUONG TRINH
Bai toan khoa hoc Kỹ thuật và kinh tế
BẰNG NGÔN NGỮ PASCAL
NHÀ XUẤT BẢN KHOA HOC VA KY THUAT
HÀ NỘI - 1995
Trang 3Chiu trach nhiém xudt bdn: Pgs, Pts TO DANG HAI
Trang 4MUC LUC
Trang
C®ương }, Những khái niệm chung về thuật toán, cách mô tả bài toán bằng
13 Một số ví dụ về xây dựng lưu đồ 14
2.1 Đại số (từ bài 10 đến bài 28) 27 2.2 Vectd, ma trận, hệ phương trình đại số (từ bài 29 đến bài 37) 28
2.4 Đa thÚc và nội suy đa thức (tủ bài 49 đến bài 59) 29 2.5 Đạo hàm số (tủ bài 60 đến bài 65) 30 2.6 TÍch phân số (tu bai 66 dén bai 69) 30 2.7 Giải phudng trinh phi tuyến (tử bài 70 đến bài 72) 31
2.8 Tối du hóa (tử bài 73 đến bài 75) _ 3t
2:9 Giải phương trình vi phân (tÙ bài 76 đến bài 79) 3 2.10 Xác suất thống kê (tử bài 80 đến bài 83) 31 2.11 Một số bài toán quản lý và xử lý văn bản (từ bài 84 đến 91) 32
212 Một số bài toán kỹ thuật (từ bài 92 đến bài 101) 32 Chương 3 Phân tích các thuật toán và lưu đồ của 101 bài toán 39
Trang 5
3.10 Xác suất thống kê
3.11 Một số bài toán quan ly va xu ly văn bản
3.12 Một số bài toán kỹ thuật
Một số bài toán kỹ thuật
Tài liệu tham khảo
Trang 6LOI TUA
Ngày nay tin học đã thâm nhập uào tất cả mợi hoạt dộng của xả hội
loài người va may tỉnh diện từ trỏ thành một công cụ dắc lực không chỉ giảm nhẹ lao động (kể cả lao động có trí tuệ) mù còn giúp thêm cho con người những năng lục nuới mờ trước dây chúng ta khó hình dung
được
Ô Việt Ngm máy tỉnh, dặc biệt máy uí tính trong những năm gần dây
đã quen thuộc uới mọi người Bước đầu tín học đã được đứa uào các trường trung học, cóc trường đại học nhằm di tới phổ cộp tin hoc cho
toàn xã hội Số lượng máy tính ngày nuột nhiều 0ò ta có thể gặp khốp
mọi nơi, Do 0ậy một uấn đề lón được đặt ra là làm thế nào để khai thác hết công sudt cdc may tinh va lam thé nao dé tin học thực sự hữu ích
cho mọi người Để làm được điều này trước hết phải phổ cập uiệc đào tạo tin học, không những trong nhà trường nà cả toàn xã hội
Quyển sách "101 thuật toán va chương trình" là một trong những tài liệu tốt giúp cho bạn đọc mới bát đầu làn: quen uới tín học Mặt khác đây là một bộ bài tập tương đối đầy đủ tạo cơ sở ban đầu cho những ai nuuốn đi sâu uào giải các bài toán uề khoa học hÿ thuật uò kính tế trong
quá trình công tác của mình Cóc lời giải của cóc bài tập trong quyển
sóch này khó phong phú uà chuẩn xác đồng thời dấy là những bài tập mẫu rất tốt cho những ai gặp các bài toán tương tụ
_ Chúng tôi xin trân trọng giới thiệu bạn dọc cuốn sách này Uới mong muốn góp phần thúc đẩy quá trình tin học hóa uà phổ cập tin học ở Việt Nam
GŒs Tý Nguyễn Xuân Quỳnh
Trang 7LOI GIỚI THIỆU
Vấn đề quan trọng nhất của tin học úng dung là biết cách sử dụng máy tính trong các lĩnh uực chuyên môn khác nhau, Đề làm
dược uiệc đó ngoài uiệc nắm uững cúc ngôn ngữ lập trình thông
dụng, người sử dụng phải biết cách chuyển các bài toán thuộc lĩnh
uục chuyên môn của mình sang các ngôn ngũ thuật toán, nghĩa là
cần nắm uững cách phân tích các thuật toán, cóc phương pháp số Cuốn sách "101 thuật toán va chương trình các bài toán khoa học kỹ thuật va kinh tế bằng ngôn ngũ TURBO-PASCAL" nhằm
dáp ứng các yêu cầu đó, giúp cho bạn đọc có thể dễ dàng lập trình cóc bài toán thuộc lĩnh uục chuyên môn cụ thế Cuốn sách cũng có ích cho sinh uiên cúc trường đợi hoc va eao dang, cde can bộ hỹ
thuật uà bình tế, để nông cao trình độ lập trình
Có thể coi đây lờ tài liệu thực hành uề kỹ thuậi lập trình, đồng
thời nhiều bời trong tài liệu này có thể coi là cẩm nang lập trình bằng ngôn ngữ PASCAL
Nội dung của cuốn sách gồm bốn chương
Chương 1 là phần mỏ dầu, giới thiệu sơ lược uề thuật toán, cách chuyển các bài toán cụ thể sang ngôn ngữ máy tính
Chương 2 gồm 101 bài toán xếp theo loại bài toán cụ thể: dại
số, hèm số, vecto, ma tran va hệ phương trình tuyến tính, da thức, dao ham số, tích phân số, các bài toán phi tuyến, bùi toán tối têu,
xác suốt, bời toán kính tế uà cuối cùng là mot số bài toán khoa học
Trang 8Cuốn sách này là phần dầu của bộ sách gồm các ứng dụng của tin học trong khoa học kỹ thuật Chúng tôi hy uọng sắp tới sẽ cho
ra mắt dộc giả phần tiếp theo uới các bài tloón cụ thể thông dụng hiện nay
Vì trình dộ uà thời gian có hạn cuốn sách không tránh khỏi sai
sót Rất mong bạn đọc góp ý để tài liệu được hoàn chỉnh, chúng tôi xin chân thành cảm ơn
Nếu bạn dọc có yêu cầu 0uề dia mém chứa chương trình xin liên
hệ uới PHÒNG TÍNH TOÁN KHOA THIẾT BỊ ĐIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Các tác giả
Trang 9CACH SU DUNG QUYEN SACH NAY
Trang 10CHUONG 1
NHỮNG KHÁI NIỆM CHUNG VỀ THUẬT TOÁN,
CÁCH MÔ TẢ BÀI TOÁN BẰNG NGÔN NGỮ MÁY TÍNH
§1.1 Thuật toán
Ta đã làm quen với khái niệm về thuật toán trong giáo trình toán học và các giáo trình khác Thuật toán giải phương trình bậc hai, giải hệ phương trình đã quen biết trong giáo trình toán phổ
thông trung học
Thuật toán được biểu là tập hợp các quy tác dùng cho một lớp bài toán nao do để từ các số liệu ban đâu qua một qua trình thao tác dẫn đến kết quả xác định
Khái niệm về thuật toán đầu tiên do nhà toán học A Rập
Kharezmi nêu ra từ cuối thế kỷ thứ 8 đầu thế kỷ thứ 9 khi
đưa ra các quy tắc đầu tiên về tính số học
Con người trong các hoạt động của mình thường phải sử dụng những thuật toán để giải quyết các công việc cụ thể Bất kỳ một hình thức lao động chân tay nào cũng gồm một số thao tác cụ thể
theo một trật tự nhất định, ta gọi lao động chân tay là hoạt động theo thuật toán
Lao động trí óc là lao động sáng tạo, tuy vậy cũng có thể thuật
toán hóa lao động trí óc VÍ dụ người ta có thể xây dựng thuật toán
sáng tác nhạc, làm thơ trên máy tính v.v Tuy nhiên nhiều người phủ nhận tính thuật toán của lao động nghệ thuật Ta hiểu quá
trình thuật toán hda lao động sáng tạo là một quá trình tiệm cận
Những đặc trưng cơ bản của thuật toán là:
1) Tính tổng quát: thuật toán không đề cập chỉ một bài toán
riêng lẻ mà bao hàm một lớp bài toán cùng một kiểu;
3) Có giới hạn: quá trình biến đổi từ thông tin ban đầu đến kết quả cuối cùng qua một số giới hạn các biến đổi;
11
Trang 11z
3) Tính duy nhất: toàn bộ quá trình biến đổi, cũng như trật tự thực hiện phải được xác định và là duy nhất Như vậy khi dùng thuật toán cùng một tin tức ban đầu phải cho cùng một kết quả
Trong thuật toán ở mỗi giai đoạn phải nêu chính xác các bước tiếp
theo, có nghĩa là thứ tự thực hiện, các thao tác và quyết định phái được quy định rõ ràng
Theo cấu trúc ta có thể phân loại thuật toán như sau:
- thuật toán không phân nhánh;
- thuật toán có phân nhánh;
- thuật toán theo chu trình cớ bước lặp xác định và có bước lập không xác định
Thuật toán không phân nhánh là thuật toán đơn giản nhất Trong thực tế thường gặp thuật toán phân nhánh theo các điều kiện so sánh đúng hoặc sai Phổ biến nhất trong các bài toán thực
tế là thuật toán gồm nhiều chu trình, theo nhiều nhánh, đớ là đặc trưng của thuật toán giải các bài toán khoa học kỹ thuật
Trình tự giải bài toán trên máy tính thường theo các bước sau: 1- Đặt bài toán và xây dựng mô hình toán của bài toán thực tế Giai đoạn này bao gồm việc biểu diễn bài toán thực tế bằng các
biểu thức toán học, xác định các ràng buộc, các điều kiện ban đầu, giới hạn của nghiệm;
2- Chọn phương pháp số thích hợp Dể giải các mô hình toán xây dựng trong bước 1 cần chọn một trong các phương pháp số theo các tiêu chuẩn sau đây: độ chính xác cao, tốc độ tính nhanh,
quá trình tính đơn giản v.v;
3đ- Diễn tả thuật toán bằng lưu đồ Lưu đồ thể hiện rõ ràng các bước tính quan trọng và các điều kiện để thu được kết quả cuối cùng Lưu đồ là cách biểu diễn bằng đồ thị toàn bộ thuật toán Xây
dựng lưu đồ chính xác là đảm bảo 90% kết quả tính toán;
4- Viết chương trình: là hệ thống các câu lệnh cớ cấu trúc theo
lưu đồ, Ngôn ngữ lập trình PASCAL là ngôn ngữ có cấu trúc rõ ràng đáp ứng được các đòi hỏi phức tạp của các bài toán khoa học
kỹ thuật và quản lý kinh tế;
ð- Chạy chương trình và phân tích kết quả
12
Trang 12§1.2 Mô tá thuật toán bằng lưu đồ
Trước khi viết chương trình cần phân tích một cách cặn kẽ các
tình huống có thể xây ra trong quá trình tính toán Để mô tả quá trình tính toán một cách hệ thống và rõ rảng người ta thường thể
hiện thuật toán bằng lưu đồ, đơ:là sự biểu diễn bàng đồ thị của
toàn bộ quá trình tính toán Việc vẽ lưu đồ không những giúp cho quá trình thảo chương dễ dàng mà còn giúp ta phát hiện sai sớt trong chương trÌnh Trong các bài toán đơn giản có thể bỏ qua giai đoạn này, nhưng trong các bài toán phức tạp nhất thiết phải: lập lưu đồ tính toán Các ký hiệu thường dùng trong lưu đồ cho trong
Đưa số liệu vào hoặc
Chỉ hướng truyền thông
tin, liên hệ các khối
Trang 13§1.3 Một số ví dụ về xây dựng lưu đồ
1.3.1 Thuật toán không phân nhánh
Để làm ví dụ cho thuật toán không phân nhánh ta nêu sơ đồ tính toán một số biểu thức sau:
Vidul Cho A=x*+ y+
B=x+ytA
C=xy+A- 7
x,y € RK Xac dinh thuat toan ve luu db tinh A, B, C
Giải Thông tin ban đầ+ là x, y đã cho, còn thông tin cuối cùng
cần tÌm là giá trị A, È, C
Ta thay rang dé tinh A chỉ
cần số liệu ban đầu 1a x và y, f
tiép theo dé tinh B can sử \ BEGIN
A Còn để tính C cần cả x, y Doc x, y
và A, B Thứ tự tính toán
không phải là bất kỳ mà đầu ! 5 5
tiên phai tinh A, sau dé méi A:=x2+ựy
tính B và C Lưu đồ được vẽ Ỉ
trên hình 1.1 Tính tổng quát Bi=xtytA
của thuật toán thể hiện ở chỗ 1
nó dùng để tính với bất kỳ giá
tri cha x, y © R Tinh có giới
han thé hién 6 ché qua mét sé Ì
hữu hạn biến đổi ta nhận được In A, B, C
két qua A, B, C Con tinh duy
nhất là với hai giá trị x và y —¬
nhất định thì kết quả A, B, C (END )
là duy nhất
Hình l1
1.3.2 Thuật toán có phân nhánh
Thuật toán có phân nhánh được đặc trưng bằng các quyết định của khối điều kiện Tùy theo kết quả đúng hoặc sai của khối điều 14
Trang 14kiện chương trình được phân chia theo các nhánh khác nhau Ta xét thuật toan phân nhánh qua một số ví dụ dơn giản
Ví dụ 2 Tìm giá trị MAX trong ba giá trị của số thực A, B, C
Giải Thông tin ban đầu là giá trị của A, Ö, C, rõ ràng rằng bất
kỳ số A hoặc B, € có thể là số lớn nhaé
Để tìm số lớn nhất trong các 'số “A, B, C đầu tiên ta so sánh các
số với nhau Nếu A >Ö và Á, '>ÈÉ thì MAX := A Nếu A>B con
A< C thì MAX := C Nếu As s Bvà B < C ta có MAX := C Nếu
As BvaB >, Cc thi MAX := É: Lưu đồ của thuật toán so sánh này cho trên hình 1.2
Trang 15
Giải Giá trị ham s6 f(x, y) nhận được 3 biểu thức giải tích tùy
theo các điều kiện của x và y Đầu tiên ta so sánh x - ÿ < 0 tiếp
theo nếu y = 0 dung thi f(x, y sat + y’, ngugce lai f(x, y) = (x -
yy? Trong trường hop x - ÿ > 0 cần so sánh tiếp điều kiện z - y <
10, nếu đúng thì Zứ, y= + y, nguge lai f(x, y) = & - vẺ Lưu đồ của thuật toán trên cho trên hình 1.3
Trang 16Vi du 4 Tim nghiem của phương trình bac nai
ax? +oxte=0,46,cER
Gidi Thong tin ban dau 1a cdc hé 36 a, 6, ¢ con két qua la nghiệm
X4, Xz Néua # Ola phương trình bậc 2, còn ø = 0 1a phuong trinh
» nhất x =-cíb Để tìm nghiệm đầu tiên ta tính biệt thức
In hai nghiém In hai n or n phương trình
thuc x), X) phức Re, Im(x) Đặc nhất x
Le ——
END
Hình 1.4
Trang 17
1.3.3 Chu trình có bước lặp xác định
Trong nhiều bài toán khoa học kỹ thuật thường gặp các thuật
Sơ đồ chu trình có bước lặp xác định cho trên hình 1.5a
Trong nhiều bài toán có thể gặp nhiều chu trình lồng vào nhau Chú ý rằng các chu trình có thể lồng vào nhau nhưng không được giao nhau Hình 1.5.b minh họa một số chu trình lồng vào nhau
Giải Đầu tiên ta thực hiện tính tổng của 2 số và kết quả tổng
số S được tính dần theo thuật toán sau:
18
Trang 18S,=S,+ x,
S = Sip = Soo + ~106
Như vậy ta đã xác định công thức truy hồi S, = S¡¡†*Z,
¡ = 1,2 100 Trong thuật toán này thông tin ban đầu là các giá trị z¡, ¿ = 1, 100, còn kết quả là tổng S Luu dé cha ví dụ trên ở
hình 1.5c, trong đó bỏ qua giai đoạn đọc các số liệu ban đầu x,
BEGIN Để khẳng định tính đúng đán của
thuật toán này ta hãy kiểm tra một số
giá tri bat dau ti i = 1, 2, 3 va cde giá
tin i
trị cuối ý = n - 2,n- 1, ø ta được:
Vi du 6 Tim thuật toán tính giá trị của đa thức
P(x) = ax” + a,x"! + +," + ayo
Giải Thông tin ban đầu trong thuật toán tính PŒ) là các hệ Số của đa thức đ„, đ¡ đn Và #
Để tính giá trị của đa thức ta thường dùng thuật toán Horner
P = ( (a,x + ay)x + ay)x +o + đạn.) + đn;
trong đó quá trình truy hồi tiến hành như sau:
Trang 19Néu n > 2 ta có thể kiểm tra lưu đồ theo các bước sau đây:
Hinh 1.6
20
Trang 201.3.4 Chu trình có bước lặp không xác định
Trong nhiều bài toán có chu trình lập bước lập không được xác
định trước và phụ thuộc vào
điều kiện so sánh nào đó is
trong biểu thức ƒ(z) để thay
đổi giá trị của chúng vÌ nếu
không như vậy vòng lặp sẽ
chạy mãi không dừng
Hinh 1.7a
Vi du 7 Tinh gia tri ham
36 mt e* vdi x = ø, với sai số nhỏ hơn e cho trước
Giải Dùng khai trién Taylor cia ham e*
Trang 21
Wy = 1s uy = [R,@| < |u,l,n=1,2
Sai số của phép tính gần đúng giá trị hàm sé mt e* dude dam
bảo khi | u,| < e Từ nhân xét trên ta thấy rằng thành phần u,
sẽ nhận được qua quá trình truy hồi và được cộng dần dần theo
công thức (*), thành phần u, được cộng với ⁄„ sau đó kiểm tra điều
kiện |⁄„| < se nếu sai sẽ
chuyển sang tính thành phần
, sau đó sẽ cộng với tổng số
trước và thử điều kiện |u;|
e, quá trình tính sẽ ngừng nếu
ju, | se Luu đề của thuật
todn cho trén hinh 1.76 trong
với giá trị đầu x„ = 0,8
dùng thuật toán khai triển
hàm số theo chuỗi Taylor: _—
fx) = fle.) + (a - x,)fte,) + [ins 7
Trang 22Vé mat hinh hoc phuong phap
Newton (còn gọi là phương pháp
tiếp tuyến) tìm nghiệm gần đúng
œ với hoành độ +„ là điểm cắt của
tiếp tuyến tại các điểm +, ¡, còn
đường cong y = ƒŒz) thay bằng ot
đường tiếp tuyến (h.1.8a) Hình L8 a
Phương pháp lặp là hội tụ nếu
hàm ƒ(z) liên tục và cố đạo hàm ở lân cận nghiệm ¿ Lưu đồ của
“bài toán cho trên hình 1.86, trong đó sử dụng hai khối FUNCTION
dé tinh ham f(x) vA dao ham/’(x).Phép lap sẽ dừng lại khi sai số
|xn+1 “ql £ €- Ngoai ra dé bdo truéng hợp bài toán phân kỳ phải
thực hiện kiểm tra điều kiện số lần lặp vượt quá một con sé cho phép
4,4, XY do
Phương pháp lap Newton nhanh hội tụ nên được coi là phương
pháp cơ bản để tìm nghiệra của phương trình phi tuyến
Ví dụ 9 Giải hệ phương trình tuyến tính cấp » dạng:
4 đi, + 0i2#; + + tGinŸn = 5,
\
đ2j3) † G221; + + O5,%, =Ðy — (9.1)
Gai) + G.2x; + † đnnXp = bạ Giải Có nhiều thuật toán giải hệ phương trình tuyến tính cấp n:
Ó đây xin giới thiệu phương pháp khử ẩn Gauss theo thuật toán sau:
1) Dùng phương trình đầu tiên của hệ phương trình dé khit x,
trong n - 1 phương trỉnh còn lại
Nếu a„ # 0, ta tính n - 1 nhân thức 7n,
Trang 23i= 2,3, n Tiếp theo ta nhận được các hệ số của hệ phương trình:
a, = Gy - mia, , L=2, n )
b9 =b¡- mbi, j= 1,3 "
( BEGIN )
HAM F(X) DAO HAM F’(X)
Hình 1.8b 24
Trang 24JHR on (9.6)
69 = OED mEDOEED Gektiyu.n (9.7)
b lấy giá trị liên tiếp từ 1, 2 đến n - 1, trong giai đoạn & = n - 1
ẩn sé x, _, bị khử trong phương trình cuối cùng của hệ phương
trình, ta nhận được một hệ phương trình trong đó phương trình
Trang 25
Thuật toán khử ẩn Gauss được minh họa bằng lưu đồ trên hình
1.9 Trong hình 1.9 các chu trình được vẽ bằng đường nét đứt và
Trang 26
Bài 14 Tính trung bình số học của các phần tử trong chuỗi số
Xj, Xz, , xạ trong khoảng [A, B], A < B
Bai 15 Tính 100 số đầu tiên của các sé Fibonacci
Bài 16 Tìm số lớn nhất trong dy s6 x,, x2, , x
Bời 17 Tính các phần tử của tam giác Pascal cho tới Cro” Bai 18 Goi x,, x2, , X, 1a lugng colesterol của người đến khám bệnh
Người khỏe có lượng colesterol nhỏ hơn tiêu chuẩn x < A Xác định số người không mắc bệnh và lượng colesterol trung bình của người bệnh
Bài 19 Viết các hoán vị với các số 1, 2, 3, 4, 5
+ Bài 20 Xếp các số theo thứ tự tăng hoặc giảm dần
Bồi 21 Lập danh bạ điện thoại năm số
Bài 29 Cho 3 số dương ø, b, e bất kỳ Nếu 3 số đó có thể là
chiều đài các cạnh của một tam giác, hãy tính diện tích tam giác đó
n
27
Trang 27Mi
£
Bai 23 Tinh n! (n là một số nguyên)
Bai 24 Tim uéc sé chung lén nhat cua hai số
Bài 2ã Cấp số cộng và cấp số nhân: tính tổng và tích của một
chuỗi số biết giá trị đầu và số các số hạng của chuỗi
Bài 26 Tính tổng của chuỗi 1 + +— + +—
n
Bài 27 Xác định các số nguyên tố trong khoảng từ l đến 7, với
nw là số tự nhiên cho trước
Bai 28 Tinh y = log,x, với cơ số ø bất kỳ
§2.2 Vectơ, ma trận, hệ phương trình đại số
Bài 29 Thực hiện phép tính cộng, trừ, tích vô hướng, tích vectơ đối với hai vectơ trong không gian ba chiều
Bài 30 Tính tích vô hướng của hai vectơ ø chiều
x Bai 34, Tim ma tran téng C = A + B
+ Bai 35 Tim ma tran tich C = A.B ˆ
z Bài 36 Tính định thức D của hệ phương trình tuyến tính bậc ø
„ Bài 37a Tính ma trận nghịch đảo
Bài 7b Giải hệ phương trình đại số tuyến tính bậc n bằng
Trang 28phương pháp khử ẩn Gauss (xem vi dụ 9)
§2.3 Hàm số
Bài 38 Vẽ đồ thị hàm số theo từng điểm,
Bài 39 Vẽ đồ thị hàm số, thực hiện dịch chuyển tọa độ và vẽ
các điểm /
Bài 40 Xác định hàm số theo đồ thị hàm số
Bài 41 Tính giá trị liên tiếp hàm số y, = sine”:, trong đó
x =a +il6-a);i = 1, 2, , 100; a, 6 da cho Bai 42 Tinh các giá trị của hàm s6 y; = e* + sinx, với
Ko =athi vai=1,2, ,0n
Bài 43 Tìm "ý x
Bai 44 Lap chuong trinh tính toán các lượng phức: cộng, trừ,
nhân, chia, lũy thừa các số phức
Bài 4ã Lập chương trình đổi radian ra độ
Bài 46 Lập chương trình đổi độ ra rađian
Bài 17 Tính giá trị của các hàm số shr và chr
Bài 49 Tính giá trị hàm số vy = a*™
§2.4 Đa thức và nội suy đa thức
@ Bài 49 Tính giá trị của đa thức Tsebưsev bậc m
trong dé E(n) la ham phan nguyén cua xn
Bài õ1 Tính giá trị của đa thức Laguerre:
Trang 29Bai õ7 Tính tổng hai đa thức.,
Bài õS Nhân hai đa thức
Bài ã9 Chia hai đa thức
§2.5 Đạo hàm số
Bời 60 Tìm đạo hàm cấp / của đa thức P()
Bài 61 Tim đạo hàm cấp 7 của đa thức nội suy Newton,
Bài 62 Tìm đạo hàm một biến
Bai 63 Tim gradient hàm nhiều biến
Bài 64 Tìm giá trị của đạo hàm cấp ¡ của đa thức P(x) tại điểm Xo
Bài 6ã Tìm đạo hàm cấp hai của hàm theo xi; tại một điểm theo công thức đạo hàm có bước biến đổi và một quá trình ngoại suy
§2.6 Tích phân số
Bài 66 Tính tích phân xác định bằng phương pháp Simpson
Bài 67 Tính tích phân xác định bằng phương pháp hình thang
Bài 68 Tính tích phân kép trong miền D bằng phương pháp Gauss - Legendre
Bai 69 Tinh tich phan kép bang phương pháp Romberg 2
SN Retake;
Trang 30§2.7 Giải phương trình phi tuyến
Bài 70 Giải phương trỉnh phi tuyến bằng phương pháp chia
, chew hee tỏ r sim Tư
§2.8 Tối ưu hóa
Bài 73 Tìm cực trị của hàm số bằng phương pháp tiết điện vàng
Bài 74 Tìm cực trị của hàm nhiều biến bằng phương pháp
gradient
Bài 75 TÌm cực trị của hàm một biến
§2.9 Giải phương trình vi phân
Bài 76 Giải phương trình vi phân bằng phương pháp Euler và Euler cai tién
Bai 77 Giải phương trình tích phân bằng phương pháp Romberg Bời 78 Giải phương trình vi phân bằng phương pháp
có không quá 4 lỗi
Bài 82 Biến ngẫu nhiên x, có xác suất p, cho bằng bảng phân
bé x,, p; Tim kỳ vọng, phương sai, độ lệch bình phương trung bình,
lấy a = 2
Bài 83 Xác định hệ số tương quan giữa hai biến ngẫu nhiên
31
Trang 31x va y Kiém tra xem mối liên hệ giữa x và y có đủ tin cậy không ?
§2.11 Một số bài toán quản lý và xử lý văn bản
v_ Bài 84 Lập chương trình in các ngày trong một tuần lễ
¥ Bai 85, Lap chương trình in lịch thé kỷ
Bài 86 Quản lý một file nhập dữ liệu bằng bảng
x Bài 87 Lập chương trình tìm kiếm một phần tử trong một danh
sách
+ Bài 88 Lập chương trình làm một tờ hóa đơn
4 Bài 89 Lập chương trỉnh quản lý danh sách cán bộ
x Bài 90 Lập chương trình in danh sách cán bộ
« Bài 91 Quản lý một file nhập dữ liệu bằng con trỏ
§2.12 Một số bài toán kỹ thuật
Bài 92 Tính đặc tính tần số của tổng trở, góc pha, dòng điên và
điện áp trên các phần tử của mạch ? - L - € nối tiếp
Bài 93 Một bộ chỉnh
lưu có sơ đồ như trên
hình 2.1 Điôệt D lý
tưởng, nghĩa là tương
đương với đoạn dây
không có điện trở khi
khi w hinh sin, wu = cose, đặt Pf, = RCw
a) Goi ¢, la thai diém bat đầu tit dé v > u, dat #ị = 0+4, biểu
dién y, theo ¢, ;
b) Gọi /; là thời điểm v = wu, dat p, = wt,, viét phương trình
liên hệ giữa p,, py, va yy
2) Cho tan 86 f = 50Hz, R = 200 Q, lap chuong trinh tinh gia
trị điện dung C để tính ø; với độ chính xác 0,01 rad và chỉ thị giá
32
Trang 32trị nhỏ nhất của tỷ số u/Ùu
Với giá trị của C bằng bao nhiêu để tỉ số này lén hon 0,9v,,,,-
Bài 94 Diện trở phi tuyến có đặc tính Vôn-Ampe như sau:
Lập chương trình xác định lạ với giá trị ¿ nằm trong khoảng
từ 0 đến 17V, bàm /() xác định bằng đa thức nội suy bậc 5
3) Mắc điện trở phi tuyến vào sơ đồ hình 2.2
E, là điện áp một chiều điều chỉnh được và e là điện áp biến đổi
e = V 2% Ecoswt, U, la tri số trung bình của điện áp ứ
Giả thiết ¡¡ rất nhỏ so với i, cho R, = 1002, R, =500Q,
E = 100mV, C = lywF, tan sé f = 1 kHz
a) Vai trò của tụ C ? Xéec dinh tri 86 cha Ry ;
b) Biểu diễn trị số hiệu dung U, cha dién ap u, theo ham của
E, Ry, Ry, C, », Rg
Bai 95 Mach L - C song song cho trén hinh 2.3
Xác định giá tri tan sé géc wy để tổng dẫn giữa cực A va B la
cực đại, tính giá trị 2
1) Néu R = 0, xdc dinh wy, va ẤM:
33
Trang 33Sơ đồ bộ lọc cho trên hình 9.4a Diện trở R cố định, điện dung
C¡ và C; thay đổi Khuếch đại toán tử là lý tưởng Ỏ tần số œ hệ
Trang 34b) Tính các giá trị cla u,
và u; để làm gần đúng tốt đø§
nhất G¡ và G¿ theo tiêu chuẩn `
Bài 98 Tân nhiệt trong một dia
Một đĩa phẳng bán kính #, chiều dày e rất nhỏ so với R, làm bằng vật liệu có nhiệt dẫn k, khối lượng ¿ và nhiệt dung khối C Trong đĩa có nhiệt độ 7, ở một điểm Aƒ không phụ thuộc vào khoảng cách r giữa M và trục của dia Mot vat hình trụ có bán kính R¡ duy trì ở nhiệt độ 7¡ được đặt ở tâm dia trén hai mat O chế độ xác lập nhiệt độ cớ giá trị không đổi 7) khi r <lï Khi r
< R, hai mat dia được tiếp xúc với môi trường có nhiệt độ không
3ð
Trang 35đổi T Công suất nhiệt tiêu tán trên một đơn vị diện tích có biểu '
thie A(T - T,) 0
vanh dia (r = R) cd
| l—— # ——
a) Tính Tứ) với các giá trị của r cách nhau 3mm
Lấy bước 3mm để giải phương trình vi phân Tính lại với bước 1mm Có thể ước lượng độ chính xác của tính toán đầu tiên được không?
N S be!
b) Xác định đạo hàm _ véir = R,, suy ra công suất tiêu
Bài 99 Tối ưu hóa một khoảng thời gian
Một hệ thống có gia tốc trọng trường ø, trục Óz bướng xuống dưới, bài toán giới hạn trong mặt phẳng xOz
Có 2 điểm O va A, O là gốc, A là điểm có tọa độ (xa, ZA),
Z4 < 0 (h.2.6) Để dẫn một vật chuyển động giống một chất điểm
từ Ó tới A, ta có hai ray thẳng nối ở B bỏ qua chiều đài Cần xác
al : ~£
Hình 2.6
Trang 36định toa dé (xp, Zp) của B sao cho khoảng thời gian của tuyến AB
ngắn nhất có thể Cho g = 9,81 ms” 2 z, = 1m Vat thé chuyển động trượt không cố ma sát
1) Biểu diễn khoảng thời gian ¢,, cla tuyến ÁB theo xg va Zp
2) Xác định vị trí tối ưu của B với giá trị của x„ bất kỳ
Bài 100 Phương trình thời gian của vệ tỉnh trên quỹ dao élip
Gọi Ó là tâm trái đất và
cố định với hệ tọa độ Galilê
R Có một vệ tỉnh nhân tạo
ở vị trí M, bỏ qua khối lượng
với trái đất và bỏ qua ảnh
hưởng của các sao khác
khoảng gần nhất 9 là góc của điểm M trên quỹ đạo so với gốc gần
nhất Biết hằng số hấp dẫn G = 6,672.10 !Ì Nm”.kg Ÿ, khối lượng
trái đất mạ = 5,977.1024kg
1) Biểu diễn chu kỳ và tốc độ theo Œ, m+.,rụ VÀ rụ
2) Viết phương trình quỹ đạo dưới dạng:
f=— 1 + ecosé
Biểu diễn p và e theo các số liệu
Biểu diễn diện tích quét của tia từ thời điểm đầu dưới dạng:
LÃ
AG) = J fed
3) Lập chương trình tính khi vệ tỉnh qua một vị trí cho trước
với độ chính xác bốn con số Tính và ghi các giá trị của / và r với
in
8= —
20 G = 1, , 20)
37
Trang 374) Áp dụng với rọ = 6700 km
rA = 6700 km, 7 400 km, 42 000 km, 400 000 km
Bài 101 Tù trường của hình xuyến
Một hình xuyến mô hình hớa bằng ø vòng dây tròn cùng bán
kính # trên cùng trục Oz có cùng dòng điện 7 chạy qua và đặt đều nhau (h.2.8) Ký hiệu ZaA và Zụ là 2 cạnh bên
¿ e-—-} —-#* e-—-}_~_-» e—-i-—_.«
 s 2£m ; 24 = ~5em , 2g = Fem , L=lA
Hinh 2.8
Lập chương trình tính từ cảm B tại điểm bất kỳ trên mặt pnẳng xOz Kiém tra tính đúng đắn của phép làm gần đúng như sau:
- hình xuyến vô hạn của các vòng nối với nhau;
- biểu thức giải tích của trường trên trục hình xuyến có giới hạn
gồm các vòng nối với nhau
38
Trang 38CHUONG 3
PHAN TÍCH CÁC THUẬT TOÁN VÀ LƯU DO CUA
101 BÀI TOÁN
Trong chương này sẽ phân tích các thuật toán để giải 101 bài
toán đã nêu trong chương 2 Nội dung chính của chương này đề cập tới các phương pháp số đang được ứng dụng rộng rãi trong các bài toán thực tế Cần nhấn mạnh các thuật toán này không phải
là duy nhất Bạn doc cd thé tlm thấy các thuật toán đơn giản và linh hoạt hơn Với mỗi bài toán sẽ trình bày tớm tất cách giải, phương pháp số được sử dụng và cuối cùng là lưu đồ của bài toán Các bài 1 đến bài 9 đã nêu cụ thể trong các ví dụ 1 đến ví dụ
9 ở chương 1, vÌ vậy chương này bắt đầu phân tích từ bài 10 đến bài 101,
§3.1 Đại số
Bài 10 Tổ hợp chập & trong ø phần tử ký hiệu là c,* duge dinh
n!
c,* = ——— n Ri(n - k)!
Ta cd thé tinh c,* trực tiếp từ định nghĩa bằng cách tính giai thừa Tuy nhiên ta cũng có thể tính tổ hợp một cách đơn giản bằng công thức truy hồi:
n-k+1
C,* = —— Ê với k = 1, 2, ca n
Ta tổ chức một chu trình nhằm biến đổi chỉ số ¿ để tính các giá
trị C,* theo C„F'Ì, Lưu đồ cho trên hình 8.1
39
Trang 39P= h +¡ ta dùng công thức truy hồi: i=]
P = Px,, véi gid tri dau P := 1
Lập một chu trình tính tích P, Lưu đồ cho trên hình 3.2
Chương trình bất đầu bằng việc đọc n số #¡ và biến đổi chỉ số ¿
để tính tích Cuối cùng là in kết quả P
40
Trang 40
In P
END Hinh 3.2
Bài 12 Để tính biểu thức E = Ÿ a+ ñ zi
i= i=
ta thực hiện thuật toán tính tổng n số x; (xem vi dụ 5 chương 1)
và thuật toán tính tích œ số z, ở bài 11
Lưu đồ cho trên hình 3.3
Chương trình bắt đầu bằng việc đọc n số x;, thực hiện một vòng
lặp để biến đổi chỉ số ¿ và tính £ = P + S Chu trình kết thúc khi
i > n, cuối cùng là in kết quả E
41