Tôi nhận thức được rằng việc ứng dụng công nghệ thông tin phục vụ việc đổi mới phương pháp dạy học là một trong những phương pháp tích cực nhất, hiệu quả nhất trong việc đổi mới phương p
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
TRỊNH THỊ TRANG
GIẢI CÁC BÀI TOÁN TỐI ƯU BẰNG PHẦN MỀM
MATHEMATICA CẢI TIẾN
LUẬN VĂN THẠC SĨ KHOA HỌC
TOÁN TIN
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
TRỊNH THỊ TRANG
GIẢI CÁC BÀI TOÁN TỐI ƯU BẰNG PHẦN MỀM
MATHEMATICA CẢI TIẾN
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 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc ai công bố trong bất kỳ công trình nào khác
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận văn này đã đƣợc cảm ơn và các thông tin trích dẫn trong luận văn đã đƣợc chỉ rõ nguồn gốc
Tác giả luận văn
Trịnh Thị Trang
Trang 4đã tận tình giúp đỡ, tạo điều kiện cho tác giả trong quá trình học tập nghiên cứu Đặc biệt tác giả xin bày tỏ lòng biết ơn sâu sắc tới GS.TSKH Lê Hùng Sơn, người đã tận tình chỉ dẫn, giúp đỡ tác giả nghiên cứu và hoàn thành luận văn này Mặc dù bản thân đã rất cố gắng nhưng chắc chắn không thể tránh khỏi những thiếu sót, tác giả rất mong nhận được những ý kiến đóng góp bổ sung của quý thầy
cô giáo cũng như các đồng nghiệp để luận văn được hoàn thiện hơn nữa
Xin chân thành cảm ơn!
Hà Nội, ngày tháng năm
Tác giả luận văn
Trịnh Thị Trang
Trang 6MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH MỤC CÁC CHỮ VIẾT TẮT 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ả gần đúng và chính xác 9
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ạp 21
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.2.4.2 Hàm phức tạp 24
1.2.4.3 Vẽ đồ thị các hàm theo tham số trong không gian 2 chiều 24
1.2.4.4 Đồ họa ba chiều 25
1.2.4.5 Vẽ các đường đồng mức của hàm 2 biến 27
1.2.4.6 Vẽ đồ thị đường và mặt cong theo tham số trong không gian 29
1.2.4.7 Tìm giao điểm đồ thị các hàm số 30
1.3 Làm việc với ma trận 31
1.3.1 Cách cho một ma trận 31
1.3.2 Các phép toán với ma trận 31
1.3.3 Các hàm với ma trận 32
1.3.4 Tạo một ma trận với tính chất cho trước 32
1.4 Hàm số 32
1.4.1 Định nghĩa hàm số trên Mathematica 32
1.4.2 Hàm có sẵn trong Mathematica 33
1.5 Vẽ đồ thị và điểm 33
1.5.1 Lệnh Plot 33
1.5.2 Lệnh ListPlot 39
1.6 Các vòng lặp Do, For, While 40
1.6.1 Vòng lặp dạng Do 40
1.6.2 Vòng lặp dạng For 40
1.6.3 Vòng lặp dạng While 40
1.6.4 Các ví dụ 40
1.7 Lệnh If 41
1.8 Giải phương trình và hệ phương trình 41
1.9 Tích phân, đạo hàm, chuỗi và giới hạn 44
1.10 Tính toán nhiều biến 45
Trang 8CHƯƠNG 2: ỨNG DỤNG CỦA MATHEMATICA TRONG BÀI TOÁN MIN,
MAX VÀ QUI HOẠCH TUYẾN TÍNH 50
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
TÀI LIỆU THAM KHẢO 83
Trang 9PHẦN MỞ ĐẦU
I Lý do chọn đề tài
Đổi mới phương pháp dạy học đã và đang là yêu cầu trọng tâm và thường xuyên của các cơ sở giáo dục trong hệ thống giáo dục nước ta Phương pháp dạy học được đổi mới theo định hướng: “Lấy học sinh làm trung tâm, tích cực hóa năng lực hoạt động học tập của học sinh”
Để đáp ứng nhu cầu của tình hình mới, thực hiện có hiệu quả công tác giảng dạy
; người giáo viên không ngừng nghiên cứu học hỏi và vận dụng vào thực tế Đặc biệt với sự phát triển nhanh chóng của công nghệ thông tin (CNTT) đã và đang được ứng dụng sâu rộng vào tất cả các lĩnh vực trong cuộc sống Đặc biệt, đối với ngành giáo dục và đào tạo, CNTT có tác động mạnh mẽ, làm thay đổi nội dung, phương pháp dạy và học CNTT là phương tiện để tiến tới “Xã hội học tập” CNTT trở thành công cụ hỗ trợ đắc lực cho công tác dạy học nhất là theo định hướng đổi mới hiện nay
Sau khi kết thúc học phần toán về quy hoạch tuyến tính tôi nhận thấy đây là một dạng toán phức tạp Bài toán quy hoạch tuyến tính có tên tiếng Anh là linear programming Đâ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 Để tìm được lời giải tối ưu hay giá trị tối ưu của bài toán chúng ta phải trải qua rất nhiều bước, giải nhiều phương trình, bất phương trình tuyến tính phức tạp Tôi nhận thức được rằng việc ứng dụng công nghệ thông tin phục vụ việc đổi mới phương pháp dạy học là một trong những phương pháp tích cực nhất, hiệu quả nhất trong việc đổi mới phương pháp dạy học và chắc chắn sẽ được sử dụng rông rãi trong toán học Vì vậy , tôi mạnh dạn quyết định học tập và nghiên cứu một phần mềm cho giảng dạy và học tập Trong rất nhiều phần mềm được sử dụng phổ biến như : ngôn ngữ lập trình Pascal, ngôn ngữ lập trình C, C#, visual Basic, Java, …đều được đưa vào giảng dạy trong các nhà trường Tuy nhiên, tôi đã lựa chọn một phầ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 chưa được sử dụng phổ biến hiện nay ở nước ta là phần mềm toán học Mathematica
Hiện nay, Mathematica là một phần mềm đang dần được sử dụng và giảng dạy tại nhiều trường đại học, là công cụ hỗ trợ trong việc đổi mới phương pháp giảng dạy ở nhiều môn học: Toán học, vật lý, hoá học, sinh học, công nghệ, toán kinh tế, tối ưu hoá, bảo mật thông tin, …
Phần mềm Mathematica là công cụ tính toán mạnh, giải quyết hầu hết các loại bài toán đại số và giải tích mà còn là bộ phần mềm hỗ trợ đồ họa rất hữu ích Việc
sử dụng Mathematica đem đến cho người dùng nhiều tiện dụng Đặc biệt trong giảng dạy toán cao cấp, Mathematica giúp các giảng viên truyền đạt kiến thức một cách đầy đủ; học viên có thể sử dụng Mathematica để tiếp thu, thực hành, kiểm định kết quả tính toán một cách trực quan, chính xác
Tuy nhiên, một khó khăn đối với nghiên cứu phần mềm này là số đầu sách viết bằng tiếng Việt về Mathematica còn hạn chế, ít có trên thị trường tạo khó khăn khi nghiên cứu và học tập
II Mục đích, đối tượng, phạm vi nghiên cứu của luân văn
Luận văn sẽ tập trung giới thiệu, nghiên cứu các khái niệm cơ bản và ứng dụng của Mathematica để giải quyết những bài toán MIN, MAX và quy hoạch tuyến tính Những khái niệm khác trong toán học cơ bản như các phép tính số học đối với phương trình, bất phương trình tuyến tính, bất đẳng thức tuyến tính, ma trận , … rất hay gặp nhưng trong thực tế có những trường hợp ta mất rất nhiều thời gian và công sức để giải quyết, thậm chí khó có thể ra được kết quả Tuy nhiên, phần mềm toán học Mathematica sẽ cho ta đáp án nhanh nhất và chính xác nhất có thể
Ngoài ra, khi chuẩn bị bài tập về MIN, MAX và quy hoạch tuyến tính để người học có thể rèn luyện kỹ năng thì Mathematica là công cụ hỗ trợ tuyệt vời cho giáo
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ì Mathematica là một sự trợ giúp không hề nhỏ cho giáo viên, giảng viên trong công tác giảng dạy
III Các luận điểm cơ bản và đóng góp mới của tác giả
Trên thực tế luận văn chỉ trình bày các dạng bài toán quen thuộc về MIN, MAX
và quy hoạch tuyến tính, các ứng dụng của Mathematica khi giải quyết các bài toán
đó Tuy nhiên tác giả cũng chỉ ra thêm các phương pháp để xử lý nhanh các bài toán liên quan để Mathematica là công cụ đắc lực khi thay đổi đề toán
IV Phương pháp nghiên cứu
- Tham khảo và dịch các tài liệu tiếng Anh
- Tìm hiểu giáo trình cơ bản được học
- Tìm hiểu qua thực tế giảng dạy ở các trường Đại học, cao đẳng trên địa bàn Hà Nội
- Tổng hợp và trình bày
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
Phần mềm tính toán Mathematica lần đầu tiên được hãng Wolfram Resesearch phát hành vào năm 1988 Đây là một hệ thống phần mềm làm toán nhờ máy tính, nó bao gồm các tính toán bằng kí hiệu, tính toán bằng số, vẽ đồ thị và là ngôn ngữ lập trình Lần đầu tiên khi version 1 của Mathematica được phát hành, mục đích chính của phần mềm này là đưa vào sử dụng cho các ngành khoa học vật lý, công nghệ và toán học, nhưng cùng với thời gian Mathematica trở thành phần mềm quan trọng trong nhiều lĩnh vực khác
Ngày nay Mathematica không những được sử dụng trong các ngành khoa học tự nhiên như vật lý, sinh học, toán học, hóa học, công nghệ mà nó đã trở thành một phần mềm quan trọng của các ngành khoa học xã hội cũng như kinh tế Trong công nghệ ngày nay người ta đã sử dụng Mathematica trong công tác thiết kế Trong kinh
tế Mathematica lại là công cụ mạnh để tiến hành mô hình hóa các bài toán kinh tế phức tạp Mathematica cũng là một trong các công cụ quan trọng trong khoa học máy tính cũng như trong lĩnh vực phát triển phần mềm Tuy phần quan trọng của Mathematica nằm trong lĩnh vực khoa học kỹ thuật nhưng nó cũng là một công cụ mạnh trong lĩnh vực giáo dục đào tạo Trong số hơn 100.000 người sử dụng Mathematica có 28% là các kỹ sư, 21% các nhà khoa học, 20% các nhà vật lý, 12% các nhà toán học, 12% các nhà doanh nghiệp, các nhà khoa học xã hội và nhân văn
Số người sử dụng Mathematica ngày càng tăng Theo số liệu gần đây tất cả các công ty có trong Fortune 50, hầu hết 15 bộ chủ chốt của chính phủ Hoa Kỳ và 50 trường đại học lớn nhất thế giới sử dụng Mathematica Có nhiều xuất bản định kỳ
và khoảng 200 quyển sách liên quan đến Mathematica đã được công bố
Bản thân Mathematica được coi là một hệ thống đại số máy tính tiện lợi cho nhiều đối tượng sử dụng khác nhau Mathematica có nhiều version do liên tục đượ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 đời nhưng phiên bản 8.0 và 9.0 vẫn được sử dụng nhiều
Một số quy tắc cơ bản khi sử dụng phần mềm Mathematica:
- Mathematica phân biệt chữ hoa chữ thường, các hàm của nó đều bắt đầu bằng chữ hoa
- Các biến đi theo hàm đều được đặt trong ngoặc vuông, cú pháp hình thức như sau: Ham[Expr] : ví dụ: Cos[x], sin[x]
- Để thực hiện một câu lệnh, ta dùng tổ hợp phím “Shift + Enter”
- Để kết thúc một câu lệnh ta đặt dấu chấm phẩy (;), nếu không có dấu (;) thì kết quả sẽ được hiển thị bên dưới
- Cần phân biệt các dấu [], [[]], {}, ()
+ Cặp ngoặc () dùng để ngoặc các biểu thức toán học
+ Cặp ngoặc [] dùng để chứa các đối số, biến số của lệnh của hàm
+ Cặp ngoặc {} dùng để liệt kê các miền cho đối số, liệt kê các công việc, dùng cho các mảng hoặc ma trận
- Lệnh N[expr] dùng để hiển thị kết quả thành số thập phân Ví dụ : nếu bạn gõ Cos[1] thì kết quả hiển thị chỉ là Cos[1], nếu bạn gõ N[cos[1],6] thì kết quả trả về sẽ
là 0.540302
- Không được chạy nhiều chương trình cùng một lúc vì các biến vẫn còn lưu lại giá trị của nó, khi đó kết quả trả của bạn sẽ bị sai, để khắc phục, bạn chỉnh lại như
sau Evaluation/ Quit Kernel / Local
- Cách đặt biến bình thường như a, b, c, x, y, z…… không được đặt XY_a, XY – a, không được dùng các chữ cái sau để đặt tên biến C, D, E, I, N
Trang 14- Tổ hợp Ctrl + K để tìm các hàm có tên giống nhau ở phần đầu
- Lệnh ?Int* để tìm tất cả các hàm bắt đầu bằng “Int” tương tự với ?*Q hay
?*Int*
- Cần phân biệt List và Matrix trong Mathematica Nếu viết {1, 2, 3, 4} thì đây
là một list gồm 4 phần tử, còn nếu viết {{1}, {2}, {3}, {4}} thì đây là một matrix 4 dòng 1 cột, đối với 1 list thì không thể dùng hàm chuyển vị Transpose được, tuy
nhiên bạn có thể sử dụng các phép toán ma trận giữa Matrix và list, kết quả vẫn đúng như khi tính toán giữa các ma trận
- Phân biệt giữa các ký hiệu := , = , và ==
- Dùng tổ hợp phím “Shift + Enter” để in ra kết quả
Ví dụ :
x:= 1 là lệnh gán giá trị 1 cho hằng số X,
x =1 là lệnh gán giá trị 1 cho biến x (x có thể thay đổi giá trị trong khi thực hiện chương trình)
x == 1 là so sánh các giá trị vế trái x có bằng giá trị vế phải 1 hay không
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
Ví dụ: In[56]:=
Out[56]:= 30
- Cho kết quả chính xác nếu dùng dấu ngoặc đơn để biểu diễn biểu thức số học:
- Ví dụ :
Trang 16In[57]: =
Out[57] := 5
1.2.1.2 Các toán tử logic: Mathematica cho phép sử dụng các phép so sánh nhƣ
trong toán học Khi so sánh Mathematica sẽ trả lời đúng (true) hay sai (false)
Cách viết:
x=y Gán giá trị y cho x
x==y so sánh x có bằng y hay không
x>=y x lớn hơn hoặc bằng y
x!=y!=z x không bằng y không bằng z
x>y>z các số giảm dần từ x tới z
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 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
1.2.1.3 Kết quả gần đúng và chính xác
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ề số hữu tỷ là nói về phân số Do đó, kết quả sau các phép tính trong Mathematica vẫn là số hữu tỷ
Trang 18- Nhưng nếu chúng ta gõ:
In[5]:=
thì được kết quả:
Out[5]:=
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ị
Expand[biểu thức] : Khai triển biểu thức
Trang 19ExpandAll[biểu thức] : Khai triển tất cả các biểu thức con trong biểu thức ExpandDenominator[biểu thức]: Khai triển mẫu thức
ExpandNumerator[biểu thức]: Khai triển tử thức
Denominator[biểu thức]: Cho giá trị mẫu thức
Numerator[biểu thức]: Cho giá trị tử thức
Apart[biểu thức] : Cho phân thức đơn giản của biểu thức hữu tỷ
Cancel[biểu thức]: Giản ước thừa số chung trong biểu thức
Collect[biểu thức,x]: Cho đa thức theo biến x
Factor[đa thức]: Phân tích đa thức thành nhân tử trên trường số hữu tỷ
Short[đa thức]: hình thức viết gọn của đa thức
Simplify[đa thức]: Rút gọn đa thức
Together[biểu thức]: Viết biểu thức dưới dạng một phân thức
Ví dụ :
In[1]: =
Out[1] :=
In[3]:
Out[3]:=
In[5]:=
Trang 20Out[5]:=
In[6]:=
Out[6]:=
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
Ví dụ : Cho biểu thức
Thực hiện:
- Đơn giản hoá biểu thức
- Phân tích thành tổng các phân thức
- Viết biểu thức trên dưới dạng một phân thức và rút gọn nó
Bài làm Chúng ta sử dụng lệnh:
In[7]:= Đượ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:
- Tiếp theo thực hiện thực hiện phân tích biểu thức trên thành tổng của các phân 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 bằng lệnh Length và một lần nữa chúng ta lại bắt gặp kí hiệu % - tương ứng với kết 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 lệnh Factor, kí hiệu %% - tương ứng với kết quả nằm trước kết quả kề nó Từ ví dụ trên ta nhận thấy rằng Expand không phân phối các luỹ thừa hữu tỷ trên tích, thay vào đó chúng ra có lệnh PowerExpand
1.2.3 Định nghĩa các hàm
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á hết tất cả các định nghĩa nếu có về hàm đó
Ta sẽ tìm hiểu định nghĩa các hàm qua các ví dụ sau:
Trang 23f[x_]=2x^3
ta đƣợc :
Viết lệnh :
Trang 25Bài làm Nhập lệnh :
Ta sử dụng lệnh sau:
In[34]:= Clear[h]
Trang 26h[x_,y_,z_] = (x^2)*Cot[y+2z]- E^(x*y*z)
1.2.3.3 Định nghĩa hàm vector một biến
Ví dụ: Định nghĩa hàm giá trị vector f(x) = (x; 2+sin x) tính giá trị f(ᴫ)
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
Ví dụ: Định nghĩa hàm số: F = x2 tan(y+2xy)
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
Với các phép toán thì tính toán với một số các hàm nhƣ trị tuyệt đối, Ln, Exp, 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
Ví dụ: Muốn biểu diễn e-5 ta dùng lệnh Exp nhƣ sau:
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]:=
1.2.4 Tính năng đồ họa
1.2.4.1 Biểu diễn nhiều hàm số trên cùng một đồ thị
Ví dụ vẽ đồ thị hàm số các hàm Sinx, Sin2x, Sin trong khoảng [0, 4π] nhƣ sau:
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:
1 2 3 4
Trang 34Out[15]:=
Out[16]:=
Ví dụ: Vẽ đồ thị hàm số:
Trong hình chữ nhật
In[17]:= f[x_,y_]=x^2-4x+y^2-2y+5
Plot3D[f[x,y],{x,0,4},{y,-1,3},BoxRatios{1,1,3},ViewPoint{3.752,2.219,1.137}]
Out[17]:=
Trang 36Show[GraphicsArray[{ploth,cph}]]
0 2.5 5 7.5 10 12.5 15 0
2.5 5 7.5 10 12.5 15
Trang 37Out[28]:=
1.2.4.6 Vẽ đồ thị đường và mặt cong đã cho theo tham số trong không gian
Từ một bài toán vẽ đồ thị thông thường ta đưa về dạng tham số
Ví dụ: Vẽ đường ellipsoid phương trình
và đường hypebol có phương trình
ta đưa về dạng tham số như sau:
Phương trình tham số của ellipsoid:
Trang 38Phương trình tham số của hypebol:
-5
0
5
-1 0 1
Trang 39Plot[{h[x],k[x]},{x,0,7},PlotStyle{GrayLevel[0],GrayLevel[.5]}]
Ví dụ : Table [i*j, {i, 1,10}, {j, 1, 10} ] sẽ cho một ma trận 10 dòng 10 cột
Trang 40Nhân hai ma trận, sử dụng dấu chấm (.)
1.3.3 Các hàm với ma trận
Tr[A]: tổng các phần tử trên đường chéo chính của ma trận vuông A
Det[A]: Định thức của ma trận A
Transpose[A]: Ma trận chuyển vị của ma trận A
Inverse[A] : Giá trị riêng của ma trận A
Eigenvectors[A] : Vec tơ riêng của ma trận A
MatrixPower[A, n] : Luỹ thừa n của ma trận A
MatrixExp[A]: Ma trận mũ của ma trận A
Drop[A, {i}, {}] : Xoá dòng thứ i của ma trận A
Drop[A, {}, {j}] : Xoá cột thứ j của ma trận A
Union[A,B] : Hợp 2 ma trận A, B
1.3.4 Tạo một ma trận với tính chất cho trước
Tạo ma trận đơn vị cấp n: IdentityMatrix[n]
Tạo ma trận đường chéo: DiagonalMatrix[v], v là vec tơ đường chéo có dạng
v= {a,b,c,d,…}
1.4 Hàm số
1.4.1 Định nghĩa hàm số trên Mathematica
Cách 1: Muốn định nghĩa hàm parabol ta viết f[x_]= x^2 + 3x + 1
Định nghĩa hàm 2:
g(x,y) ta viết g[x_,y_] = x^2 + y^2