Mục lục
1 MỞ ĐẦU 2
1.1 Lýdochọnđềtài:. 2
1.2 Mục tiêu nghiên cứu: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Nhiệm vụ nghiên cứu: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Đối tượng nghiên cứu: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Phương pháp nghiên cứu: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6 Giới hạn đề tài nghiên cứu: . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.7 Cấu trúc của khóa luận: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 NỘI DUNG 4
2.1 Giới thiệu tổng quan về ngôn ngữ lập trình Mathematica. . . . . . . . . . . . 4
2.1.1 Giới thiệu sơ bộ về ngôn ngữ lập trình Mathematica. . . . . . . . . . 4
2.1.2 Giao diện tương tác của Mathematica. . . . . . . . . . . . . . . . . . 4
2.1.3 Các tính năng của Mathematica. . . . . . . . . . . . . . . . . . . . . 5
2.2 Vẽ đồ thị hai chiều tĩnh và động. . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Cúpháp. . . . . . . . . . . . . . . . . 9
2.2.2 Các tuỳ chọn của đồ thị hai chiều. . . . . . . . . . . . . . . . . . . . 10
2.2.3 Đồ thị hai chiều nâng cao. . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.4 Đồ thị dữ liệu hai chiều. . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.5 Đồ thị hai chiều động. . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Vẽ đồ thị ba chiều tĩnh và động. . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.1 Đồ thị mặt ba chiều. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.2 Đồ thị tham số ba chiều . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.3 Đồ thị dữ liệu ba chiều. . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.4 Đồ thị ba chiều động. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4 Ứng dụng vẽ đồ thị vào giảng dạy và nghiên cứu vật lý. . . . . . . . . . . . . 28
2.4.1 Bài toán giao thoa sóng cơ học. . . . . . . . . . . . . . . . . . . . . . 28
2.4.2 Bài toán chuyển động của vật ném xiên. . . . . . . . . . . . . . . . . 29
2.4.3 Ứng dụng nghiên cứu vật lý. . . . . . . . . . . . . . . . . . . . . . . . 30
3 KẾT LUẬN 38
39 trang |
Chia sẻ: maiphuongdc | Lượt xem: 3377 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận Sử dụng phần mềm Mathematica để vẽ đồ thị, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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] == x′[0] == 0}, x, {t, 0, 50}]
{{x→ InterpolatingFunction[{{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 (%)).
ParametricP lot[Evaluate[{x[t], x′[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
3
− 5x2
2
− 1
4
x(3− 5x2)Log[ (1+x)
(1−x)]
KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 9
- 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.∫ √
xArctan[x]dx
1
6
(−8√x−2√2ArcTan[1−√2√x]+2√2ArcTan[1+√2√x]+4x 32ArcTan[x]−√2Log[−1+√
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∑
k=1
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):
Table[P lot3D[Sin[2x]Sin[2y]Cos[t], {x,0,Π}, {y,0,Π}, P lotRange→ {−1, 1},
BoxRatios→ {1, 1, 1}, T icks→ None,DisplayFunction→ Indentity], {t,0,Π, Π
6
}];
Show[GraphicsArray[{%}, F rame→ True]];
Hình 1.6
2.2 Vẽ đồ thị hai chiều tĩnh và động.
2.2.1 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[Tan[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[Table[{f1, f2...}]], {x, xmin, xmax}] (hình 2.3).
P lot[Evaluate[Table[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*)
{AspectRatio→ 1
GoldenRatio
, Axes→ Automatic,AxesLabel→ None,
AxesOrigin→ Automatic,AxesStyle→ Automatic,Background→ Automatic,
ColorOutput → Automatic, Compiled→ True,DefaultColor → Automatic,
DefaultFont :→ $DefaultFont,DisplayFunction :→ $DisplayFunction,
Epilog → {}, F ormatType :→ $FormatType, Frame→ False,
FrameLabel→ None, FrameStyle→ Automatic, F rameTicks→ Automatic,
GridLines → None, ImageSize→ Automatic,MaxBend→ 10.,
P lotDivision→ 30., P lotLabel → None, P lotPoints → 25,
P lotRange → Automatic, P lotRegion→ Automatic, P lotStyle→ Automatic,
P rolog → {}, RotateLabel→ True, TextStyle :→ $TextStyle,T icks→ Automatic}
g = P lot[Sin[x], {x, 0, 2Π}];
Hình 2.4
Options[g, P lotRange]
{P lotRange− > Automatic}
FullOptions[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→ True];
- 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→ True, FrameLabel→ {Dưới, Trái, Trên, Phải},
RotateLabel→ False];
Hình 2.10
(Ở đây có bổ sung tuỳ chọn RotateLabel→ False để 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 → StyleForm[ " (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→ {Thickness[0.004], Thickness[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 lotPoints→ 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ị Phạm Thị HạnhThảo 18
2.2.3 Đồ 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 lotPoints→ 70,DisplayFunction→ 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→ {Thickness[0.003]},
DisplayFunction→ Identity];
p2 = P lot[xCos[x], {x,−10, 10}, P lotStyle→ {Thickness[0.007]},
DisplayFunction→ Identity];
Show[p1, p2, F rame → True,DisplayFunction→ $DisplayFunction];
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Π},DisplayFunction→ Identity];
p2 = P lot[Sin[2x], {x, 0, 2Π},DisplayFunction→ 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 = AxCos(ωxt + ϕx) và y =
AyCos(ωyt + ϕ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):
ParametricP lot[{Cos[t],Cos[3t− Π
4
]}, {t, 0, 2Π}, AxesLabel→ {”x(A)”, ”y(A)”},
F rame → True,AspectRatio → Automatic, F rameLabel → {”Ax = Ay;ωx = ωy/3;ϕx =
0;ϕy = −Π/4]”, ””, ””, ””},DefaultFont → {”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 = Table[Sin[x] + Random[Real, {−0.1, 0.1}], {x, 0, 2Π, 0.1}];
ListP lot[data, P lotStyle→ PointSize[0.012]]; (hình 2.21a)
ListP lot[data, P lotJoined→ True]; (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ạ,
KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 21
tuỳ chọn]. Lệnh này hiển thị đối tượng đồ hoạ đơn giản với tuỳ chọn. Đối tượng này được
hiển thị trên đồ thị bằng lệnh Show[].
Một số đối tượng đồ hoạ đơn giản như: Circle[{x, y},r] đường tròn tâm {x, y},
bán kính r; Disk[{x, y}, r] đường tròn có tô đen, tâm {x, y}, bán kính r; Line[{{x,
y}... }] đường thẳng với các thăng giáng (bù đắp): Offset[dx, dy]; Point[{x, y}] điểm;
Rectange[{xmin, ymin}, {xmax, ymax}] hình chữ nhật; Polygon[{{x1, y1},... }] hình đa giác;
Text[expr,{x, y}] đoạn văn bản expr.
Thí dụ:
Show[Graphics[Table[Line[{{x,x2}, Offset[{0, 6}, {x, x2}]}], {x, 10}], F rame→ True]];
(hình 2.22a)
Hình 2.22a
Show[Graphics[Table[Circle[{x,x2}, Offset[{4, 4}]], {x, 10}], F rame→ True]]; (hình
2.22b)
Hình 2.22b
Để biểu diễn các dữ liệu thực nghiệm với các tuỳ chọn phong phú, có một chương trình
dành riêng, một chương trình con: Graphics‘MultipleListPlot‘. Cấu trúc lệnh của nó như
sau (sau khi đã gọi package này ra để sử dụng):
MultipleListPlot[list1, list2,... , tuỳ chọn]; vẽ đồng thời đồ thị dữ liệu cho bởi các
dãy toạ độ list1, list2, ...
Với cấu trúc lệnh này có các tuỳ chọn:
PlotJoined: Có (hay không) đường liên kết các điểm dữ liệu. Mặc định là False.
PlotStyle: Định dạng (Style) cho đường liên kết bao gồm các hàm
KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 22
2.2.5 Đồ thị hai chiều động.
Mathematica cho phép thực hiện các hiện ứng hoạt hoạ trên màn hình bằng cách cho
chạy một dãy các đối tượng đồ thị kế tiếp nhau.
Để có hiện ứng hoạt hoạ động ta phải thực hiện các thao tác sau:
- Trước hết ta phải có dữ liệu cho việc trình diễn "đoạn phim hoạt hoạ" bằng cách vẽ
một dãy liên tiếp các đối tượng đồ thị này trên màn hình.
- Khi đã có một dãy liên tiếp các đối tượng đồ thị ta chỉ cần click đúp chuột vào một
đối tượng là có thể thấy được hiện ứng hoạt hoạ.
Có thể tuỳ chọn cách trình diễn hoạt hoạ bằng cách sử dụng các tuỳ chọn thể hiện
ở thanh công cụ bên dưới bao gồm: Backward trình diễn ngược trình tự thời gian, Cyclic
trình diễn theo vòng lặp, Forward trình diễn theo trình tự thời gian, Pause dừng trình diễn,
Slower làm chậm quá trình diễn hoạt, Faster làm nhanh quá trình diễn hoạt.
Xét thí dụ sau:
Table[P lot[{e[−16(x−1)2] + 1.5e[−(x+t)2], 1.5e[−(x+t)2] + 3, e[−16(x−t)2] + 5, {x,−3, 3},
P lotStyle→ {{Thickness[0.008]}, {Thickness[0.005]}, {Thickness[0.005]}},
P lotRange → {0, 6.25}, Axes → False, Frame→ True, FrameT icks→ None,
P lotPoints → 40], {t,−2, 3.5, 1}];
Hình 2.23
2.3 Vẽ đồ thị ba chiều tĩnh và động.
2.3.1 Đồ thị mặt ba chiều.
a. Cú pháp.
Đồ thị mặt ba chiều được vẽ bằng lệnh:Plot3D[f(x,y),{x, xmin, xmax}, {y, ymin, ymax}]
hoặc Plot3D[{f,s},{x, xmin, xmax}, {y, ymin, ymax}] vẽ đồ thị mặt f với độ bóng s thay đổi
theo chiều cao; Plot3D[{f,Hue[s]},{x, xmin, xmax}, {y, ymin, ymax}] vẽ đồ thị mặt có ánh
sắc thay đổi theo độ cao.
P lot3D[{Sin[xy],Hue[.3]}, {x,0, 3}, {y, 0, 3}, AxesLabel−> {”x”, ”y”, ”z”},
KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 23
P lotLabel→ StyleForm[”f = Sin(xy)”, Section, FontFamily→ V nT ime,
FontSize→ 14]];
Hình 3.1
b. Các tuỳ chọn của đồ thị mặt ba chiều.
Đồ thị mặt ba chiều cũng có những tuỳ chọn như trong đồ thị hai chiều như: Axes-
Label: đặt nhãn cho các trục toạ độ, PlotPoints: số điểm tối thiểu lấy mẫu cho đồ thị,
Ticks: điểm đánh dấu trên đồ thị, ...
Ta có thể liệt kê các tuỳ chọn và các giá trị mặc định gán sẵn cho các tuỳ chọn đó bằng
lệnh: Options[Plot3D] hoặc có thể tìm hiểu chi tiết giá trị của tuỳ chọn của đối tượng đồ
thị bằng lệnh Options[đối tượng,tuỳ chọn] hay tỷ mỉ hơn bằng lệnh FullOptions[đối
tượng,tuỳ chọn].
Options[P lot3D]
{AmbientLight→ GrayLevel[0], AspectRatio→ Automatic,Axes→ True,
AxesEdge→ Automatic,AxesLabel→ None,AxesStyle→ Automatic,
Background → Automatic,Boxed→ True,BoxRatios→ {1, 1, 0.4},
BoxStyle→ Automatic, ClipF ill→ Automatic, ColorFunction→ Automatic,
ColorFunctionScaling → True,ColorOutput→ Automatic, Compiled→ True,
DefaultColor → Automatic,DefaultFont :→ $DefaultFont,
DisplayFunction :→ $DisplayFunction,Epilog → {}, FaceGrids→ None,
FormatType :→ $FormatType,HiddenSurface→ True, ImageSize→ Automatic,
Lighting → True, LightSources→ {{{1., 0., 1.}, RGBColor[1, 0, 0]}, {{1., 1., 1.},
RGBColor[0, 1, 0]}, {{0., 1., 1.}, RGBColor[0, 0, 1]}},Mesh → True,
MeshStyle→ Automatic, P lot3Matrix→ Automatic, P lotLabel→ None,
P lotPoints → 25, P lotRange → Automatic, P lotRegion→ Automatic,
P rolog → {}, Shading → True, SphericalRegion→ False,
T extStyle :→ $TextStyle,T icks→ Automatic, V iewCenter→ Automatic,
V iewPoint → {1.3,−2.4, 2.}, V iewV ertical→ {0., 0., 1.}}
g = P lot3D[Sin[x] + Cos[y], {x, 0, 10}, {y, 0, 10},
AxesLabel→ {"dai", "rong", "cao"},DefaultFont → {”V nT ime”, 14},
KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 24
Mesh → False];
Hình 3.2
Options[g,AxesLabel]
{AxesLabel→ {dai, rong, cao}}
FullOptions[g, P lotRange]
{{0., 10.}, {0., 10.}, {−2.07857, 2.09747}}
Các tuỳ chọn so với đồ thị hai chiều thì đồ thị ba chiều có bổ sung:
- Boxed: Tuỳ chọn của đồ thị ba chiều gồm có hay không vẽ hộp ba chiều. Các giá trị
của tuỳ chọn này bao gồm: True_ có vẽ hộp ba chiều, False_ không vẽ hộp ba chiều. Giá
trị mặc định của tuỳ chọn là True.
P lot3D[Sin[xy], {x, 0,Π}, {y, 0,Π},Boxed→ False];
Hình 3.3
- FaceGrids: Tuỳ chọn của đồ thị ba chiều gồm có (hay không) vẽ các đường lưới trên
bề mặt. Đặt các giá trị của tuỳ chọn:
FaceGrids → All: Vẽ đường lưới trên tất cả các hướng.
FaceGrids → None: Không vẽ đường lưới.
FaceGrids → {{dirx, diry, dirz}, ...}: Tuỳ chọn vẽ đường lưới trên từng mặt. Trong đó
diri nhận một trong ba giá trị 0, -1, hoặc +1.
Giá trị mặc định của tuỳ chọn là None. Thí dụ:
P lot3D[Sin[x] + Cos[y], {x, 0, 10}, {y, 0, 10}, AxesLabel→ {”dai”, ”rong”, ”cao”},
DefaultFont→ {”V nT ime”, 14},Mesh→ False,
KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 25
FaceGrids→ {{0, 0,−1}, {+1, 0, 0}, {0, 0,+1}}];
Hình 3.4
- Lighting: Là tuỳ chọn của đồ thị ba chiều cho màu cho đồ thị. Các giá trị của tuỳ
chọn bao gồm:
Lighting → True: Có tô màu cho đồ thị.
Lighting → False: Bỏ tô màu cho đồ thị, chỉ có độ xám.
Giá trị mặc định của tuỳ chọn là True.
- ViewPoint: Tuỳ chọn của đồ thị ba chiều cho ta tuỳ chọn về điểm mà từ đó ta thấy
đồ thị. Giá trị mặc định của tuỳ chọn là {1.3,-2.4,2}. Ta có thể đặt lại giá trị của tuỳ chọn
bằng cách: ViewPoint → {x,y,z}.
Thí dụ: nhìn từ mặt: {0,-2,0}, nhìn từ phía trước và trên xuống: {0.-2,2}, nhìn thẳng
từ trên xuống: {0,0,2}, ...
Có thể chọn điểm nhìn từ thước lệnh Input\3D View Point Selector.
Thí dụ ta có thể thay đổi điểm nhìn đồ thị hàm Sin[x y] như sau:
P lot3D[Sin[xy], {x, 0, 3}, {y, 0, 3}, V iewPoint→ {−4.159, 2.732, 2.247}];
Hình 3.5
2.3.2 Đồ thị tham số ba chiều
Đồ thị tham số ba chiều được cho bởi các lệnh sau:
- ParametricPlot3D[{fx, fy, fz}, {t, tmin, tmax}]: Vẽ đồ thị tham số một đường ba
chiều.
KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 26
Thí dụ đường Lissajous ba chiều:
ParametricP lot3D[{Cos[5t], Sin[3t], Sin[t]}, {t, 0, 2Π}];
Hình 3.6
- ParametricPlot3D[{fx, fy, fz}, {t, tmin, tmax}, {u, umin, umax}]: Vẽ đồ thị tham số
một mặt ba chiều.
ParametricP lot3D[{Sin[t], Cos[t], u},{t, 0, 2Π}, {u, 0, 4}];
Hình 3.7
Hình 3.8
KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 27
- ParametricPlot3D[{{fx, fy, fz}, {gx, gy, gz}, ...}]: Vẽ đồng thời một vài đồ thị trên
cùng một hình.
ParametricP lot3D[{{Sin[t], Cos[t], t/3}, {Cos[5t], Sin[3t], Sin[t]}},{t,0, 10},
V iewPoint → {1.484,−2.740, 1.319}]; (hình 3.8)
2.3.3 Đồ thị dữ liệu ba chiều.
Để vẽ đồ thị dữ liệu ba chiều ta có các lệnh:
ListPlot3D[array]: Cho đồ thị dữ liệu của mảng array.
ListPlot3D[array,s]: Cho đồ thị dữ liệu của mảng array có độ bóng s.
Thí dụ bề mặt g có nhiễu loạn:
ListP lot3D[Table[Sin[xy] + Random[Real, {−0.15, 0.15}], {x, 0, (3Π)/2,Π/15},
{y, 0, (3Π)/2,Π/15}]];
Hình 3.9
2.3.4 Đồ thị ba chiều động.
Để vẽ đồ thị ba chiều động thì có một chương trình con khác (trong nhóm chương
trình con về đồ thị) Graphics‘Animation‘ cho phép thực hiện các khuôn hình "hoạt hoạ".
Cácb lệnh của nó như sau:
Hình 3.10
Animate[plot,{t, tmin, tmax, dt}]: Vẽ đồ thị hàm plot và thực hiện luôn trình chiếu các
khuôn hình.
KLTN: Sử dụng phần mềm Mathematica để vẽ đồ thị Phạm Thị HạnhThảo 28
Lệnh này có các tuỳ chọn: Frames số khuôn hình được vẽ, giá trị mặc định là 24; Closed
giá trị mặc định là False. ShowAnimation[{g1, g2, ...}]: Trình chiếu các khuôn hình "hoạt
hoạ" dãy {gi}. Trong nhóm này có nhiều dạng lệnh như SpinShow[graphics] gồm các tuỳ
chọn như: Frames số khuôn hình được vẽ, mặc định là 24; SpinOrigin xác định điểm nhìn,
giá trị mặc định là {0,0,1.5}; SpinRange góc quay đồ thị, giá trị mặc định là {0,360}, ...
Thí dụ sau vẽ đồ thị tham số g với điểm nhìn mặc định sau đó quay toàn bộ trục toạ
độ từ 0 độ đến 180 độ lấy 10 khuôn hình:
<< Graphics‘Animation‘
g = ParametricP lot3D[{x,Cos[t]Sin[x], Sin[t]Sin[x]}, {x,−Π,Π}, {t, 0, 2Π},
Các file đính kèm theo tài liệu này:
- mathematica.D.Hien.8381.PDF