Công cụ Mapple giúp cho việc biểu diễn các công thức toán học, vật lý học, logic học… trên máy tính một cách dễ dàng, ở tiểu luận này em chỉ trình bày một phần nhỏ của ứng dụng Mapple tr
Trang 1Tiểu luận môn ngôn ngữ hình thức
PHẦN I TỔNG QUAN
Khái niệm hình thức (symbolic) là một khái niệm có khá lâu trong tự nhiên –
xã hội, nó ăn sâu vào các nhà nghiên khoa học, các nhà toán học, vật lý học, sinh học, y tế học…Và việc biểu diễn hình thức trong các môn khoa học đó vào máy tính trước kia là vô cùng khó khăn Nhưng hôm nay, ngôn ngữ hình thức đã ra đời, và Mapple là một công cụ không những giúp cho các nhà khoa học tin học giải quyết các vấn đề nghiên cứu của họ mà còn giúp cho các khoa học khác dễ dàng đưa các biểu diễn hình thức của họ vào máy tính
Công cụ Mapple giúp cho việc biểu diễn các công thức toán học, vật lý học, logic học… trên máy tính một cách dễ dàng, ở tiểu luận này em chỉ trình bày một phần nhỏ của ứng dụng Mapple trong đại số, đó là các hàm vẽ đồ thị hàm số 2D, 3D trong Mapple
PHẦN II GIỚI THIỆU CÁC HÀM VẼ ĐỒ THỊ 2D, 3D TRONG MAPPLE VÀ
VÍ DỤ MINH HỌA
1 addcoords – Thêm mới một hệ tọa độ
Hàm addcoords(coord_name, v, in_cart, con, dlist)
các tham số như sau:
coord_name : tên của hệ thống tọa độ
v : danh sách của biến ( 2 hoặc 3 chiều)
in_cart : danh sách biểu thức xác định tọa độ x, y, z trong một tọa độ mới
con : danh sách tên hằng số trong in_cart
dlist : danh sách giá trị mặc định của coordplot hay coordplot3d
Trang 2Hàm addcoords thêm một hệ tọa độ mới mà có thể được sử dụng để phát họa một chức năng hoặc cung cấp thông tin mặc định thường sử dụng bằng coordplot hoặc coordplot3d để tạo ra một hệ thống tọa độ.
Ghi chú: Sử dụng những toán hạng khác nhau như Divergence, Gradient, Curl,
và Laplacian của gói VectorCalculus khi thêm một hệ tọa độ mới và sử dụng
các lệnh VectorCalculus[AddCoordinates]
• Trong trường hợp tọa đồ 2 chiều, v và in_cart là danh sách của hai phần tử
Trong trường hợp tọa độ 3 chiều, chúng là danh sách của ba phần tử
• Khi con bắt buộc, nó buộc phải được chỉ rõ sau v
• Khi thêm thông tin mặc định, hệ thống tọa độ phải được định nghĩa trước(ta
sử dụng hàm addcoords trong mapple), hoặc ngay lúc đó ta gọi hàm
addcoords
• Đối với hệ thống tọa độ 2 chiều, thông tin mặc định coordplot được định
nghĩa trong dlist bằng [range1, range2, grid1, grid2, view1, view2]
Range1, rang2 chỉ rỏ mức độ ưu tiên được sử dụng trong việc chuyển đổiGrid1, grid2 là hai giá trị lưới nguyên
View1, view2 là phạm vi thực sự xác định kích thước và được sử dụng bằng
hàm coordplot
• Hệ tọa độ 3 chiều, thông tin mặc định coordplot3d được định nghĩa trong dlist bằng [value1, value2, value3,[rang1, range2, range3],[view1, view2,
Trang 3Tiểu luận môn ngôn ngữ hình thức
Value1, value2,value3: danh sách các hằng, một danh sách tương ứng với một tọa độ đơn Ít nhất một hằng phải được xuất hiện trong danh sáchRange1, range2, range3: giá trị phạm vi cho mỗi tọa độ
View1, view2, view3 : là phạm vi thực sự xác định kích thước và được sử
Trang 42 plots[animate] – Tạo một hình động 2 chiều, 3 chiều trên một tham số
Ta gọi các hàm sau:
animate(plotcommand, plotargs, t=a b, options)
Trang 5Tiểu luận môn ngôn ngữ hình thức
Plotcommand : thủ tục của mapple để tạo một đồ thị 2 chiều hoặc 3 chiều.
Plotargs: danh sách đối số được phát họa đồ thị
T: tên đối số mà ảnh động được tạo
a, b: hằng số xác định phạm vi của ảnh động
L : danh sách các biến
Options: (tùy chọn) các phương trình hình thức option = value, chỉ rõ sự lựa chọn
lệnh animate hay plot
2.1 Mô tả
Lệnh animate có thể được sử dụng để tạo một hình ảnh động trên một tham số
đối với bất kỳ lệnh vẽ đồ thị của mapple nào cả 3D và 2D Ví dụ, để tạo một ảnh động của hàm Asin(x) với biên độ A
animate( plot, [A*sin(x), x=0 10], A=0 2 );
Lệnh này tạo một hình ảnh động với 25 khung hình
Để cho chương trình hoạt động ta dùng giao diện của mapple như sau:
a Nhấn vào plot, thanh công cụ plot sẽ được hiện thị
b Trong thanh công cụ đó, nhấn vào Play
- Trong hàm gọi đầu tiên, Một hình với 25 khung hình được tạo ra trong 25 cách đều bằng nhau của tham số A trên pham vi từ a b Trong hàm thứ 2, danh sách giá trị được sử dụng cho những khung hình ảnh động
Trang 6hoặc 3 chiều, đầu vào thứ 2, plotargs là danh sách các đối số cho plotargs
Để phát thảo một hàm sin dùng 2 lệnh như sau:
> plot( sin(2*x), x=-Pi Pi, thickness=2 );
> plot( sin(3*x), x=-Pi Pi, thickness=2 );
- Để chuyển đổi một hình ảnh động trên biên độ, đặt trên những đối số để
lệnh phát thảo nhưng danh sách bên dưới:
animate( plot, [sin(A*x), x=-Pi Pi, thickness=2], A=1 5 );
- Để vẽ một đường cong theo biến thời gian t và một miền giá trị s ta dùng lệnh sau:
animate( plot, [sin(t), t=0 x], x=0 4*Pi );
- Đối với đồ thị 3 chiều ta dùng hàm sau:
animate( plot3d, [sin(A)*(x^2+y^2), x=-2 2, y=-2 2], A=0 2*Pi );
2.2 Một vài ví dụ minh họa về vẽ đồ thị:
Trang 7Tiểu luận môn ngôn ngữ hình thức
Trang 8Và đây là các ví dụ cho đồ thị 3 chiều
Trang 9Tiểu luận môn ngôn ngữ hình thức
Một vài ví dụ tiếp theo để vẽ đồ thị 2 hoặc 3 chiều
Trang 10>
>
>
Trang 11Tiểu luận môn ngôn ngữ hình thức
> ball := proc(x,y) plots[pointplot]
([[x,y]],color=blue,symbol=solidcircle,symbolsize=40) end proc:
>
>
Trang 12>
> F := proc(t)
plots[display](
plottools[line]([-2,0], [cos(t)-2, sin(t)], color=blue),
plottools[line]([cos(t)-2, sin(t)], [t, sin(t)], color=blue),
plot(sin(x), x=0 t, view=[-3 7, -5 5])
);
end proc:
>
Trang 13Tiểu luận môn ngôn ngữ hình thức
- Lệnh plots[display] có thể được sử dụng để tạo một danh sách các đồ thị
- Đối số p có thể là mảng 1 hoặc 2 chiều của cấu trúc đồ thị được tạo vởi hệ
thống lệnh đồ thị của Mapple Những mảng riêng biệt có thể là đồ thị 2 chiều hoặc 3 chiều, bao gồm của hình ảnh động
- Đối số đầu tiên có thể được là cấu trúc đồ thị động, được tạo thông qua lệnh plots[animate] Trong trường hợp này, những khung hình của đồ thị được hiện thị trong cùng một mặt
3.2 Một vài ví dụ minh họa
>
Trang 15Tiểu luận môn ngôn ngữ hình thức
Hiển thị trong không gian 3 chiều
Trang 16Hiển thị những khung hình ảnh trong bảng, dùng lệnh sau:
Trang 17Tiểu luận môn ngôn ngữ hình thức
u,v : Những danh sách, những vector, tập những danh sách, tập những vector
U: tập hợp hoặc danh sách chứa những cặp danh sách hoặc cặp vector
Opts: tùy chọn, phương trình hình thức option = value, các giá trị của option có thể
là một shape, length, width, head_width, head_length hoặc plane
4.1 Mô tả
Hàm Arrow(u), đối số u như một mũi tên tại khu vực gốc
Hàm Arrow(u, v): có hai tham số là u và v, điểm đầu là u và điểm đích là v
Hàm Arrow(U): Mỗi cặp điểm như là một mũi tên với điểm đầu và điểm đích
- Nếu đối số có 2 phần tử, kết quả là đồ thị 2 chiều, nếu đối số là 3 phần tử thì kết quả là 3 chiều
- Thuộc tính của mũi tên được mô tả bằng việc sử dụng đối số tùy chọn Đối số opts có thể chưa một hoặc nhiều phương trình sau:
shape =harpoon, arrow, double_arrow, or cylindrical_arrow
Đây là một tùy chọn xuất hiện trên mũi tên, giá trị harpoon chỉ ra rằng mũi tên được vẽ như một cạnh đơn ở đầu mũi tên Giá trị arrow
chỉ ra rằng mũi tên được vẽ với 2 cạnh ở đầu mũi tên, double_arrow
chỉ ra rằng mũi tên được vẽ như một hình chữ nhật, hay hình vuông
cylindrical_arrow mũi tên được vẽ là hình trụ và hình nón.
length =len or [len, lenopts]
đối số len là kiểu của đại số, tham số tùy chọn lenopts là một phương trình hình thức relative = truefalse chỉ rõ chiều dài của mũi tên len là
tương đối từ điểm đầu tới điếm cuối Giá trị mặc định của len là false
width =wid or [wid, widopts]
Trang 18phương trình relative = truefalse mà chỉ rõ chiều rộng của mũi tên
hoặc là độ rộng tương đối của mũi tên
head_width =hwid or [hwid, hwidopts]
Tham số hwid là kiểu của đại số, tham số tùy chọn hwidopts là một phương trình relative = truefalse mà chỉ rõ độ rộng của hwid đầu là
liên hệ với độ rộng tuyệt đối của mũi tên
4.2 Một số ví dụ minh họa
Ví dụ 2: mô tả tham số Shape:
>
Trang 19Tiểu luận môn ngôn ngữ hình thức
Trang 20>
>
>
>
Trang 21Tiểu luận môn ngôn ngữ hình thức
Ví dụ 5: hiển thị ma trận 3x3
>
>
>
Trang 22Ví dụ 7: Hiện thị đồ thị 3 chiều cho một số điểm
Trang 23Tiểu luận môn ngôn ngữ hình thức
plots[contourplot3d] - 3-D phát họa đường viền
các hàm được sử dụng như sau:
contourplot(expr1, x=a b, =c d, opts)
contourplot(f, b, c d, opts)
contourplot([exprf, exprg, exprh], s=a b, t=c d, opts)
contourplot([f, g, h], a b, c d, opts)
contourplot3d(expr1, x=a b, y=c d, opts)
contourplot3d(f, a b, c d, opts)
contourplot3d([exprf, exprg, exprh], s=a b, t=c d, opts)
contourplot3d([f, , h],a b, c d, opts)
Cả hai contourplot và contourplot3d nhận những đối số giống nhau và tạo ra
những đường viền cho biểu thức hoặc chức năng Trong những từ khác, những lệnh
Trang 24trị của tọa độ thứ 3 Sự khác biệt như sau: contourplot3d tạo ra cách nhìn 3 chiều của đường viền ở mức độ thích hợp, trong khi đó contourplot tạo ra đồ thị 2 chiều
Một đường viền 2 chiều có thể được hiển thị trong 3 chiều để tạo bóng đổ, hơn nữa
contourplot3d nhanh hơn contourplot.
5.2 Một vài ví dụ
Ví dụ 1: sử dụng biểu thức đầu vào:
Trang 25Tiểu luận môn ngôn ngữ hình thức
Trang 26Ví dụ 2: sử dụng thủ tục đầu vào
Ví dụ 4: chỉ rõ hệ tọa đồ:
Trang 27Tiểu luận môn ngôn ngữ hình thức
Ví dụ 4: vẽ nhiều đường viền
>
>
>
Ví dụ 5: Vẽ bằng 3D
Trang 28PHẦN III KẾT LUẬN
Sau khi hoàn thành tiểu luận này em thấy Mapple là một công cụ rất mạnh về
vẽ và khảo sát đồ thị trong 2 chiều, 3 chiều Là một công cụ rất mạnh trong việc sử
lý các hình ảnh động trong không gian 2 chiều, 3 chiều Mapple biểu diễn những đồ thị phức tạp trong không gian 2 chiều và 3 chiều một cách dễ dàng
Ở đây, việc biểu diễn những đồ thị hàm số ấy trên máy tính không cần phải có một lập trình viên giỏi mà chỉ cần một em học sinh triển khai được các công thức trên Mapple thì cũng có thể làm được Như vậy Mapple là một công cụ không những dành cho những người lĩnh vực công nghệ thông tin mà còn cho tất cả những ai có
sử dụng các công thức biểu diễn hình thức Mapple là một công cụ rất thực tế trong đời sống thực
Trang 29Tiểu luận môn ngôn ngữ hình thức
[1] < PGS.TS Đỗ Văn Nhơn > Giáo trình Mapple cơ bản
[2] < http://www.maplesoft.com > Help Mapple
[3] http://www.barcodesinc.com/articles/symbolic-computation.htm
[4] < Laurent Bernardin ; John Cannon ; Xiao-San Gao > Journal of Symbolic
Computation