Gói câu lệnh GeoProver

Một phần của tài liệu Cơ sở Groebner và chứng minh định lý hình học bằng máy tính (Trang 26)

2 2 2 2 1 1 3 3 3 2 0 0 0 f u x x f x u x u x u f u x                

Kết luận 1: Khi đó mọi nghiệm thực của nó phải thoả mãn hệ phương trình:

1 2 3 2 1 2 1 0

gx uu xu u  (nghĩa là A CB D )

Giả thiết 2: Cho hệ phương trình:

2 2 2 1 1 1 2 2 2 2 2 1 1 3 3 3 2 4 2 3 4 1 4 1 2 1 5 3 3 2 4 0 0 0 0 0 f u x x f x u x u x u f u x f x x x x x u x u f u x u x                            

24 2 2 2 2 1 1 3 1 1 3 2 2 4 2 2 3 2 2 3 3 3 4 2 2 2 0 2 2 0 g u u x x x x x x x g u u x u u x                

(N là trung điểm của AC BD) Bây giờ ta sử dụng phần mềm Maple đối với iđêan I1 để kiểm định kết luận thứ nhất g1:

𝐼1 = 𝑓1, 𝑓2, 𝑓3, 𝑧𝑔1− 1 ⊂ ℝ 𝑢1, 𝑢2, 𝑢3, 𝑥1, 𝑥2, 𝑧

theo thứ tự từ điển với zx1  x2  u1  u2  u3, ta được có sở Groebner sau:

[> 2 2 2  

1: 1 1 2, 2 2 2 1 1 3, 2 3, 2 3 2 1 2 1 1 :

L  uxx x ux ux uxu x uu xu u z  

[>L2 : z x, 1,x2,u1,u2,u3 :

Ta tìm đa thức dư của đa thức 1 khi chia cho các đa thức trong danh sách L1

đối với thứ tự từ điển trên:

[> normalf(1, L1, plex(L2));

1

Ta thấy đa thức dư là 1, do vậy kết luận g1 chưa đúng. Để xem định lý suy biến trong trường hợp nào ta hãy tìm cơ sở Groebner G của I1và tìm iđêan khử 𝐼1:

[> G:= gbasis(L1, plex(L2));

 3 2 1 1 2 1 

: , , , 2 1

Gu x xu z u u

Dựa trên cơ sở Groebner trên, ta khai báo các biến phụ thuộc vào danh sách

L3 và sử dụng các câu lệnh của Maple để đưa ra 𝐼1 : [>L3: z x, 1,x2:

[> for j from 1 to nops(G) do

k[j]:= degree(leadterm(G[j], plex(L3)), {L3}): if k[j] = 0 then print(G[j]); fi; od;

3

u

Như vậy, ta tìm được iđêan khử 𝐼1 = 𝑢3 . Trường hợp suy biến của định lý ứng với nghiệm của phương trình u3  0 , tức là điểm C có toạ độ u2, 0 hay nói cách khác điểm C nằm trên trục hoành của hệ trục tọa độ đã chọn và khi đó hình thoi suy biến thành một đường thẳng.

25 (adsbygoogle = window.adsbygoogle || []).push({});

𝐼2 = 𝑓1, 𝑓2, 𝑓3, 𝑓4, 𝑓5, 𝑧𝑔2 − 1 ⊂ ℝ 𝑢1, 𝑢2, 𝑢3, 𝑥1, 𝑥2, 𝑥3, 𝑥4, 𝑧

theo thứ tự từ điển với zx1  x2  x3  x4  u1  u2  u3, ta được có sở Groebner sau: [> ' 1 : L  [ 2 2 2 1 1 2, 2 2 2 1 1 3, 2 3, uxx x ux ux uxu x x2 3  x x4 1  x u4 1  x u2 1, 2 3 4 1 4 1 2 1, x xx xx ux u  2 2 2  1 2 1 3 1 2 1 3 2 2 2 4 1 uu xxx xxx x z ]: [> '   2 : , 1, 2, 3, 4, 1, 2, 3 : Lz x x x x u u u [> normalf(1, L1, plex(𝐿2)); 1 [> G:= gbasis(𝐿1, plex(𝐿2));  3 4 2 1 1 1 3  : , , , , 4 1 Gu x x xu z u x

Dựa trên cơ sở Groebner trên, ta khai báo các biến phụ thuộc vào danh sách

𝐿3 và sử dụng các câu lệnh của Maple để đưa ra iđêan khử 𝐼2 :

[> '  

3 : , 1, 2, 3, 4 :

Lz x x x x

[> for j from 1 to nops(G) do

k[j]:= degree(leadterm(G[j], plex(𝐿3)), {𝐿3}): if k[j] = 0 then print(G[j]); fi; od;

3

u

Như vậy, ta tìm được iđêan khử 𝐼2 = 𝑢3 . Trường hợp suy biến của định lý ứng với nghiệm của phương trình u3  0 , tức là hình thoi suy biến thành một đường thẳng. Kiểm định tương tự cho kết luận g3 ta cũng có kết quả tương tự.

3.3. CHỨNG MINH MỘT SỐ ĐỊNH LÝ HÌNH HỌC

Sau đây chúng tôi trình bày phương pháp chứng minh một số định lý hình học sơ cấp bằng máy tính. Phần mềm Maple sẽ đưa ra kết luận về tính đúng sai của định lý hình học. Sau khi có kết quả từ máy tính, chúng tôi sẽ chứng minh định lý đó bằng toán học và phát triển thêm các bài toán khác.

26

Định lý 1. (Đường thẳng Ơle) Gọi O, H, G lần lượt là tâm của đường tròn

ngoại tiếp, trực tâm và trọng tâm của ABC cho trước. Khi đó, ba điểm O, H, G

thẳng hàng và điểm G chia đoạn thẳng OH theo tỉ số 1:3.

Trước tiên, trong hệ tọa độ Đề-các vuông góc ta tiến hành khai báo tọa độ của các điểm như sau:

[> A:=Point(a1, a2): B:=Point(b1, b2): C:=Point(c1, c2):

[> O_:=intersection_point(p_bisector(A, B), p_bisector(B, C));

M:=[( –b2a22 + b2c22 + b2c12 – b2a12 – c22a2 – c12a2 + b22a2 – b22c2 + c2a22 + c2a12 + b12a2 – b12c2)/(2(c2a1– a1b2 – b1c2 + b2c1 + a2b1 – c1a2)), (a1c22 + a1b22 + a1b12 – a1c12 + b1c22 + b1c12 – b1a22 – b1a12 – c1b22 + c1a22 + c1a12 – c1b12)/(2(c2a1a1b2 –

b1c2 + b2c1 + a2b1 – c1a2))]

[> H:=intersection_point(altitude(A, B, C),altitude(B, C, A));

H:=[( –c2a22 + c22a2 + b2a22 + a1a2b1 – a1c1a2 + c1a1c2 – b22a2 – b2c22 + b22c2 – b1c1c2 + b1b2c1 – b1a1b2)/(c2a1– a1b2 – b1c2 + b2c1 + a2b1 – c1a2), (b2a2b1 – b2b1c2 – c1b12 + a1b12 + b2c1c2 + b1c12 – a2c2c1 – a1c12 + a2c2a1 – a2a1b2 – b1a12 + c1a12)/(c2a1

a1b2 – b1c2 + b2c1 + a2b1 – c1a2))]

[> G:=intersection_point(median(A, B, C),median(B, C, A));

𝐺 ≔ 𝑏1 3 + 𝑎1 3 + 𝑐1 3 , 𝑎2 3 + 𝑏2 3 + 𝑐2 3

Để kiểm tra các kết luận của định lý, ta sử dụng câu lệnh sau đây: [> is_collinear(O_, H, G);

0 [> sqrdist(G,varpoint(O_, H, 1/3)); 0 (adsbygoogle = window.adsbygoogle || []).push({});

Cả hai câu lệnh trên đều cho kết quả bằng 0. Điều đó có nghĩa là định lý trên là đúng. Bây giờ ta chứng minh bằng toán học như sau:

Chứng minh. Gọi A’, B’, C’ lần lượt là trung điểm của các cạnh BC, CA,

AB. Ta chứng minh giao điểm của đường thẳng HO và đường thẳng AA’ chính là trọng tâm G của ABC. Thật vậy, ta có: HA = 2OA'HA // OA' ⇒ 𝐺𝐴

𝐺𝐴 = 𝐻𝐴

𝑂𝐴 = 2, suy ra G là trọng tâm ABC. Từ đó ta suy ra H, G, O thẳng hàng.

27

Hình 3.5

Hơn nữa, nếu gọi O9 là tâm đường tròn Ơle của ABC hay O9 là tâm đường tròn ngoại tiếp A’B’C’ thì ta có O, G, O9 thẳng hàng (theo chứng minh trên với điểm G là trọng tâm A’B’C’ và điểm O là trực tâm của A’B’C’). Đặc biệt, bốn điểm H, G, OO9 lập thành một hàng điểm điều hoà với 𝐺𝑂 = −2𝐺𝑂 9 và 𝐺𝐻

= −2𝐺𝑂 .

Định lý 2. (Đường tròn Ơle) Trong tam giác ba trung điểm của ba cạnh, ba chân các đường cao, ba trung điểm của ba đoạn thẳng nối trực tâm với các đỉnh

của tam giác là 9 điểm nằm trên một đường tròn với tâm O9 là trung điểm của đoạn

thẳng OH. Đường tròn này được gọi là đường tròn Ơle.

Trong hệ tọa độ Đề-các vuông góc ta có thể chọn tọa độ các điểm với A là gốc tọa độ và trục Ox với đơn vị là điểm B. Điểm C là điểm tùy ý.

[> A:=Point(0, 0): B:=Point(u1, 0): C:=Point(u2, u3) :

Gọi O9là trung điểm của đoạn thẳng OH. Ta xác định tọa độ của các điểm O, HO9 như sau: [> O_:=intersection_point(p_bisector(A, B), p_bisector(B, C)); 𝑂_ ≔ 𝑢1 2 , − −𝑢32 − 𝑢22 + 𝑢1𝑢2 2𝑢3

28 𝐻 ≔ 𝑢2, 𝑢1 − 𝑢2 𝑢2 𝑢3 [> O9:=midpoint(O_, H); 𝑂9 ≔ 𝑢2 2 + 𝑢1 4 , 𝑢1𝑢2 − 𝑢22 + 𝑢32 4𝑢3

Ta chỉ ra điểm O9 là tâm của đường tròn đi qua 9 điểm trên như sau: [> sqrdist(O9, midpoint(A, B)) - sqrdist(O9, midpoint(B, C));

0

[> sqrdist(O9, midpoint(A, B)) - sqrdist(O9, midpoint(H, C)); 0

[> D_:=intersection_point(pp_line(A, B), pp_line(H, C));

𝐷_ ≔ 𝑢2, 0

[> sqrdist(O9, midpoint(A, B)) - sqrdist(O9, D_); 0

Biểu thức cuối cùng trả lại kết quả bằng 0 chứng tỏ rằng kết luận trong định lý là đúng hay nói cách khác định lý được chứng minh. Sau đây là chứng minh toán học của định lý.

Chứng minh. Giả sử ABCH là trực tâm. Gọi D, E, F, P, L, T lần lượt là trung điểm của các đoạn thẳng BC, CA, AB, AH, HB, HC. Gọi K, M, N lần lượt là chân của các đường cao của ABC. Gọi (O) là đường tròn ngoại tiếp DEF.

29

Ta có DK = EF = 2

A B

KE // DF nên DEKF là hình thang cân. Do đó, ta

có điểm K thuộc đường tròn (O). Do DL // AK, DF // BCBC AK nên ta có LDF = 900. Tương tự, ta có LEF = 900. Suy ra tứ giác EFDL nội tiếp hay điểm L

thuộc đường tròn (O). Chứng minh tương tự ta có bốn điểm T, P, N, M cũng thuộc đường tròn (O). (adsbygoogle = window.adsbygoogle || []).push({});

Định lý 3. Có bốn giao điểm được tạo thành bởi ba cặp các đường phân giác trong và ngoài của ABC cho trước. Các điểm này là tâm đường tròn nội tiếp

và tâm các đường tròn bàng tiếp của tam giác.

Chọn tọa độ của các điểm với hai biến độc lập là u1, u2 (tọa độ của điểm C): [> A:=Point(0, 0): B:=Point(1, 0): C:=Point(u1, u2): P:=Point(x1, x2):

Điểm P khai báo ở trên là giao điểm của ba đường phân giác nếu và chỉ nếu hệ đa thức sau có kết quả bằng 0 với x1, x2 là các số không xác định được lấy hệ số trên trường ℚ 𝑢1, 𝑢2 .

[> polys:={on_bisector(P, A, B, C), on_bisector(P, B, C, A), on_bisector(P, C, A, B)};

polys:= {–2x2 + 2u1x2 + 2x2x1 – 2x2u1x1 – u2x22 + u2 – 2u2x1 + u2x12, –2u1x2u22 – u23 – u2u12 + 2u22x2 + 2x2u12 – u2x22 – 2u13x2 + 2u23x1 + u2x12 + 2u1x22u2 + 2u2x1u12 –

2u2x12u1 – 2u22x1x2 – 2x2u1x1 + 2u12x2x1, 2x2u1x1 – u2x12 + u2x22} Tiếp theo ta tính cơ sở Groebner bằng câu lệnh sau:

[> TO:=plex(x1, x2): [> gb:=gbasis(polys, TO);

gb:=[4u2x24 – 8x23u22 – 8x23u12 + 8x23u1 – 4u1x22u2 + 4u2x22u12 – 4u2x22 – u23 + 4u23x22 + 4u22x2, –u22x1 + 2x23u2 – 2u22x22 – 4u12x22 + 2u2x2u1 + 4x22u1 – 2u12u2x2 –

u1u22 + 2u1u22x1 + u22 – 2u2x2]

Từ kết quả trên ta thấy phương trình của biểu thức thứ nhất có 4 nghiệm với

x2 và mỗi phương trình với x1 được rút ra từ phương trình của biểu thức thứ hai. Vì vậy, phương trình có 4 nghiệm ứng với 4 giao điểm. Nghiệm tổng quát liên quan đến phương trình bậc 4 trên trường ℚ 𝑢1, 𝑢2 .

30

Thật khó để biểu diễn qua căn thức các giá trị này, vì cần đến nhiều tính toán với biểu thức suy ra từ kết quả của lệnh RootOf trong Maple được biết đến như là đa thức tối tiểu. Vì trong tình huống này x2 là khoảng cách từ điểm P đến đường thẳng

AB, chúng ta có thể chứng minh mỗi một điểm trong 4 điểm này có khoảng cách bằng nhau đến ba cạnh của tam giác ABC, nghĩa là những điểm này là tâm của đường tròn nội tiếp và 3 đường tròn bàng tiếp tam giác. Ta tính khoảng cách giữa chúng bằng câu lệnh sau:

[> con:=[sqrdist_pl(P, pp_line(A, C)) - sqrdist_pl(P, pp_line(A, B)), sqrdist_pl(P, pp_line(B, C)) - sqrdist_pl(P, pp_line(A, B))];

𝑐𝑜𝑛 ≔

−𝑢1𝑥2+𝑢2𝑥1 2

𝑢22+𝑢12 − 𝑥22,𝑢22−2𝑢2𝑥2+2𝑢2𝑥2𝑢1−2𝑢22𝑥1+𝑥22−2𝑥22𝑢1+2𝑢2𝑥2𝑥1+𝑢12𝑥22−2𝑢2𝑥1𝑢1+𝑢22𝑥12 1−2𝑢1+𝑢12+𝑢22 −𝑥22

Tử số của mỗi trong hai biểu thức trên có thể đơn giản bằng 0 với một số giá trị đặc biệt của x1, x2. Điều này có thể kiểm chứng việc tính dạng chuẩn tắc ứng với cơ sở Groebner nói trên:

[> map(u->normalf(numer(u), gb, TO), con); [0, 0]

Ta cũng có thể chứng minh định lý trên như sau: Bắt đầu với A, B và giao điểm P của các đường phân giác qua AB. Khi đó ACBC đối xứng với AB

tương ứng qua APBP và điểm P phải nằm trên các đường phân giác: [> A:=Point(0, 0): B:=Point(1, 0): P:=Point(u1, u2):

[> l1:=pp_line(A, B): [> l2:=sym_line(l1, pp_line(A, P)); l2:=[2u1u2, –u22 + u12, 0] [> l3:=sym_line(l1, pp_line(B, P)); l3:=[2(u1 – 1)u2, –u22 + 1 – 2u1 + u12, 2(u1–1)u2] [> on_bisector(P, A, B, intersection_point(l2, l3)); 0

Biểu thức cuối cùng được đơn giản bằng 0 và vì vậy định lý được chứng minh bằng máy tính.

31

Hình 3.7

Định lý 4. (Định lý Ptô-lê-mê) Điều kiện cần và đủ để một tứ giác lồi ABCD

nội tiếp được là tích hai đường chéo của nó bằng tích các cạnh đối diện.

Ta xác định tọa độ các điểm trong hệ tọa độ Đề-các vuông góc như sau: [> A:=Point(a1, a2): B:=Point(b1, b2); C:=Point(c1, c2): D_:=Point(d1, d2): Bốn điểm A, B, C, D thuộc cùng một đường tròn tương đương với điều kiện sau: [> p4:=on_circle(D_, p3_circle(A, B, C)); p4:= –a1b2c22 + c1a2d22 + c1a2d12 + b1c2d22 + b1c2d12 – a2b1d22 – a2b1d12 + d1c2a12 + d1c2a22 – d1b22c2 + d1b22a2 – d1c12a2 – d1c22a2 – d1b2a12 + d1b2c12 + d1b2c22 – d1b2a22 + a1b2d22 + a1b2d12– b2c1d22 – b2c1d12 – c2a1d22 – c2a1d12 – d2b1c22– d2b1c12 + d2a1c22 + d2a1c12 – d2a1b22 – d2a1b12 + d2c1b22 + d2c1b12 – d2c1a22 + d2b1a22 – d2c1a12 + d2b1a12 – d1b12c2 + d1b12a2a12b1c2 – c1a2b22 – c1a2b12 – a1b2c12 + a2b1c22 – a22b1c2 + a2b1c12 + a12b2c1 + c2a1b12 + c2a1b22 + a22b2c1 A B C P (adsbygoogle = window.adsbygoogle || []).push({});

32

Tương tự ta cũng nhận được đa thức có bậc tương tự như trên nếu chúng ta phát biểu dưới dạng định lý về góc định hướng:

[> u:=l2_angle(pp_line(A, D_), pp_line(B, D_)): [> v:=l2_angle(pp_line(A, C), pp_line(B, C)): [> w:=normal(numer(u)*denom(v) - denom(u)*numer(v)); w:= a1b2c22 – c1a2d22 – c1a2d12 – b1c2d22 – b1c2d12 + a2b1d22 + a2b1d12 – d1c2a12 – d1c2a22 + d1b22c2 – d1b22a2 + d1c12a2 + d1c22a2 + d1b2a12 – d1b2c12 – d1b2c22 + d1b2a22 – a1b2d22 – a1b2d12 + b2c1d22 + b2c1d12 + c2a1d22 + c2a1d12 + d2b1c22+ d2b1c12 – d2a1c22 –d2a1c12 + d2a1b22 + d2a1b12 – d2c1b22 – d2c1b12 + d2c1a22 – d2b1a22 + d2c1a12 – d2b1a12 + d1b12c2 – d1b12a2 + a12b1c2 + c1a2b22 + c1a2b12 + a1b2c12 – a2b1c22 + a22b1c2 – a2b1c12 – a12b2c1 – c2a1b12 – c2a1b22 – a22b2c1 [> w + p4; 0

Điều kiện này cũng tương đương với định lý Ptô-lê-mê trình bày ở trên. Biểu thức cuối cùng được đơn giản bằng 0 và vì vậy định lý được chứng minh bằng máy tính.

Nếu hai đường tròn hoặc một đường tròn và một đường thẳng đã biết một điểm P chung với tọa độ của giao điểm thứ hai Q có thể tính được và được lưu lại như hàm other_cl_point(P, c, d) hoặc other_cc_point(P, c1, c2). Các điều kiện để một đường tròn và một đường thẳng hoặc hai đường tròn tiếp xúc với nhau cũng được xây dựng theo cách tương tự.

Chứng minh. Ta sẽ sử dụng phép nghịch đảo để chứng minh định lý trên. Vì phép nghịch đảo có khả năng biến đường tròn thành đường thẳng. Do đó, chúng ta có thể vận dụng khả năng này để chuyển bài toán chứng minh các điểm nằm trên đường tròn về bài toán chứng minh các điểm nằm trên đường thẳng đơn giản hơn bằng cách chọn cực nghịch đảo nằm trên một đường tròn nào đó.

Xét bài toán ban đầu như sau: Cho một tứ giác lồi ABCD. Phép nghịch đảo cực D phương tích k biến các điểm A, B, C lần lượt thành A’, B’, C’. Từ đó ta suy ra điều kiện cần và đủ để bốn điểm A, B, C, D cùng nằm trên một đường tròn là ba điểm A’, B’, C’ cùng nằm trên một đường thẳng.

33

Điều kiện ba điểm A’, B’, C thẳng hàng là: A’C = A’B + B’C’ (*).

Hình 3.8

Theo tính chất của phép nghịch đảo, ta có đẳng thức (*) tương đương với:

𝑘 𝐴𝐶 𝐷𝐴. 𝐷𝐶 = 𝑘 𝐴𝐵 𝐷𝐴. 𝐷𝐵+ 𝑘 𝐵𝐶 𝐷𝐵. 𝐷𝐶

Nhân hai vế của đẳng thức trên với DA.DB.DC.|k| ta được:

AC.DB = AB.CD + AD.BC

Định lý được chứng minh.

Định lý 5. (Định lý Mi-quen) Cho tam giác ABC. Lấy các điểm tùy ý P, Q, R trên các cạnh AB, BC, AC. Khi đó ba đường tròn đi qua mỗi đỉnh và hai điểm đã

chọn trên các cạnh kề đồng quy tại một điểm. Điểm đó được gọi là điểm Mi-quen.

Trong hệ tọa độ Đề-các vuông góc, ta xác định các điểm như sau: [> A:=Point(0, 0): B:=Point(1, 0): C:=Point(c1, c2):

Các điểm P, Q, R thuộc các cạnh của tam giác có thể được khai báo với ba biến phụ không xác định u1, u2, u3 như sau:

[> P:=varpoint(A, B, u1); Q:=varpoint(B, C, u2); R:=varpoint(A, C, u3);

P:= [u1, 0]

Q:= [u2c1 + 1 – u2, u2c2]

R:= [u3c1, u3c2]

Điểm X khác điểm P là giao điểm của hai đường tròn đi qua P được xác định như sau:

34

[> X:=other_cc_point(P, p3_circle(A, P, R), p3_circle(B, P, Q)): Ta tiếp tục sử dụng câu lệnh sau để kiểm tra:

[> on_circle(X, p3_circle(C, Q, R)); 0

Kết quả trên bằng 0 nghĩa là đường tròn thứ ba cũng đi qua điểm X.

Hình 3.9

Chứng minh. Hai đường tròn (BPQ) và (CQR) cùng đi qua điểm Q nên chúng còn cắt nhau ở một điểm thứ hai X (có thể trùng với điểm Q). Vì BPQX cùng thuộc một đường tròn nên: (adsbygoogle = window.adsbygoogle || []).push({});

(XP, XQ) = (BP, BQ) + k (1)

CQRX cùng thuộc một đường tròn: (XQ, XR) = (CQ, CR) + k (2)

Cộng (1) và (2) ta có:

(XP, XQ) + (XQ, XR) = (BP, BQ) + (CQ, CR) + k Vì B, Q, C là ba điểm thẳng hàng nên theo hệ thức Sác-lơ ta có:

(XP, XR) = (BP, CR) + k hay (XP, XR) = (AP, AR) + k Do đó 4 điểm A, R, P, X cùng thuộc một đường tròn.

Ta xét thêm bài toán liên quan đến điểm Mi-quen: Cho tứ giác lồi ABCD.

Gọi E = AB CD, F = AD BC. Chứng minh rằng bốn đường tròn (EBC),

(FCD), (EAD), (FBA) đồng quy tại một điểm. Thật vậy, gọi M = (EBC)  (FCD).

Ta có: EMC + FMC + A = ABF + CFD + A = 1800.

A(0, 0) B(1, 0) C(c1, c2) X P Q R

35

Suy ra tứ giác EADM nội tiếp, hay điểm M thuộc đường tròn (EDA). Tương

Một phần của tài liệu Cơ sở Groebner và chứng minh định lý hình học bằng máy tính (Trang 26)