1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giải á bài toán tối ưu bằng phần mềm mathematia ải tiến

91 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giải Các Bài Toán Tối Ưu Bằng Phần Mềm Mathematica Cải Tiến
Tác giả Trịnh Thị Trang
Người hướng dẫn GS.TSKH. Lê Hùng Sơn
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Toán tin
Thể loại luận văn thạc sĩ
Năm xuất bản 2018
Thành phố Hà Nội
Định dạng
Số trang 91
Dung lượng 1,52 MB

Nội dung

Đây là lĩnh v c toán h c nghiên c u các bài toán tự ọ ứ ối ƣu mà hàm mục tiêu và các ràng buộc đều là các hàm và các phƣơng trình, bất phƣơng trình tuyến tính.. Mathematica cũng là một t

Trang 2

Chuyên ngày: Toán tin

LUẬN VĂN THẠC SĨ KHOA HỌC

TOÁN TIN

NGƯỜI HƯỚ NG D N KHOA H C: Ẫ Ọ

GS.TSKH LÊ HÙNG SƠN

Hà N ộ i – 2018

Trang 3

LỜI CAM ĐOAN

công trình nào khác

Trang 4

LỜI CẢ ƠN M

Xin chân thành cảm ơn!

Hà Nộ i, ngày tháng năm

Trang 6

MỤC LỤ C

LỜI CAM ĐOAN i

LỜI CẢ ƠNM ii

DANH MỤC CÁC CH ẾT TẮT ỮVI iii MỤC LỤC iv

PHẦN MỞ ĐẦU 1

I Lý do chọn đề tài 1

II Mục đích, đối tượng, ph m vi nghiên c u c a luân văn 2 ạ ứ ủ III Các luận điểm cơ bản và đóng góp mới của tác giả 3

CHƯƠNG 1: TỔNG QUAN V PH N M M MATHEMATICA 4 Ề Ầ Ề 1 1 Gi i thi u v ph n m m Mathematicaớ ệ ề ầ ề 4

1.2 Các phép tính toán học với số, bi u th c và hàmể ứ 6

1.2.1 Tính toán số 6

1.2.1.1 Các toán t s h cử ố ọ 6

1.2.1.2 Các toán t logicử 8

1.2.1.3 Kết quả ần đúng và chính xác 9 g 1.2.2 Tính toán với biểu th cứ 10

1.2.2.1 Các phép tính đạ ối s trên các bi u th c 10 ể ứ 1.2.2.2 Đặt tên và tính toán các bi u th c ể ứ 12

1.2.3 Định nghĩa các hàm 14

1.2.3.1 Định nghĩa hàm một biế n 14

1.2.3.2Định nghĩa hàm nhiều bi nế 16

1.2.3.3 Định nghĩa hàm vector một bi n ế 18

1.2.3.4 Định nghĩa hàm nhiều bi n 19 ế 1.2.3.5 Định nghĩa hàm hợp 19

1.2.3.6 Các hàm s phố ức tạ 21 p 1.2.4 Tính năng đồ ọ h a 23

Trang 7

1.2.4.1 Bi u di n nhi u hàm s trên cùng mể ễ ề ố ột đồthị 23

1.4 Hàm số 32

Trang 8

CHƯƠNG 2 Ứ: NG D NG C A MATHEMATICA TRONG BÀI TOÁN MIN, Ụ Ủ

2.1 D ng t ng quát c a bài toán qui ho ch tuy n tínhạ ổ ủ ạ ế 50

2.2 D ng chính t c c a bài toán qui ho ch tuy n tínhạ ắ ủ ạ ế 51

2.3 D ng chu n c a bài toán qui ho ch tuy n tínhạ ẩ ủ ạ ế 51

2.4 D ng chu n tạ ẩ ắc của bài toán qui ho ch tuy n tínhạ ế 54

2.5 Bài toán đối ng u 55 ẫ 2.6 Một số ví d giụ ải bằng Mathematica 59

CHƯƠNG 3: ÁP DỤNG MATHEMATICA TRONG M T S BÀI TOÁN Ộ Ố THỰC TẾ 65

3.1 Bài toán v n t iậ ả 65

3.2 Bài toán kinh tế 70

KẾT LUẬN 81

Trang 9

PHẦN MỞ ĐẦU

I Lý do chọn đề tài

tiêu và các ràng buộc đều là các hàm và các phương trình, bất phương trình tuyến

Trang 10

m m mà nó tr giúp nhi u trong nhiề ợ ề ều lĩnh vực khác nhau nh t là toán hấ ọc nhƣng

Mathematica

II Mục đích, đối tƣợng, phạm vi nghiên cứu của luân văn

Trang 11

viên, gi ng viên khi chu n b bài và ki m tra k t qu Vả ẩ ị đề ể ế ả ới ứng d ng này thì ụ

III Các luận điểm cơ bản và đóng góp mới của tác giả

Trang 12

CHƯƠNG 1: TỔNG QUAN V PH N M M MATHEMATICA Ề Ầ Ề

1 1 Giới thiệu về phần mềm Mathematica

trong nhiều lĩnh vực khác

Trang 13

c i ti n và hoàn ả ế thiện : 1.2, 2.0, 2.2, 3.0, 4.0, …….và đến nay thì phiên bản 10 đã ra

chữ hoa

sau Evaluation/ Quit Kernel / Local

Trang 14

- T hổ ợp Ctrl + K để tìm các hàm có tên gi ng nhau ố ởphần đầu.

?*Int*

Ví dụ :

chương trình)

1.2 Các phép tính toán học với số, biểu thức và hàm

Trang 15

Không thể in ra kết quả do lỗi phép tính chia 0

Chú ý: Dấu cách (space) trong Mathematica cũng đƣợc sử dụng nhƣ dấu nhân

Out[56]:= 30

Trang 16

Các toán tử And và Or đƣợc sử dung nhƣ sau:

Or[bt 1, bt 2, …] hoặc (bt 1|| bt 2|| …): Cho kết quả True nếu một trong các biểu thức có True, False nếu tất cả các biểu thức đều False

And[bt 1, bt 2, …] hoặc (bt 1&&bt 2&&…): Cho kết quả True nếu tất cả các biểu thức đều True, cho kết quả False nếu một trong các biểu thức là False

Xor[bt 1, bt 2,…]: Cho kết quả True nếu có một số lẻ các biểu thức True, False nếu có một số chẵn các biểu thức True

Trang 17

If[test,t,f]: Cho giá trị là t nếu test nhận giá trị True, ngược lại cho giá trị f LogicalExpand[btL]: Khai triển biểu thức Logic

Khi làm việc với số nguyên, Mathematica luôn hiển thị kết quả chính xác và đầy

đủ trên màn hình, ngay cả khi tính toán với những số lớn

Ví dụ:

In[1]:=

Out[1]:=

Đối với phép toán thực hiện với số hữu tỷ thì thông thường khi sử dụng máy tính hay các phần mềm khác ta chỉ nhận được kết quả xấp xỉ,chẳng hạn khi tính 11/3 ta nhận được kết quả là 3.6666666666666666….Đối với Mathematica, khi nói

Trang 18

Vì vậy , chúng ta sử dụng lệnh N[…] hay //N trong những trường hợp

Mathematica cho ta kết quả mà trong các phần mềm khác không thể tính được 1.2.2 Tính toán với biểu thức

Một điểm mạnh của Mathematica là thực hiện biểu diễn các phép tính đại số đối với một biểu thức, chẳng hạn như: khai triển, phân tích, …

1.2.2.1 Các phép tính đại số trên các biểu thức

/ hoặc // : Thay thế giá trị

Trang 19

ExpandAll[biểu thức] : Khai triển tất cả các biểu thức con trong biểu thức

Trang 20

Out[5]:=

1.2.2.2 Đặt tên và tính toán các biểu thức

Trong Mathematica, để đơn giản hoá các đối tƣợng toán học trong quá trình lập

trình, ta có thể đặt tên cho các đối tƣợng đó nhằm tránh tình trạng nhắc đi, nhắc lại

nhiều lần một biểu thức toán học, mà chi cần nhắc tên của nó là đƣợc

Thực hiện:

Bài làm Chúng ta sử dụng lệnh:

Đƣợc kết quả:

Out[7]:=

Trang 21

- Tiếp theo chúng ta thực hiện đơn giản biểu thức:

Để đƣa ra đƣợc kết quả nhƣ trên Mathematica thực hiện nhƣ sau:

Đầu tiên ta đƣa vào một biểu thức đại số, Mathematica tự động thay đổi vị trí 2

số hạng theo cách riêng của nó Lệnh Expand khai triển biểu thức mới nhập vào,

Trang 22

hay nói đúng hơn là phá ngoặc Chúng ta có thể đếm số hang của một biểu thức

quả kề ngay trước nó Nếu muốn phân tích thành nhân tử của một biểu thức ta dùng

vào đó chúng ra có lệnh PowerExpand

Các hàm trong Mathematica đều bắt đầu bằng chữ hoa, còn các hàm hoặc các biểu thức có thể đặt tên bắt đầu bằng chữ thường Để tránh tình trạng tên hàm đã được dùng định nghĩa trước đó mà ta đã dùng thì phải dùng lệnh Clear[…] để xoá

Trang 25

Bài làm Nhập lệnh :

Trang 26

h[x_,y_,z_] = (x^2)*Cot[y+2z]- E^(x*y*z)

Bài làm Chúng ta sử dụng lệnh:

Trang 27

1.2.3.4 Định nghĩa hàm nhiều biến

sin(x+y).Lnx

Tính F(1,0)

Bài làm Thực hiện nhập lệnh sau:

Trang 28

Bài làm Thực hiện nhập lệnh:

Trang 29

1.2.3.6 Các hàm số phức tạp

Sin, Cos, Tan, Cotan, hay các hàm ArcSin, …, trở nên phức tạp, tuy nhiên Mathematica giải quyết đƣợc các vấn đề đó một cách rất khoa học

Trang 30

Hay muốn vẽ đồ thị hàm trị tuyệt đối y = trong khoảng [ 5,5] ta dùng lệnh sau:

2 1 1

Trang 31

Ví dụ: Vẽ đồ thị hàm số Cosx trong khoảng (-2π, 2π)

In[7]:=

Out[7]:=

0.5 1.0

1 1

Trang 33

Khi đó để biểu diễn phương trình đường tròn trên Mathematica ta làm như sau: In[13]:=

1 2 3 4

Trang 36

Với c = const

Ví dụ: Vẽ đường đồng mức hàm g(x,y) = xsiny + ysinx trong hình chữ nhật

In[22]:= Clear[g]

g[x_,y_]=x Sin[y]+y Sin[x];

Vẽ đồ thị hàm h và các đồng mức của h trong hình chữ nhật [-2,2]x[-2,2] với

Show[GraphicsArray[{ploth,cph}]]

0 2.5 5 7.5 10 12.5 0

2.5 5 7.5 10 12.5 15

Trang 37

Out[28]:=

Từ một bài toán vẽ đồ thị thông thường ta đưa về dạng tham số

Phương trình tham số của ellipsoid:

Khi đó dòng lệnh biểu diễn trên Mathematica là:

Trang 38

-Phương trình tham số của hypebol:

Dòng lệnh biểu diễn trên Mathematica:

-5

0

5

Trang 40

+ 1

Định nghĩa hàm 2:

Trang 41

Tương tự đố ớ i v i hàm nhi u bi n ề ế

Cách 2:

Trang 42

Plot[f,{x,xmin,xmax}] : V hàm s ẽ đồthị ố trên đoạn [xmin, xmax]

f1, f2, … trên đoạn [xmin, xmax]

Trang 43

Để ết đƣợ bi c danh sách các tham s ố đƣợc dùng kèm v i hàm plot, ta dùng l nh ớ ệ

Trang 44

Giải thích:

Plot[f[x],{x,xmin,xmax},PlotStyle ->GrayLevel[w]] trong đó w là 0 hoặc 1

Muố n v nhi ẽ ều màu hơn nữ a, có th dùng l nh ể ệ

Plot[f[x],{x,xmin,xmax},PlotStyle ->RGBColor[r, g, b]]: trong đó r, g, b

Trang 45

RGBColor[0, 1, 0] cho màu xanh lá cây

100 200 300 400

Trang 46

f[x_]=x^2+1

g[x_]=x^3+3x^2+2

h[x_]=x+1

Trang 47

Out[39]:=

Trang 48

- Nếu các điểm không đƣợc hi n th ể ị đầy đủ, c n b sung thêm tham s ầ ổ ốPlotRange → All.

Trang 49

1.7 L nh Ifệ

Trang 51

Out[15]:=

2 1 1 2

Trang 52

Out[2]:=

Trang 54

Đố ới tích phân cũng vậi v y, ta có các cú pháp sau:

Giải phương trình vi phân: Dsolve và NDSolve

Trang 55

RegionPlot3D[pred,{x,xmin,xmax},{y,ymin,ymax},{z,zmin,zmax}]: đối với

In[4]:=

Trang 58

CHƯƠNG 2 : ỨNG DỤNG CỦA MATHEMATICA TRONG BÀI TOÁN

Trang 59

- Mỗi phương án x thỏa mãn (1) nghĩa là tại đó hàm mục tiêu đạt giá tr nh ị ỏ

toán

Trang 61

Ta thấy bài toán trên có d ng chính tạ ắc, hơn nữa

toán

Trang 62

2.4 Dạng chuẩn tắc của bài toán qui hoạch tuyến tính

Trang 63

V y min = -ậ 90 đạt tại x1 = 0 , x2 = 50 , x3 30 =

Trang 64

ConstrainedMax[zx,ineqsx,{x[1],x[2]}]

Trang 65

Ví dụ 3:

Trang 67

Bài toán đối ng u: Tìm Min Y = y b vẫ ới điều ki n y.A < 0 và y> 0 ệ

yvec = Array[y,4]{ y[1] , y[2] , y[3] , y[4] }

yvec.b10 y[1] + 30y[2] -5 y[3] -10 y[4]

yvec.matrixa

{2 y[1] + 6y[2] -3 y[3] - y[4], 3y[1] + 5y[2] -3 y[3] - y[4], 3y[1] + 4y[2] -3 y[3] , 2y[1] + y[2] - 4 y[3] - y[4], 2y[1] + 4y[2] }

Trang 68

Các y u t ế ố Bàn Ghế T ủ

Trang 73

CHƯƠNG 3: ÁP DỤNG MATHEMATICA TRONG M T S BÀI TOÁN Ộ Ố

THỰC TẾ 3.1 Bài toán vận tải

Trang 75

Để ả gi i bài toán qui ho ch tuy n tính này, hàm m c tiêu (hàm tính t ng chi phí), ạ ế ụ ổ

z=xvec.c

constraints={x[1]+x[3]+x[5]<=

1000,x[2]+x[4]+x[6]<=400,x[7]+x[9]+x[11]<=

800,x[8]+x[10]+x[12]<=900,x[1]+x[7]>= 500,x[3]+x[9]>= 300,x[5]+x[11]>=700,x[2]+x[8]>=400,x[4]+x[10]>=

500,x[6]+x[12]>=300};

values=ConstrainedMin[z,constraints,xvec]

Ta có kết quả:

Trang 76

T ng chi phí c c tiổ ự ểu để chuyên ch các s n phở ả ẩm P1, P2 đến các trung tâm

Trang 77

x[1]+x[7]/.values[[2]] cho tổng s s n phố ả ẩm P1 t i kho D1 là 500 ạ

x[2]+x[8]/.values[[2]] cho tổng s s n ph m P2 t i kho D1 ố ả ẩ ạ là 400

x[4]+x[10]/.values[[2]] cho tổng s s n ph m P2 t i kho D2 là 500 ố ả ẩ ạ

Trang 78

x[5]+x[11]/.values[[2]] cho tổng s s n ph m P1 t i kho D3 là 700 ố ả ẩ ạ

x[6]+x[12]/.values[[2]] cho tổng s s n ph m P1 t i kho D3 là 300 ố ả ẩ ạ

siêu thị

Kí hiệu :

A: Trang trại Bình Minh A

Trang 80

G i xọ 3 là s ố con cá được ch t trang trở ừ ại Bình Minh A đến thành ph Hố ải Dương

Long

Long

Trang 81

Gọi x18là số con cá đƣợc chở ừ t trang trại Bình Minh B đến thành ph H ố ạLong

Clear[xvec,z,constraints,vars,c]

c={2,0.4,0.1,2.5,0.45,0.15,3,0.5,0.15,4,0.6,0.5,2.5,0.4,0.2,3.5,0.5,0.5};

xvec=Array[x,18]

{x[1],x[2],x[3],x[4],x[5],x[6],x[7],x[8],x[9],x[10],x[11],x[12],x[13],x[14],x[15],x[16],x[17],x[18]}

z=xvec.c

Trang 82

constraints={x[1]+x[7]+x[13]<=500,x[2]+x[8]+x[14]<=1500,x[3]+x[9]+x[15]<=2500,x[4]+x[10]+x[16]<=600,x[5]+x[11]+x[17]<=2000,x[6]+x[12]+x[18]<=2000,x[1]+x[4]>=100,x[2]+x[5]>=500,x[3]+x[6]>=600,x[7]+x[10]>=150,

Trang 83

Nhƣ vậy :

Trang 84

S con l n xuố ợ ất đi từ trang tr i Bình Minh ạ

Trang 85

T ng s xu t cho siêu th t Hà N là ổ ố cá ấ ị ại ội

Trang 87

S ốcon lợn đƣợc chở ừ trang trại Bình Minh B đế t n thành ph Hà N i là 600 ố ộ

Trang 88

S con cá xuố ất đi từ ang tr i Btr ạ

Trang 89

KẾT LUẬN

Trang 90

Hướng phát triển đề tài

viên

Kiến nghị

trình độ

Trang 91

TÀI LIỆU THAM KH O Ả

Media, Cambrige Univerity Press, Third Edition

3 Brown, Donald T, David, Bill, Porta, Horacio, and Uhl Jerry: Calculus and

Ngày đăng: 22/01/2024, 16:50

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN