Đăng ký Đăng nhập
Trang chủ Hướng dẫn lập trình tính số và khảo sát đồ thị bằng ngôn ngữ mathematica...

Tài liệu Hướng dẫn lập trình tính số và khảo sát đồ thị bằng ngôn ngữ mathematica

.PDF
39
965
128

Mô tả:

Hướng dẫn lập trình tính số và khảo sát đồ thị bằng ngôn ngữ Mathematica
1 Mục lục 1 MỞ 1.1 1.2 1.3 1.4 1.5 1.6 1.7 ĐẦU Lý do chọn đề tài: . . . . . . Mục tiêu nghiên cứu: . . . . Nhiệm vụ nghiên cứu: . . . Đối tượng nghiên cứu: . . . Phương pháp nghiên cứu: . Giới hạn đề tài nghiên cứu: Cấu trúc của khóa luận: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 NỘI DUNG 2.1 Giới thiệu tổng quan về ngôn ngữ lập trình Mathematica. . . 2.1.1 Giới thiệu sơ bộ về ngôn ngữ lập trình Mathematica. 2.1.2 Giao diện tương tác của Mathematica. . . . . . . . . 2.1.3 Các tính năng của Mathematica. . . . . . . . . . . . 2.2 Vẽ đồ thị hai chiều tĩnh và động. . . . . . . . . . . . . . . . 2.2.1 Cú pháp. . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Các tuỳ chọn của đồ thị hai chiều. . . . . . . . . . . 2.2.3 Đồ thị hai chiều nâng cao. . . . . . . . . . . . . . . . 2.2.4 Đồ thị dữ liệu hai chiều. . . . . . . . . . . . . . . . . 2.2.5 Đồ thị hai chiều động. . . . . . . . . . . . . . . . . . 2.3 Vẽ đồ thị ba chiều tĩnh và động. . . . . . . . . . . . . . . . . 2.3.1 Đồ thị mặt ba chiều. . . . . . . . . . . . . . . . . . . 2.3.2 Đồ thị tham số ba chiều . . . . . . . . . . . . . . . . 2.3.3 Đồ thị dữ liệu ba chiều. . . . . . . . . . . . . . . . . 2.3.4 Đồ thị ba chiều động. . . . . . . . . . . . . . . . . . . 2.4 Ứng dụng vẽ đồ thị vào giảng dạy và nghiên cứu vật lý. . . . 2.4.1 Bài toán giao thoa sóng cơ học. . . . . . . . . . . . . 2.4.2 Bài toán chuyển động của vật ném xiên. . . . . . . . 2.4.3 Ứng dụng nghiên cứu vật lý. . . . . . . . . . . . . . . 3 KẾT LUẬN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 3 3 3 3 3 . . . . . . . . . . . . . . . . . . . 4 4 4 4 5 9 9 10 18 20 22 22 22 25 27 27 28 28 29 30 38 2 Phần 1 MỞ ĐẦU 1.1 Lý do chọn đề tài: Thế kỷ XX với nhiều thành tựu rực rỡ, Vật lý học đã có một bước phát triển mạnh mẽ. Mở đầu là sự ra đời của thuyết tương đối của Einstein, thuyết lượng tử của Planck, lý thuyết trường lượng tử... Để nghiên cứu, khảo sát các quá trình vật lý, xử lý các bài toán vật lý đòi hỏi phải tính toán các phép toán rất phức tạp, tốn nhiều thời gian và công sức. Vì vậy, việc đưa máy tính vào để nghiên cứu các quá trình tính toán trong vật lý, sử dụng các công cụ tính toán sẽ giúp cho việc xử lý các bài toán vật lý được nhanh chóng và thuận tiện. Để làm điều này, ngôn ngữ lập trình giải tích Mathematica nổi lên với ưu điểm vượt trội về giao diện thân thiện, về khả năng đồ thị siêu việt và khả năng xử lý số liệu nhanh đã trở thành một công cụ đắc lực cho các nhà khoa học, các kỹ sư, các chuyên gia sinh học, giáo viên, các nhà tài chính.... Với sự phát triển nhanh phiên bản Mathematica 5.0 đã bổ sung cho người sử dụng những thao tác đơn giản, không phải lập trình nặng nề như trước. Trong đó Mathematica cho phép vẽ tất cả các dạng đồ thị có thể có của một hàm số với cấu trúc lệnh đơn giản nhất như đồ thị hai chiều, đồ thị ba chiều, đồ thị đường viền, đồ thị thống kê... Đối với giáo viên phổ thông trung học, sử dụng phần mềm Mathematica để vẽ đồ thị sẽ là một hỗ trợ đắc lực cho giáo viên trong việc soạn giáo án lên lớp, bài giảng điện tử, ra đề thi trắc nghiệm... Nên tìm hiểu vẽ đồ thị bằng Mathematica là điều rất cần thiết. Vì lý do trên tôi chọn đề tài "Sử dụng phần mềm Mathematica để vẽ đồ thị" làm đề tài khoá luận tốt nghiệp. 1.2 Mục tiêu nghiên cứu: Nghiên cứu khai thác và sử dụng phần mềm Mathematica vào việc vẽ đồ thị hai chiều và ba chiều tĩnh, động và ứng dụng. KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị 1.3 Nhiệm vụ nghiên cứu: - 1.4 Phạm Thị HạnhThảo 3 Tập trung tư liệu, nghiên cứu lý thuyết. Nghiên cứu sử dụng cú pháp cấu trúc câu lệnh của Mathematica. Khai thác các tính năng vẽ đồ thị hai, ba chiều trên Mathematica. Ứng dụng: vẽ đồ thị một số bài toán vật lý, khảo sát một số quá trình vật lý. Đối tượng nghiên cứu: Ngôn ngữ lập trình Mathematica với tính năng vẽ đồ thị. 1.5 Phương pháp nghiên cứu: - Phương pháp nghiên cứu lý thuyết: Đọc và tìm hiểu ngôn ngữ lập trình Mathematica. Nghiên cứu các bước lập trình trên Mathematica với tính năng vẽ đồ thị. - Thực hiện các chương trình vẽ cơ bản của Mathematica với các đồ thị mô tả các quy luật vật lý cụ thể. 1.6 Giới hạn đề tài nghiên cứu: Trong thời gian và khả năng cho phép tôi chỉ nghiên cứu ngôn ngữ lập trình Mathematica với tính năng vẽ đồ thị hai chiều và ba chiều tĩnh, động và ứng dụng của chúng. 1.7 Cấu trúc của khóa luận: Khoá luận gồm có ba phần: phần mở đầu, phần nội dung và phần kết luận. Phần mở đầu trình bày lý do chọn đề tài, mục tiêu nghiên cứu, nhiệm vụ nghiên cứu, đối tượng nghiên cứu, phương pháp nghiên cứu và giới hạn nghiên cứu của đề tài. Phần nội dung (có ba chương): Chương 1 giới thiệu tổng quan về ngôn ngữ lập trình Mathematica; Chương 2 thực hiện vẽ đồ thị hai chiều tĩnh và động với việc thay đổi các tuỳ chọn; Chương 3 thực hiện vẽ đồ thị ba chiều tĩnh và động với việc thay đổi các tuỳ chọn; Chương 4 ứng dụng vẽ đồ thị vào một số bài toán vật lý, khảo sát một số quá trình vật lý. Phần kết luận: Trình bày các kết quả thu được từ việc nghiên cứu vẽ đồ thị trên Mathematica. 4 Phần 2 NỘI DUNG 2.1 2.1.1 Giới thiệu tổng quan về ngôn ngữ lập trình Mathematica. Giới thiệu sơ bộ về ngôn ngữ lập trình Mathematica. Mathematica là ngôn ngữ tích hợp đầy đủ nhất các tính toán kỹ thuật. Là dạng ngôn ngữ dựa trên nguyên lý xử lý các dữ liệu tượng trưng. Thế hệ ngôn ngữ giải tích đầu tiên đó là Macsyma, Reduce... ra đời từ những năm 60 của thế kỷ XX. Các ngôn ngữ này chủ yếu dùng cho các bài toán vật lý năng lượng cao. Nhược điểm của chúng là chủ yếu được định hướng chạy trên các máy tính lớn. Thế hệ tiếp theo là các ngôn ngữ Maple, Mathlab, Mathematica... Các ngôn ngữ này có ưu điểm là chạy nhanh hơn và chấp nhận bộ nhớ nhỏ hơn, chạy hoàn hảo trên máy tính cá nhân. Trong các ngôn ngữ tính toán loại này, nổi bật lên ngôn ngữ Mathematica với ưu điểm vượt trội về giao diện thân thiện, về khả năng đồ thị siêu việt và xử lý dữ liệu không thua kém các ngôn ngữ tính toán khác. Nhờ khả năng mô hình hoá và mô phỏng các hệ lớn, kể cả các hệ động mà Mathematica không chỉ được ứng dụng trong lĩnh vực vật lý, kỹ thuật và toán mà còn được mở rộng ứng dụng trong các lĩnh vực như sinh học, các khoa học xã hội, kể cả trong lĩnh vực tài chính phức tạp. Phiên bản đầu tiên của Mathematica được phát hành vào năm 1988. Phiên bản 6.0 là phiên bản mới nhất hiện nay. 2.1.2 Giao diện tương tác của Mathematica. Mathematica đưa ra một giao diện rất thân thiện với người sử dụng được đặt tên là bản ghi (notebook - thường được gọi tắt là nb). Các bản ghi là dạng cửa sổ biểu diễn một lượt sử dụng Mathematica bao gồm đầy đủ các ghi chép cả về chương trình nguồn, cả về kết quả thực hiện trên cùng một bản ghi và được ghi lại dưới dạng file riêng của Mathematica có đuôi là *.nb. Các bản ghi được tổ chức thành các ô (cells) một cách có trật tự và thứ bậc. Ta có thể nhóm một nhóm ô lại sao cho chỉ thấy ô đầu của nhóm ô đó (với số nhóm lồng tuỳ ý). KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 5 Mathematica còn đưa ra một giao diện phụ là các bảng lệnh (Palettes) và các nút lệnh (Button). Người sử dụng chỉ cần nhấp chuột rất đơn giản và có thể tuỳ biến theo ý mình. 2.1.3 Các tính năng của Mathematica. a. Khả năng tính toán bằng số. Mathematica cho phép tính một cách trực tiếp giống như dùng một calculator với độ chính xác bất kỳ một biểu thức phức tạp nào bằng cách viết biểu thức cần tính và bấm tổ hợp phím Shift + Enter. Thí dụ ta có thể tính biểu thức sau đây một cách nhanh chóng: 6200 4268252238120274007969748915187737323429887453544894294954790789351129295496 19739019072139340757097296812815466676129830954465240517595242384015591919845376 100! 9332621544394415268169923885626670049071596826438162146859296389521759999322 9915608941463976156518286253697920827223758251185210916864000000000000000000000000 b. Khả năng tính toán với biến tượng trưng. Mathematica cho phép giải các phương trình hay tính toán các biểu thức mà nghiệm hay các kết quả được biểu diễn bằng các biến tượng trưng. Thí dụ tính tích phân bất định theo biến chữ x: R√ √ x a+ xdx √ √ √ √ 3/2 a x a + x( 4 + x 2 ) − 14 a2log( x + a + x) c. Khả năng đồ hoạ hai chiều và ba chiều. Mathematica cho phép vẽ tất cả các dạng đồ thị có thể có của một hàm số với cấu trúc lệnh đơn giản nhất như đồ thị hai chiều, đồ thị ba chiều, đồ thị đường viền, đồ thị mật độ... Thí dụ lệnh sau đây cho phép vẽ đồ thị hai chiều của hàm số sin x+sin 2x trong khoảng (0, 30) (hình 1.1): P lot[Sin[x] + Sin[2x], {x, 0, 30}]; Hình 1.1 Lệnh sau đây cho phép ta vẽ đồ thị ba chiều của hàm Sin(xy): P lot3D[Sin[xy], {x, 0, 4}, {y, 0, 4}, P lotP oints → 30]; (hình 1.2) KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 6 Mathematica không chỉ cho ta khả năng vẽ đồ thị hai chiều, ba chiều theo mặc định, mà người dùng có thể sử dụng các tuỳ chọn để thay đổi trình diễn của đồ thị theo các mục đích của mình. Hình 1.2 Chẳng hạn như để khảo sát đồ thị của hàm số trong một khoảng nào đó ta có thể chỉ cần vẽ đồ thị trong một khoảng tuỳ chọn do người sử dụng đưa ra. Hoặc có thể vẽ đồng thời nhiều đồ thị trên cùng một hệ trục toạ độ, lựa chọn màu sắc, nét vẽ đậm nhạt... của từng đồ thị khác nhau. Hình (1.3) sau đây là một ví dụ: P lot[Sin[x2], {x, 0, 3}, AxesOrigin → {−0.2, 0}, AxesStyle → {RGBColor[1, 0, 0], AbsoluteT hickness[2]}, DefaultColor → RGBColor[0, 0, 1], AxesLabel → {"Trục x", "Trục y"}, T icks → {{0, 1, 2, 3}, {−0.5, 0, 0.5, 1}}, GridLines → Automatic, P lotRange → {−0.5, 1}, ImageSize → {400, 400 ∗ 0.62}, DefaultF ont → {V nT ime, 14}, F ormatT ype → T raditionalF orm, P lotLabel → "Đồ thị y=Sin(x2)"]; Hình 1.3 d. Khả năng tính toán của Mathematica. Mathematica có khả năng chấp nhận các dữ liệu lớn bất kỳ và xử lý nó trong thời gian vài giây. KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 7 Thí dụ tạo ra một ma trận 100 × 100 gồm các phần tử là các số nguyên bất kỳ (dấu ";" ở sau câu lệnh để không in ra ma trận m vì kích thước của nó quá lớn). m = T able[Random[], {100}, {100}]; Sức mạnh tính toán của Mathematica là ở chỗ nó cho các giá trị riêng của ma trận m này và biểu thị trên đồ thị với thời gian chưa tới 1 giây (hình1.4). ListP lot[Abs[Eigenvalues[m]]]; Hình 1.4 Mathematica cho phép xử lý các số liệu có kích thước lớn bất kỳ. Thí dụ Mathematica cho kết quả chính xác sau không đầy 1 giây cho phép tính giai thừa của 100: 100! 933262154439441526816992388562667004907159682643816214685929638952175999932 29915608941463976156518286253697920827223758251185210916864000000000000000000000 000 Mathematica còn cho phép tính toán các phép tính đại số với độ chính xác bất kỳ do người sử dụng đặt ra hay có thể thực hiện các tính toán đại số mà con người khó có thể thực hiện được bằng tay. Thí dụ phép tính số Pi với độ chính xác đến 200 chữ số: N [Π, 200] 3.1415926535897932384626433832795028841971693993751058209749445923078164062 86208998628034825342117067982148086513282306647093844609550582231725359408128481 1174502841027019385211055596446229489549303820 Khai triển biểu thức toán học x99 + y 99: F actor[x99 + y 99] {(x + y)(x2 − xy + y 2)(x6 − x3y 3 + y 6)(x10 − x9y + x8 y 2 − x7y 3 + x6y 4 − x5 y 5 + x4y 6 − x3y 7 + x2y 8 − xy 9 + y 10)(x20 + x19y − x17y 3 − x16y 4 + x14y 6 + x13y 7 − x11y 9 − x10y 10 − x9y 11 + x7y 13 + x6y 14 − x4 y 16 − x3y 17 + xy 19 + y 20)(x60 + x57y 3 − x51y 9 − x48y 12 + x42y 18 + x39y 21 − x33y 27 − x30y 30 − x27y 33 + x21y 39 + x18y 42 − x12y 48 − x9y 51 + x3 y 57 + y 60)} Đồng thời Mathematica cho phép sử dụng các thuật toán cho trước để đơn giản hoá biểu thức (dấu "%" là để chỉ tham chiếu đến kết quả vừa đưa ra ở dòng lệnh trước). KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 8 Simplify[%] x99 + y 99 e. Các thuật toán trong Mathematica. - Khi chạy, Mathematica tự chọn các thuật toán thích hợp (trong các thuật toán sẵn có) cho mỗi tính toán gần đúng bằng số. Thí dụ như lệnh FindRoot (tìm nghiệm phương trình), NIntegrate (tính tích phân bằng số), NSolve (giải phương trình bằng số): F indRoot[Cos[x] == x + log[x], {x, 1}] {x → 0.840619} NIntegrate[Log[x + Sin[x]], {x, 0, 2}] 0.555889 NSolve[x5 − 6x3 + 8x + 1 == 0, x] {{x → −2.05411}, {x → −1.2915}, {x → −0.126515}, {x → 1.55053}, {x → 1.9216}} Hình 1.5 - Mathematica là một công cụ dễ dàng để xử lý các ma trận. Có thể tạo ra một bảng hai chiều, biểu diễn nó dưới dạng ma trận, thực hiện các phép toán với nó. - Mathematica có thể dễ dàng giải các phương trình vi phân bằng cả lời giải đại số chính xác và cả lời giải gần đúng cho kết quả là một hàm nội suy, đồng thời biểu diễn đồ thị các lời giải. NDSolve[{x”[t] + x3[t] == Sin[t], x[0] == x0 [0] == 0}, x, {t, 0, 50}] {{x → InterpolatingF unction[{{0., 50.}}, <>]}} Lời giải bằng hàm nội suy này được biểu diễn bằng đồ thị (hình 1.5) (ở đây ký tự "/." biểu thị cho phép thay x bằng nghiệm ở câu lệnh trước (%)). P arametricP lot[Evaluate[{x[t], x0[t]}/.%], {t, 0, 50}]; f. Mathematica là một cuốn bách khoa toàn thư về toán. - Mathematica có chứa sẵn hầu hết các hàm đặc biệt ở các dạng thuần tuý toán hoặc ở các dạng ứng dụng của nó. Thí dụ hàm Legendre: LegendreQ[3, x] 2 2 − 5x2 − 14 x(3 − 5x2 )Log[ (1+x) ] 3 (1−x) Phạm Thị HạnhThảo 9 KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị - Mathematica cho phép tính toán một cách chính xác một số lượng lớn các tích phân kể cả tích phân đặc biệt. R√ xArctan[x]dx √ √ √ √ √ √ √ √ 3 1 2 ArcT an[x]− (−8 x−2 2ArcT an[1− 2 x]+2 2ArcT an[1+ 2 x]+4x 2Log[−1+ √ √6 √ √ √ 2 x − x] + 2Log[1 + 2 x + x]) - Mathematica cũng cho phép tính toán chính xác các tổng và tích vô hạn. n X 1 k=1 6 HarmonicNumber[n, 6] g. Các hiện ứng hình ảnh trong Mathematica. Mathematica có thể tạo ra các đồ thị tham số hoặc cho thấy sự vận động của quá trình bằng cách cho chạy một dãy các đồ thị tĩnh. Thí dụ để vận động hoạt hoạ một dãy đồ thị (hình 1.6): T able[P lot3D[Sin[2x]Sin[2y]Cos[t], {x, 0, Π}, {y, 0, Π}, P lotRange → {−1, 1}, BoxRatios → {1, 1, 1}, T icks → None, DisplayF unction → Indentity], {t, 0, Π, Π6 }]; Show[GraphicsArray[{%}, F rame → T rue]]; Hình 1.6 2.2 2.2.1 Vẽ đồ thị hai chiều tĩnh và động. Cú pháp. Lệnh Plot[f,{x, xmin, xmax}]; vẽ đồ thị hai chiều của hàm f(x) với x chạy từ xmin đến xmax (hình 2.1). Lệnh Plot[{f1, f2...}, {x, xmin, xmax}]; vẽ đồng thời đồ thị của các hàm {f1 , f2 ...} với x chạy từ xmin đến xmax (dấu ";" được thêm vào ở cuối mỗi câu lệnh về đồ thị để không hiện ra câu thông báo về đối tượng Graphics) (hình 2.2). KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 10 P lot[T an[x/2], {x, −2Π, 2Π}]; Hình 2.1 P lot[{Sin[x], Sin[2x], Sin[3x]}, {x, 0, 2Π}]; Hình 2.2 Theo cách này, ứng với mỗi trị số của x tính trực tiếp được trị số của hàm f (bằng các thuật toán tính bằng số của Mathematica), ta có tương ứng mỗi cặp điểm trên đồ thị. Một trình tự khác là tính ra một hàm số (có thể chỉ là gần đúng) có biểu thức giải tích theo các biến chữ (gọi là hàm hiện) rồi mới thay giá trị x vào để tính giá trị cho f(x). Trình tự này thường được dùng cho các hàm nội suy, là các hàm không có biểu thức dạng giải tích. Nó được thể hiện bằng các lệnh: P lot[Evaluate[f ], {x, xmin, xmax}] và P lot[Evaluate[T able[{f1, f2 ...}]], {x, xmin, xmax }] (hình 2.3). P lot[Evaluate[T able[BesselJ[n, x], {n, 4}]], {x, 0, 10}]; Hình 2.3 Một lệnh theo loại này nữa thường được dùng cho vẽ đồ thị nghiệm các phương trình vi phân giải gần đúng (giải bằng số): P lot[y[x]/.nghiệm, {x, xmin, xmax }]. 2.2.2 Các tuỳ chọn của đồ thị hai chiều. a. Các tuỳ chọn mặc định của đồ thị hai chiều. KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 11 Một lệnh vẽ đồ thị của Mathematica có rất nhiều các tuỳ chọn bổ sung và ta có thể thay thế giá trị mặc định. Để liệt kê các tuỳ chọn và các giá trị mặc định gán sẵn ta dùng lệnh Options[Plot]. Dạng tổng quát của nó là: Options[đối tượng] cho danh sách các tuỳ chọn và mặc định của đối tượng; hoặc Options[đối tượng,tuỳ chọn] cho danh sách đặt của tuỳ chọn trong đối tượng. Ngoài ra có thể dùng các lệnh: FullOptions[đối tượng,tuỳ chọn] cho mô tả tỷ mỷ nhất cách sắp đặt tuỳ chọn; SetOptions[đối tượng,options → value] đặt lại giá trị mặc định của lựa chọn options thành giá trị value (hình 2.4). Option[P lot](*mô tả danh sách các tuỳ chọn của lệnh Plot*) 1 {AspectRatio → GoldenRatio , Axes → Automatic, AxesLabel → None, AxesOrigin → Automatic, AxesStyle → Automatic, Background → Automatic, ColorOutput → Automatic, Compiled → T rue, DefaultColor → Automatic, DefaultF ont :→ $DefaultF ont, DisplayF unction :→ $DisplayF unction, Epilog → {}, F ormatT ype :→ $F ormatT ype, F rame → F alse, F rameLabel → None, F rameStyle → Automatic, F rameT icks → Automatic, GridLines → None, ImageSize → Automatic, MaxBend → 10., P lotDivision → 30., P lotLabel → None, P lotP oints → 25, P lotRange → Automatic, P lotRegion → Automatic, P lotStyle → Automatic, P rolog → {}, RotateLabel → T rue, T extStyle :→ $T extStyle, T icks → Automatic} g = P lot[Sin[x], {x, 0, 2Π}]; Hình 2.4 Options[g, P lotRange] {P lotRange− > Automatic} F ullOptions[g, P lotRange] {{−0.15708, 6.44026}, {−1.05, 1.05}} b. Các tuỳ chọn quan trọng. Mathematica cho ta nhiều tuỳ chọn, dưới đây chúng tôi xin giới thiệu một số tuỳ chọn quan trọng và cách đặt các tuỳ chọn của các lệnh vẽ đồ thị hai chiều. - Axes: là một tuỳ chọn của hàm vẽ đồ thị bao gồm có hay không các trục toạ độ. Các giá trị của tuỳ chọn này bao gồm: KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 12 Axes →True: Hiển thị các trục toạ độ. Axes →False: Không hiển thị các trục toạ độ. Axes → {False, True}: Hiển thị một trục toạ độ, trục còn lại không hiển thị. Giá trị mặc định của tuỳ chọn là Automatic (Xem hình 2.5). Show[Graphics[Circle[{0, 0}, 1], AspectRatio → Automatic, Axes → Automatic]]; Hình 2.5 - AxesLabel: Tuỳ chọn đặt nhãn cho các trục toạ độ. Các giá trị của tuỳ chọn này bao gồm: AxesLabel → None: Không đặt nhãn cho đồ thị. AxesLabel → label: Đặt nhãn label cho trục y đối tượng đồ thị hai chiều. AxesLabel → {"nhãn x","nhãn y"}: Đặt nhãn cho các trục toạ độ. Nhãn của các trục toạ độ sẽ được đánh ở cuối các trục. Giá trị mặc định của tuỳ chọn là None (Xem hình 2.6). P lot[Sin[x/2], {x, 0, 2Π}, AxesLabel → {”Trục x", "Trục y"}]; Hình 2.6 - AxesOrigin: Lựa chọn trong đồ thị hai chiều để đặt điểm cắt hai trục toạ độ. Các giá trị của tuỳ chọn này bao gồm: AxesOrigin → {x, y}: Đặt điểm cắt hai trục toạ độ là điểm có toạ độ {x,y}. Giá trị mặc định của tuỳ chọn là điểm {0,0}. Đối với đồ thị đường viền và đồ thị mật độ, đặt AxesOrigin → Automatic thì điểm cắt của các trục toạ độ được đặt ở ngoài vùng đồ thị. Thí dụ để khảo sát tính đối xứng của hàm Sin[x] ta có thể thay đổi điểm cắt hai trục toạ độ để thấy rõ điều đó (hình 2.7): KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 13 P lot[Sin[x], {x, 0, 2Π}, AxesOrigin → {Π, 0}]; Hình 2.7 - Frame: Là tuỳ chọn của đồ thị hai chiều, gồm có hay không có khung viền quanh đồ thị. Các giá trị của tuỳ chọn gồm: Frame → True: Có hiển thị khung viền. Frame → None: Không hiển thị khung viền. Giá trị mặc định của tuỳ chọn là None. Hình 2.8 Thí dụ trong lệnh vẽ đồ thị hàm Sin[x2], để đối chiếu các giá trị cực đại ta có thể sử dụng khung viền để thấy rõ (hình 2.8): P lot[Sin[x2], {x, 0, 3}, F rame → T rue]; - GridLines: Đây là tuỳ chọn của đồ thị hai chiều bao gồm có hay không vẽ các đường lưới cho mỗi chỗ đánh dấu trên trục toạ độ của đồ thị. Các giá trị của tuỳ chọn bao gồm: Hình 2.9 KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 14 GridLines → None: Không hiển thị các đường lưới. GridLines → Automatic: Hiểu thị các đường lưới theo mặc định. Giá trị mặc định của tuỳ chọn này là None. Thí dụ để khảo sát chi tiết các khoảng đồ thị của hàm số Sin[x2] ta vẽ thêm các đường lưới (hình 2.9): P lot[Sin[x2], {x, 0, 3}, GridLines → Automatic]; - FrameLabel: Đây là tuỳ chọn của đồ thị hai chiều bao gồm có hay không có nhãn khung. Đặt các giá trị của tuỳ chọn: FrameLabel → None: Không có nhãn khung. FrameLabel → {nhãn 1,nhãn 2,nhãn 3,nhãn 4}: Có đặt nhãn và nhãn được đặt xung quanh 4 cạnh theo chiều kim đồng hồ từ dưới. Giá trị mặc định của tuỳ chọn là None (hình 2.10). P lot[Sin[x], {x, 0, 2Π}, F rame → T rue, F rameLabel → {Dưới, Trái, Trên, Phải}, RotateLabel → F alse]; Hình 2.10 (Ở đây có bổ sung tuỳ chọn RotateLabel → F alse để không xoay nhãn theo chiều của khung) - PlotLabel: Đây là tuỳ chọn của lệnh vẽ đồ thị với việc đặt nhãn cho đồ thị. Đặt các giá trị tuỳ chọn: Hình 2.11 KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 15 PlotLabel → None: Không có nhãn của đồ thị. PlotLabel → StyleForm["nhãn",dạng text,FontFamily → "font",FontSize → n]: Đặt nhãn cho đồ thị là nhãn với kiều dạng text, font chữ là font, cỡ chữ n. P lot[(Sin2(Θ))/(2 + Cos2 (Θ)), {Θ, 0, Π}, P lotLabel → StyleF orm[ " (Sin2(Θ))/(2 + Cos2 (Θ)) " , F ontSize → 12]]; (hình 2.11) - Ticks: Tuỳ chọn đánh dấu các điểm trên các trục toạ độ. Các giá trị của tuỳ chọn: Ticks → None: Không đánh dấu trên các trục. Ticks → Automatic: Tự động đánh dấu trên các trục. Ticks → {{xticks, ...},{yticks, ...}}: Tuỳ chọn đánh dấu trên các trục khác nhau (hình 2.12). P lot[Sin[x], {x, 0, 2Π}, T icks → {{0, Π/2, Π, (3Π)/2, 2Π}, Automatic}]; Hình 2.12 - Plot Range: Tuỳ chọn của lệnh vẽ đồ thị cho khoảng toạ độ hiển thị. Các giá trị của tuỳ chọn: Plot Range → All: Hiển thị toàn bộ. Plot Range → Automatic: Tự động hiển thị đồ thị. Plot Range → {ymin , ymax }: Hiển thị đồ thị trong khoảng toạ độ từ ymin đến ymax . Plot Range → {{xmin , xmax}, {ymin , ymax }}: Tuỳ chọn khoảng đồ thị hiển thị với x chạy từ xmin đến xmax , y chạy từ ymin đến ymax . Giá trị mặc định của tuỳ chọn là All. Hình 2.13 KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 16 Thí dụ khi khảo sát hàm số Sin(x2) trong một khoảng toạ độ x → {0,2}, y → {0,1.2} (hình 2.13): P lot[Sin[x2], {x, 0, 4}, P lotRange → {{0, 2}, {0, 1.2}}]; - PlotStyle: Tuỳ chọn kiểu vẽ của đồ thị bao gồm các hàm Graylevel[i] cho độ xám i của đồ thị, 0 ≤ i ≤ 1, 0 _ đen hoàn toàn, 1_ trắng; Thickness[r] cho độ dày r của đường đồ thị; Dashing[r1, r2 ...] cho độ dài của các đường vạch chấm kế tiếp nhau; RGBColor[r1, g1 , b1 ] cho màu của đồ thị bằng hàm màu (ví dụ đỏ = RGBColor[1,0,0]); Hue[h] hoặc Hue[h,s,b] cho độ hoe (sắc sáng). Thí dụ khi ta vẽ đồng thời hai hoặc nhiều đồ thị trên một hệ trục toạ độ, khi đó thật khó để nhận biết các đồ thị khác nhau. Ta có thể chọn màu hoặc độ dày của các đường đồ thị khác nhau là khác nhau để dễ so sánh và nhận xét (hình 2.14). P lot[{Sin[x], Sin[2x]}, {x, 0, 2Π}, P lotStyle → {T hickness[0.004], T hickness[0.007]}]; Hình 2.14 - Background: Tuỳ chọn cho màu của nền đồ thị. Ta đặt giá trị tuỳ chọn bằng các hàm màu như RGBColor[r,g,b], GrayLevel[], hoặc Hue[]. Giá trị mặc định của tuỳ chọn này là Automatic. P lot[Sin[x], {x, 0, 2Π}, Background → GrayLevel[0.5]]; Hình 2.15 - PlotPoints: Tuỳ chọn cho số điểm tối thiểu để lấy mẫu cho đồ thị. Giá trị mặc định của tuỳ chọn là 25 (hình 2.16a). Thí dụ xét đồ thị sau: KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 17 P lot[Cos[20t] + Cos[24t], {t, Π, 3Π}]; Hình 2.16a Trên đồ thị ta thấy, đoạn đầu tiên của đồ thị không được chính xác do số điểm lấy mẫu để vẽ đồ thị không đủ. Ta có thể khắc phục điều này với tuỳ chọn PlotPoints là 70 (hình 2.16b). P lot[Cos[20t] + Cos[24t], {t, Π, 3Π}, P lotP oints → 70]; Hình 2.16b Trên đây là những tuỳ chọn quan trọng của các lệnh vẽ đồ thị hai chiều, ngoài ra còn có các tuỳ chọn khác như: Aspecratio: Tuỳ chọn cho tỷ lệ chiều cao/chiều rộng. Giá trị mặc định của nó là √ 1/GoldenRatio_ 2/(1 + 5). TextStyle: Kiểu mẫu cho text trong đồ thị gồm các dạng như: title, subtile, section, text..., mặc định là text thường. Đặt kiểu text bằng lệnh: TextStyle → dạng text. DisplayFunction: Tuỳ chọn về cách thể hiện đồ thị, Indentity là không hiển thị đồ thị ra. Prolog hoặc Epilog: Vẽ thêm vào đồ thị một đối tượng đồ thị đơn giản trước (hoặc sau) đồ thị chính với mục đích đánh dấu hoặc so sánh. Đó có thể là Box[], Rectange[], Circle[]... giá trị mặc định của nó là None... Các tuỳ chọn của các lệnh vẽ đồ thị có rất nhiều nhưng giá trị của các tuỳ chọn này chỉ giới hạn trong một số ít: Automatic_có sử dụng các thuật toán đã tích hợp sẵn, None_không bao gồm tuỳ chọn này, All_bao gồm tất cả các đặc tả, True_thực hiện mặc định đã đặt, False_không thực hiện tuỳ chọn. KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị 2.2.3 Phạm Thị HạnhThảo 18 Đồ thị hai chiều nâng cao. Mathematica không chỉ hỗ trợ vẽ từng đồ thị của mỗi hàm số với những tuỳ chọn như trên, mà nó còn hỗ trợ thêm nhiều chức năng khác trong hiện ứng hình ảnh. Ta có thể vẽ nhiều đồ thị cùng một lúc, bố trí lại để phục vụ cho các mục đích khác, hoặc cũng có thể tìm nghiệm của một phương trình từ đồ thị mà nếu giải trực tiếp bằng thuật toán thì sẽ gặp nhiều khó khăn. a. Vẽ lại các đồ thị, vẽ chèn các đồ thị. Ta có thể vẽ lại một hay nhiều đồ thị mà đã thực hiện trước đó mà chưa được hiển thị ra hoặc bổ sung các tuỳ chọn. Để vẽ lại các đồ thị ta dùng lệnh: Show[{g1 , g2 , ...} , tuỳ chọn] Ví dụ (hình 2.17): P lot[Cos[20t] + Cos[24t], {t, Π, 3Π}, P lotP oints → 70, DisplayF unction → Identity]; Show[%, Background → GrayLevel[0.8]]; Hình 2.17 Tuỳ chọn DisplayFunction → Identity sẽ không hiển thị đồ thị ra màn hình. p1 = P lot[xSin[x], {x, −10, 10}, P lotStyle → {T hickness[0.003]}, DisplayF unction → Identity]; p2 = P lot[xCos[x], {x, −10, 10}, P lotStyle → {T hickness[0.007]}, DisplayF unction → Identity]; Show[p1, p2, F rame → T rue, DisplayF unction → $DisplayF unction]; Hình 2.18 KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 19 Ta cũng có thể vẽ các đồ thị thành một dãy bằng các lệnh: Show[GraphicsArray[{g1 , g2 , ...}]]: hiển thị dãy đồ thị {g1 , g2 , ...} thành một hàng liên tục. Show[GraphicsArray[{{g1 }, {g2}, ...}]]: hiển thị dãy đồ thị {g1 , g2 , ...} thành một cột. Show[GraphicsArray[{{g1 , g2 }, ...}...}]]: hiển thị dãy đồ thị {{g1 , g2 , ...}...} thành một bảng chữ nhật các đồ thị với tuỳ chọn GraphicsSpacing → {h,v} cho khoảng cách giữa các đồ thị: h_ khoảng dọc, v_ khoảng ngang. p1 = P lot[Sin[x], {x, 0, 2Π}, DisplayF unction → Identity]; p2 = P lot[Sin[2x], {x, 0, 2Π}, DisplayF unction → Identity]; Show[GraphicsArray[{p1, p2}]]; Hình 2.19 b. Đồ thị theo tham số. Khi xét phương trình chuyển động của một chất điểm chuyển động trong không gian ~r = ~r(t). Đây chính là phương trình quỹ đạo của chất điểm theo tham số t. Đồ thị của quỹ đạo là một đồ thị theo tham số. Lệnh vẽ đồ thị theo tham số: ParametricPlot[{fx, fy }, {t, tmin , tmax}] vẽ đồ thị cho bởi các toạ độ {fx (t), fy (t)}. ParametricPlot[{{fx, fy }, {gx , gy }...}, {t, tmin, tmax }] vẽ đồng thời một vài đồ thị trên hệ trục toạ độ. Hình 2.20 Thí dụ tia điện tử trong máy dao động ký gồm hai cuộn lái tia theo hai phương KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 20 vuông góc với nhau có điện trường thay đổi theo quy luật: x = Ax Cos(ωx t + ϕx ) và y = Ay Cos(ωy t + ϕy ). Tổng hợp của hai dao động vuông góc này cho ta một đường cong theo tham số t gọi là các đường Lissajous. Dưới đây là đồ thị của dao động tổng hợp khi xét trong một trường hợp cụ thể (hình 2.20): P arametricP lot[{Cos[t], Cos[3t − Π4 ]}, {t, 0, 2Π}, AxesLabel → {”x(A)”, ”y(A)”}, F rame → T rue, AspectRatio → Automatic, F rameLabel → {”Ax = Ay ; ωx = ωy /3; ϕx = 0; ϕy = −Π/4]”, ””, ””, ””}, DefaultF ont → {”V nT ime”, 14}]; 2.2.4 Đồ thị dữ liệu hai chiều. Đồ thị dữ liệu biểu diễn các dữ liệu dạng bảng cho bởi Table[] hoặc Array[]..., hoặc các cặp toạ độ được đưa vào trực tiếp từ thực nghiệm. Đồ thị dữ liệu gồm các lệnh: ListPlot[{y1, y2, ...}] vẽ một dãy các giá trị y với x lần lượt là 0, 1, 2,... , n. ListPlot[{{x1, y1}, {x2, y2 }, ...}] vẽ dãy các điểm toạ độ {xi , yi }. Ngoài các tuỳ chọn cho các lệnh đồ thị, đồ thị dữ liệu còn được bổ sung các tuỳ chọn: PlotJoined: Có nối các điểm lại hay không, giá trị mặc định của tuỳ chọn là False. PlotStyle: Cho cấu trúc của điểm dữ liệu hoặc đường nối các điểm được vẽ ra. Ví dụ PointSize[i] cho điểm tròn có bán kính i. Thí dụ ta vẽ đồ thị dữ liệu của bảng sau: data = T able[Sin[x] + Random[Real, {−0.1, 0.1}], {x, 0, 2Π, 0.1}]; ListP lot[data, P lotStyle → P ointSize[0.012]]; (hình 2.21a) ListP lot[data, P lotJoined → T rue]; (hình 2.21b) Hình 2.21a Hình 2.21b Ta có thể tuỳ chọn cách hiển thị điểm dữ liệu trên đồ thị bằng lệnh Graphics[đồ hoạ,
- Xem thêm -

Tài liệu liên quan