Đâ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 2Chuyê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 3LỜI CAM ĐOAN
công trình nào khác
Trang 4LỜI CẢ ƠN M
Xin chân thành cảm ơn!
Hà Nộ i, ngày tháng năm
Trang 6MỤ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 71.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 8CHƯƠ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 9PHẦ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 10m 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 11viê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 12CHƯƠ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 13c 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 15Khô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 16Cá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 17If[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 18Vì 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 19ExpandAll[biểu thức] : Khai triển tất cả các biểu thức con trong biểu thức
Trang 20Out[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 22hay 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 25Bài làm Nhập lệnh :
Trang 26h[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 271.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 28Bài làm Thực hiện nhập lệnh:
Trang 291.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 30Hay 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 31Ví dụ: Vẽ đồ thị hàm số Cosx trong khoảng (-2π, 2π)
In[7]:=
Out[7]:=
0.5 1.0
1 1
Trang 33Khi đó để 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 36Vớ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 37Out[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 41Tương tự đố ớ i v i hàm nhi u bi n ề ế
Cách 2:
Trang 42Plot[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 44Giả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 45RGBColor[0, 1, 0] cho màu xanh lá cây
100 200 300 400
Trang 46f[x_]=x^2+1
g[x_]=x^3+3x^2+2
h[x_]=x+1
Trang 47Out[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 491.7 L nh Ifệ
Trang 51Out[15]:=
2 1 1 2
Trang 52Out[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 55RegionPlot3D[pred,{x,xmin,xmax},{y,ymin,ymax},{z,zmin,zmax}]: đối với
In[4]:=
Trang 58CHƯƠ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 61Ta thấy bài toán trên có d ng chính tạ ắc, hơn nữa
toán
Trang 622.4 Dạng chuẩn tắc của bài toán qui hoạch tuyến tính
Trang 63V y min = -ậ 90 đạt tại x1 = 0 , x2 = 50 , x3 30 =
Trang 64ConstrainedMax[zx,ineqsx,{x[1],x[2]}]
Trang 65Ví dụ 3:
Trang 67Bà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 68Các y u t ế ố Bàn Ghế T ủ
Trang 73CHƯƠ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 77x[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 78x[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 80G 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 81Gọ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 82constraints={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 83Nhƣ vậy :
Trang 84S con l n xuố ợ ất đi từ trang tr i Bình Minh ạ
Trang 85T ng s xu t cho siêu th t Hà N là ổ ố cá ấ ị ại ội
Trang 87S ốcon lợn đƣợc chở ừ trang trại Bình Minh B đế t n thành ph Hà N i là 600 ố ộ
Trang 88S con cá xuố ất đi từ ang tr i Btr ạ
Trang 89KẾT LUẬN
Trang 90Hướng phát triển đề tài
viên
Kiến nghị
trình độ
Trang 91TÀ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