Tải bản đầy đủ (.docx) (22 trang)

TÌM HIỂU CÔNG CỤ LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.59 MB, 22 trang )

MỤC LỤC
ĐẠI HỌC QUỐC GIA
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP. HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT KHÓA 6
________________
BÀI THU HOẠCH
CHUYÊN ĐỀ: LẬP TRÌNH SYMBOLIC
Đề tài:
TÌM HIỂU CÔNG CỤ LẬP TRÌNH
SYMBOLIC VÀ ỨNG DỤNG
GVHD: TS. Đỗ Văn Nhơn
SVTH: LÊ THỊ PHÚC KHOA – CH1101015


Tiểu luận: Lập trình Symbolic
I. GIỚI THIỆU MAPPLE – CÔNG CỤ LẬP TRÌNH SYMBOLIC
Maple là một gói phần mềm toán học thương mại phục vụ cho nhiều mục
đích. Nó phát triển lần đầu tiên vào năm 1980 bởi Nhóm Tính toán Hình thức tại
Đại học Waterloo ở Waterloo, Ontario, Canada.
Từ năm 1988, nó đã được phát triển và thương mại hóa bởi Waterloo
Maple Inc. (còn được biết đến với tên gọi Maplesoft), một công ty Canada cũng
có trụ sở tại Waterloo, Ontario.(). Maple ra
đời năm
1991
đến nay đã phát
triển
đến phiên
bản
16. Maple có cách cài
đặt
đơn


giản,
chạy được
trên
nhiều hệ điều
hành, có
cấu
trúc linh
hoạt để sử
dụng tối
ưu cấu
hình
máy và có trình
tr

giúp (help)
rất dễ sử
dụng.
Từ
phiên
bản
7, Maple cung
cấp
ngày càng
nhiều
các công cụ
trực
quan, các gói
lệnh tự
học
gắn liền với

toán học
phổ thông và
đại
học. Ưu
điểm
đó
làm
cho
nhiều người
trên
thế giới lựa
chọn
sử
dụng Maple cùng các
phần mềm
toán học
khác áp dụng
trong
dạy
học toán và
các công việc tính toán đòi hỏi của
thực tiễn

sự
phát
triển
của giáo dục.
C ó t h ể
nhận thấy rằng
ngoài

các
tính
năng
tính toán và minh
hoạ rất
mạnh mẽ bằng
các câu
lệnh
riêng
biệt ( thường
chỉ
cho
ta
kết quả
cuối cùng ),
Maple còn là một ngôn
ngữ lập
trình
hướng
thủ tục
(procedure).
Thủ tục là một
dãy các
lệnh
của Maple theo
thứ tự

người lập
trình định
sẵn để xử

lí một công
việc
nào đó, khi
thực hiện
thủ tục này Maple
sẽ tự
động
thực hiện
các
lệnh

trong
thủ tục đó một cách
tuần tự
và sau đó
trả lại kết quả
cuối
cùng.
Mapple có các chức năng cơ bản sau:
• Thực hiện các tính toán với khối lượng lớn, với thời gian nhanh và
độ chính xác cao.
• Có thể thực hiện được hầu hết các phép toán cơ bản trong chương
trình toán đại học và sau đại học.
CH1101015_Lê Thị Phúc Khoa Trang 3
Tiểu luận: Lập trình Symbolic
• Sử dụng các gói chuyên dụng của Maple để giải quyết các bài toán
cụ thể như: vẽ đồ thị (gói plots), hình học giải tích (gói geometry),
đại sốtuyến tính (gói linalg), Giải tích (gói student), phương trình
vi phân(gói DEtools), lý thuyết số (gói numtheory), Dữ liệu rời rạc
(góiDiscreteTransforms),…

• Thiết kế các đối tượng 3 chiều.
• Minh họa hình học thuận tiện gồm: vẽ đồ thị tĩnh và động của các
đường và mặt được cho bởi các hàm tùy ý trong nhiều hệ tọa độ
khác nhau.
• Là một ngôn ngữ lập trình đơn giản và mạnh mẽ, có khả năng
tương tác với các ngôn ngữ lập trình khác (C, Fortran, Java,
MatLab, và Visual Basic).
• Cho phép trích xuất ra các định dạng khác nhau như word,
HTML…
• Một công cụ biên soạn giáo án và bài giảng điện tử, thích hợp với
các lớp học tương tác trực tiếp.
• Một trợ giáo hữu ích cho học sinh sinh viên trong việc tự học.
Kiến trúc Maple:
• Phần lớn chức năng toán học của Maple được viết bằng ngôn ngữ
Maple, và được thông dịch bởi nhân Maple. Nhân Maple được viết
bằng C. Maple chạy trên tất cả các hệ điều hành chính.
• Ngôn ngữ lập trình Maple là một ngôn ngữ kiểu động. Cũng giống
như các hệ thống đại số máy tính, các biểu thức hình thức được lưu
trữ trong bộ nhớ theo đồ thị không chu trình có hướng (DAG).
Ngôn ngữ cho phép các biến có phạm vi nhất định (lexical
scoping). Ngôn ngữ có hình thức lập trình hàm, nhưng cũng có hỗ
trợ đầy đủ cho lập trình truyền thống, theo kiểu mệnh lệnh.
CH1101015_Lê Thị Phúc Khoa Trang 4
Tiểu luận: Lập trình Symbolic
• Một điều lạ đối với chương trình thương mại, đa số mã nguồn đều
có thể xem tự do.
Khi khởi động nhân Maple được kích hoạt. Maple tự động nạp các lệnh
cũng như các chức năng cơ bản vào môi trường làm việc.Lúc này người
dùng có thể thực hiện các tính toán cơ bản. Những tính toán chuyên
ngành người dùng sẽ sử dụng các lệnh chứa trong các gói tương ứng.

II. BÀI TOÁN GIẢI VÀ BIỆN LUẬN PHƯƠNG TRÌNH BẬC NHẤT
MỘT ẨN VÀ BẬC HAI MỘT ẨN.
1. Bài toán giải và biện luận phương trình bậc nhất một ẩn:
Phương trình bậc nhất một ẩn có dạng: f(x)=ax+b=0
- Nếu a ≠ 0: phương trình có nghiệm duy nhất x= -
- Nếu a = 0:
+ Nếu b ≠ 0: phương trình vô nghiệm
+ Nếu b = 0: phương trình có vô số nghiệm đúng với mọi x
2. Bài toán giải và biện luận phương trình bậc hai một ẩn:
Phương trình bậc hai một ẩn có dạng: f(x)=ax
2
+bx+c= 0
*Trường hợp 1:
Với a = 0, ta có phương trình bx+c=0, đây là phương trình
bậc nhất một ẩn ta đưa về bài toán “Giải và biện luận phương trình bậc
nhất một ẩn”.
*Trường hợp 2:
Với a ≠ 0,ta tính biểu thức: ∆ = b
2
-
4
a
c
+Nếu ∆ <
0
: phương trình vô nghiệm.
+Nếu ∆ = 0: phương trình có nghiệm kép x = -
+Nếu ∆ > 0: phương trình có 2 nghiệm
3. Giới thiệu các lệnh sử dụng trong chương trình:
∗ Lệnh ước lượng đại lượng / biểu thức với độ chính xác tùy ý:

CH1101015_Lê Thị Phúc Khoa Trang 5
Tiểu luận: Lập trình Symbolic
Cú pháp: >evalf(x, n)
Trong đó : - x: là số truyền vào.
 n: số chữ số thập phân
∗ Lệnh khai triển biểu thức:
Cú pháp: >expand(biểu thức);
Ví dụ:
> bt:=(x+y)^7;

:= bt ( )
+
x y
7
> expand(bt);

+ + + + + + +
x
7
7 x
6
y 21 x
5
y
2
35 x
4
y
3
35 x

3
y
4
21 x
2
y
5
7 x y
6
y
7
∗ Lệnh giải phương trình, bất phương trình:
Cú pháp: >solve(equations, variables)
Trong đó: - equations: là phương trình, bất phương trình.
- variables: là biến số (ẩn).
Ý nghĩa: Lệnh thực hiện tìm nghiệm của biểu thức phương trình, bất
phương trình.
Ví dụ:
> solve(3*x
2
-5 = 0);
* Lệnh lấy vế trái, vế phải của biểu thức
Cú pháp:>lhs(expr) và rhs(expr)
CH1101015_Lê Thị Phúc Khoa Trang 6
Tiểu luận: Lập trình Symbolic
Trong đó: - expr: là biểu thức.
Ý nghĩa: lhs(expr) thực hiện trả về vế trái của biểu thức expr, lệnh tương
đương op(1,expr).
rhs(expr) thực hiện trả về vế phải của biểu thức expr, lệnh tương
đương op(2,expr).

Ví dụ:
>
>
>
* Lệnh lấy hệ số một đa thức:
Cú pháp:>coeff(p,x)
Trong đó: - p là một đa thức chứa x.
- x là biến.
Ý nghĩa: Lấy hệ số của trong biểu thức p.
Ví dụ:
>

12
CH1101015_Lê Thị Phúc Khoa Trang 7
Tiểu luận: Lập trình Symbolic
*Lệnh khai triển một biểu thức đại số:
Cú pháp:>expand(expr)
Trong đó: - expr: một biểu thức đại số
Ví dụ:
>
*Lệnh chuyển đổi dạng biểu thức:
Cú pháp:>convert(expr,form)
Trong đó: - expr: một biểu thức bất kỳ.
- form: kiểu dữ liệu như string, binary, decimal…
Ví dụ:
>

4BF
> convert( 1.23456, fraction );
*Lệnh hiển thị giá trị của biểu thức:

Cú pháp:>print(expr)
Trong đó: - expr: là biểu thức bất kỳ.
CH1101015_Lê Thị Phúc Khoa Trang 8
Tiểu luận: Lập trình Symbolic
Ví dụ:
>
>
>
*Lệnh xuất một biểu thức theo một định dạng:
Cú pháp:>printf(fmt,expr)
Trong đó: -fmt: định dạng hiển thị.
-expr: biểu thức được định dạng.
Ví dụ:
>
>
x=3, y= -7
CH1101015_Lê Thị Phúc Khoa Trang 9
Tiểu luận: Lập trình Symbolic
4. Chương trình:
a. Giải và biện luận phương trình bậc nhất:
b. Giải và biện luận phương trình bậc hai:
CH1101015_Lê Thị Phúc Khoa Trang 10
Tiểu luận: Lập trình Symbolic
CH1101015_Lê Thị Phúc Khoa Trang 11
Tiểu luận: Lập trình Symbolic
CH1101015_Lê Thị Phúc Khoa Trang 12
Tiểu luận: Lập trình Symbolic
5. Ví dụ minh họa:
a. Giải và biện luận theo tham số m phương trình bậc nhất:
f(x) = x+12 = m+x;

Ta gõ lệnh:
>
Kết quả như sau:
Neu m khong thuoc {-1, 1}:
CH1101015_Lê Thị Phúc Khoa Trang 13
Tiểu luận: Lập trình Symbolic
Neu m = -1:
Neu m = 1:
b. Để giải và biện luận theo tham số m phương trình bậc hai:
f(x) = 2m* –( m-1) x + (m – 8) = 0
Ta gõ lệnh:
> GiaiPhuongTrinhBacHai(2m* –( m-1) x + (m – 8) = 0, x);
Kết quả như sau:
+ Neu m = 0:
Phuong trinh co nghiem duy nhat
+ Neu m = 16099766e-1 :
Phuong trinh co nghiem kep
+ Neu m = 8.873242624 :
Phuong trinh co nghiem kep
+ Neu m < 16099766e-1 :
Phuong trinh vo nghiem
+ Neu 16099766e-1 < m < 8.873242624:
Phuong trinh co hai nghiem phan biet
+ Neu 8.873242624 < m :
CH1101015_Lê Thị Phúc Khoa Trang 14
Tiểu luận: Lập trình Symbolic
Phuong trinh vo nghiem
Kết quả giải và biện luận theo m phương trình:
f(x) = x
2

– (m-1)x - (m + 5) = 0
Ta gõ lệnh:
Kết quả như sau:
+ Neu m = -1 4.472135954*I :
Phuong trinh co nghiem kep
+ Neu m = -1.+4.472135954*I :
Phuong trinh co nghiem kep
+ Neu m < -1 4.472135954*I :
Phuong trinh co hai nghiem phan biet
+ Neu -1 4.472135954*I < m < -1.+4.472135954*I:
Phuong trinh co hai nghiem phan biet
+ Neu -1.+4.472135954*I < m :
Phuong trinh co hai nghiem phan biet
III. KẾT LUẬN
Bài thu hoạch đã trình bày những bước cơ bản để lập trình trong
Mapple cũng như cách viết các thủ tục, cách gọi thực thi các thủ
tục. Từ nền tảng này có thể xây dựng nên nhiều chương trình khác
CH1101015_Lê Thị Phúc Khoa Trang 15
Tiểu luận: Lập trình Symbolic
phục vụ cho công việc học tập và nghiên cứu khoa học và trong
nhiều lĩnh vực khác.
Tuy nhiên, do còn nhiều hạn chế như bản thân không nhiều
thời gian trong việc học tập sử dụng chương trình nên bài tập này
còn đơn giản và nhiều sai sót. Nhưng qua đó cũng giúp cho em
hiểu thêm về một công cụ hỗ trợ tính toán mạnh mẽ với thư viện
phong phú để có thể giải quyết các bài toán lớn một cách dễ dàng.
IV. TÀI LIỆU THAM KHẢO
[1] Tập tài liệu giảng dạy môn Lập trình Symbolic cho Trí tuệ nhân tạo
của thầy PGS.TS Đỗ Văn Nhơn – Đại học Công nghệ thông tin – Đại học Quốc
gia TP.HCM.

[2] , .
[3] Mục Help của chương trình Mapple v.16.
CH1101015_Lê Thị Phúc Khoa Trang 16

×