PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
LỜI MỞ ĐẦU
Áp dụng công nghệ thông tin để đổi mới phương pháp dạy và học đang được
quan tâm và ngày càng trở nên thiết thực. Đặt biệt là vấn đề đổi mới phương pháp giáo
dục phổ thông.
Môn Toán có một vai trò hết sức quan trọng. Bởi, nó là môn học nền tảng giúp
ta nhận thức mọi môn học khác như
Vật lý, Hóa học, Sinh học hay áp dụng trong
các vấn đề bài toán kinh tế hay kỹ
thuật…Nhưng
nó lại
đƣợc
đánh giá là môn học
khó ở hai nghĩa đó là khó cả về
ngƣời
dạy và khó cả về người học. Câu hỏi đặt ra là:
Làm sao để học môn Toán vừa thuận lợi vừa hiệu quả hơn?
Maple là một phần mềm Toán học có khả năng ứng dụng trong mọi nội dung,
mọi lĩnh vực
nhƣ
vật lý, Hóa học hay áp dụng
vào
bài
toán kinh tế…Với khả năng tính
toán, minh họa trực quan, Maple là một công cụ rất tốt giúp cho người học và
người
dạy thuận lợi hơn trong quá trình tìm hiểu nó ở các lĩnh vực khác nhau.
Trong
khuôn
khổ có hạn của bài thu hoạch, Em xin trình bày về cách giải quyết các bài
toán liên quan đến hình học giải tích trong mặt phẳng bằng Maple.
1
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
I - GIỚI THIỆU TỔNG QUAN VỀ PHẦN MỀM MAPPLE
1. Giới thiệu
Maple là gói phần mềm toán học thương mại phục vụ cho nhiều lĩnh vực được xây
dựng và phát triển bởi của hãng Mapple Soft, một bộ phận chủ yếu của liên hợp công ty
Waterloo Mapple phát triển (). Phiên bản Mapple mới nhất
hiện tại là Mapple 16.
Maple là một công cụ tuyệt vời hỗ trợ cho việc học tập và nghiên cứu toán học.Với
Maple ta có thể thực hiện được mọi điều từ những phép toán đơn giản nhất, sơ cấp nhất
cho đến những tính toán phức tạp nhất. Không chỉ dừng lại ở việc hỗ trợ tính toán, Maple
còn có khả năng lập trình. Ở phương
diện này, có thể xem Maple như
là một ngôn ngữ
lập trình trong đó chúng ta có thể tạo ra những chương
trình và những gói (package) để
tái sử dụng.
Với phần mềmMaple, chúng tacó thể:
+ Thựchiện cáctính toán với khối lượng lớn, với thời gian nhanh và độ chính xác cao.
+ Sử dụng các gói chuyên dụng củaMaple để giải quyết các bài toán cụ thể như:vẽ đồ thị
(gói plot), hình học giải tích (gói geometry), đại số tuyến tính (góilinalg),
+ Thiết kế các đối tượng 3 chiều
Maple cung cấp nhiều công cụ trực quan, nhiều gói lệnh chuyên ngành phù hợp với các
tính toán phổ thông và bậc đại học, giao diện hoàn thiện hơn và hỗ trợ soạn thảo tốt
hơn. Nhiều trường đại học sử dụng Maple để giảng dạy một số môn trong khung
chương
trình đào tạo đã góp phần làm thay đổi cách học toán, song song với lối giải
toán truyền thống sinh viên có thể giải quyết bài toán với sự giúp đỡ của Maple.
2. Giao diện chính của Mapple 16
2
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
II – HƯỚNG DẪN SỬ DỤNG MAPLE TRONG HÌNH HỌC GIẢI TÍCH
TRONG MẶT PHẲNG
Để làm việc với hình học giải tích trong mặt phẳng bằng Maple, ta phải dùng gói
“geometry”. Bằng cách dùng lệnh: [> with(geometry);
Một vài thao tác cơ bản:
a) Nhập toạ độ một điểm
Để nhập toạ độ của điểm A(a; b) ta nhập như sau:
[> point (A, a, b);
b) Tính khoảng cách giữa hai điểm A(x1; y1) vàB(x2; y2), ta nhập:
[> point(A,x1,y1),point(B,x2,y2);
A, B;
[> distance(A,B);
c) Đường thẳng :
Để nhập phương trình của đường thẳng l: ax + by + c = 0, ta nhập
[> line(l,a*x +b*y + c = 0,[x,y]);
A. TAM GIÁC VÀ CÁC VẤN ĐỀ LIÊN QUAN
1. Khai báo một tam giác trong Maple
a) Tam giác có tên là ABC đi qua ba đỉnh A, B, C cho trước, ta nhập:
triangle[ABC, [A, B, C] );
3
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
V í
dụ
:
Khai
b
á
o
m
ột
tam
gi
á
c
ABC đi qua ba
đi
ể
m
A(1; 1), B(0; 0)
v
à
C(0; 5) ta
l
à
m
như
s
a
u:
[> point(A,1,1), point(B,0,0), point(C,0,5);
[> triangle(ABC,[A,B,C]);
ABC
b) Tam g
i
á
c
c
ó
t
ê
n
l
à T đượ
c
l
ập bở
i
ba đường
t
hẳng l
1
, l
2
, l
3
. Ta
nh
ậ
p:
triangle(T, [l1, l2, l3]);
Ví dụ
: Ba
c
ạ
nh
AB, BC, CA
c
ủ
a
tam
gi
á
c
ABC
c
ó
phương trình
l
ầ
n
lượt
l
à
:
x + 21y – 22 = 0, 5x – 12y + 7 = 0 , 4x – 33y + 146 = 0.
Khi đó, ta nhập
[> line(AB, x + 21*y - 22 = 0,[x,y]),line(BC,5*x - 12*y +7 = 0, [x,y]), line(AC,
4*x - 33*y +146 = 0,[x,y]), triangle(ABC,[AB,BC,AC]);
c) Tam giác khi biết độ dài ba cạnh.
triangle(Tên tam giác , [cạnh 1, cạnh 2, cạnh 3]);
Ví dụ: Để nhập tam giác có độ dài ba cạnh là 3, 4, 5. Nếu tam giác này có tên là ABC, ta
nhập:
[> triangle(ABC,[3,4,5]);
ABC
d) Tam giác khi biết độ dài hai cạnh và góc xen giữa hai cạnh đó
triangle(T, [cạnh 1, 'angle'= góc xen giữa hai cạnh, cạnh 2]) ;
Ví dụ: Để nhập tam giác có độ dài hai cạnh là 2,1 và góc xen giữa hai cạnh là p /2, ta
nhập:
[> triangle(T4,[2,'angle'=Pi/2,1]):
2. Các đường đặc biệt trong tam giác
2.1. ĐƯỜNG CAO
Để khai báo đường cao hA đi qua đỉnh A của tam giác ABC, ta nhập :
altitude(hA, A, ABC);
hay
altitude(hA, A, ABC, H );
4
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
Ở đây, H là chân đường cao. Để xem chi tiết về đường cao hA ta dùng lệnh detail(hA);
Trong detail, nếu khai báo theo cách 1 ta sẽ biết được phương trình đường cao hA, còn
nếu khai báo theo cách 2 ta sẽ biết được toạ độ chân đường cao H.
Ví dụ: Viết phương trình đường cao hA của tam giác ABC với ba đỉnh A(0; 0), B(2; 0) và
C(1; 3). Ta làm như sau:
Cách 1
[> triangle(ABC, [point(A,0,0), point(B,2,0), point(C,1,3)]): altitude(hA1,A,ABC);
hA1
[> detail(hA1);
assume that the names of the horizontal and vertical axes are _x and _y, respectively
Trong detail ta có phương trình đường cao hA1là: – x + 3y = 0
Cách 2
[> with(geometry);
[> triangle(ABC, [point(A,0,0), point(B,2,0),
point(C,1,3)]):altitude(hA1,A,ABC,H);
Chú ý: Trong detail [9/5,3/5] là toạ độ chân đường vuông góc H.
2.2. ĐƯỜNG TRUNG TUYẾN
Để khai báo đường trung tuyến AM đi qua đỉnh A của tam giác ABC, ta nhập :
median(AM, A, ABC);
Để xem chi tiết về đường trung tuyến AM, ta dùng lệnh detail(AM);
Ví dụ : Viết phương trình đường trung tuyến AM của tam giác ABC biết
A(5; 1), B(2; 3) và C(– 6; – 1).
[> triangle(ABC, [point(A,5,1),point(B,2,3),point(C,-6,-1)]):median(AM,A,ABC);
[> detail(AM);
5
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
assume that the names of the horizontal and vertical axes are _x and _y, respectively
2.3. ĐƯỜNG PHÂN GIÁC TRONG CỦA TAM GIÁC.
Để khai báo đường phân giác trong AD đi qua đỉnh A của tam giác ABC, ta nhập :
bisector(AD, A, ABC);
* Để xem chi tiết về đường phân giác trong AD, ta dùng lệnh detail(AD);
Ví dụ : Viết phương trình đường phân giác trong AD của tam giác ABC biết A(1; 6),
B(3; 4) và C(0; 1).
[> triangle(ABC,[point(A,1,6),point(B,3,4),point(C,0,1)]):bisector(AD,A, ABC);
[> detail(AD);
assume that the names of the horizontal and vertical axes are _x and _y, respectively
2.4. ĐƯỜNG PHÂN GIÁC NGOÀI CỦA TAM GIÁC.
Để khai báo đường phân giác AE đi qua đỉnh A của tam giác ABC, ta nhập :
[ > ExternalBisector(AE, A, ABC);
* Để xem chi tiết về đường phân giác ngoài AE, ta dùng lệnh detail(AE);
3. Các điểm đặc biệt trong tam giác
3.1. TRỌNG TÂM CỦA TAM GIÁC
Gọi G là trọng tâm của tam giác ABC, khi đó:
a) G được khai báo bởi lệnh centroid(G, ABC);
b) Toạ độ G được xác định bởi lệnh coordinates(G);
Ví du1: Cho tam giác ABC với A(2; 3), B(-2; 4), C( – 4;7). Tìm toạ độ trọng tâm G của tam
giác ABC.
[> triangle(ABC,[point(A,2,3),point(B,-2,4),point(C,-4,7)]);
[> centroid(G,ABC);
6
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
[> coordinates(G);
Ví dụ2: Cho tam giác ABC với A(1; 2), B(2; 3), C(0; 7). Tìm toạ độ trọng tâm G của tam
giác ABC.
Ta có thể làm gọn hơn như sau:
[> point(A,1,2),point(B,2,3),point(C,0,7);
coordinates(centroid(G,triangle(ABC,[A,B,C])));
3.2. TRỰC TÂM CỦA TAM GIÁC
Gọi H là trực tâm của tam giác ABC, khi đó:
a) H được khai báo bởi lệnh orthorcenter(H, ABC);
b) Toạ độ H được xác định bởi lệnh coordinates(H);
Ví dụ: Các cạnh AB, BC, AC của tam giác ABC lần lượt có phương trình:
4x – y – 7 = 0, x + 3y – 31 = 0 , x + 5y – 7 = 0. Xác định trực tâm H của tam giác.
[> line(AB,4*x- y -7 = 0,[x,y]),line(BC,x + 3*y -31 = 0,[x,y]),line(AC,x
+5*y -7 =0,[x,y]),triangle(ABC,[AB,BC,AC],[x,y]);
[> orthocenter(H,ABC);
[> coordinates(H);
[3, 4]
[> map(coordinates,DefinedAs(ABC));
Chú ý: lệnh map(coordinates,DefinedAs(ABC)); Cho ta xác định được toạ độ của ba
đỉnh A, B, C.
3.3. TRUNG TRỰC CỦA MỘT ĐOẠN THẲNG.
Để khai báo là trung trực của đoạn thẳng AB, ta dùng lệnh
[> PerpenBisector(l, A, B );
Viết phương trình trung trực l của đoạn thẳng BC, biết B(2; 0) và C(1; 3)
[> point(B,2,0), point(C,1,3);
[> PerpenBisector(l,B,C);
7
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
[> detail(l);
assume that the names of the horizontal and vertical axes are _x and _y, respectively
3.4. DIỆN TÍCH CỦA MỘT TAM GIÁC
Để tính diện tích của tam giác ABC ta dùng lệnh area(ABC);
Ví dụ: Tính diện tích tam giác ABC với A(2; – 3), B(3; 2) và C( – 2; 5).
[> with(geometry);
[>triangle(ABC,[point(A,2,-3),point(B,3,2), point(C,-2,5)]);
ABC
[> area(ABC);
14
Máy trả lời diện tích tam giác ABC là 14
B. ĐƯỜNG THẲNG
Khoảng cách từ một điểm đến một đường thẳng. Để tính khoảng cách từ điểm M đến
đường thẳng d, ta dùng lệnh:
[> distance(M, d);
Ví dụ 1: Tính khoảng cách từ điểm M(2; 3) đến đường thẳng d: 3x + 6y = 1
[> with(geometry);
[> point(M,2,3),line(d,3*x+6*y=1,[x,y]);
[> distance(M,d);
Ví dụ 2: Ba cạnh AB, BC, CAcủa tam giác ABCcó phương trình lần lượt là :
x + 21y – 22 = 0, 5x – 12y + 7 = 0 , 4x – 33y + 146 = 0.
Tính khoảng cách từ trọng tâm của tam giác đến cạnh BC.
[> line(AB, x + 21*y -22 = 0,[x,y]),line(BC,5*x - 12*y+7 = 0,[x,y]),line(AC, 4*x -
33*y +146 = 0,[x,y]),triangle(ABC,[AB,BC,AC],[x,y]);
[> centroid(G,ABC);
G
[> coordinates(G);
[ -2, 3]
8
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
[> distance(G,BC);
* Hình chiếu của một điểm lên một đường thẳng
a) Để khai báo H là hình chiếu của điểm P lên đường thẳngl, ta dùng lệnh:
[> projection(H, P, l);
b) Để tìm toạ độ hình chiếu H, ta dùng lệnh: coordinates(H);
Ví dụ :Tìm hình chiếu Qcủa điểm P(2; 3) lên đường thẳng l: x + y + 1 = 0.
[> point(P,2,3), line(l,x+y-1=0,[x,y]);
P, l
[> projection(Q,P,l);
Q
[> coordinates(Q);
[0, 1]
* Điểm đối xứng của một điểm qua một đường thẳng
a) Để khai báo Qlà của điểm đối xứng của điểm P lên đường thẳngl, ta
dùng lệnh:
[> reflection(Q, P, l);
Để tìm toạ độ của Q, ta dùng lệnh: coordinates(Q);
Ví dụ: Tìm điểm M1đối xứng với điểm M2(8; – 9) qua đường thẳng đi qua hai điểm A(3;
– 4) và B( – 1; – 2).
Giải
[> point(M2,8,-9),point(A,3,-4),point(B,-1,-2);
[> line(AB,[A,B],[x,y]);
[> Equation(AB);
[> reflection(M1,M2,AB);
[> coordinates(M1);
Lưu ý: Lệnh Equation(AB); cho ta phương trình của đường thẳng AB.
* NHÓM LỆNH KIỂM TRA
Sau khi đánh lệnh > with(geometry);
Ta được các lệnh, trong đó có các lệnh bắt đầu bằng Are hay Is.
Các lệnh này nhằm kiểm tra tính đúng (true), sai (false) của một tính
9
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
chất hình học nào đó. Sau đây là một số lệnh cơ bản:
T
ê
n
l
ệ
nh
C
C
hứ
c
n
ă
ng
A
r
e
C
ollin
e
a
r
AreCollinear(P,
Q, R, c
ond
)
K
i
ể
m
tra tính
th
ẳ
ng
h
à
ng
c
ủ
a
ba
đi
ể
m
P, Q, R
.
A
r
e
C
on
c
u
rr
e
nt
AreConcurrent(l1,
l2, l3, cond
)
K
i
ể
m
tra tính
đồng quy
c
ủ
a
ba
đường th
ẳ
ng
l
1
,
l
2
,
l
3
.
A
r
e
P
a
r
a
ll
e
l
AreParallel(l1,
l2, c
ond
)
K
i
ể
m
tra tính song s
ong
c
ủ
a
hai
đường
th
ẳ
ng
l
1
,
l
2
.
A
r
e
P
e
r
p
e
ndi
c
ul
a
r
ArePerpendicular(l
1, l2, c
ond
)
K
i
ể
m
tra tính
vuông gó
c c
ủ
a
hai
đường
th
ẳ
ng
l
1
,
l
2
.
A
r
e
T
a
ng
e
n
t
AreTangent(f,
g
)
K
i
ể
m
tra s
ự
ti
ế
p xú
c c
ủ
a
đường th
ẳ
ng
f
v
à
đường t
r
òn
g hay s
ự
ti
ế
p xú
c c
ủ
a
hai
đường
t
r
òn
f
v
à
g
I
sO
n
C
i
r
c
l
e
IsOnCircle(f, c,
c
ond
)
K
i
ể
m
tra xem
đi
ể
m
(
ho
ặ
c
t
ậ
p
h
ợp
c
á
c
đi
ể
m
)
f c
ó
n
ằ
m t
r
ê
n đường t
r
òn
c
hay
không
?
I
sO
nLin
e
IsOnLine(f, l,
c
ond
)
K
i
ể
m
tra xem
đi
ể
m
(
ho
ặ
c
t
ậ
p
h
ợp
c
á
c
đi
ể
m
)
f c
ó
n
ằ
m t
r
ê
n đường th
ẳ
ng
l hay
không
?
I
sR
ightT
r
i
a
n
gl
e
IsRightTriangle(A
BC, cond
)
K
i
ể
m
tra tính
vuông
gó
c c
ủ
a
tam
gi
á
c
A
BC
.
Lưu ý:
1) Có thể bỏ cond hoặc sử dụng cond trong trường hợp có chứa tham số.
2) Khi kết thúc các lệnh này và nhấn Enter thì máy trả lời là true(đúng) hoặc false(sai).
Ví dụ 1: Xét tính thẳng hàng của ba điểm A(1; 2), B(2; 3) và C(0; 7).
Ta làm như sau:
[> point(A,1,2),point(B,2,3),point(C,0,7);
A,B,C
[> AreCollinear(A, B, C);
false
Máy trả lời false, tức ba điểm A, B, C không thẳng hàng.
Ví dụ 2: Cho tam giác ABC với A(1; m– 2), B(2; 3 + m), C(0; 7). Tìm m để ABC là tam
giác vuông.
Trước hết ta dùng lệnh [> AreCollinear(A, B, C); để kiểm tra tính thẳng hàng của ba
điểm A, B, C
[> AreCollinear(A, B, C);
AreCollinear: "hint: could not determine if -m+14is zero"
FAIL
10
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
máy báo không thể xác định nếu – m + 14 = 0, tức ba điểm A, B, C thẳng hàng khi
– m+ 14 = 0 hay m= 14.
Lưu ý: Trong một số bài toán ta phải sử dụng lệnh assume(giả sử) m không thỏa giá trị ở
trên thì máy mới thựchiện tiếp bài toán. Cụ thể, trong bài này, ta phải giả sử m ≠ 14, tức
là ta phải nhập :
[> assume (m <> 14);
Tuy nhiên, trong bài này thì không
[> point(A,1,m -2),point(B,2,3+m), point(C,0,7);
A, B, C
[> IsRightTriangle(ABC,cond);
IsRightTriangle: "hint: one of the following conditions must be satisfied: {-76+26*m-
2*m^2 = 0, -88+10*m = 0, 36-10*m = 0}"
FAIL
Máy thông báo : Một trong các điều kiện sau phải thỏa mãn:
“{-76+26*m-2*m^2 = 0, -88+10*m = 0, 36-10*m = 0}"
Bây giờ ta dùng lệnh solve để tìm m.
[> solve(-76+26*m-2*m^2 = 0,{m});
[> solve(-88+10*m = 0, {m});
[> solve(36-10*m = 0,{m});
Vậy ta phải có :
* Phương trình
c
ủ
a
đ
ư
ờ
n
g
t
h
ẳ
n
g qua
m
ộ
t
đ
i
ể
m
cho
tr
ư
ớ
c
v
à song song
v
ớ
i
m
ộ
t
đ
ư
ờ
n
g
t
h
ẳ
n
g cho
tr
ư
ớ
c
.
Đ
ể
vi
ế
t
phương trình
củ
a
đường
th
ẳ
ng
lp qua
đi
ể
m
P
v
à
song song
với một
đường
th
ẳ
ng
l cho
t
r
ướ
c ta
dùng
l
ệ
nh:
ParallelLine(lp, P,
l
);
11
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
V
i
ế
t
phương trình
đường
th
ẳ
ng
đi qua
đi
ể
m
P(2; 3)
v
à
song song vớ
i
đường
th
ẳ
ng
l :
x + y =
1
[>
w
i
t
h
(
g
e
o
m
e
t
r
y
):
[> point(P, 2 , 3), line(l, x + y =1,
[
x
,
y
]
);
P, l
[>
P
a
r
a
ll
e
l
L
i
n
e
(D
,
P
,
l
);
D
[>
E
q
u
a
t
i
o
n
(D
);
V
ậ
y
đường
th
ẳ
ng
c
ầ
n
tìm
có
phương trình – 5 + x + y =
0
.
C. GÓC
* G
ó
c
t
ạ
o
b
ở
i
hai
đ
ư
ờ
n
g
t
h
ẳ
n
g.
Đ
ể
tính
gó
c
củ
a
hai
đường
th
ẳ
ng
d
1
v
à
d
2
ta
dùng
l
ệ
nh
:
FindAngle(d1,
d
2
);
Ví dụ: X
á
c
đ
ị
nh
gó
c j
giữ
a
hai
đường
th
ẳ
ng:
1) 5x – y + 7 = 0, 3x + 2y =
0;
2) 3x + 2y – 1 = 0, 5x – 2y + 3 =
0
.
1
)
[>
li
n
e
(D
1
,
5
*x
-
+
7
=
0
,
[
x
,
y
]
)
,
li
n
e
(D
2
,
3
*x
+
2
*
y
=
0
,
[
x
,
y
]
);
D1, D2
[>
Fi
n
d
A
n
g
l
e
(D
1
,
D
2
);
2)
[> li
n
e
(D
1
,
3
*x
+
2
*
y
-
1
=
0
,
[
x
,
y
]
)
,
li
n
e
(D
2
,
5
*x
-
2
*
y
+
3
=
0
,
[
x
,
y
]
);
[>
Fi
n
d
A
n
g
l
e
(D
1
,
D
2
);
D. DƯỜNG TRÒN
1 K
h
a
i
b
áo
ph
ư
ơ
n
g
t
r
ì
n
h
m
ộ
t
đ
ư
ờ
n
g
t
r
ò
n
N
ế
u
đường
t
r
òn
C,
có
phương
t
r
ình
x
2
+ y
2
– 2ax – 2by + c =
0
Trong Maple ta
nh
ậ
p:
[> circle(C,x^2 + y^2 – 2*a*x – 2*b*y + c = 0,[x,
y
]
);
12
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
3. T
hi
ế
t
l
ậ
p
ph
ư
ơ
n
g
t
r
ì
n
h
đ
ư
ờ
n
g
t
r
ò
n
Maple cho
ph
é
p
l
ậ
p
phương trình
đường
t
r
òn
thỏ
a
một
trong
cá
c Đ. K
s
a
u:
a) Đ
ư
ờ
n
g
tr
ò
n
đi qua ba
đ
i
ể
m
A, B, C cho
tr
ư
ớ
c
v
ớ
i
c
ú
ph
á
p
như sau:
[> ci
r
cl
e
(
t
ê
n
đường
t
r
òn
,
[A, B, C], [x,
y
])
;
VD
:
L
ậ
p
phương trình
đường
t
r
òn
đi qua ba
đi
ể
m
A(5; 0), B(0; 1), C(3; 3)
[> point(A,5,0),point(B,0,1),point(C,3,3);
[>
circle(ABC,[A,B,C],[x,y]);
[>
E
q
u
a
t
i
o
n
(
A
B
C
);
[>
c
oo
r
d
i
n
a
t
e
s(
c
e
n
t
e
r(
A
B
C
));
[>
r
a
d
i
u
s(
A
B
C
);
C
h
ú
ý
:
a)
L
ệ
nh
coordinates(center(ABC));cho
ta
to
ạ
độ
c
ủ
a
t
â
m
đường t
r
òn
A
BC
.
b)
L
ệ
nh
radius(ABC); cho ta
b
á
n
kính c
ủ
a
đường
t
r
òn
A
BC
.
c)
L
ệ
nh
Equation(ABC);cho ta phương trình c
ủ
a
đường
t
r
òn
ABC. d) N
ế
u
không
dùng
c
á
c
l
ệ
nh
n
à
y
,
ta
có
th
ể
xem chi
ti
ế
t
v
ề
đường t
r
òn
ABC
b
ằ
ng
l
ệ
nh
d
e
t
a
il
(
A
B
C
);
[>
d
e
t
a
il
(
A
B
C
);
b) Đ
ư
ờ
n
g
tr
ò
n
c
ó
t
â
m
A cho
tr
ư
ớ
c
v
à bá
n
kính R cho
tr
ư
ớ
c
với
cú
ph
á
p
như
s
a
u:
ci
r
cl
e
(
t
ê
n
đường
t
r
òn
,
[A, R], [x,
y
])
;
Ví dụ 1
: V
i
ế
t
phương trình
đường
t
r
òn
có
t
â
m
A(4; – 8)
v
à
b
á
n
kính
l
à
5.
[
>
point(A,4,-8);
13
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
[>
E
q
u
a
t
i
o
n
(c
i
rc
l
e
(
C
,
[
A
,
5
]
,
[
x
,
y
]
));
Ví dụ 2
: V
i
ế
t
phương trình
đường
t
r
òn
có
t
â
m
C(1; – 1)
v
à
ti
ế
p
xú
c
với đường
th
ẳ
ng
5x – 12y + 9 =
0
.
[>
point(C,1,-1),line(D,5*x-12*y+9=0,[x,y]);
C, D
[> R:=
d
i
s
t
a
n
c
e
(
C
,
D
);
R := 2
[> circle(T,[C,R],[x,y]);
T
[>
E
q
u
a
t
i
o
n
(
T
);
x
2
− 2 +
y
2
− 2 x + 2 y =
0
3) Phương tích
củ
a
một
đi
ể
m
đối
với
một
đường
t
r
òn
.
Đ
ể
tính phương tích
củ
a
đi
ể
m
P
đối
với
đường
t
r
òn
C, ta
dùng
l
ệ
nh:
powerpc(P,
C
);
V
í
d
ụ
: Cho
đường
t
r
òn
có
phương trình x
2
+ y
2
– 2x + 4y – 8 =
0
v
à
cá
c
đi
ể
m
A(1; – 5), B(6; 1)
v
à
C( – m; m). H
ã
y
x
é
t
xem
đi
ể
m
A,
B
n
ằ
m
trong hay
n
ằ
m
ngo
à
i
đường
t
r
òn
.
Tìm m
đ
ể
C
thuộ
c
đường
t
r
òn
.
[
>
point(A,1,-5), point(B,6,1),
c
i
rc
l
e
(D
T
R
O
N
,
x
^
2
+
y
^
2
-
2
*x
+
4
*
y
-
8
=
0
,
[
x
,
y
]
)
,
p
o
i
n
t
(
C
,
-
m
,
m
);
A, B, DTRON, C
[>
p
o
w
e
r
p
c(
A
,
D
T
R
O
N
);
-4
[>
p
o
w
e
r
p
c(B
,
D
T
R
O
N
);
21
[>
p
o
w
e
r
p
c(
C
,
D
T
R
O
N
);
( -m - 1 )2 + ( m + 2 )2 - 13
[> simplify((-m-1)^2+(m+2)^2-13);
2 m
2
+ 6 m −
8
[> solve(2*m^2+6*m-8 =0,{m});
{
m =
1
},
{
m =
-4
}
L
ư
u
ý
:
a)
T
ừ
đ
á
p
số
ta
th
ấ
y:
A
ở
trong
đường
t
r
òn
v
à
B
ở
ngo
à
i
đường
t
r
òn
.
b)
Có
th
ể
dùng
l
ệ
nh
IsOnCircle
đ
ể
tìm m
đ
ể
C
thuộ
c
đường
t
r
òn
.
4)
L
ệ
nh
intersection : Tìm giao
đi
ể
m
củ
a
hai
đường
th
ẳ
ng
,
một
đường th
ẳ
ng
v
à
14
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
một
đường
t
r
òn
,
ho
ặ
c hai
đường
t
r
òn
.
(find the intersections between two lines, a line and a circle, or
t
w
o ci
r
cl
e
s
).
C
ú
pháp
:
i
n
t
e
r
s
e
c
t
i
o
n
(
o
b
j
,
f
,
g
);
hay
intersection(ten,f,g,[M,
N
]
);
obj - (một tên ) a name
f, g - (đường thẳng hoặc đường tròn ) the lines or circles
404. Trong các trường hợp sau xác định xem đường thẳng cắt, tiếp xúc
hoặc không có điểm chung với đường tròn :
1) y = 2x – 3, x
2
+ y
2
– 3x + 2y – 3 =
0;
2) ,
3) ,
1) [>
c
i
rc
l
e
(
C
,
x
^
2
+
y
^
2
-
3
*x
+
2
*
y
-
3
=
0
,
[
x
,
y
]
)
,
li
n
e
(D
,
y
=
2
*x
-
3
,
[
x
,
y
]
);
C, D
[>
i
n
t
e
r
s
e
c
t
i
o
n
(
H
,
D
,
C
,
[
M
,
N
]
);
[ M, N ]
[>
c
oo
r
d
i
n
a
t
e
s
(
M
);
[>
c
oo
r
d
i
n
a
t
e
s
(
N
);
Máy báo đường thẳng cắt đường tròn tại 2 điểm M , N
1) [> circle(C,x^2+y^2-8*x+2*y+12=0,[x,y]),line(D,y=1/2*x-1/2,[x,y]);
C, D
[>
A
r
e
T
a
n
g
e
n
t
(
C
,
D
);
true
[>
i
n
t
e
r
s
e
c
t
i
o
n
(
T
X
,
C
,
D
,
[
M
,
N
]
);
TX
[>
c
oo
r
d
i
n
a
t
e
s
(
T
X
);
M
á
y
b
á
o
đường
th
ẳ
ng
ti
ế
p
xú
c
với
đường
t
r
òn
t
ạ
i
đi
ể
m
TX(3;
1
)
2)
[>
c
i
rc
l
e
(
C
,
x
^
2
+
y
^
2
-
1
=
0
,
[
x
,
y
]
)
,
li
n
e
(D
,
y
=
x
+
10
,
[
x
,
y
]
);
C, D
[>
A
r
e
T
a
n
g
e
n
t
(
C
,
D
);
15
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
False
[>
i
n
t
e
r
s
e
c
t
i
o
n
(
H
,
C
,
D
,
[
M
,
N
]
);
intersection: "there is no point of intersection"
M
á
y
b
á
o
đường
th
ẳ
ng
v
à
đường
t
r
òn
không
có
đi
ể
m
chung
3.
Tiếp tuyến của đường tròn
Loại 1: Tiếp tuyến tại một điểm thuộc đường tròn.
Để viết phương trình tiếp tuyến của đường tròn C tại điểm P, ta
dùng lệnh
tangentpc(l, P, c );
l - the name of the tangent line
(
t
e
â
n
ti
e
á
p
tuy
e
á
n
).
418. V
i
ế
t
phương trình
ti
ế
p
tuy
ế
n
với
đường
t
r
òn
(x + 2)
2
+ (y – 3)
2
=25 t
ạ
i
đi
ể
m
A(–
5;
7
)
[>
p
o
i
n
t
(
A
,
-
5
,
7
)
,
c
i
rc
l
e
(
C
,
(
x
+
2
)
^
2
+
(
y
-
3
)
^
2
=
25
,
[
x
,
y
]
);
A, C
[>
t
a
n
g
e
n
t
p
c(
l
,
A
,
C
);
l
[>
E
q
u
a
t
i
o
n
(
l
);
−43 − 3 x + 4 y =
0
Loại 2:
T
i
ế
p
tuy
ế
n
với
đường
t
r
òn
đi qua
một
đi
ể
m
cho
t
r
ước.
Đ
ể
vi
ế
t
phương trình
ti
ế
p
tuy
ế
n
c
ủ
a
đường
t
r
òn
C đi qua
đi
ể
m
P cho
t
r
ướ
c
TangentLine(
TE
Â
N , P, C, [x, y]
)
;
427. V
i
e
á
t
phöông trình c
a
ù
c
ti
e
á
p
tuy
e
á
n
vô
ù
i
ñöô
ø
ng
t
r
o
ø
n
x
2
+ y
2
= 5
k
ẻ
từ điểm A
[>
p
o
i
n
t
(
A
,
5
/
3
,
-
5
/
3
)
,
c
i
rc
l
e
(
C
,
x
^
2
+
y
^
2
=
5
,
[
x
,
y
]
);
A,
C
[> T
a
n
g
e
n
t
L
i
n
e
(
T
i
e
p
t
u
y
e
n
,
A
,
C
,
[
L
1
,
L
2
]
);
[ L1, L2 ]
[> T
a
n
g
e
n
t
L
i
n
e
(
T
i
e
p
t
u
y
e
n
,
A
,
C
,
[
L
1
,
L
2
]
);
[ L1, L2 ]
[>
E
q
u
a
t
i
o
n
(
L
1
);
16
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
[>
E
q
u
a
t
i
o
n
(
L
2
);
Loại 3: tiếp tuyến của đường tròn song song hoặc vuônggóc với một
đường thẳng cho trước
436. Viết phương trình các tiếp tuyến với đường tròn x
2
+
y
2
+ 10x – 2y + 6 =
0
,
bi
ế
t
ti
ế
p
tuy
ế
n
song song
với
đường
th
ẳ
ng
2x + y – 7 =
0
.
[>
li
n
e
(D
,
2
*x
+
y
+m=
0
,
[
x
,
y
]
)
,
c
i
rc
l
e
(
C
,
x
^
2
+
y
^
2
+
10
*x
-
2
*
y
+
6
=
0
,
[
x
,
y
]
);
D, C
[>
A
r
e
T
a
n
g
e
n
t
(D
,
C
,
'
c
o
n
d
'
);
AreTangent: "hint: unable to determine if -19-18*m+m^2 is z
e
r
o"
FAIL
[> s
o
l
v
e
(
m^
2
-
18
*
m
-
19
=
0
,
{
m
}
);
{ m 19 }, { m -1 }
a) Ở
dòng
l
ệ
nh
1, ta
gọi
đường
th
ẳ
ng
song song
với
đường
th
ẳ
ng
2x
+ y – 7 = 0
có
d
ạ
ng
D : 2x + y + m = 0 ( m
m
–
7
).
b) Ở
dòng
l
ệ
nh
2, ta
dùng
l
ệ
nh
AreTangent(D,C,'cond');
đ
ể
tìm đi
ề
u
ki
ệ
n
đ
ể
D
ti
ế
p
xú
c
với
đường
t
r
òn
C.
T
ừ
đó
,
ta tìm
đượ
c m
.
* Đ
ường
t
r
òn
nội
ti
ế
p
tam
gi
á
c
Đ
ể
vi
ế
t
phương trình
đường
t
r
òn
nội
ti
ế
p
tam
gi
á
c ABC, ta
thự
c
hi
ệ
n:
Bướ
c
1: Khai
b
á
o
tam
gi
á
c ABC. G
i
ả
sử
tam
gi
á
c
có
t
ê
n
l
à
T
.
* Đ
ường
t
r
òn
nội
ti
ế
p
tam
gi
á
c
Đ
ể
vi
ế
t
phương trình
đường
t
r
òn
nội
ti
ế
p
tam
gi
á
c ABC, ta
thự
c
hi
ệ
n:
Bướ
c
1: Khai
b
á
o
tam
gi
á
c ABC. G
i
ả
sử
tam
gi
á
c
có
t
ê
n
l
à
T
.
Bướ
c
2 : D
ùng
l
ệ
nh
inci
r
cl
e
(
t
ê
n
đường
t
r
òn
, T);
đ
ể
khai
b
á
o đường
t
r
òn
.
Bướ
c
3 : D
ùng
l
ệ
nh
E
qu
a
tion
(
t
ê
n
đường
t
r
òn
)
đ
ể
vi
ế
t
phương t
r
ình
đường
t
r
òn
*
Có
th
ể
xem chi
ti
ế
t
đường
t
r
òn
b
ằ
ng
l
ệ
nh
d
e
t
a
il
V
í
d
ụ
:
V
i
ế
t
phương trình
đường
t
r
òn
nội
ti
ế
p
tam
gi
á
c ABO,
bi
ế
t
A(0; 1), B(1;
0
)
v
à
O(0;
0
)
17
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
[>
p
o
i
n
t
(
A
,
0
,
1
)
,
p
o
i
n
t
(B
,
1
,
0
)
,
p
o
i
n
t
(
O
,
0
,
0
)
,
t
r
i
a
n
g
l
e
(
T
,
[
A
,
B
,
O
]
);
A, B, O, T
[>
i
n
c
i
rc
l
e
(
n
o
i
t
i
e
p
,
T
);
noitiep
[> Equation(noitiep);
enter name of the horizontal axis > x;
enter name of the vertical axis > y;
Để cho đáp số gọn lại, bạn sử dụng lệnh factor(%) như sau:
[> factor(%);
Các phép biến đổi trong hình học phẳng
Ở phần trước, chúng ta đã xét phép đối xứngcủa một điểm qua
một đường thẳng, trong phần này ta xét tất cả các phép biến đổi trong
hình học phẳng.
3.1 Phép tịnh tiến
geometry[translation] - find the translation of a geometric object
w
i
t
h
r
e
s
p
e
c
t
to
a directed s
e
g
m
e
n
t
Calling S
e
qu
e
n
ce
translation(Q, obj,
A
B
)
P
a
r
a
m
e
t
e
r
s
Q - the name of the object to be created: Têncủa đối tượng được tạo
qua phép tịnh tiến.
obj - geometric object: Đối tượng hình học cần lấy qua phép tịnh tiến
AB - directed segment: Hướng của đoạn thẳng AB, ta hiểu chính là phép tịnh tiến theo
vectơ
18
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
3.2 Phép quay
geometry[rotation]- find the rotation of a geometric object with respect to a given point
Calling Sequence rotation(Q, P, g, co, R)
Parameters
Q - the name of the object to be created
P - geometric object
g - the angle of rotation
co - the direction of rotation, either clockwiseor counterclockwise
R - (optional) the center of rotation
3.3 Phép vị từ:
geometry[dilatation]- find the dilatation of a geometric object
geometry[expansion]- find the expansion of a geometric object
geometry[homothety]- find the homothety of a geometric object
geometry[stretch]- find the stretch of a geometric object
Calling Sequence
dilatation(Q, P, k, O)
expansion(Q, P, k, O)
homothety(Q, P, k, O)
stretch(Q, P, k, O)
Parameters
Q - the name of the object to be created
P - geometric object
k - number which is the ratio of the dilatation
O - point which is the center of the dilatation
[>point(A,2,3),point(B,-1,-1),line(d,2*x+3*y-1=0,[x,y]),circle(C,x^2+y^2-2*x+4*y-
4=0,[x,y]);
A, B, d, C
[> coordinates(reflection(P,A,d));
19
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
[> rotation(Q,P,Pi/2,counterclockwise,B);
Q
[> coordinates(Q);
[> dilatation(E,A,1/3,B);
E
[>
c
oo
r
d
i
n
a
t
e
s
(E
);
[> translation(F,E,dsegment(BA,B,A));
F
[> coordinates(F);
[> rotation(C1,C,Pi/3,clockwise,A);
C1
[> Equation(C1);
[> Equation(dilatation(C2,C,1/3,B));
9 x
2
+ 6 x + 8 + 9 y
2
+ 24 y =
0
III – ÁP DỤNG LUẬT GIẢI SUY DIỄN TIẾN ĐỂ GIẢI BÀI TOÁN TAM
GIÁC
20
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
21
PGS.TS: Đỗ Văn Nhơn LẬP TRÌNH SYMBOLIC
KẾT LUẬN
Bài thu hoạch đã hướng dẫn cách giải các bài toán hình học mặt phẳng bằng công
cụ Maple. Đây là bước tiếp cận ban đầu để làm quen về cách lập trình trên Maple. Từ đó,
có thể xây dựng nhiều chương trình phục vụ cho mục đích học tập và nghiên cứu trong
nhiều lĩnh vực khác. Maple còn là một công cụ hổ trợ tích cực trong việc giảng dạy, công
cụ trực quan, và gắn liền với toán phổ thông và đại học. Được nhiều nước trên thế giới
chọn và sử dụng.
Tài liệu thao 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]. Phạm Huy Điển, Tính toán, lập trình và giảng dạy toán học trên Maple, NXB KH và
KT, 2002.
[3]
[4] Các nguồn từ internet
22