Với sự hỗ trợ của máy tính, đã xuất hiện nhiều phần mềm từ chuyên dụngnhư Lindo cho đến đơn giản, phổ cập như bảng tính trong Excel và QuattroPro đểgiải các bài toán Quy hoạch tuyến tính
Trang 1Đại Học Quốc Gia Tp Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
NGUYỄN THỊ THU DUNG
TÍNH TOÁN HÌNH THỨC VÀ QUY HOẠCH TOÁN HỌC
Chuyên ngành : Toán Giải Tích Ứng Dụng
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 07 năm 2007
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học:
Cán bộ chấm nhận xét 1:
Cán bộ chấm nhận xét 2:
Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày tháng năm
Trang 3TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM PHÒNG ĐÀO TẠO SĐH ĐỘC LẬP – TỰ DO – HẠNH PHÚC
Tp HCM, ngày tháng năm 2007
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: NGUYỄN THỊ THU DUNG Phái: nữ
Ngày, tháng, năm sinh: 10/12/1980 Nơi sinh: Long An Chuyên ngành: Toán Giải Tích Ứng Dụng MSHV: 02404569
I TÊN ĐỀ TÀI: TÍNH TOÁN HÌNH THỨC VÀ QUY HỌACH TOÁN HỌC
II NHIỆM VỤ VÀ NỘI DUNG: Xây dựng một cách tiếp cận bài toán Quy hoạch tuyến tính dưới góc độ tính toán hình thức
III NGÀY GIAO NHIỆM VỤ: (Ngày bắt đầu thực hiện luận văn ghi trong Quyết định giao đề tài): 07/02/2007
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 07/07/2007
V CÁN BỘ HƯỚNG DẪN: TS NGUYỄN QUỐC LÂN
QL CHUYÊN NGÀNH
Nội dung và đề cương luận văn thạc sĩ đã được Hội đồng chuyên ngành thông qua
Ngày tháng năm 2007
Trang 4LỜI CẢM ƠN
Lời đầu, tôi xin được bày tỏ lòng biết ơn chân thành và sâu sắc đến Thầyhướng dẫn, TS NGUYỄN QUỐC LÂN, và các thầy trong Bộ môn Toán đã tậntình hướng dẫn, động viên và dìu dắt tôi trong suốt quá trình học tập, nghiên cứuvà thực hiện luận văn
Tôi xin chân thành cảm ơn những người thầy đã đọc và cho ý kiến nhận xétsâu sắc về luận văn của tôi
Tôi xin chân thành cảm ơn Ban Giám Hiệu, các thầy cô trong Bộ Môn ToánỨng Dụng - Khoa Khoa Học và Ứng Dụng, Phòng Đào Tạo Sau Đại Học trườngĐại Học Bách Khoa thành phố Hồ Chí Minh, đã tạo mọi điều kiện thuận lợi nhấtcho tôi trong suốt quá trình học tập, nghiên cứu và thực hiện luận văn
Cuối cùng, tôi xin chân thành cảm ơn đến các bạn trong cùng khóa học củatôi đã giúp đỡ tôi rất nhiều để luận văn này được hoàn thành
Trang 5MỞ ĐẦU
Quy hoạch tuyến tính ra đời năm 1947 khi G B Dantzig đưa ra phươngpháp đại số rất tổng quát và hiệu quả, nổi tiếng với tên gọi “phương pháp đơnhình”, giải quyết thành công đa số các bài toán quy hoạch tuyến tính Từ thờiđiểm bài báo đầu tiên của Dantzig được xuất bản cho đến nay, hầu như khôngthể thống kê được chính xác số lượng sách xuất bản và số lượng bài báo nghiêncứu ứng dụng quy hoạch tuyến tính, nó đã được công bố bằng hàng trăm loạingôn ngữ khác nhau
Với sự hỗ trợ của máy tính, đã xuất hiện nhiều phần mềm từ chuyên dụngnhư Lindo cho đến đơn giản, phổ cập như bảng tính trong Excel và QuattroPro đểgiải các bài toán Quy hoạch tuyến tính Tuy nhiên, bên cạnh mặt tiện dụngkhông thể phủ định của các phần mềm cho ra kết quả số trực tiếp, lãnh vực giáodục vẫn cần đến một cách tiếp cận giải bài toán Quy hoạch tuyến tính theo dạnglặp từng bước để giúp hiểu được tường tận các bước, minh họa cụ thể, rõ ràng sơđồ giải nhưng sẽ rất cồng kềnh và mệt mỏi, mất thời gian nếu ta tính bằng tay.Tính toán hình thức sẽ là một công cụ tốt giúp vượt qua khó khăn trên
Trong luận văn này, chúng tôi sẽ mô tả cách giải các bài toán QHTT quavài ví dụ mô hình quy hoạch tuyến tính và trình bày lời giải, minh họa bởichương trình tính toán hình thức Maple Với Maple, chúng ta có thể giải trực tiếpbằng simplex, hoặc giải trực tiếp bằng ma trận, hoặc tính toán từng bước nhưquá trình làm thủ công nhưng mọi công việc đều qua máy! Các bảng tính dùngtrong luận văn có thể hổ trợ tốt quá trình giảng dạy Quy hoạch tuyến tính ở đạihọc, thậm chí phổ thông do tính đơn giản, rõ ràng và dễ dàng sử dụng với ngườihọc
Trang 6BẢN TÓM TẮT NỘI DUNG LUẬN VĂN
Nội dung của luận văn đề cập tới quy họach tuyến tính và tính toán hìnhthức Luận văn được chia thành năm chương:
Chương 1, chúng tôi trình bày tổng quan về QHTT Nội dung phần này chủ
yếu trích dẫn từ các tài liệu tham khảo về QHTT quen thuộc
Chương 2, chúng tôi trình bày tổng quan về Maple Nội dung phần này
được lượt dịch từ tài liệu tham khảo nước ngoài
Chương 3, chúng tôi trình bày chi tiết về gói lệnh Simplex trong Maple Nội
dung phần này được trích từ trong phần mềm Maple
Chương 4, chúng tôi trình bày về cách giải bài toán QHTT dưới dạng ma
trận bằng Maple với gói lệnh Linalg Nội dung phần này được lượt dịch từ tàiliệu tham khảo nước ngoài
Chương 5, chúng tôi trình bày cách giải bài toán QHTT bằng chế độ chạy
từng bước tính cụ thể với các lệnh trong gói lệnh Simplex của Maple Cácworksheet tính toán được tác giả luận văn phát triển từ ý tưởng của giáo viênhướng dẫn
Trang 7MỤC LỤC
Trang
Mở đầu 7
Chương 1 Tổng quan về QHTT 8 1.1 Định nghĩa 8
1.2 Ý nghĩa hình học của bài toán QHTT 13
1.3 Phương pháp đơn hình 16
1.4 Bài toán QHTT đối ngẫu 20
Chương 2 Tổng quan về tính toán hình thức và Maple 26 Chương 3 Maple trong QHTT 36 Chương 4 Giải BT QHTT bằng cách dùng ma trận với gói lệnh Linalg 44 4.1 Phương pháp hình học 41
4.2 Phương pháp đơn hình 48
4.3 Các trường hợp đặc biệt và các khó khăn 58
4.4 Các ví dụ khác 60
4.5 Phân tích độ nhạy cảm và tính đối ngẫu 65
4.6 QHTT nguyên 78
4.7 Tóm tắt 81
Chương 5 Giải QHTT bằng Maple với chế độ chạy từng bước tính cụ thể 82 5.1 Phương pháp hình học 82
5.2 Phương pháp đơn hình - Bài toán một pha 86
5.3 Phương pháp đơn hình - Bài toán hai pha 88
5.4 Bài toán xoay vòng 92
Kết luận 99
Tài liệu tham khảo 100
Trang 8Chương 1 TỔNG QUAN VỀ QUY HOẠCH TUYẾN TÍNH
Quy hoạch tuyến tính và các vấn đề liên quan đã được trình bày trong rấtnhiều tài liệu Trong chương này chúng tôi xin đề cập vắn tắt các vấn đề cơ bảnsau:
1/ Mô hình thực tế, phát biểu Quy hoạch tuyến tính dạng chính tắc,
2/ Lời giải hình học,
3/ Phương pháp và thuật giải đơn hình,
4/ Bài toán đối ngẫu
Quy hoạch tuyến tính là một trong những lớp bài toán tối ưu được nghiêncứu trọn vẹn về phương diện lý thuyết lẫn thực hành Quy hoạch tuyến tính bắtnguồn từ những nghiên cứu cuả nhà toán học Nga nổi tiếng, viện sĩ KantorovichL.V được nêu trong một loạt công trình về bài toán kế hoạch sản xuất, công bốnăm 1938 Năm 1947 nhà toán học Mỹ Dantzig đã nghiên cứu và đề xuất phươngpháp đơn hình để giải bài toán QHTT Năm 1952 phương pháp đơn hình đã đượcchạy trên máy tính điện tử ở Mỹ
1.1 Định nghĩa
Ví dụ: Bài toán lập kế hoạch sản xuất
Xí nghiệp sản xuất các mặt hàng A, B, C, D từ các loại nguyên liệu I, II, IIIvơí lượng dự trữ tương ứng là u1, u2, u3(đơn vị nguyên liệu) Bảng sau cho biết lợinhuận thu được và chi phí nguyên liệu cho mỗi đơn vị sản phẩm:
Trang 9Lập kế hoạch sản xuất các mặt hàng như sau:
a) Tổng lợi nhuận thu được lớn nhất
b) Sử dụng hết nguyên liệu, riêng loại nguyên liệu III có thể dư.c) Tổng số lượng sản phẩm A và D không nhỏ hơn u4
Phân tích mô hình:
Gọi x1, x2, x3, x4là số sản phẩm A, B, C, D tương ứng cần sản xuất.Tổng lợi nhuận: f c x c x 1 1 2 2c x3 3c x4 4Nguyên liệu I cần sử dụng: a x a x11 1 12 2a x13 3 a x14 4Nguyên liệu II cần sử dụng: a x a x21 1 22 2a x23 3a x24 4Nguyên liệu III cần sử dụng: a x a x31 1 32 2 a x33 3a x34 4Như vậy bài toán lập kế hoạch sản xuất được phát biểu như sau:
Tìm các số x1, x2, x3, x4sao cho:
1 1 2 2 3 3 4 4
f c x c x c x c x maxtrong đó:
Trang 10Bài toán trên được gọi là bài toán Quy hoạch tuyến tính.
Bài toán Quy hoạch tuyến tính dạng tổng quát.
Tìm các số xj, j 1 n sao cho
ij j i
j 1 n
ij j i
j 1
* j
x 0, j 1 n được gọi là ràng buộc tự nhiên, các điều kiện còn lại được gọi là ràng buộc bắt buộc.
X (x ,x , ,x ) R có các thành phần thỏa mãn tất cả
các điều kiện ràng buộc được gọi là một phương án chấp nhận được Khi đó
Một phương án có giá trị hàm mục tiêu nhỏ nhất [lớn nhất] trên miền D
được gọi là phương án tối ưu hay nghiệm cuả bài toán Quy hoạch tuyến tính.
Bài toán Quy hoạch tuyến tính dạng chính tắc
Bài toán Quy hoạch tuyến tính dạng chính tắc là trường hợp đặc biệt, trongđó các điều kiện ràng buộc bắt buộc là hệ m phương trình độc lập (m n ), tất cảcác ẩn số đều không âm :
Trang 11j j
j 1 n
ij j i
j 1 j
Bài toán Quy hoạch tuyến tính dạng chuẩn tắc
Bài toán Quy hoạch tuyến tính dạng chuẩn tắc có tất cả điều kiện ràng buộclà bất phương trình và tất cả các ẩn số đều không âm
n
j j
j 1 n
ij j i
j 1 j
Trang 12Sau khi giải bài toán mới có phương án tối ưu * * * * *
Bài toán Quy hoạch tuyến tính dạng ma trận
mj
aa
Trang 13f C X min
AX UX
trong đó, C là ma trận chuyển vị của ma trận C
Tương tự, bài toán dạng chuẩn tắc (1-4) được viết như sau:
1.2 Ý nghĩa và phương pháp hình học của bài toán quy hoạch tuyến tính
Xét bài toán Quy hoạch tuyến tính dưới dạng chuẩn với 2 biến số:
1 1 2 2 i1 1 i2 2 i
a x a x b xác định một nửa mặt phẳng
Như vậy tập D (miền ràng buộc) được xác định như là giao của m nửa mặtphẳng và sẽ là một đa giác lồi trên mặt phẳng Phương trình c x c x1 1 2 2 khi
thay đổi sẽ xác định trên mặt phẳng các đường thẳng song song với nhau mà tasẽ gọi là các đường mức (vơí giá trị mức ) Mỗi điểm x (x ,x ) D 1 2 sẽ nằmtrên một đường mức với mức c x c x1 1 2 2
Trang 14Bài toán có thể phát biểu theo ngôn ngữ hình học như sau: trong số cácđường mức cắt tập D, hãy tìm đường mức với giá trị mức lớn nhất.
Nếu dịch chuyển song song các đường mức theo hướng vectơ pháp cuảchúng n (c ,c ) 1 2 thì giá trị mức sẽ tăng, nếu dịch chuyển theo hướng ngược lạithì giá trị mức sẽ giảm Vì vậy để giải bài toán ta có thể tiến hành như sau:
Bắt đầu từ một đường mức cắt D ta dịch chuyển song song các đường mứctheo hướng vectơ pháp tuyến n (c ,c ) 1 2 cho đến khi nào việc dịch chuyển tiếptheo làm cho đường mức không còn cắt D nữa thì dừng; điểm cuả D (có thể nhiềuđiểm) nằm trên đường mức cuối cùng này sẽ là lời giải tối ưu cần tìm, còn giá trịcủa hàm mục tiêu tại đó chính là giá trị tối ưu của bài toán
Ví dụ: Tìm giá trị lớn nhất của hàm mục tiêu f 3x 2x 1 2 với các ràngbuộc:
1 2
1 2 2
Trang 15Miền chấp nhận được được biểu diễn ở hình 1, các số trong vòng tròn vàmũi tên là chỉ số thứ tự của ràng buộc tương ứng và phía của nửa không gian xác
định bởi ràng buộc
Đường mức của hàm mục tiêu là đường thẳng f 3x 2x 1 2 Khi cho tăng dần ta thấy điểm cuối cùng mà đường mức còn cắt miền chấp nhận đượclà đỉnh D (hình 3) D là giao điểm của hai đường (1) và (2)
x 2x 6,2x x 8 Giải hệ này ta được x1 10,x2 4
chính là nghiệm tối
ưu Giá trị mục tiêu tối ưu là f 37
3
Qua phương pháp hình học ta thấy rằng:
1) Nếu QHTT có phương án tối ưu thì có ít nhất một đỉnh là tối ưu Sở dĩnói ít nhất vì có trường hợp đường mức ở vị trí giới hạn trùng vơí một
2x
f
Trang 16cạnh cuả D thì tất cả các điểm trên cạnh này là phương án tối ưu, trongđó có 2 đỉnh.
2) Nếu miền ràng buộc D giới nội và khác rỗng thì chắc chắn có phươngán tối ưu
3) Nếu miền ràng buộc không giới nội nhưng hàm mục tiêu bị chặn trên ởtrên miền ràng buộc thì cũng chắc chắn có phương án tối ưu
1.3 Phương pháp đơn hình.
Phương pháp đơn hình đã được trình bày dưới nhiều dạng trong các sách Ơûđây chúng tôi chỉ xét phương pháp đơn hình trên từ vựng đơn giản nhất để minhhọa
Xét quy hoạch tuyến tính ở dạng chuẩn
n
j j
j 1 n
ij j i
j 1 j
cơ sở Ơû từ vựng xuất phát thì N= {1, …, n} và B = (n + 1, …, n + m}, nhưng chúngsẽ thay đổi sau mỗi bước Ơû mỗi bước, từ vựng đều có dạng:
Trang 17j j
j N n
Dấu gạch trên đầu ký tự chỉ rằng đại lượng này đã thay đổi qua các bước
Ơû mỗi bước lặp, đúng một biến từ không cơ sở thành biến cơ sở, được gọi là
biến vào, và đúng một biến cơ sở trở thành biến không cơ sở gọi là biến ra Biến
vào được chọn là biến có hệ số âm nhỏ nhất trong các biến có hệ số mục tiêu âm(tức hệ số trong hàm mục tiêu âm) để làm giảm hàm mục tiêu nhiều nhất Nếukhông có hệ số mục tiêu âm thì nghiệm nhận được ở bước lặp đó là tối ưu
Biến ra được chọn để đảm bảo tính không âm của các biến Giả sử biến vàođã chọn là x , tức là giá trị của nó trở thành dương Khi đó các biến đang là cơ sởksẽ bị thay đổi và bằng
i i ik k
x b a x ,i B k
x được phép lớn đến mức mọi xi 0, i B Tức là:
Ở đây ta quy ước 0 0
0 và ta chỉ xét trường hợp bi 0 và trường hợp có ítnhất một tỷ số ik
Sau khi chọn biến vào và biến ra, việc chuyển từ vựng sang từ vựng mới là
nhờ các phép toán hàng Toàn bộ phép làm này gọi là phép xoay.
Ví dụ: Xét quy hoạch tuyến tính
Trang 18x 0, x 0, x 0, w 5, w 11, w 8Giá trị hàm mục tiêu tương ứng là z 0
Vì hệ số của x ở hàm mục tiêu là âm nhất, nếu ta tăng giá trị1 x từ 0 lên1giá trị dương càng lớn thì z càng giảm nhiều nhất (nếu ta giữ x2 0, x3 0) Khiđó giá trị các biến bù cũng bị thay đổi Sự thay đổi này không ảnh hưởng hàmmục tiêu nhưng x chỉ được thay đổi sao cho1 w , w , w1 2 3 0 Vì x2 0, x3 0nên
Trang 19Giá trị mục tiêu là z 12,5.
Để vào bước hai ta cũng viết lại bài toán ở dạng tương tự ban đầu, tức là đổivai trò của x và1 w Vậy1 x ,w ,w và z sẽ biểu diễn qua1 2 3 w ,x và1 2 x Muốn3vậy, ở ràng buộc đầu ta giải x ra theo1 w ,x và1 2 x3
Tiếp theo ta thay x trong biểu thức của1 w ,w và z bằng biểu thức (1-11) 2 3
Để thực hiện việc thay này, ta làm phép toán trên hàng đối với bài toán (1-10)
Trang 20phương trình còn lại cho ta x3 5 và x3 1 Ta phải lấy x3 1 và được nghiệmchấp nhận được mới
x 2, x 0, x 1, w 0, w 1, w 0Và giá trị mục tiêu tương ứng z = - 13
Để vào bước lặp 3 ta lại viết phương trình ở dạng x1, w2, x3và z biểu diễntheo w1, x2 và w3 thực hiện phép toán trên hàng đối với phương trình cho w3 tađược
x 1 3w x 2wLàm tương tự đối với các hàng khác ta được
1.4 Bài toán Quy hoạch tuyến tính đối ngẫu
Lý thuyết đối ngẫu là một vấn đề quan trọng của lý thuyết tối ưu Nó giúpphân tích sâu cấu trúc của bài toán tối ưu, cho phép giải thích hình học, đồng thờicũng là một công cụ mạnh để nghiên cứu và xây dựng các thuật toán Sau đâychúng tôi sẽ giới thiệu sơ lược về lý thuyết đối ngẫu
Bài toán mở đầu
Xét một quy hoạch tuyến tính ở dạng chính tắc
Trang 21Tmin c x,
Xử lý ràng buộc Ax b là khó nên ta hãy thử “nới lỏng” bằng cách coi nhưkhông có ràng buộc này nhưng phạt vào các phương án x không thỏa mãn ràngbuộc này (tức là Ax b 0 ) một lượng y b AxT , ở đây y là vectơ (m chiều)giá phải trả cho sự vi phạm ràng buộc b Ax Thay cho (1-13) ta giải bài toán
minc x y b Ax , x 0 , (1-14)
Đặt g y là giá trị tối ưu của bài toán nới lỏng (1-14) Vì bài toán nới lỏng
bị ràng buộc ít hơn nên ta dự đoán g y là cận dưới cho giá trị mục tiêu tối ưu T
c x của bài toán (1-13) Điều này được kiểm chứng dễ dàng:
Trang 22khẳng định giá trị mục tiêu tối ưu của bài toán gốc, tức là bài toán (1-13) bằnggiá trị mục tiêu tối ưu của bài toán đối ngẫu (1-15) của nó Nói một cách khácnếu vectơ giá y được chọn thích hợp là nghiệm tối ưu của bài toán đối ngẫu thìviệc vi phạm ràng buộc b Ax không làm ảnh hưởng đến giá trị mục tiêu tối ưu(vì giá trị mục tiêu tối ưu của bài toán nới lỏng (1-14) bằng c xT ).
Bây giờ ta biến đổi (1-15) để được dạng tốt hơn ta có
Trang 23T T
Trang 24Nhận xét Mỗi ràng buộc ở bài toán gốc không kể ràng buộc dấu, ứng vớimột biến của bài toán đối ngẫu Mỗi biến của bài toán gốc ứng với một ràng buộc
ở bài toán đối ngẫu Đồng thời các chiều bất đẳng thức có quan hệ trực tiếp vớinhau và cho bằng bảng sau đây:
ràng buộc
i i i
bbb
tự do00
Tự do
i i i
ccc
ràng buộc
Các biến y của bài toán đối ngẫu được gọi là biến đối ngẫu.i
Nếu bài toán gốc và bài toán đối ngẫu đều có phương án chấp nhận được thìchúng đều có phương án tối ưu và giá trị tối ưu của hàm mục tiêu bằng nhau
Nếu bài toán gốc khó giải (chẳng hạn chưa có từ vựng chấp nhận được đểxuẩt phát) ta có thể giải bằng cách áp dụng thuật toán đơn hình cho bài toán đốingẫu (với bài toán đối ngẫu có từ vựng chấp nhận được để xuất phát)
Ví dụ Xét bài toán quy hoạch tuyến tính ở bên trái dưới đây ta sẽ lập được
bài toán đối ngẫu của nó như ở bên phải
Trang 251 2 3
3 1 2 3
1 2 3
Trang 26Chương 2 TỔNG QUAN VỀ TÍNH TOÁN HÌNH THỨC VÀ MAPLE
Từ đầu thập niên 90, bên cạnh tính toán số đã quen thuộc trên máy tính,xuất hiện tính toán hình thức cho phép thực hiện tính toán với các biểu thức mangtính tổng quát cao vẫn bởi chương trình máy tính Có nhiều phần mềm tính toánhình thức đang ngày càng được hoàn thiện: Maple, Matlab, Matematica … Đểminh họa ý tưởng áp dụng tính toán hình thức vào quy hoạch toán học, chúng tôixin được giới hạn ở một phần mềm tiêu biểu là Maple Trong chương này, chúngtôi giới thiệu một cách tổng quan về Maple và trình bày các khía cạnh có ích củanó trong các ứng dụng nghiên cứu các phép toán
2.1 Giới thiệu
Maple là một môi trường giải các bài toán toán học, nó kết hợp các phươngpháp hình thức, số và đồ thị được dùng trong nhiều lĩnh vực khác nhau của toánhọc
Maple có hơn 2700 dòng lệnh và gần 40 gói về lĩnh vực toán học được dùngđể giải các bài toán từ số học sơ cấp cho tới lý thuyết tương đối tổng quát
2.2 Tính toán hình thức
2.2.1 Khai triển, đặt thừa số và đơn giản
Mỗi dòng lệnh của Maple phải kết thúc bằng dấu chấm phẩy (;) hoặc dấu haichấm (:) Nếu kết thúc bằng dấu chấm phẩy thì xuất kết quả vừa thực hiện, còndùng dấu hai chấm thì không xuất kết quả
Xét khai triển của biểu thức x y 10
Trang 27Dòng lệnh combine() cố gắng kết hợp các hệ số thành một hệ số đơn Lệnhnày giống lệnh factor() – trái ngược với lệnh expand()
>A:=x^y*x^z;
Trang 282.2.2 Khai báo các hàm bằng cách dùng “->” và unapply()
Phép toán gán (:=) cho phép người sử dùng đặt tên một đối tượng trong Maplenhư f : 1xx; một khi điều này được làm, thậm chí nó có thể ước lượng biểuthức với các giá trị khác nhau dùng subs() hoặc eval() như trong các ví dụ sau
Trang 292 2
1 (ab)2 (ab)2
Nếu biểu thức được dự tính định nghĩa một hàm, thì hoặc dùng lệnh mũi tên
(->) hoặc dùng lệnh unapply()
2.2.3 Các danh sách, các tập và các mảng
Các danh sách
Một danh sách trong Maple có thể được tạo bằng cách tạo các biểu thức hoặccác đối tượng trong Maple được bao quanh trong cặp móc đơn vuông
Trang 30Số các phần tử của danh sách có thể được đếm bằng cách dùng lệnh nops() vàthành phần của một phần tử có thể được kiểm tra bằng dòng lệnh mchúngtôiber().
>nops(L);
4
>member(b,L);member(cos(x),L);
true false
Để truy cập các phần tử thứ nhất và thứ tư của danh sách, chúng ta đưa vàoL[1] và L[4]
Các tập hợp
Một tập hợp toán học là một tập hợp các phần tử không có thứ tự TrongMaple một tập hợp được tạo bởi các phần tử được vây trong cặp móc nhọn
Trang 31Vì A và B không có phần tử chung, giao của chúng A B là tập rỗng , màMaple ký hiệu là .
>A intersect B;
{ }
Giải một hệ hai phương trình hai ẩn có nghiệm bằng cách dùng ký hiệu tậphợp Trước khi các biểu thức liên hệ giữa x và y được tính toán, nghiệm tìm thấyphải được gán
Trang 32Một cấu trúc dữ liệu, một mảng là một mở rộng của một danh sách mà nóđược đánh số bởi dãy các số nguyên dương từ 1 tới nops(list) Trong một mảng cóthể có nhiều chiều và các chỉ số có thể âm hoặc bằng 0 Các mảng cũng có liênhệ với các đối tượng như các vectơ và các ma trận.
Trang 332.3 Các phép toán về ma trận
Ma trận trong Maple được hiểu là mảng hai chiều với các chỉ số dòng và chỉsó cột bắt đầu từ 1 các ma trận có thể nhập hoặc trực tiếp, như một mảng haichiều, hoặc dùng lệnh matrix trong gói đại số tuyến tính
Xét các ví dụ sau
Sau khi tải gói đại số tuyến tính linalg, chúng ta định nghĩa hai ma trận A và
B Đại số ma trận (như nhân một ma trận A với hằng , cộng ma trận A và B,nhân A và B) được thực hiện bằng lệnh evalm()
Trang 36Chương 3
MAPLE TRONG QUY HOẠCH TUYẾN TÍNH
Để thuận tiện cho người sử dụng, đặc biệt Maple đã chuẩn bị một gói lệnhriêng simplex chuyên dành cho lãnh vực Quy hoạch tuyến tính, phương pháp đơnhình Trong chương này, chúng tôi xin giới thiệu về gói lệnh simplex trongMaple Ta có thể áp dụng gói lệnh simplex để giải bài toán theo chế độ chạytừng bước tính cụ thể ở Chương 5
a) simplex[basis]-tìm một danh sách biến cơ sở
Trang 37d) simplex[display] – Xuất một bài toán quy hoạch tuyến tính dạng ma trận.
Trang 38Các tham số :
C - tập các ràng buộc tuyến tính
vartype - (tùy chọn)NONNEGATIVEhoặcUNRESTRICTED
NewC - (tùy chọn) tên
Transform - (tùy chọn) tên
maximize(f,C,vartype,'NewC','transform')
Các tham số :
f - biểu thức tuyến tính
C - tập hợp các ràng buộc tuyến tính
Trang 39vartype - (tùy chọn)NONNEGATIVEhoặcUNRESTRICTED
NewC - (tùy chọn) tên
transform - (tùy chọn) tên
>maximize( x-y, {3*x+4*y <= 4, 4*x+3*y <= -3} );
maximize( x-y, {3*x+4*y <= 4, 4*x+3*y <= -3}, NONNEGATIVE );
minimize(f,C,vartype,'NewC','transform')
Các tham số
f - biểu thức tuyến tính
C - tập hợp các ràng buộc tuyến tính
vartype - (tùy chọn)NONNEGATIVEhoặcUNRESTRICTED
NewC - (tùy chọn) tên
transform - (tùy chọn) tên
Ví dụ :
>with(simplex):
>minimize( x+y, {4*x+3*y <= 5, 3*x+4*y <= 4}, NONNEGATIVE );
Trang 40n) simplex[pivot] – dựng một tập hợp các phương trình mơí vơí một biến trụ
được cho trước
Gọi hàm :
pivot(C,x,eqn)
Các tham số :
C - tập hợp các phương trình
x - tên biến
eqn – phương trình hoặc danh sách các phương trình
Ví dụ :
>with(simplex):