Luận văn Sử dụng Maple giải một số bài toán hình học

Định nghĩa: Đa giác đơn là đa giác không có hai cạnh nào cắt nhau. Đa giác không đơn (còn gọi là đa giác tự cắt) là đa giác tồn tại một cặp cạnh cắt nhau. Chú ý: Cạnh của đa giác là đoạn thẳng có hai đầu mút là hai đỉnh liên tiếp của đa giác, chứ không phải đường thẳng chứa cạnh đó. Vì vậy, khái niệm hai cạnh cắt nhau phải hiểu là hai đoạn thẳng cắt nhau.

pdf85 trang | Chia sẻ: lylyngoc | Lượt xem: 3595 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Luận văn Sử dụng Maple giải một số bài toán hình học, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
| được gọi là phương tích của điểm M đối với đường tròn O. 28 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên ii) Cho hai đường tròn, tập hợp các điểm có cùng phương tích đối với hai đường tròn là một đường thẳng. Hai đường tròn đồng tâm thì không có trục đẳng phương iii) Ba đường tròn có tâm không thẳng hàng thì ba trục đẳng phương đồng quy, gọi là tâm đẳng phương. 2.1. ĐIỂM Một điểm A trong mặt phẳng được khai báo bởi cú pháp point(A,x,y) hoặc point(A,*x,y+), trong đó A là tên điểm, x, y, tương ứng là hoành độ, tung độ của điểm A. Trung điểm M của đoạn thẳng AB, có cú pháp midpoint(M,A,B). Muốn xem tọa độ của M ta dùng lệnh: Tọa độ điểm M: [> coordinates(M). Hoành độ điểm M: [> HorizontalCoord(M); Tung độ điểm M: [> VerticalCoord(M); 2.2. ĐƯỜNG THẲNG -) Khai báo đường thẳng đi qua 2 điểm [> line(l,[A,B]); ở đây l là tên đường thẳng, A và B là 2 điểm đã cho. -) Phương trình đường thẳng l đi qua điểm P cho trước và vuông góc với đường thẳng có tên d cho trước: [> PerpendicularLine(l,P,d); -) Phương trình đường thẳng l đi qua điểm P cho trước và song song với đường thẳng có tên d cho trước: [> ParallelLine(l,P,d); -) Ký hiệu biến hoành độ và biến tung độ: _EnvHorizontalName := x: _EnvVerticalName := y: -) Để nhập đường thẳng l có phương trình ax+by+c=0, dùng lệnh [> line(l, ax+by+c=0); -) Đường thẳng có tên là l, muốn biết phương trình của nó, dùng lệnh [> equation(l); -) Khoảng cách từ một điểm M đến một đường thẳng có tên là l: [> distance(M,l); -) Hình chiếu của điểm P lên đường thẳng l: [> projection(H,P,l); với H là tên của hình chiếu. -) Điểm đối xứng của điểm P qua đường thẳng l: [> reflection(Q,P,l); -) Tìm giao điểm A của 2 đường thẳng l, d: [>intersection(A,l,d); -) Tính độ lớn của góc giữa hai đường thẳng d1 và d2: [> FindAngle(d1,d2); 29 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 2.3. ĐOẠN THẲNG -) Cho trước 2 điểm A và B: point(A,0,0),point(B,1,1): -) Đoạn thẳng với 2 đầu mút: [> segment(AB,[A,B]); với AB là tên của đoạn thẳng, A và B là 2 đầu mút. -) Để tính độ dài của đoạn AB, ta dùng lệnh [> distance(A,B); -) Trung trực của đoạn thẳng: [> PerpenBisector(l,A,B); l là tên đoạn thẳng, A và B là 2 điểm cho trước. 2.4. TAM GIÁC VÀ CÁC ĐƯỜNG ĐẶC BIỆT 2.4.1. KHAI BÁO TAM GIÁC -) Khai báo một tam giác có tên là T với A, B, C cho trước: Ta dùng lệnh [> triangle(T,[A,B,C]); -) Tam giác có tên là T, tạo bởi 3 đường thẳng d1, d2, d3. Ta dùng lệnh [> triangle(T,[d1,d2,d3]); -) Tam giác T, biết độ dài 3 cạnh là a, b, c. Ta dùng lệnh [> triangle(T, [a,b,c]); -) Tam giác T, khi biết 2 cạnh a,b và góc C xen giữa. Ta dùng lệnh [> triangle(T,[a,`angle`= C, b]); -) Tọa độ các đỉ nh của tam giác ABC: [> map(coordinates,DefinedAs(ABC)); -) Tính diện tích tam giác: [> area(T); T là tên của tam giác Thí dụ Cho 3 điểm A(0;0), B(5;5), C(0;10); cho 3 cạnh a=3, b=7,c=9 và 3 góc A1=π/6; C1=π/3. Hãy khai báo các tam giác sau: 1) Có 3 đỉ nh là ABC; 2) Nhận 3 cạnh là a,b,c; 3) Có cạnh a, cạnh b và góc C1; Giải > point(A, [0, 0]); point(B, [5, 5]); point(C, [0, 10]); a := 3; b := 7; c := 9; line(AB, x+21*y-22 = 0, [x, y]); line(BC, 5*x-12*y+7 = 0, [x, y]); line(CA, 4*x-33*y+146 = 0, [x, y]); > triangle(T1, [A, B, C]), triangle(T2, [a, b, c]), triangle(T3, [AB, BC, CA]), triangle(T4, [a, 'angle' = (1/2)*Pi, b]); 2.4.2. CÁC ĐƯỜNG ĐẶC BIỆT TRONG TAM GIÁC 30 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên -) Đường cao, có 2 cách khai báo: Cách thứ nhất [> altitude(hA, A,T); Cách thứ hai [> altitude(hA, A,T,H); với hA là tên đường cao, A là đỉ nh của tam giác T mà đường cao đi qua, còn H là chân đường cao. Muốn xem chi tiết về hA ta dùng lệnh [> detail(hA); trong lệnh deail, nếu khai báo theo cách thứ nhất sẽ cho ta biết phương trình đường cao; nếu khai báo theo cách thứ 2 sẽ cho ta tọa độ chân đường cao. -) Đường trung tuyến: *> median(AM, A, ABC); AM là tên đường trung tuyến, A là đỉ nh của tam giác ABC mà đường trung tuyến đi qua. Muốn xem chi tiết về AM ta dùng lệnh [> detail(AM). -) Đường trung trực của một cạnh: [> PerpenBisector(l,A,B); -) Đường phân giác trong: *> bisector(AD,A,ABC); AD là tên đường phân giác, A là đỉ nh của tam giác ABC mà đường phân giác đi qua. Muốn xem chi tiết về AD ta dùng lệnh [> detail(AD). -) Đường phân giác ngoài: *> ExternalBisector(AE,A,ABC); AE là tên đường phân giác, A là đỉ nh của tam giác ABC mà đường phân giác đi qua. Muốn xem chi tiết về AE ta dùng lệnh [> detail(AE). Thí dụ Cho tam giác ABC, với A(1,1), B(1,-2), C(3,3). Hãy viết phương trình đường cao, trung tuyến, trung trực, phân giác trong và phân giác ngoài của tam giác ABC xuất phát từ đỉ nh A; viết phương trình đường trung trực của cạnh AB. Giải: > point(A, [1, 1]), point(B, [1, -2]), point(C, [3, 3]), triangle(ABC, [A, B, C]); > altitude(hA, A, ABC); > median(AM, A, ABC); detail(AM); > bisector(AD, A, ABC); detail(AD); > ExternalBisector(AE, A, ABC); detail(AE); > PerpenBisector(l, A, B); detail(l); 2.4.3. CÁC ĐIỂM ĐẶC BIỆT TRONG TAM GIÁC -) Trọng tâm của tam giác: [> centroid(G,T); G là trên trọng tâm, T tên là tam giác. -) Trực tâm của tam giác: [> orthocenter(H,T); -) Tâm đường tròn nội tiếp. -) Tâm đường tròn ngoại tiếp. 31 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên -) Tâm đường tròn bàng tiếp. 2.5. ĐƯỜNG TRÒN -) Đường tròn đi qua 3 điểm A,B,C; dùng lệnh [> circle(c1, [A, B, C], n, 'centername'=m); ở đây c1 là tên đường tròn, m là ký hiệu tâm của đường tròn. -) Đường tròn đi qua 3 điểm A,B,C; dùng lệnh [> circle(c1, [A, B, C], [x,y]); ở đây c1 là tên đường tròn. -) Đường tròn có tâm là điểm A, với bán kính r: [> circle(C, [A, r]); hay là: [> circle(C, [A, r], [x, y]); -) Đường tròn C có phương trình cho trước: [> circle(C, " x^(2)+y^(2)-2*a*x-2*b*y+c=0,[x,y]);" -) Tìm ký hiệu tâm của đường tròn C: [> center(c); -) Tìm tọa độ tâm của đường tròn C: [> coordinates(center(c)); -) Tính bán kính của đường tròn C: [> radius(c); -) Phương tích của điểm M đối với đường tròn C: [> powerpc(M,C); -) Trục đẳng phương của hai đường tròn. -) Tâm đẳng phương của 3 đường tròn. -) Tìm giao điểm của 2 đường (một đường tròn một đường thẳng hoặc hai đường tròn) C1 và C2: [> intersection(H,C1, C2, [M,N]); ở đây M và N là 2 giao điểm, H là tập hợp các thông tin về hai giao điểm mà ta có thể tìm bởi lệnh [> detail(H); 2.6. TIẾP TUYẾN CỦA ĐƯỜNG TRÒN -) Tiếp tuyến tại một điểm M thuộc đường tròn c: [>tangentpc(t,M,c); ở đây t là tên của tiếp tuyến. M là tiếp điểm đã biết. -) Tiếp tuyến với đường tròn c và đi qua điểm M cho trước: [>TangentLine(T,M,c,[t1,t2]); ở đây T là tập hợp các thông tin về tiếp tuyến, có thể tra cứu bởi lệnh [> detail(T); t1, t2 là tên của mỗi tiếp tuyến. -) Đường tròn c có tâm O nội tiếp tam giác T: [> incircle(c,T,'centername'=O); 32 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên -) Ba đường tròn bàng tiếp tam giác: [> excircle(H,T, [c1(o1),c2(o2),c3(o3)]); H là tập hợp các thông tin về 3 vòng tròn bàng tiếp, T là tam giác đã cho, *c1(o1),c2(o2),c3(o3)+ là 3 đường tròn bàng tiếp với tâm là O1, O2, O3. Chú ý: có thể chỉ dùng lệnh thứ 2 mà không cần đến lệnh thứ nhất. 2.7. MỘT SỐ ĐIỂM, ĐƯỜNG THẲNG, ĐƯỜNG TRÒN. 1) Điểm Gecgon: [>GergonnePoint(G, ABC); ở đây G là tên của điểm, ABC là tên tam giác. Điểm Gecgon là điểm đồng quy của 3 đường thẳng AA1, BB1, CC1. A1, B1, C1 là các tiếp điểm của đường tròn nội tiếp với 3 cạnh. 2) Điểm Nagel : [> NagelPoint(N, T); ở đây N là tên của điểm, ABC là tên tam giác. Điểm Nagel là điểm đồng quy của 3 đường thẳng AA1, BB1, CC1. A1, B1, C1 là các tiếp điểm của đường tròn bàng tiếp với 3 cạnh. 3) Đường thẳng Simpson: *> SimpsonLine(sl,N,T); sl là tên đường thẳng Simson, N là điểm hạ từ đường tròn ngoại tiếp tam giác T. > 2.8. NHÓM LỆNH KIỂM TRA Nhóm lệnh kiểm tra bắt đầu bằng Are hoặc Is dùng để kiểm tra tính đúng hoặc sai của một tính chất nào đó. Số thứ tự Cú pháp Chức năng 1 [> ArePrallrel (l1,l2,cond); Kiểm tra tính song song của hai đường thẳng l1, l2. 2 [> Areconcurrent(l1,l2,l3,cond); Kiểm tra tính đồng quy của 3 đường thẳng l1, l2, l3. 3 [> ArePerpendicular(l1,l2,cond); Kiểm tra tính vuông góc của hai đường thẳng l1, l2. 33 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4 [> AreTangent(f,g); Kiểm tra tính tiếp xúc giữa hai đường f và g (một đường thẳng với một đường tròn hoặc hai đường tròn. 5 [> IsOnCircle(A,c,cond); Kiểm tra xem điểm F có nằm trên đường tròn c hay không? 6 [> IsOnline(A,l,cond); Kiểm tra xem điểm F có nằm trên đường thẳng l hay không? 7 [> IsRightTriangle(ABC,cond); Kiểm tra tính vuông của tam giác có tên là ABC 8 [> AreConcyclic(P1,P2,P3,P4); Kiểm tra 4 điểm P1, P2, P3, P4 thuộc 1 đường tròn 9 [> AreSimilar(T1, T2, cond); Kiểm tra tính đồng dạng của hai tam giác 10 [> AreCollinear(A,B,C); Kiể m tra tính thẳng hàng của ba điểm A,B,C Chú ý: -) Có thể bỏ điều kiện cond hoặc sử dụng trong trường hợp có chứa tham số. -) Khi kết thúc các lệnh này và enter, kết quả sẽ là true hoặc false. -) Lệnh 4 và lệnh 8 có thể thay thế cho nhau. 34 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên -) Trong một số trường hợp phải dùng lệnh [> assume(logic); HÌNH HỌC KHÔNG GIAN TÓM TẮT LÝ THUYẾT 1) Khoảng cách giữa hai điểm: "d=" "sqrt((x[2]-x[1])^(2)+(y[2]-y[1])^(2)+(z[2]-z[1])^(2))" Điểm M(x,y,z) chia đoạn 35 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên M[1] M[2] theo tỷ số λ, có tọa độ biểu diễn theo công thức: x[1] + λx[2] x = -------------------; 1 + lambda y[1] + λy[2] y = -------------------; 1 + lambda z[1] + λz[2] z = -------------------; 1 + lambda Trường hợp riêng λ=1, ta được tọa độ trung điểm: "x= (x[1]+x[2] )/(2), y=(y[1]+y[2] )/(2),z=(z[1]+z[2] )/(2)." 2) Đường thẳng: i) Phương trình đường thẳng đi qua hai điểm M[1](x[1], y[1], z[1]) và M[2](x[2], y[2], z[2]) 36 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên : x - x[1] y - y[1] y - y[1] z - z[1] ----------- = ----------- and ----------- = ----------- x[2] - x[1] y[2] - y[1] y[2] - y[1] z[2] - z[1] trong cách viết trên, có quy ước nếu mẫu số nào bằng không, thì tử số của phân số đó phải bằng không. Vector chỉ phương: #mover(mi("v"),mo("→")) = (x[2] - x[1], y[2] - y[1], z[2] - z[1]) ii) Phương trình dạng tham số x = x[0] + at; y = y[0] + bt; z = z[0] + ct; Đường thẳng đi qua điểm "M[0](x[0],y[0],z[0]), " có vector chỉ phương "(v)=(a,b,c). " Có thể khử tham số t và được phương trình x - x[0] y - y[0] y - y[0] z - z[0] -------- = -------- and -------- = -------- a b b c iii) Phương trình tổng quát của đường thẳng: piecewise(P[1], A[1] x + B[1] y + C[1] z + D[1] = 0, P[2], A[2] x + B[2] y + C[2] z + D[2] = 0) 4) Hệ hai mặt phẳng 37 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên -) Điều kiện song song của P[1] và P[2] là: A[1] B[1] B[1] C[1] C[1] D[1] ---- = ---- and ---- = ---- and ---- ---- A[2] B[2] B[2] C[2] C[2] D[2] -) Điều kiện trùng nhau của P[1] và P[2] là: A[1] B[1] B[1] C[1] C[1] D[1] ---- = ---- and ---- = ---- and ---- = ---- A[2] B[2] B[2] C[2] C[2] D[2] -) Điều kiện cắt nhau của P[1] và P[2] là: A[1] B[1] 38 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên ---- ---- A[2] B[2] hoặc B[1] C[1] ---- ---- B[2] C[2] hoặc C[1] A[1] ---- ---- C[2] A[2] hay là A[1] B[2] A[2] B[1] hoặc B[1] C[2] B[2] C[1] hoặc A[2] B[1] A[1] B[2] 5) Chùm mặt phẳng: Cho 2 mặt phẳng cắt nhau A[1] x + B[1] y + C[1] = 0 và A[2] x + B[2] y + C[2] = 0 , khi đó, tập hợp tất cả các mặt phẳng có dạng alpha(A[1] x + B[1] y + C[1] z + D[1]) + beta 39 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên A[2] x + B[2] y + C[2] z + D[2] = 0 Với α và β là những hằng số tùy ý, không đồng thời bằng không, được gọi là chùm mặt phẳng. 6) Góc giữa hai mặt phẳng là góc nhọn tạo bởi hai vector pháp tuyến 7) Khoảng cách từ điểm M[0](x[0], y[0], z[0]) tới mặt phẳng Ax+By+Cz+D=0 là: |Ax[0] + By[0] + Cz[0] + D| d = --------------------------- / 2 2 2\ sqrt\A + B + C / Ý nghĩa của biểu thức: rho = Ax + By + Cz + D Không gian được chia thành 3 tập con: i) Tập hợp những điểm mà ρ=Ax+By+Cz+D=0, đó là mặt phẳng với phương trình Ax+By+Cz+D=0, ii) Tập hợp những điểm mà ρ=Ax+By+Cz+D>0, đó là nửa không gian có bờ là mặt phẳng rho = 0 iii) Tập hợp những điểm mà ρ=Ax+By+C<0, đó là nửa mặt phẳng có bờ là đường thẳng rho = 0 7) Mặt cầu: i) Phương trình chính tắc: 2 2 2 2 40 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên (x - x[0]) + (y - y[0]) + (z - z[0]) = R ii) Phương trình tổng quát: "x^(2)+y^(2)+z^(2)-2 a[]x-2 by-2 cz+d=0, " với điều kiện: / 2 2 2 \ >\a + b + c - d, 0/ 8) Điều kiện mặt phẳng là tiếp diện của mặt cầu: khoảng cách từ tâm mặt cầu đến mặt phẳng bằng bán kính mặt cầu. 9) Một số bài toán 1) Phương trình mặt phẳng đi qua ba điểm: M[1](x[1], y[1], z[1]); M[2](x[2], y[2], z[2]); M[3](x[3], y[3], z[3]); Typesetting[delayDotProduct](det, Matrix(3, 3, {(1, 1) = `+`(x, `-`(x[1])), (1, 2) = `+`(y, `-`(y[1])), (1, 3) = `+`(z, `-`(z[1])), (2, 1) = `+`(x[2], `-`(x[1])), (2, 2) = `+`(y[2], `-`(y[1])), (2, 3) = `+`(z[2], `-`(z[1])), (3, 1) = `+`(x[3], `-`(x[1])), (3, 2) = `+`(y[3], `-`(y[1])), (3, 41 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 3) = `+`(z[3], `-`(z[1]))}), true) = 0 2) Phương trình mặt phẳng đi qua điểm M[0](x[0], y[0], z[0]) và song song với hai vector #mover(mi("a"),mo("→")) = (a[1], a[2], a[3]), #mover(mi("b"),mo("→")) = (b[1], b[2], b[3]) cho trước. Typesetting[delayDotProduct](det, Matrix(3, 3, {(1, 1) = `+`(x, `-`(x[0])), (1, 2) = `+`(y, `-`(y[0])), (1, 3) = `+`(z, `-`(z[0])), (2, 1) = a[1], (2, 2) = a[2], (2, 3) = a[3], (3, 1) = b[1], (3, 2) = b[2], (3, 3) = b[3]}), true) = 0 3) Vị trí tương đối giữa mặt phẳng P và đường thẳng l: Giả sử có mặt phẳng P cho bởi phương trình: Ax+By+Cz+D=0 và đường thẳng l có phương trình: x = x[0] + at; y = y[0] + bt; z = z[0] + ct; i) Điều kiện cắt nhau: Vector chỉ phương của đường thẳng không trực giao với vector pháp tuyến của mặt phẳng: 42 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Ab + Bb + Cc 0 ii) Điều kiện song song: Ab + Bb + Cc = *(0, v¢) Ax[0] + By[0] + Cz[0] + D and *(0, v¢) Ax [0] + By[0] + Cz[0] + D 0 iii) Điều kiện l thuộc P: Ab + Bb + Cc = *(0, v¢) Ax[0] + By[0] + Cz[0] + D and *(0, v¢) Ax [0] + By[0] + Cz[0] + D = 0 4) Điều kiện chéo nhau của 2 đường thẳng Cho hai đường thẳng x - x[1] y - y[1] y - y[1] z - z[1] -------- = -------- and -------- = -------- a[1] b[1] b[1] c[1] và x - x[2] y - y[2] y - y[2] z - z[2] -------- = -------- and -------- = -------- a[2] b[2] b[2] c[2] Điều kiện để hai đường thẳng chéo nhau là: Typesetting[delayDotProduct](det, Matrix(3, 3, {(1, 1) = `+`(x[2], `-`(x[1])), (1, 2) = `+`(y[2], `-`(y[1])), (1, 3) 43 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên = `+`(z[2], `-`(z[1])), (2, 1) = a[1], (2, 2) = b[1], (2, 3) = c[1], (3, 1) = a[2], (3, 2) = b[2], (3, 3) = c[2]}), true) 0 5) Điều kiện đồng phẳng của 3 vector: Typesetting[delayDotProduct](det, Matrix(3, 3, {(1, 1) = a[1], (1, 2) = b[1], (1, 3) = c[1], (2, 1) = a[2], (2, 2) = b[2], (2, 3) = c[2], (3, 1) = a[3], (3, 2) = b[3], (3, 3) = c[3]}), true) = 0 5') Điều kiện đồng phẳng của 4 điểm M[0](x[0], y[0], z[0]); M[1](x[1], y[1], z[1]); M[2](x[2], y[2], z[2]); M[3](x[3], y[3], z[3]); Typesetting[delayDotProduct](det, Matrix(3, 3, {(1, 1) = 44 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên `+`(x[1], `-`(x[0])), (1, 2) = `+`(y[1], `-`(y[0])), (1, 3) = `+`(z[1], `-`(z[0])), (2, 1) = `+`(x[2], `-`(x[0])), (2, 2) = `+`(y[2], `-`(y[0])), (2, 3) = `+`(z[2], `-`(z[0])), (3, 1) = `+`(x[3], `-`(x[0])), (3, 2) = `+`(y[3], `-`(y[0])), (3, 3) = `+`(z[3], `-`(z[0]))}), true) = 0 6) Phương trình mặt cầu đi qua 4 điểm không đồng phẳng MỘT SỐ LỆNH CỦA MAPLE 16 1.1. Điểm 1) Điểm M trong không gian được khai báo bởi lệnh [> point(M,x,y,z) hoặc point(M,*x,y,z+), trong đó M là tên điểm, x, y, z tương ứng là hoành độ, tung độ và cao độ của điểm M. Tọa độ của điểm có thể chọn ngẫu nhiên: Lệnh 1 *> randpoint(Tên điểm, khoảng 1, khoảng 2, khoảng 3); Lệnh 2 *> randpoint(Tên điểm, đối tượng, khoảng 1, khoảng 2, khoảng 3); Đối tượng là đường thẳng, mặt phẳng, mặt cầu, ý nghĩa là điểm được chọn ngẫu nhiên trên các đối tượng đó 2) Tương tự như trong hình học phẳng, ta cũng có: Trung điểm của đoạn thẳng AB, có cú pháp midpoint(M,A,B). Muốn xem tọa độ của M ta dùng lệnh: Tọa độ điểm M: [> coordinates(M). 45 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Đoạn thẳng 1) Đoạn thẳng không đị nh hướng: [> segment(tên, [P1,P2]) hoặc [> segment(tên, P1,P2); 2) Đoạn thẳng có đị nh hướng: [> dsegment(tên, [P1,P2]) hoặc [> dsegment(tên, P1,P2). 1.2. Đường thẳng 1) Đường thẳng d đi qua điểm M(x0,y0,z0) và có vector chỉ phương V(a1,a2,a3), muốn nhập dưới dạng tham số {x=x0+a1.t, y=y0+a2.t, z=z0+a3.t}, ta dùng lệnh: [> line(d,[x0+a1.t, y0+a2.t, z0+a3.t],t); 2) Đường thẳng d đi qua điểm M(x0,y0,z0) và có vector chỉ phương V(a1,a2,a3), muốn nhập chính tắc x - x0 y - y0 y - y0 z - z0 ------ = ------ and ------ = ------ a1 a2 a2 a3 ta dùng lệnh: [> line(d,[point(M,2,3,4),[3,2,1]],t); 3) Đường thẳng d có dạng tổng quát: giả sử có 2 mặt phẳng P1 và P2, được cho bởi hai phương trình mặt phẳng: "{[[a1.x+b1.y+c1.z+d1=0,],[a2.x+b2.y+c2.z+d2=0,]]" Ta khai báo hai mặt phẳng P1, P2 bởi các lệnh: [> plane(P1,[a1.x+b1.y+c1.z+d1=0,[x,y,z]); [> plane(P2,[a2.x+b2.y+c2.z+d2=0,[x,y,z]); 46 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Khi đó đường thẳng d là giao tuyến của P1 và P2 được khai báo bởi lệnh: [> line(d,[P1,P2]); 4) Khai báo vector: Muốn nhập vector u=(x,y,z) ta dùng lệnh: [> u:=([x,y,z]); hoặc [> u := ; hai lệnh này cho ta vector hàng, [> u:=; lệnh này cho ta vector cột. 5) Tích có hướng của 2 vector: trước hết phải mở gói lệnh *> with(linalg); sau đó dùng lệnh [> crossprod(u,v); 6) Tích vô hướng của 2 vector: [> dotprod(u,v); hoặc [> dotprod(u,v,orthogonal); 7) Vector chỉ phương của đường thẳng d: [> ParallelVector(d); 8) Trục trong không gian (đường thẳng có đị nh hướng):[> line(d, [x[1] + at, y[1] + bt, z[1] + ct], t) d là tên của trục, [ x[1] +at, y[1] +bt, z[1] +ct] là phương trình trục viết dạng tham số, t là tham số. Mặt phẳng Mặt phẳng trong maple được khai báo với các lệnh như sau: 47 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Số thứ tự Lệnh Chức năng 1 [> plane(P, [A,n],[x,y,z]); Mặt phẳng P, đi qua điểm A và có vector pháp tuyến n. 2 [> plane(P, [d1,d2]); Mặt phẳng P đi qua 2 đường thẳng d1 và d2. 3 [>plane(P, [A,B,C]); Mặt phẳng P đi qua 3 điểm A, B, C. 4 [> plane(P, [A,d1,d2]); Mặt phẳng P đi qua điểm A và song song với 2 đường thẳng d1 và d2. 5 [>plane(P, ax+by+cz+d=0); Mặt phẳng P có phương trình là ax+by+cz+d=0. 6 [> parallel(P, M, alpha); Mặt phẳng P đi qua điểm M và song song mặt phẳng alpha. 7 "[> NormalVector(P);" Tìm vector pháp tuyến của mặt phẳng P. 8 48 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên TAM GIÁC 1) Tam giác biết ba đỉ nh là A, B, C: [> triangle(T,[A,B,C]); 2) Tam giác biết phương trình 3 cạnh a,b,c: [> triangle(T,[a,b,c], [x,y,z]); Nếu các trục là u,v,w thì thay [x,y,z] bởi [u,v,w] MẶT CẦU 1) Mặt cầu đi qua 4 điểm A, B, C, D: [> sphere(S,[A,B,C,D], n, `centername`=J); Trong đó: -) S là tên của mặt cầu. -) n=[x,y,z] -tên các trục tọa độ -) J là tên tâm mặt cầu. 2) Mặt cầu có đường kính là AB, với A và B là hai điểm: [> sphere(S,[A,B], n, `centername`=J); 3) Mặt cầu có tâm J và bán kính r: [> sphere(S,[J,r], n, `centername`=J); J là tên của tâm. 4) Mặt cầu có tâm J và tiếp xúc mặt phẳng P: [> sphere(S,[J,P], n, `centername`=J); J là tên của tâm. 5) Các yếu tố liên quan đến mặt cầu: a) Tiếp diện P tại A của mặt cầu S: [> TangentPlane(P,A,S); b) Phương tích của điểm M đối với mặt cầu S: [> powerps(M,s); c) Mặt đẳng phương P của hai mặt cầu S[1] và S[2] : [> RadicalPlane(P, 49 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên S[1] , S[2] ); d) Trục đẳng phương d của ba mặt cầu: [> RadicalLine(d, s1, s2, s3); e) Tâm đẳng phương J của 4 mặt cầu: [> RadicalCenter(J, s1, s2, s3, s4); f) Tính bán kính mặt cầu S: [> radius(S); g) Tìm tâm mặt cầu S: [> center(S); KHỐI ĐA DIỆN 1) Khối tứ diện biết bốn đỉ nh A, B, C, D: [> gtetrahedron(Ten, [A,B,C,D]); 2) Khối tứ diện biết bốn mặt: [> gtetrahedron(Ten, [ P[1], P[2], P[3], P[4] ]); 3) Hình hộp chữ nhật: [> parallelepiped(ten,[ d[1], d[2], d[3] ]); d[1], d[2], d[3] là 3 cạnh xuất phát từ một đỉ nh. CÁC PHÉP BIẾN HÌNH TRONG KHÔNG GIÁN 1) Phép tị nh tiến: N là ảnh của M qua phép tị nh tiến theo vector "(AB: )" [> translation(N,M,AB; Chú ý: AB là đoạn thẳng có hướng. 2) Phép đối xứng: 50 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên a) Qua đường thẳng: N là ảnh của N của phép đối xứng qua mặt phẳng P: [> reflection(N,M,P); b) Qua một đường thẳng: N là ảnh của M của phép đối xứng qua đường thẳng l: [> reflection(N,M,l); c) Qua một tâm: N là ảnh của M của phép đối xứng qua tâm C: [> reflection(N,M,C); 3) Phép quay: N là ảnh của M qua phép quay với góc quay α, trục quay là l: *> rotation(N, M, α, l); Chú ý: góc quay có thể âm, có thể dương; trục quay l là đường thẳng có hướng. 4) Phép vị tự: N là ảnh của M qua phép vị tự tâm C, tỷ số k: [> homothety(N,M,k,C); 5) Phép chiếu vuông góc: a) Chiếu điểm A lên đường thẳng l, điểm ảnh là Q: [> projection(Q, A, l); b) Chiếu điểm A lên mặt phẳng P, điểm ảnh là Q: [> projection(Q, A, P); c) Chiếu đoạn thẳng l (hoặc đường thẳng l) lên mặt phẳng P, ảnh là d: [>projection(d, l, P); TÌM GIAO CỦA CÁC ĐỐI TƯỢNG HÌNH HỌC 1) [> intersection(Tên, l[1], l[2]); Tìm giao của hai đường thẳng, kết quả là điểm nếu chúng cắt nhau, ngược lại là "Null" 2) [> intersection(Tên, P[1], P[2]); Tìm giao của hai mặt phẳng, kết quả là đường nếu chúng cắt nhau, ngược lại là "Null" 3) [> intersection(Tên, l, P); Tìm giao của đường thẳng và mặt phẳng, kết quả là điểm nếu chúng cắt nhau, ngược lại là "Null" 4) [> intersection(Tên, l, S); Tìm giao của đường thẳng và mặt cầu, kết quả là điểm nếu chúng cắt nhau, ngược lại là "Null" 5) [> intersection(Tên, P[1], P[2],P[3]); 51 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Tìm giao của ba mặt phẳng, kết quả là đường nếu chúng cắt nhau, ngược lại là "Null" TÍNH GÓC 1) [> FindAngle(l[1],l[2]); Tính góc của hai đường thẳng cắt nhau. 2) [> FindAngle(P[1],P[2]); Tính góc của hai mặt phẳng cắt nhau. 3) [> FindAngle(S[1],S[2]); Tính góc của hai mặt phẳng cắt nhau. 4) [> FindAngle(l,P); Tính góc của đường thẳng và mặt phẳng cắt nhau. 5) [> FindAngle(A,T); Tính góc A của tam giác T. KHOẢNG CÁCH Nhóm lệnh về khoảng cách được tính trong maple STT Lệnh Chức năng Chú thích 1 [> distance(A,B) Khoảng cách giữa hai điểm A và B 2 [> distance(l1,l2) Khoảng cách giữa hai đường thẳng l1 và l2 Đường thẳng viết dạng tham số 3 [> distance(P1,P2) Khoảng cách giữa hai mặt phẳng P1 và P2 52 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4 [> distance(A,P) Khoảng cách từ điểm A đến mặt phẳng P 5 [> distance(A,l) Khoảng cách từ điểm A đến đường thẳng l 6 [> distance(l,P) Khoảng cách từ đường thẳng l đến mặt phẳng P > 1.8. Nhóm lệnh kiểm tra Nhóm lệnh kiểm tra bắt đầu bằng Are hoặc Is dùng để kiểm tra tính đúng hoặc sai của một tính chất nào đó. Số thứ tự Lệnh Chức năng 1 [> AreConcurrent (P,Q,R, cond); Kiểm tra tính thẳng hàng của 3 điểm P, Q, R. 2 [> ArePrallrel (l1,l2,cond); Kiểm tra tính song song của hai đường thẳng l1, l2. 53 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 3 [> Areconcurrent(l1,l2,l3,cond); Kiểm tra tính đồng quy của 3 đường thẳng l1, l2, l3. 4 [> ArePerpendicular(l1,l2,cond); Kiểm tra tính vuông góc của hai đường thẳng l1, l2. 5 [> ArePerpendicular(l,P,cond); Kiểm tra tính vuông góc của đường thẳng l với mặt phẳng P. 6 [> ArePerpendicular(P1,P2,cond); Kiểm tra tính vuông góc của hai mặt phẳng P1 và P2. 7 [> AreCoplanar(A,B,C,D) Kiểm tra tính đồng phẳng của bốn điểm A,B,C,C 8 [> AreCoplanar(l1,l2) Kiểm tra tính đồng phẳng của hai đường thẳng 9 [> AreParallel(l1,l2) Kiểm tra tính song song của hai đường thẳng l1 và l2 10 [> AreParallel(P1,P2) Kiểm tra tính song song của hai mặt phẳng P1 và P2 11 54 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên [> AreParallel(l,P) Kiểm tra tính song song của đường thẳng l và mặt phẳng P 12 [> IsOnCircle(A,c,cond); Kiểm tra xem điểm A có thuộc đường tròn c hay không? 13 [> IsOnline(A,l,cond); Kiểm tra xem điểm A có thuộc đường thẳng l hay không? 14 [> IsRightTriangle(ABC,cond); Kiểm tra tính vuông của tam giác có tên là ABC ĐIỂM TRONG CỦA ĐA GIÁC LỒI BÀI TOÁN Khi giải bài toán hình học đôi khi ta gặp khái niệm điểm M nằm trong một hình nào đó, chẳng hạn, điểm M bên tronggóc xOy, điểm M bên trong tam giác ABC...Gặp những trường hợp như thế này, người ta thường vẽ điểm Mmột cách trực giác. Vậy khái niệm chính xác điểm trong là gì? Làm thế nào để biết điểm Mở trong hay ở ngoài một hình F 55 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Nếu hình Flà hình tròn hay hình elip, đã có điều kiện cần và đủ để kết luận điểm M thuộc hay không thuộc hình F. Tuy nhiên, trường hợp F là một đa giác, khẳng định điểm M thuộc hay không thuộc đa giác là bài toán Trong khuôn khổ Luận văn này ta giả thiết hình F là một đa giác lồi, được định nghĩa như sau: Định nghĩa:Đa giác F được gọi là lồi, nếu mọi đoạn thẳng AB có hai đầu mút thuộc biên của đa giác F thì cả đoạn thẳng AB thuộc đa giác F. Bài toán:Trên mặt phẳng cho một đa giác lồi và điểm M. Hãy kiểm tra xem điểm Mcó thuộc miền trong của đa giác hay không? LỜI GIẢI Trước hết ta có nhận xét: điểm M thuộc miền trong của đa giác, nếu tồn tại một đoạn thẳng chứa điểm M và có hai đầu mút thuộc biên của đa giác. Giả sử n đỉnh của đa giác đã cho Ta thực hiện các bước sau đây: i) Viết phương trình các cạnh của đa giác ii) Viết phương trình đường thẳng đi qua đỉnh nào đó (đỉnh chẳng hạn) và qua M, giả sử đường thẳng này cắt biên của đa giác tại điểm B. iii) Kiểm tra điểm M có thuộc đoạn ? Nếu điểm M thuộc đoạn và không là một trong hai đầu mút, thì M là điểm trong đa giác; nếu M là một trong hai đầu mút thì M là điểm trên biên; nếu M thuộc phần kéo dài của thì M là điểm ngoài của đa giác Nhập dữ liệu > > > n:=6: > a:=[1,2,5/2,2,1,1/2]; b:=[0,0,sqrt(3)/2,2*sqrt(3)/2,2*sqrt(3)/2,sqrt(3)/2]; 56 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > point(M,[2,0.5]),point(A0,[0,0]),point(A1,[a[1],b[1]]), point(A2,[a[2],b[2]]),point(A3,[a[3],b[3]]),point(A4,[a [4],b[4]]),point(A5,[a[5],b[5]]),point(A6,[a[6],b[6]]); > segment(A0A1,[A0,A1]),segment(A1A2,[A1,A2]),segment(A2A 3,[A2,A3]),segment(A3A4,[A3,A4]),segment(A4A5,[A4,A5]), segment(A5A6,[A5,A6]),segment(A6A1,[A6,A1]); > segment(A1M,[A1,M]),line(d,[A1,M]),line(l34,[A3,A4]); > intersection(N, l34, d);segment(MN,[M,N]); > draw([M,N,A1M,MN, A1A2,A2A3,A3A4,A4A5,A5A6,A6A1],printtext=true,title="ĐA GIÁC"); 57 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > Phương trình tham số các cạnh đa giác > for i to n-1 do print(`Phuong trinh tham so canh [`,i,i+1,`]`); x[i,i+1] := t[i,i+1]*a[i]+(1-t[i,i+1])*a[i+1]; y[i,i+1] := t[i,i+1]*b[i]+(1-t[i,i+1])*b[i+1]; `------------------------------------` end do; print(`Phuong trinh tham so cua duong thang A1M`); x:= (1-t)*a[1]+t*HorizontalCoord(M); y:= (1-t)*b[1]+t*VerticalCoord(M); 58 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > Giải hệ phương trình tìm giao điểm của đường thẳng với các cạnh của đa giác. Hệ phương trình cho nghiệm t và Nếu hệ phương trình cho nghiệm t>1, chứng tỏ 59 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên điểm M là điểm trong của đoạn thẳng . Từ đó suy ra điểm M là điểm trong của đa giác. Nếu t=1, suy ra điểm M thuộc biên đa giác. Nếu t<1, chứng tỏ điểm M là điểm ngoài đa iác. > for i from 2 to n-1 do if 1=1 then Delta[i]:=a[i]*VerticalCoord(M)-HorizontalCoord(M)*b[i]: end if; if (Delta[i]0) then N[i]:=solve({(1-t)*a[1]+t*HorizontalCoord(M)=t[i,i+1]*a[i]+(1- t[i,i+1])*a[i+1],(1-t)*b[1]+t*VerticalCoord(M)=t[i,i+1]*b[i]+(1- t[i,i+1])*b[i+1]},{t,t[i,i+1]}); end if; if (rhs(N[i][1])>1)and(rhs(N[i][2])>0)and (rhs(N[i][2])<1) then print(N[i][1],N[i][2],`Delta[`,i,`]=`,Delta[i]); print(` ĐIỂM M LÀ ĐIỂM TRONG ĐA GIÁC`); end if; end do; > 60 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên TỨ GIÁC ĐẦY ĐỦ > restart:with(geometry):with(student): ĐỀ BÀI: Tứ giác đầy đủ là tứ giác có các cặp cạnh đối cắt nhau. Tứ giác đầy đủ có nhiều tính chất hay. Trong bài này ta kiểm tra một số tính chất nhờ Maple. a) ABCD là tứ giác đầy đủ (có thể lồi hoặc lõm), E là giao điểm của hai đường thẳng AB và CD;F là giao điểm của AC và BD. M1, M2 và M3 lần lượt là trung điểm của AC, BD và EF; khi đó M1, M2 và M3 thuộc một đường thẳng, ký hiệu đường thẳng này là l1. b) Trực tâm các tam giác ABF, DCF, BCE, ADE thuộc một đường thẳng, ký hiệu đường thẳng này là l2. c) Chứng minh rằng l1 vuông góc với l2. d) Bốn đường tròn ngoại tiếp bốn tam giác ABF, DCF, BCE, ADE đồng quy tại điểm J. e) Bốn tâm đường tròn ở ý d) và điểm J thuộc một đường tròn. LỜI GIẢI: > point(A,[0,0]),point(B,[2,0]),point(C,[4,2]),point(D,[1 ,5]); > line(d1,[A,B]),line(d2,[B,C]),line(d3,[C,D]),line(d4,[D ,A]); > intersection(E,d2,d4),intersection(F,d1,d3); line(d5,[E,F]),line(d6,[B,D1]); segment(AB,[A,B]),segment(BC,[B,C]),segment(CD1,[C,D]), segment(DA,[D,A]); segment(AC,[A,C]),segment(EF,[E,F]),segment(BD,[B,D]); segment(AE,[A,E]),segment(EB,[E,B]),segment(BF,[B,F]),s egment(FC,[F,C]); 61 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > midpoint(M1,AC),midpoint(M2,BD1),midpoint(M3,EF);segmen t(M1M2,[M1,M2]),segment(M2M3,[M2,M3]),segment(M1M3,[M1, M3]); Kiểm tra tính thẳng hàng của 3 điểm M1, M2, M3 > AreCollinear(M1,M2,M3);line(l1,[M1,M2]); > triangle(ABE,[A,B,E]),triangle(BCF,[B,C,F]),triangle(AD 1F,[A,D,F]),triangle(CDE,[C,D,E]); orthocenter(H1,ABE),orthocenter(H2,BCF),orthocenter(H3, ADF),orthocenter(H4,CDE); segment(H1H2,[H1,H2]),segment(H2H3,[H2,H3]),segment(H3H 4,[H3,H4]),segment(H1H4,[H1,H4]); > > AreCollinear(H1,H2,H3,H4);line(l2,[H3,H2]); Kiểm tra sự vuông góc của l1 và l2 > Bốn đường tròn ngoại tiếp bốn tam giác: > circle(C1,[A,B,E],[x,y]):circle(C2,[B,C,F],[x,y]):circl e(C3,[A,D1,F],[x,y]):circle(C4,[C,D1,E],[x,y]): Equation(C1): 62 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Kiểm tra tính đồng quy của 4 đường tròn > solve({Equation(C1),Equation(C2),Equation(C3),Equation(C 4)},{x,y}); > draw([AB(color=green),BC(color=green),CD1(color=green), D1A(color=green),AE(color=green),EB(color=green), BF(color=green),FC(color=green),AC(color=blue), BD1(color=blue),EF(color=blue),M1(color=red),M2(color=r ed), M3(color=red),M1M2(color=red),M2M3(color=red), M1M3(color=red),H1H2(color=red),H2H3(color=green),C1,C2 ,C3,C4 ],#axes=none, printtext=true, title="TỨ GIÁC ĐẦY ĐỦ"); 63 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên TÍNH DIỆN TÍCH ĐA GIÁC BẤT KỲ ĐỀ BÀI: Trên mặt phẳng cho n điểm , nối các điểm theo thứ tự đó ta được đa giác lồi hoặc lõm. Hãy tính diện tích đa giác LỜI GIẢI Định nghĩa: Đa giác được gọi là định hướng dương, nếu đi theo thứ tự sẽ thấy miền đa giác ở phía tay trái. ) Trưa títíác O với O là gốc tọa độ. Giả sử tọa độ các điểm là , khi đó diện tích tam giác được tính bởi công thức: Chú ý rằng với công thức này diện tích tam giác có thể nhận giá trị dương hoặc âm, tùy theo tam giác được định hướng dương hay âm. Khi đó diện tích của đa giác ... được tính theo công thức (xem [4], trang 14). Nhận xét: Công thức nhận được ở trên đúng với đa giác lồi và lõm không tự cắt. CHƢƠNG TRÌNH TÍNH DIỆN TÍCH ĐA GIÁC > restart:with(student): with(geometry): n:=1000: 64 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên ################################################################ ##### for i from 1 to n do a[i]:=i; b[i]:=i^2; end do: #a[1]:=2: #a[2]:=4: #a[3]:=6: #a[4]:=8: #a[5]:=10: #a[6]:=9: #a[7]:=7: #a[8]:=5: #a[9]:=3: #a[10]:=1: #b[1]:=1: #b[2]:=4: #b[3]:=9: #b[4]:=16: #b[5]:=25: #b[6]:=7: #b[7]:=5: #b[8]:=5: #b[9]:=3: #b[10]:=1: ################################################################ L:=[seq(dt[i],i=1..n-1)]: for i to n-1 do dt[i] := evalf((a[i]*b[i+1]-a[i+1]*b[i])*(1/2)); end do: ########################################################## Dt:=add(dt[i],i=1..n-1); S:=evalf(Dt-(a[1]*b[n]-a[n]*b[1])*(1/2)); > > 65 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên THUẬT TOÁN KIỂM TRA TÍNH LỒI CỦA ĐA GIÁC ĐA GIÁC LỒI Đa giác lồi là đối tượng quan trọng của hình học, trong hầu hết các đa giác mà toán học nghiên cứu là đa giác lồi, như hình tam giác, hình thang, hình bình hành,... Tính lồi của đa giác không những chỉ có ý nghĩa trong hình học phẳng mà còn cả trong hình học không gian, chẳng hạn như: hình chóp, chóp cụt là lồi khi và chỉ khi đa giác đáy của nó là đa giác lồi. Điều này vẫn còn đúng cho hình lăng trụ. KIỂM TRA TÍNH CHẤT LỒI CỦA ĐA GIÁC Định nghĩa: Đa giác lồi là đa giác mà nếu ta kéo dài bất cứ cạnh của nó thì toàn bộ đa giác thuộc về một nửa mặt phẳng có bờ là cạnh kéo dài đó. Đa giác lõm là đa giác không lồi, hay nói cách khác là, tồn tại một cạnh nếu ta kéo dài cạnh đó thì đa giác thuộc về cả hai nửa mặt phẳng có bờ là cạnh kéo dài đó. BÀI TOÁN:Trên mặt phẳng cho n điểm A[1], A[2],...,A[n], với tọa độ tương ứng là (a[i],b[i]), i=1..n. Cần kiểm tra tính chất lồi của đa giác A[1]A[2]...A[n]. LỜI GIẢI ) NhậHai điểm M(x1, y1) và N(x2, y2) ở cùng một phía của đường thẳng ax+by+c=0, nếu và chỉ nếu thỏa mãn điều kiện (ax1+by1+c).(ax2+by2+c)>0. 2) Lập một danh sách a:=[a[1], a[2],..., a[n], a[1]] và một danh sách b= [b[1], b[2],..., b[n], b[1]] . 3) Viết phương trình đường thẳng các cạnh l[i,i+1]của đa giác đi qua 2 đỉnh liên tiếp A[i] và A[i+1], riêng đường thẳng cuối cùng ký hiệu là l[n,1] đi qua hai đỉnh A[n] và A[1]. Giả sử các đường thẳng đó có dạng: l[i,i+1]:=m[i]x[j]+n[i].y[j]+c[i]=0, j=1..n. -) Tính các đại lượng d[j,i]=m[i]x[j]+n[i].y[j]+c[i], j=1..n. Nếu tồn tại i0 và tồn tại j0 và j1 sao cho d[j0,i0].d[j1,i0]<0, chứng tỏ có hai đỉnh thuộc về hai phía của đường thẳng l[i0,i0+1], từ đó kết luận đa giác đã cho là đa giác lõm. Vẽ đa giác Nhập đa giác: 66 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Có nhiều cách xác định một đa giác, nhưng có 2 cách thông dụng nhất thường được sử dụng, đó là: -) Cho tập hợp tọa độ các đỉnh. -) Cho phương trình đường thẳng chứa các cạnh của đa giác. > > > n:=8: > a:=array(1..n);b:=array(1..n); > a:=[1,3,2,-2,-3,-3,-2,2,3];b:=[0,2,3,3,2,-2,-3,-3,-2]; > A[1]:=point(A1,[a[1],b[1]]): A[2]:=point(A2,[a[2],b[2]]): A[3]:=point(A3,[a[3],b[3]]): A[4]:=point(A4,[a[4],b[4]]): A[5]:=point(A5,[a[5],b[5]]): A[6]:=point(A6,[a[6],b[6]]): A[7]:=point(A7,[a[7],b[7]]): A[8]:=point(A8,[a[8],b[8]]): 67 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > segment(A1A2,[A[1],A[2]]),segment(A2A3,[A[2],A[3]]),seg ment(A3A4,[A[3],A[4]]),segment(A4A5,[A[4],A[5]]), segment(A5A6,[A[5],A[6]]),segment(A6A7,[A[6],A[7]]),seg ment(A7A8,[A[7],A[8]]),segment(A8A1,[A[8],A[1]]): > draw([A1A2,A2A3,A3A4,A4A5,A5A6,A6A7,A7A8,A8A1],printtex t=true,title="ĐA GIÁC"); Kiểm tra tính chất lồi của đa giác > for i to n do l[i]:=(b[i+1]-b[i])*x-(a[i+1]-a[i])*y- a[i]*b[i+1]+a[i+1]*b[i]: end do: > n:=8: lom := 0; for i to n do 68 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên duong := 0: am := 0: for j to n do d[j] := evalf(subs(x = a[j],y = b[j],l[i])); if d[j] > 0 then duong := duong+1; elif d[j] < 0 then am := am+1; end if; end do: if (duong+am>0)and( duong*am>0) then lom := lom+1;break; end if; end do: if lom > 0 then print(`ĐA GIÁC ĐÃ CHO LÀ LÕM`); else print(`ĐA GIÁC ĐÃ CHO LÀ LỒI`); end if; > 69 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên KIỂM TRA TÍNH LỒI CỦA ĐA GIÁC Có nhiều tiêu chuẩn để khẳng định một đa giác là lồi hay lõm, ở bài trƣớc ta đã sử dụng định nghĩa truyền thống về đa giác lồi. Trong bài này, ta sử dụng một tiêu chuẩn khác để đa giác lồi, đó là: Điều kiện cần và đủ đề đa giác lồi là mọi góc trong của nó nhỏ hơn π. Áp dụng tiêu chuẩn trên, ta có thuật toán kiểm tra tính lồi của một đa giác khi biết tọa độ các đỉnh > restart: with(student):with(geometry): NHẬP TỌA ĐỘ CÁC ĐỈNH > n:=8: a:=array[1..n]: > a:=[1,2,3,3,2,1,0,0,1]; b:=[0,0,1,2,3,3,2,1,0]; VÍ DỤ VỀ ĐA GIÁC LỒI Vẽ đa giác > point(A1,[a[1],b[1]]),point(A2,[a[2],b[2]]),point(A3,[a [3],b[3]]),point(A4,[a[4],b[4]]),point(A5,[a[5],b[5]]), point(A6,[a[6],b[6]]),point(A7,[a[7],b[7]]),point(A8,[a [8],b[8]]); > segment(A1A2,[A1,A2]),segment(A2A3,[A2,A3]),segment(A3A 4,[A3,A4]),segment(A4A5,[A4,A5]), segment(A5A6,[A5,A6]),segment(A6A7,[A6,A7]),segment(A7A 8,[A7,A8]),segment(A8A1,[A8,A1]): > draw([A1A2,A2A3,A3A4,A4A5,A5A6,A6A7,A7A8,A8A1],printtex t=true,title="ĐA GIÁC"); 70 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > Không giảm tính tổng quát, ta giả sử đa giác có hƣớng dƣơng, khi đó xuất phát từ đỉnh A[1], đi tới các đỉnh A[2]...A[n], và cuối cùng về A[1]. Khi đi từ cạnh A[i-1]A[i] sang cạnh A[i]A[i+1], ta phải quay một góc α[i]. Khi đó ba mệnh đề sau đây là tƣơng đƣơng: i) Góc thỏa mãn bất đẳng thức 0<α[i]<π. ii) sinα[i]>0. iii) Δ[i]=u[i].v[i+1]-u[i+1].v[i]>0, ở đây (u[i], v[i]) và (u[i+1], v[i+1]) là tọa độ các vector A[i-1]A[i] và A[i]A[i+1]. Sau đây ta sử dụng iii) để kiểm tra tính lồi của đa giác. Ta có mệnh đề: Điều kiện cần và đủ để đa giác lồi là mọi góc trong của nó nhỏ hơn π. Tính tọa độ các vector cạnh của đa giác: > for i to n-1 do u[i]:=a[i+1]-a[i]: 71 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên v[i]:=b[i+1]-b[i]: end do; u[n]:=a[1]-a[n]; v[n]:=b[1]-b[n]; Xét dấu các Δ[i], nếu Δ[i]>0 với mọi i=1..n thì đa giác lồi > dem:=0: for i to n-1 do Delta[i]:=evalf(u[i]*v[i+1]-u[i+1]*v[i]); if Delta[i]>0 then dem:=dem+1; print(dem); 72 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên end if; end do; Delta[n]:=evalf(u[n]*v[1]-u[1]*v[n]); if Delta[n]>0 then dem:=dem+1; end if; if dem=n then print(`ĐA GIÁC ĐÃ CHO LÀ ĐA GIÁC LỒI`); else print(`ĐA GIÁC ĐÃ CHO LÀ ĐA GIÁC LÕM`); end if; 73 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > ################################################################ ################## ################################################################ ################### ################################################################ #################### VÍ DỤ VỀ ĐA GIÁC LÕM > restart: with(student):with(geometry): > n:=8: a:=array[1..n]: > a:=[1,2,1,3,2,1,0,0,1]; b:=[0,0,1,2,3,3,2,1,0]; > Vẽ đa giác > point(A1,[a[1],b[1]]),point(A2,[a[2],b[2]]),point(A3,[a [3],b[3]]),point(A4,[a[4],b[4]]),point(A5,[a[5],b[5]]), point(A6,[a[6],b[6]]),point(A7,[a[7],b[7]]),point(A8,[a [8],b[8]]); > segment(A1A2,[A1,A2]),segment(A2A3,[A2,A3]),segment(A3A 4,[A3,A4]),segment(A4A5,[A4,A5]), segment(A5A6,[A5,A6]),segment(A6A7,[A6,A7]),segment(A7A 8,[A7,A8]),segment(A8A1,[A8,A1]): > draw([A1A2,A2A3,A3A4,A4A5,A5A6,A6A7,A7A8,A8A1],printtex t=true,title="ĐA GIÁC"); 74 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > Không giảm tính tổng quát, ta giả sử đa giác có hƣớng dƣơng, khi đó xuất phát từ đỉnh A[1], đi tới các đỉnh A[2]...A[n], và cuối cùng về A[1]. Khi đi từ cạnh A[i-1]A[i] sang cạnh A[i]A[i+1], ta phải quay một góc α[i]. Khi đó ba mệnh đề sau đây là tƣơng đƣơng: i) Góc thỏa mãn bất đẳng thức 0<α[i]<π. ii) sinα[i]>0. iii) Δ[i]=u[i].v[i+1]-u[i+1].v[i]>0, ở đây (u[i], v[i]) và (u[i+1], v[i+1]) là tọa độ các vector A[i-1]A[i] và A[i]A[i+1]. Sau đây ta sử dụng iii) để kiểm tra tính lồi của đa giác. Ta có mệnh đề: Điều kiện cần và đủ để đa giác lồi là mọi góc trong của nó nhỏ hơn π. Tính tọa độ các vector cạnh của đa giác: > for i to n-1 do u[i]:=a[i+1]-a[i]: 75 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên v[i]:=b[i+1]-b[i]: end do; u[n]:=a[1]-a[n]; v[n]:=b[1]-b[n]; Xét dấu các Δ[i], nếu Δ[i]>0 với mọi i=1..n thì đa giác lồi > dem:=0: for i to n-1 do Delta[i]:=evalf(u[i]*v[i+1]-u[i+1]*v[i]); if Delta[i]>0 then dem:=dem+1; print(dem); 76 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên end if; end do; Delta[n]:=evalf(u[n]*v[1]-u[1]*v[n]); if Delta[n]>0 then dem:=dem+1; end if; if dem=n then print(`ĐA GIÁC ĐÃ CHO LÀ ĐA GIÁC LỒI`); else print(`ĐA GIÁC ĐÃ CHO LÀ ĐA GIÁC LÕM`); end if; 77 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên TRỤC ĐẲNG PHƢƠNG-TÂM ĐẲNG PHƢƠNG Trong Maple đã có sẵn các lệnh tìm trục đẳng phương của hai đường tròn và tìm tâm đẳng phương của 3 đường tròn. Trong bài này chúng ta xây dựng trục đẳng phương và tâm đẳng phương từ các lệnh đơn giản của Maple. TRỤC ĐẲNG PHƢƠNG CỦA 2 ĐƢỜNG TRÒN > restart: with(student):with(geometry): > Trucdangphuong := proc(a1,b1,c1,a2,b2,c2,a3,b3,c3) local x,y,vt, L:=[op(L),vt[3]],truc12,truc23,truc31,N; description "add a list of numbers and multiply by a constant"; > vt[1]:=x^2+y^2-2*a1*x-2*b1*y+c1; > vt[2]:=x^2+y^2-2*a2*x-2*b2*y+c2; vt[3]:=x^2+y^2-2*a3*x-2*b3*y+c3; if ((a1=a2) and (b1=b2))then print(`hai đường tròn vt1 và vt2 đồng tâm, không có trục đẳng phương`); else print(`Trục đẳng phương của hai đường tròn vt1 và vt2 là`,vt[1]- vt[2]): end if; if ((a2=a3) and (b2=b3))then print(`hai đường tròn vt2 và vt3 đồng tâm, không có trục đẳng phương`); else print(`Trục đẳng phương của hai đường tròn vt2 và vt3 là`,vt[2]- vt[3]): end if; if ((a3=a1) and (b3=b1))then print(`hai đường tròn vt3 và vt1 đồng tâm, không có trục đẳng phương`); else print(`Trục đẳng phương của hai đường tròn vt3 và vt1 là`,vt[3]- vt[1]): end if; truc12:=vt[1]-vt[2]; truc23:=vt[2]-vt[3]; truc31:=vt[3]-vt[1]; print(` Tâm đẳng phương của ba đường tròn là `); N:=solve({truc12,truc23,truc31},{x,y}); end proc: 78 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > Trucdangphuong(0,0,-9,0,4,-16,7,0,4); > > TỨ GIÁC NỘI TIẾP ĐỀ BÀI: Cho 4 đường tròn O1, O2, O3, O4. Biết rằng O1 tiếp xúc với O2 tại M12, O2 tiếp xúc với O3 tại M23,O3 tiếp xúc với O4 tại M34,O4 tiếp xúc với O1 tại M41. Chứng minh rằng 4 điểm M12, M23, M34, M41 thuộc một đường tròn. LỜI GIẢI: > restart: with(student):with(geometry): > HaiDuongTron:= proc(a1,b1,R1,a2,b2,R2) local x,y; description "add a list of numbers and multiply by a constant"; point(C1,[a1,b1]); point(C2,[a2,b2]); circle(vt1, [C1,R1],[x, y]);circle(vt2, [C2,R2],[x, y]); intersection(M12,vt1, vt2); end proc: > HaiDuongTron(0,0,1,3,0,2); > M12; 79 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > > THUẬT TOÁN KIỂM TRA TÍNH ĐƠN CỦA ĐA GIÁC KIỂM TRA TÍNH CHẤT ĐƠN CỦA ĐA GIÁC Định nghĩa: Đa giác đơn là đa giác không có hai cạnh nào cắt nhau. Đa giác không đơn (còn gọi là đa giác tự cắt) là đa giác tồn tại một cặp cạnh cắt nhau. Chú ý: Cạnh của đa giác là đoạn thẳng có hai đầu mút là hai đỉnh liên tiếp của đa giác, chứ không phải đường thẳng chứa cạnh đó. Vì vậy, khái niệm hai cạnh cắt nhau phải hiểu là hai đoạn thẳng cắt nhau. BÀI TOÁN:Trên mặt phẳng cho n điểm A[1], A[2],...,A[n], với tọa độ tương ứng là (a[i],b[i]), i=1..n. Cần kiểm tra đường gấp khúc khép kín A[1]A[2]...A[n]A[1] có tự cắt hay không? LỜI GIẢI 1) Lập một danh sách a:=[a[1], a[2],..., a[n], a[1]] và một danh sách b= [b[1], b[2],..., b[n], b[1]] . ) Viếtrìạ[i]A[i+1], riêhẳùng cómú đvà Vẽ đa giác Nhập đa giác: Nhập tập hợp tọa độ các đỉnh. của đa giác. Giả sử cho n đỉnh A1, A2,...An cùng với tọa độ của chúng. Để tiện cho việc lập trình về dau, ta lưu hoành độ vào một danh sách a và lưu tung độ vào danh sách b, nhưng mỗi danh sách có n+1 thành phần, thành phần thứ n+1 bẳng thành phần thứ 1. Nói rõ hơn: 80 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên tương tự như vậy, ta có danh sách b chứa các tung độ của các đỉnh, và cũng có (n+1) phần tử và phần tử cuối cùng bằng phần tử đầu tiên. > restart: with(student): with(geometry): n:=8; > a:=[0,1,0,2.5,3,3,1,-1,0]; b:=[0,-1,4,1,3,4,4,1,0]; > point(A1,[a[1],b[1]]),point(A2,[a[2],b[2]]),point(A3,[a[3],b[3]] ),point(A4,[a[4],b[4]]),point(A5,[a[5],b[5]]), point(A6,[a[6],b[6]]),point(A7,[a[7],b[7]]),point(A8,[a[8],b[8]] ); > segment(A1A2,[A1,A2]),segment(A2A3,[A2,A3]),segment(A3A4,[A3,A4] ),segment(A4A5,[A4,A5]), segment(A5A6,[A5,A6]),segment(A6A7,[A6,A7]),segment(A7A8,[A7,A8] ),segment(A8A1,[A8,A1]): > draw([A1A2,A2A3,A3A4,A4A5,A5A6,A6A7,A7A8,A8A1],printtext=true,ti tle="ĐA GIÁC TỰ CẮT"): THUẬT TOÁN KIỂM TRA TÍNH CHẤT TỰ CẮT CỦA ĐA GIÁC PHƯƠNG TRÌNH THAM SỐ CÁC CẠNH CỦA ĐA GIÁC > for i to n-1 do print(`Phuong trinh tham so canh A[`,i,i+1,`]`); x[i,i+1]:=t[i,i+1]*a[i]+(1-t[i,i+1])*a[i+1]; y[i,i+1]:=t[i,i+1]*b[i]+(1-t[i,i+1])*b[i+1]; `------------------------------------` end do; > LẬP HỆ PHƯƠNG TRÌNH TÌM GIAO ĐIỂM CÁC CẠNH CỦA ĐA GIÁC > for i to n do 81 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên for j from i+2 to n do print(x[i, i+1] = x[j, j+1], y[i, i+1] = y[j, j+1]) end do; print(`----------------------------------------`) end do; GIẢI HỆ PHƯƠNG TRÌNH TÌM GIAO ĐIỂM CÁC CẠNH CỦA ĐA GIÁC TỰ CẮT > for i to n do for j from i+2 to n do N := solve({x[i,i+1] = x[j,j+1], y[i,i+1] = y[j,j+1],0 < t[i,i+1],0 < t[j,j+1],t[i,i+1]<1,t[j,j+1]<1},{t[i,i+1],t[j,j+1]}); print(N); end do: end do: > > ELIP ĐỀ BÀI: Tìm quỹ tích các điểm mà từ đó kẻ được 2 tiếp tuyến tới elip và vuông góc với nhau. LỜI GIẢI: > restart:with(geometry):with(student): a:=2;b:=3; E:=x^2/a^2+y^2/b^2=1: > tt1:=A1*(x-xM)+B1*(y-yM)=0;tt2:=A2*(x-xM)+B2*(y-yM)=0; > tt1:=expand(A1*(x-xM)+B1*(y-yM)=0); tt2:=expand(A2*(x-xM)+B2*(y-yM)=0); 82 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên > pt1:=simplify(expand(A1^2*a^2+B1^2*b^2=(-A1*xM-B1*yM)^2)); pt2:=expand(A2^2*a^2+B2^2*b^2=(-A2*xM-B2*yM)^2); pt3:=A1*A2+B1*B2; > solve({pt1,pt2,pt3,A1>0},{A1,A2,B1,B2}); > > 83 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên KẾT LUẬN Cũng như một số tác giả đi trước, luận văn đã sử dụng các lệnh có sẵn của Maple giải các bài toán hình học. Giúp cho giáo viên và học sinh giải bài toán hình hiệu quả hơn. Luận văn đã đạt được một số kết quả sau: -) Đã nêu một vài bài toán mà Maple chưa giải, sử dụng các lệnh có sẵn của Maple giải chúng, đó là: i) Kiểm tra tính lồi của một đa giác. ii) Tính diện tích một đa giác bất kỳ. iii) Kiểm tra một điểm có thuộc miền đa giác hay không. iv) Viết phương trình mặt phẳng phân giác của nhị diện. Vì thời gian có hạn, tác giả vẫn còn một số bài toán sau đây chưa thực hiện được: -) Kiểm tra tính lồi của khối đa diện. -) Kiểm tra một điểm thuộc miền trong của một đa giác lõm, không tự cắt. -) Dựng thiết diện của khối đa diện -) Sử dụng gói plots, plottools, draw giải bài toán quỹ tích. Tác giả sẽ cố gắng giải chúng trong thời gian sớm nhất. Luận văn còn nhiều hạn chế, chưa khai thác được nhiều thế mạnh của Maple. Rất mong sự góp ý của các thầy các cô và các bạn 84 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên TÀI LIỆU THAM KHẢO [1] Phạm Huy Điển,Phạm Cảnh Dương, Tạ Duy Phượng, Tính toán, lập trình & Giảng dạy Toán học trên Maple, NXB Khoa học và Kỹ thuật, Hà nội 2002. [2] Trịnh Thanh Hải, Giáo trình sử dụng phần mềm hỗ trợ dạy học toán, Thái Nguyên, 2005, www.mathvn.com. [3] Vũ Thanh Hiếu, Sách điện tử Môn giải tích toán học hàm số một biến, Luận văn Thạc sĩ Toán học, Trường Đại học khoa học-ĐHTN, 2011. [4] Β. Бляшке, круг и шар, наука, москва 1967. (Dịch từ nguyên bản tiếng Đức). [5] ài liệu hướng dẫn sử dụng maple bằng tiếng việt [6] 85 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Các file đính kèm theo tài liệu này:

  • pdfk2pi_net_su_dung_maple_giai_mot_so_dang_bai_toan_hinh_hoc_6882.pdf
Luận văn liên quan