HÌNH H C GI I TÍCH TRONG M T PH NG
Gói l nh: > with(geometry);
0 M t s hàm chung
01) Hàm đ t tên cho các tr c t a đ
* t tên cho tr c hoành (tr c ngang):
Cú pháp: > _EnvHorizontalName := 'x':
@Ta có th đ t tên cho các tr c theo ý mu n l nh trên ta đã đ t tên cho
tr c hoành là ‘x’
* t tên cho tr c tung (tr c d c):
Cú pháp: > _EnvVerticalName := 'y':
0.2) Hàm xác đ nh t a đ c a m t đi m M
*N u các tr c t a đ đã đ c đ nh ngh a (đ t tên) thì dùng cú pháp:
Cú pháp: > coordinates(M);
*N u các tr c t a đ ch a đ c đ nh ngh a (đ t tên) thì dùng cú pháp:
Cú pháp: > coordinates(M,[x,y]);
Trong đó: - x, y là tên c a hai tr c hoành và tung theo th t đó (Ta có
th đ t tên khác theo ý mu n)
0.3)Hàm tính hoành đ và tung đ c a m t đi m M
*Hàm tính hoành đ :
Cú pháp: > HorizontalCoord(M);
*Hàm tính tung đ :
Cú pháp: > VerticalCoord(M);
0.3) Hàm trích(tr l i)tên các đi m mút c a m t đo n th ng, đo n th ng
đ nh h ng ; các đ nh m t tam giác, m t hình vuông
Cú pháp: > DefinedAs(obj);
Trong đó: -obj là tên c a các đ i t ng nói trên (đo n th ng,…)
0.4) Hàm mô ta chi ti t m t đ i t ng (obj), m t t p h p(đi m), ho c t p
h p các đ i t ng
Cú pháp: > detail(obj);
K t qu tùy theo đ i t ng, sau đây là m t s d ng k t qu hay g p :
- tên c a đ i t ng (name of object);
- th lo i (d ng) c a đ i t ng (form_of_object); point2d , line2d,
triangle2d , circle2d,…
- t a đ c a đi m (coordinates of point), t p h p đi m;
- ph ng trình c a đ i t ng (đ ng th ng, đ ng tròn);
Trang 20.5) Th t c ‘map’ tác đ ng m t hàm (func) lên m t t p h p các đ i t ng
(objs)
Cú pháp: > map(func, objs);
Ví d :
- - - - o0o - - - -
1 i m trong m t ph ng
Xác đ nh đi m A có t a đ A a b ( ) ;
Cú pháp: > point(A, a, b); ho c > point(A, [a,b]);
Ví d :
xác đ nh đi m A(1; 3- ) ta làm nh sau:
> with(geometry):
> point(A,1,-3);
A
ki m tra xem đ i t ng v a đ nh ngh a thu c th lo i gì ta dùng l nh:
> form(A);
point2d
§K t qu là point2d cho ta bi t đ i t ng v a đ nh ngh a là “đi m”
xem t a đ đi m A ta dùng l nh:
> coordinates(A);
[1 -3, ]
Có th trích hoành đ c a đi m A b ng l nh:
> HorizontalCoord(A);
1
Có th trích tung đ c a đi m A b ng l nh:
> VerticalCoord(A);
-3 xem chi ti t các y u t liên quan đ n đi m A, ta dùng l nh:
> detail(A);
name of the object: A
form of the object: point2d
coordinates of the point: [1, -3]
@M t s hàm liên quan đ n đi m
Trang 31.1) Hàm ki m tra xem 3 đi m A, B, C có th ng hàng (cùng n m trên m t đ ng
th ng) hay không
Cú pháp: >AreCollinear(A,B,C,’cond’);
Trong đó: - cond: là option cho bi t đi u ki n đ 3 đi m A, B, C th ng hàng khi
t a đ c a A, B, C có tham s
K t qu c a câu l nh trên là true (n u 3 đi m th ng hàng) ho c false(n u 3 đi m không th ng hàng)
Khi t a đ các đi m có ch a tham s thì k t qu thông báo c a l nh là: FAIL
Và option ‘cond’ s cho ta bi t đi u ki n đ 3 đi m th ng hàng
Ví d : Cho ba đi m A(-3; 4 ,) (B 0; 5 ,- ) (C -2;1)
Ta nh p ba đi m vào Maple v i l nh:
> with(geometry):
point(A,-3,4): point(B,0,-5): point(C,-2,1):
ki m tra xem 3 đi m có th ng hàng không ta dùng l nh:
> AreCollinear(A,B,C);
true
K t qu là true cho bi t 3 đi m A, B, C th ng hàng
Ví d : Cho 3 đi m A( ) (1;3 , B 2; 2 ,- ) (C m;5)
Nh p ba đi m vào Maple:
> with(geometry):
point(A,1,3): point(B,2,-2): point(C,m,5):
Ki m tra xem A, B, C có th ng hàng không:
> AreCollinear(A,B,C,'cond');
AreCollinear: "hint: could not determine if -3+5*m is zero"
FAIL Maple thông báo FAIL cho bi t không th xác đ nh đ c A, B, C th ng hàng hay
ch a
Ta dùng l nh > cond; đ bi t đi u ki n đ A, B, C th ng hàng
> cond;
=
- + 3 5 m 0
K t qu là:
> solve(%,{m});
{m = 3} 5 1.2) Ki m tra xem 4 đi m phân bi t A, B, C, D có cùng n m trên m t đ ng tròn
(c) hay không
Cú pháp: >AreConcyclic(A,B,C,D, ’cond’);
Trong đó: - cond: là option cho bi t đi u ki n đ 3 đi m A, B, C, D cùng n m trên
m t đ ng tròn khi t a đ c a A, B, C có tham s
K t qu c a câu l nh trên là true (n u 4 đi m thu c cùng m t đ ng tròn) ho c
false(n u 4 đi m không cùng thu c m t đ ng tròn)
Trang 4Khi t a đ các đi m có ch a tham s thì k t qu thông báo c a l nh là: FAIL
Và option ‘cond’ s cho ta bi t đi u ki n đ 4 đi m thu c cùng m t đ ng tròn
2 o n th ng trong m t ph ng
xác đ nh đo n th ng có hai đi m mút là A, B ta dùng l nh:
Cú pháp: >segment(seg,[A,B]);
>segment(seg, A,B);
* o n th ng có đ nh h ng
>dsegment(dseg,[A,B]);
>dsegment(dseg, A,B);
Trong đó: -seg: là là tên c a đo n th ng;
- A, B: là tên c a hai đi m mút
ng d ng c a đo n th ng có đ nh h ng là “xác đ nh h ng” cho vect c a phép
t nh ti n Có th xem nó là vect c a phép t nh ti n
* Trung đi m M c a đo n th ng AB
Cú pháp: >midpoint(M,A,B);
ho c >midpoint(M,seg);
Trong đó: - seg là tên c a đo n th ng đã đ c xác đ nh tr c
a) ng th ng l đi qua 2 đi m A, B cho tr c
Cú pháp: >line(l,[A,B]);
b) ng th ng l xác đ nh b i m t ph ng trình t ng quát cho tr c
Cú pháp: >line(l,eq,name);
Trong đó: - eq: là ph ng trình hai bi n s ;
- name: là tên c a 2 bi n xác đ nh hai tr c ngang(tr c hoành_ horizontal axis) và tr c d c(tr c tung_vertical axis)
* tên c a hai tr c đ c đ nh ngh a b ng l nh:
+ tr c hoành: > _EnvHorizontalName := x:
+ tr c tung: > _EnvVerticalName := y:
( đây chúng ta đã đ t tên cho tr c hoành là x, tr c tung là y)
* N u ta không đ t tên cho hai tr c thì Maple s nh c chúng ta vi c này
Ví d :
Vi t ph ng trình t ng quát c a đ ng th ng l đi qua hai đi m A( ) (1; 2 ,B 2; 3- )
###
Ta nh p các l nh nh sau:
> with(geometry):
point(A,1,2):point(B,2,-3):
line(l,[A,B]);
l xem ph ng trình c a đ ng th ng l ta dùng l nh:
> Equation(l,[x,y]);
Trang 5=
- + 7 5 x + y 0
Gi i thích: Trong l nh này ta đã khai báo tên 2 tr c là x( tên tr c hoành) và y(tên
tr c tung) Do đó ph ng trình đ ng th ng đ c bi u di n qua 2 bi n x, và y
N u ta đ t tên cho 2 tr c là [u,v] ch ng h n thì k t qu s th nào? Ta cùng xem:
> Equation(l,[u,v]);
=
- + 7 5 u + v 0
N u ta dùng l nh: > Equation(l); thì Maple s yêu c u ta đ t tên cho hai tr c
¨ u tiên Maple có thông báo yêu c u ta nh p tên tr c hoành:
> Equation(l);
enter name of the horizontal axis >
Ta nh p m t tên r i đánh d u “;” đ k t thúc r i nh n Enter
Ch ng h n nh p: enter name of the horizontal axis > x;
¨Ti p theo Maple có thông báo yêu c u ta nh p tên tr c tung:
enter name of the vertical axis >
Ta nh p m t tên r i đánh d u “;” đ k t thúc r i nh n Enter
Ch ng h n nh p: enter name of the horizontal axis > y;
K t qu thu đ c là:
> Equation(l);
enter name of the horizontal axis > x;
enter name of the vertical axis > y;
=
- + 7 5 x + y 0
Nh n xét: R ràng ta nên khai báo đ y đ tên hai tr c trong câu l nh đ Maple
kh i yêu c u đ t tên
N u ta đ t tên cho hai tr c ngay t đ u thì dòng l nh > Equation(l); s cho k t
qu đ y đ
Ví d :
> with(geometry):
> _EnvHorizontalName := x:
_EnvVerticalName := y:
> point(A,1,2):point(B,2,-3):line(l,[A,B]):
> Equation(l);
=
- + 7 5 x + y 0 xem chi ti t các y u t liên quan đ n đ ng th ng l ta dùng l nh:
> detail(l);
name of the object: l
form of the object: line2d
equation of the line: -7+ 5*x+ y = 0
ª xem ph ng trình tham s c a đ ng th ng l đ u tiên ta xác đ nh ph ng
trình t ng quát r i dùng l nh > isolve_(tìm nghi m nguyên):
> Equation(l);
Trang 6=
- + 7 5 x + y 0
> isolve(%,t); # ph ng trình tham s
{x = t, y = 7 - 5 t}
@M t s hàm liên quan đ n đ ng th ng
3.1) Hàm ki m tra xem 2 đ ng th ng l1 và l2 có song song v i nhau không
Cú pháp: >AreParallel(l1,l2, ‘cond’);
Trong đó: - l1; l2: là tên c a 2 đ ng th ng;
- cond: là option khai báo cho bi t đi u ki n đ l1//l2 khi ph ng trình
t ng quát c a l1 ho c l2 có ch a tham s
Ví d : Cho hai đ ng th ng ( )l1 : 3x-4y+ =5 0 ; ( )l2 : 7x my+ -7m+ =1 0
Nh p 2 đ ng th ng vào Maple:
> with(geometry):
> line(l1,3*x-4*y+5=0,[x,y]):
line(l2,7*x+m*y-7*m+1=0,[x,y]):
ki m tra xem l1, l2 có song song hay không, ta dùng l nh:
> AreParallel(l1,l2,'cond');
AreParallel: "hint: cannot determine if 3*m+28 is zero"
FAIL Maple thông báo FAIL cho ta bi t ch a xác đ nh đ c l1, l2 có song song
v i nhau hay không tìm đi u ki n c a tham s m đ l1//l2, ta dùng l nh:
> cond;
= +
3 m 28 0
> solve(%,{m});
{m = -28} 3
3.2) Hàm ki m tra xem 2 đ ng th ng l1 và l2 có vuông góc v i nhau không
Cú pháp: >ArePerpendicular(l1,l2, ‘cond’);
Trong đó: - l1; l2: là tên c a 2 đ ng th ng;
- cond: là option khai báo cho bi t đi u ki n đ l1^l2 khi ph ng trình t ng quát c a l1 ho c l2 có ch a tham s
Ví d : Cho đi m A ( ) 1;3 và đ ng th ng ( )l : 3x+7y-13=0 Vi t ph ng
trình đ ng th ng (d) đi qua A và vuông góc v i (l)
Nh p đi m A và đ ng th ng (l):
> with(geometry):
> point(A,1,3): line(l,3*x+7*y-13=0,[x,y]):
Nh p đ ng th ng (d) qua A v i PTTQ:a x( - +1) (b y-3)= 0
> line(d,a*(x-1)+b*(y-3)=0,[x,y]):
checkline: "One of the following conditions must be satisfied " a
<> 0 b <> 0
Trang 7Erro
Maple yêu c u chúng ta ph i khai báo a ¹ ho0 c b ¹0
V y ta ph i khai báo thêm dùng l nh nh sau:
> assume(a<>0,b<>0);
line(d,a*(x-1)+b*(y-3)=0,[x,y]):
Bây gi ta tìm đi u ki n đ (d)^(l):
> ArePerpendicular(l,d,'cond');
ArePerpendicular: "hint: cannot determine if 3*a+7*b is zero"
FAIL
i u ki n c n tìm là:
> cond;
= +
3 a~ 7 b~ 0
@Bây gi ta tìm m t s l nh khác đ vi t ph ng trình c a (d):
> dk:=solve(%,{a}): # tính a theo b
> f:=a*(x-1)+b*(y-3):subs(dk,f): # tính f v i a,b thõa h th c trên
> primpart(%,x):%=0; # làm g n h s c a f và l p ph ng trình f=0
=
-7 x - + 2 3 y 0
Nh n xét: Rõ ràng đ n k t qu 3 a~ + 7 b~ = 0 có th ch n a =7,b= -3 ta đ c
ph ng trình c a (d):7x-3y+ = Nh ng tôi v n mu n dùng các tính n ng c a 2 0 Maple đ gi i quy t đi u đó Vi c này có th giúp ta l p m t ch ng trình cho bài toán t ng quát
Trên đây là m t ví d minh h a cho “hàm ki m tra quan h vuông góc c a 2
đ ng th ng” ch đ i v i bài toán này ta không gi i theo ph ng pháp trên
3.3) Hàm ki m tra xem đ ng th ng l có ti p xúc v i đ ng tròn c không
Cú pháp: >AreTangent(l,c);
Trong đó: - l; c: là tên c a đ ng th ng và đ ng tròn;
Ví d : Cho đ ng tròn có ph ng trình ( ) ( ) (2 )2
c x- + y- = và 2 đ ng
th ng có ph ng trình ( )d1 :x-2y+ = , 8 0 ( )d2 : 3x-2y- = 6 0
Nh p ph ng trình các đ ng trên vào Maple:
(Xem ph n nh p đ ng tròn m c 4_đ ng tròn)
+Nh p 2 đ ng th ng:
> restart;
with(geometry):
> line(d1,x-2*y+8=0,[x,y]):line(d2,3*x-2*y-6=0,[x,y]):
+Nh p đ ng tròn (c):
> circle(c,(x-3)^2+(y-3)^2=5,[x,y]):
ki m tra xem (d1) có ti p xúc v i (c) hay không ta dùng l nh:
> AreTangent(d1,c);
true
Trang 8K t qu là true cho bi t (d1) ti p xúc v i (c)
ki m tra xem (d2) có ti p xúc v i (c) hay không ta dùng l nh:
> AreTangent(d2,c);
false
K t qu là false cho bi t (d2) không ti p xúc v i (c)
@Có th dùng đ th đ minh h a kh ng đ nh trên:
v các đ ng trên ta dùng l nh > draw( ); nh sau:
>
draw([d1(color=blue),d2(color=black),c],view=[-2 8,-2 8]);
Cách khác: (dùng gói l nh > with(plottools): with(plots):)
Tr c khi v (d1) và (d2) ta l y 2 đi m ng u nhiên trên (d1) và trên (d2) r i v
đ ng th ng đi qua 2 đi m đó.( ây là cú pháp c a Maple)
Dùng l nh > randpoint(); đ l y 2 đi m A, B ng u nhiên trên (d1) và 2 đi m
C, E ng u nhiên trên (d2)
> randpoint(A,d1,-1 0):randpoint(B,d1,0 1):
> randpoint(C,d2,-1 0):randpoint(E,d2,0 1):
Tr c khi v đ ng tròn (c) c n xác đ nh tâm và bán kính:
> circle(c,(x-3)^2+(y-3)^2=5,[x,y]):
> q:=center(c);r:=radius(c);
:=
q center_c
Trang 9:=
Bây gi ta dùng gói l nh (xem ch ng v đ th ) đ v các đ ng trên:
> with(plottools):
with(plots):
> d_1:=line(coordinates(A,[x,y]),coordinates(B,[x,y]),
color=red, linestyle=dash):
> d_2:=line(coordinates(C,[x,y]),coordinates(E,[x,y]),
color=black, linestyle=dash):
> c1 := circle(coordinates(q,[x,y]),r, color=blue):
> display(d_1,d_2,c1);
Nh n xét: Cách dùng gói l nh with(plots) khá dài dòng ph c t p, theo tôi đ
v các đ ng trong hình h c ta nên dùng l nh ‘draw’
3.4) Hàm ki m tra xem 3 đ ng th ng l1,l2,l3 có đ ng quy hay không
Cú pháp: >AreConcurrent(l1,l2,l3, ‘cond’);
Trong đó: - l1; l2;l3: là tên c a 2 đ ng th ng;
- cond: là option khai báo cho bi t đi u ki n đ l1,l2,l3 đ ng quy
khi ph ng trình t ng quát c a l1, l2 ho c l3 có ch a tham s
3.5) Hàm xác đ nh đ ng th ng (d) đi qua đi m A cho tr c và song song v i
đ ng th ng (l) cho tr c
Cú pháp: >ParallelLine(d, A, l);
Trong đó: - d là tên đ ng th ng d ng đ c;
- A, l: là tên c a đi m và đ ng th ng cho tr c
Trang 103.6) Hàm xác đ nh đ ng th ng (d) đi qua đi m A cho tr c và vuông góc v i
đ ng th ng (l) cho tr c
Cú pháp: >PerpendicularLine(d, A, l);
Trong đó: - d là tên đ ng th ng d ng đ c;
- A, l: là tên c a đi m và đ ng th ng cho tr c
Ví d :
Quay l i ví d m c 3.2), ta có th vi t nhanh đ ng th ng (d) đi qua đi m
( ) 1;3
A và vuông góc v i đ ng th ng ( )l : 3x+7y-13=0 nh sau:
Nh p đi m A và đ ng th ng (l):
> with(geometry):
> point(A,1,3): line(l,3*x+7*y-13=0,[x,y]):
xác đ nh đ ng th ng (d) qua A và (d)^(l), ta dùng l nh:
> PerpendicularLine(d,A,l):
xem ph ng trình c a (d) ta dùng l nh:
> Equation(d,[x,y]);
= + -
2 7 x 3 y 0
Ho c mu n xem chi ti t v (d) ta dùng l nh:
> detail(d);
name of the object: d
form of the object: line2d
equation of the line: 2+ 7*x-3*y = 0
3.7) Hàm xác đ nh đ ng trung tr c (d) c a đo n th ng AB
Cú pháp: >ParallelLine(d, A, B);
Trong đó: - d là tên đ ng th ng d ng đ c;
- A,B: là tên c a 2 đi m mút
3.8) Hàm xác đ nh h s góc c a đ ng th ng (l) cho tr c
Cú pháp: >slop(l);
* Xác đ nh h s góc c a đ ng th ng đi qua 2 đi m A, B ta có cú pháp:
>slop(A, B);
3.9) Hàm xác đ nh giao đi m M c a 2 đ ng th ng (l1) và (l2)
Cú pháp: >intersection(M, l1, l2);
3.10) Hàm ki m tra xem đi m M có n m trên đ ng th ng (l) không
Cú pháp: >IsOnLine(M, l, ‘cond’);
Trong đó: - M, l là tên c a đi m và đ ng th ng cho tr c;
- cond: là option khai báo cho bi t đi u ki n đ MÎ(l)
Trang 114 Tam giác
a) Tam giác T có 3 đ nh A, B, C cho tr c
Cú pháp: > triangle(T,[A,B,C],name);
Trong đó: - T là tên c a tam giác;
- name: là tên c a 2 tr c t a đ (đ t trong c p ngo c [ ])
b) Tam giác T có 3 đ nh là giao đi m c a 3 đ ng th ng l1, l2, l3 cho tr c
Cú pháp: >triangle(T,[l1,l2,l3],name);
c) Tam giác T có 3 đ dài 3 c nh a, b,c cho tr c
Cú pháp: >triangle(T,[a,b,c]);
d) Tam giác T xác đ nh b i 2 c nh a, bcho tr c và góc a gi a 2 c nh đó
Cú pháp: >triangle(T,[a, ’angle’=a, b],name);
Nh n xét: Theo 2 l nh c) và d) thì tam giác d ng đ c là tùy ý
·M t s hàm liên quan đ n tam giác
4.1) Hàm “ tính di n tích” c a tam giác T:
Cú pháp: >area(T);
Ví d : Cho ba đi m A ( ) ( 1;2 , B - 1;1 , ) ( ) C 2;3
xác đ nh tam giác ABC ta dùng l nh:
> with(geometry):
triangle(ABC, [point(A,1,2), point(B,-1,1), point(C,2,3)]):
tính di n tích tam giác ABC ta dùng l nh:
> area(ABC);
1 2 4.2) Hàm ki m tra xem 2 tam giác T1, T2 có đ ng d ng hay không?
Cú pháp: >AreSimilar(T1,T2, ‘cond’);
Trong đó: - T1; T2: là tên c a 2 tam giác;
- cond: là option khai báo cho bi t đi u ki n đ T1 và T2 các y u
t trong tam giác có ch a tham s
4.3) Hàm xác đ nh đ ng cao AH c a tam giác ABC_ H là hình chi u c a A trên
c nh BC)
t tên đ ng cao là hA Khi đó:
Cú pháp: >altitude(hA, A, ABC, H);
Trong đó: - ABC là tên c a tam giác;
- A là đ nh; hA là tên đ ng cao; H là chân đ ng cao
Chú ý: N u có khai báo H thì hA chính b ng đo n AH, n u không thì hA là đ ng th ng qua A và vuông góc v i BC
4.4) Hàm xác đ nh đ ng phân giác trong AD c a tam giác ABC_D là chân
đ ng phân giác trong c a góc ·BAC và thu c đo n BC
Cú pháp: >bisector(pA, A, ABC, D);
Trong đó: - ABC là tên c a tam giác;
- A là đ nh; pA là tên đ ng phân giác; D là chân đ ng phân giác