85
1 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC KHOA HỌC NGUYỄN THỊ DUNG SỬ DỤNG MAPLE GIẢI MỘT SỐ BÀI TOÁN HÌNH HỌC LUẬN VĂN THẠC SỸ TOÁN HỌC THÁI NGUYÊN 2012

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

Embed Size (px)

Citation preview

Page 1: Sử dụng Maple giải một số dạng bài toán hình học

1 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

ĐẠI HỌC THÁI NGUYÊN

TRƢỜNG ĐẠI HỌC KHOA HỌC

NGUYỄN THỊ DUNG

SỬ DỤNG MAPLE GIẢI MỘT SỐ

BÀI TOÁN HÌNH HỌC

LUẬN VĂN THẠC SỸ TOÁN HỌC

THÁI NGUYÊN 2012

Page 2: Sử dụng Maple giải một số dạng bài toán hình học

2 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

LỜI NÓI ĐẦU

Trong vấn đề ứng dụng Maple vào giảng dạy toán học Phổ thông nói chung, vào

hình học sơ cấp nói riêng tuy đã được nhiều tác giả quan tâm, cho đến nay đã có

nhiều tài liệu nói về việc dạy và học toán có trợ giúp của Maple đã được xuất bản.

Tuy nhiên, tài liệu (cả tài liệu "truyền thống" cũng như tài liệu điện tử) việc ứng

dụng Maple vào giảng dạy hình học nói chung và hình học phổ thông nói riêng vẫn

còn ít, nhất là các tài liệu tiếng Việt. Với mong muốn đóng góp thêm một chút

công sức vào lĩnh vực ứng dụng tin học vào dạy toán và học toán, chúng tôi mạnh

dạn chọn đề tài này.

Trong Maple đã có cả một kho lệnh đồ sộ, đề cập đến hầu hết các vấn đề của Toán

học, vì vậy đề tài quan tâm đến việc khai thác, sử dụng các lệnh vào mục đích của

mình, đó là sử dụng Maple để giải một số bài toán hình học.

Luận văn gồm 3 chương:

Chương 1 trình bày tóm tắt về Maple nói chung và Maple-16 nói riêng. Giới thiệu

về giao diện và môi trường làm việc của Maple. Để sử dụng được Maple, người

đọc phải nắm vững phần này.

Chương 2 nói về Maple với các bài toán hình học phẳng. Theo gợi ý của [1], chúng

tôi nêu ra và giải quyết vài bài toán như:

-) Sử dụng Maple kiểm tra tính lồi của một đa giác.

-) Tính diện tích một đa giác (lồi hoặc lõm) không tự cắt.

-) Kiểm tra một điểm thuộc miền trong hay miền ngoài của một đa giác.

Chương 3 nói về các bài toán hình học không gian, sở dĩ phải chia thành hai

chương là vì trong hình học phẳng Maple có gói lệnh Geometry, còn trong hình

học không gian, Maple dùng gói lệnh Geom3d. Chúng tôi cũng nêu ra và sử dụng

các lệnh có sẵn giải một số bài toán như:

-) Viết phương trình mặt phẳng phân giác của nhị diện.

Page 3: Sử dụng Maple giải một số dạng bài toán hình học

3 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

-) Luận văn đóng góp một phần nhỏ trong vấn đề dạy hình học trong các trường

phổ thông. Nó giúp cho người dạy và người học có thể nhận được kết quả nhanh và

không tốn nhiều công sức.

Luận văn được hoàn thành dưới sự hướng dẫn tận tình của TS Nguyễn Văn Minh,

thầy đã động viên, giúp đỡ tôi rất nhiều trong suốt quá trình làm luận văn. Qua đây,

tôi xin được bày tỏ lòng biết ơn sâu sắc tới thầy.

Trong suốt quá trình học tập và làm luận văn, tác giả đã nhận được sự quan tâm

giúp đỡ của Khoa Toán, Phòng Đào tạo trường ĐHKH. Tác giả xin được bày tỏ

lòng biết ơn về sự giúp đỡ này.

Tôi xin bày tỏ lòng biết ơn tới gia đình tôi, cha mẹ và anh chị tôi, những người đã

nuôi nấng, cưu mang suốt cả cuộc đời. Tôi xin cám ơn các bạn cùng học thời Đại

học và Cao học, đã giúp đỡ tôi. trong thời kỳ học tập và viết luận văn.

Tác giả

Nguyễn Thị Dung

Page 4: Sử dụng Maple giải một số dạng bài toán hình học

4 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Chƣơng 1. GIỚI THIỆU VỀ MAPLE-16

GIAO DIỆN CỦA MAPLE-16

Maple được xây dựng và phát triển bởi công ty Waterloo Maple (địa chỉ website:

http://www.maplesoft.com), tính đến nay Maple đã có phiên bản thứ 16. Các phiên

bản về sau của 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. Chính những ưu điểm đó mà nhiều đề tài nghiên

cứu về sử dụng maple trong dạy toán và học toán. Maple đã góp phần làm thay đổi

hẳn cách dạy và học toán, tức là song song với lối giải truyền thống người dạy và

người học có thể giải quyết bài toán với sự giúp đỡ của Maple. Phương pháp này

đem đến cho người học một cách tiếp cận mới với toán học: sinh động, sáng tạo và

rèn luyện khả năng tự học, tự kiểm tra và nghiên cứu.

File

Gồm các lệnh tương tự như các trình soạn thảo văn bản thông thường như: New,

Open, Save, Save As...

Đặc biệt ở đây có lệnh Export As cho phép ta lưu dữ liệu ở các dạng khác nhau

như file maplet (khi lập trình có giao diện), file rtf , xuất ra web,.....

Edit

Menu này chứa các lệnh liên quan đến soạn thảo, giống như trong Word. Ngoài

các lệnh thông thường, chúng ta chú ý đến 1 số lệnh đặc biệt sau:

- Nhóm lệnh trong Split or Join: cho phép ta hợp hoặc tách các cụm xử lí. Thuật

ngữ "Cụm xử lí" có thể hiểu là một nhóm lệnh bắt đầu bởi dấu nhắc [>. Khi đó

trang làm việc sẽ bao gồm nhiều cụm xử lí.

- Nhóm lệnh Remove Output: Cho phép ta xóa nhanh các kết quả tính toán trên

trang làm việc. Nhờ tiện ích này mà khi không cần thiết ta có thể xóa các kết quả

và lưu file thì kích thước file thu được sẽ nhỏ đi rất nhiều.

- Go To Bookmark, chức năng này cho ta tìm nhanh đến Bookmark

Page 5: Sử dụng Maple giải một số dạng bài toán hình học

5 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

View

Ở đây chúng ta có 1 số lệnh đặc biệt hữu dụng như:

- Tools Bar, Context Bar, Status Bar:nó cho hiển thị thanh công cụ, có lợi cho

soạn thảo trên Maple.

- Expand Execution Group, Collapse Execution Group: mở, đóng cụm xử lí

hiện tại ở vị trí con trỏ (tức là chỉ hiển thị kết quả hay hiển thị cả phần lệnh Maple)

- Expand Document Block, Collapse Document Block: mở , đóng tất cả các cụm

xử lí trong trang làm việc.

- Inline Document Output: hiển thị hoặc không hiển thị việc đánh dòng.

- Slideshow: Cho phép chuyển ngay về trạng thái trình chiếu. Nếu chọn

Insert/Slideshow sẽ chuyển từ file đang soạn thảo sang trạng thái trình chiếu. Hiển

thị từng chương trong văn bản. Muốn ra khỏi trạng thái này, nhấn Esc.

- Show/Hide contents: Cho phép ẩn/hiện nội dung, input, output...Về Market của

trang, cho phép ẩn/hiện dấu về cụm xử lý cụm văn bản text, dấu section...

>

Insert - Insert/Text:

Chuyển sang chế độ soạn thảo văn bản, giống như nhấn T trên thanh công cụ,

tuy nhiên có một chút khác biệt, đó là: nếu nhấn vào "T" con trỏ màn hình chuyển

xuống cuối section đang soạn thảo, nếu dùng Insert/Text sau dấu [>, máy sẽ

chuyển sang màn hình soạn thảo text ngay tại con trỏ.

- 2-D Math:

Chuyển từ dạng văn bản text sang Maple.

- Insert/Execution Group: lệnh này cho phép chèn vào một cụm xử lý (Execution

Group), nghĩa là đưa dấu nhắc lệnh vào vị trí trước con trỏ (before cursor) hoặc sau

con trỏ (after cursor).

- Insert/Hyperlink: là một công cụ dịch chuyển con trỏ giữa các trang làm việc,

hoặc giữa các đoạn (paragraph) trong một trang làm việc.

- Hyperlink: cho phép thiết lập các liên kết.

Page 6: Sử dụng Maple giải một số dạng bài toán hình học

6 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Table: tạo bảng

Windows

View

format

MÔI TRƢỜNG TÍNH TOÁN

Cụm xử lý (Excution Group)

Cụm xử lýlà thành phần tính toán cơ bản trong môi trường làm việc của

Maple, có thể bao gồm các đối tượng cơ bản của Maplenhư lệnh, kết quả tính

toán,đồ thị... Có thể dễ dàng nhận biết một cụm xử lý bằng dấu ngoặc vuông

bên trái dấu nhắc lệnh của Maple.

Để tạo một cụm xử lý mới, ta kích chuột vào biểu tượng [> trên thanh công

cụ.

Lệnh và kết quả của Maple

Lệnh của Maple (Maple Input) Lệnh được nhập sau dấu nhắc lệnh "[>" và kết

thúc bởi dấu ":" hoặc dấu ";". Lệnh được thực hiện nếu ta ấn phím Enter khi con

trỏ ở trong cụm xử lý. Nếu kết thúc lệnh bằng dấu ";" kết quả sẽ hiển thị ngay ra

Page 7: Sử dụng Maple giải một số dạng bài toán hình học

7 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

màn hình, còn nếu kết thúc bằng dấu ":" thì Maplevẫn tiến hành tính toán bình

thường nhưng kết quả không hiển thị ra màn hình.

Chú ý: Lệnh trong Maple phân biệt chữ hoa và chữ thường. Có thể viết

nhiều lệnh thành một nhóm lệnh, khi gõ Enter, Maple sẽ thực hiện cả nhóm

lệnh đó. Các lệnh trong nhóm có thể viết trên cùng một dòng, hoặc ngắt dòng

bằng cách ấn Shift + Enter.

Maplecó hai dạng lệnh: lệnh trơ và lệnh trực tiếp, hai dạng lệnh này luôn đi theo

cặp và cú pháp của chúng chỉ khác nhau ở chỗ chữ cái đầu tiên trong tên lệnh của

lệnh trơ viết in hoa. Lệnh trực tiếp cho ta kết quả tính toán, còn lệnh trơ chỉ cho ta

biểu thức tượng trưng. Kết quả của việc tính toán (Maple Output)hiện trên màn

hình được mặc định có màu xanh co ban.

Mục (Section)

Một trang làm việc (worksheet) trong Maplethường bao gồm nhiều mục,

mỗi mục có thể chứa những đoạn(paragraph) và những mục con(subsection).

Một mục trong trang làm việc của Maplecũng tương tự như một mục trong các

văn bản thông thường. Tuy nhiên điều đặc biệt là Maplecó khả năng đóng gói:

Page 8: Sử dụng Maple giải một số dạng bài toán hình học

8 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

ta có thể mở một mục ra đọc hoặc gói lại khi đã đọc xong bằng cách kích chuột

vào nút chỉ mục đứng ở đầu mục.

Muốn đưa thêm một mục mới vào trang văn bản ta đưa con trỏ màn hình lên

ngang với với mục đó, sau đó sử dụng chức năng Insert → Section. Muốn thêm

một mục con vào trong một mục ta đưa con trỏ màn hình lên ngang với với mục

đó, sau đó sử dụng chức năng Insert → Subsection.

Siêu liên kết (Hyperlink)

Một siêu liên kết là một đối tượng mà nếu ta kích hoạt vào đó thì con trỏ sẽ được di

chuyển đến một đoạn, một mục hay một trang làm việc khác. Để tạo siêu liên kết ta

đưa con trỏ đến vị trí đặt siêu liên kết rồi chọn Insert → Hyperlink. Trong hộp

thoại Hyperlink Properties, nhập nhóm kí tự đại diện vào ô Link Texthoặc chọn

nút check box Imagerồi kích chuột vào nút lệnh Choose Image...để chọn hình ảnh

đại diện cho Hyperlink. Tại hộp cuốn Type, chọn Worksheet sau đó nhập tên file

cần liên kết tới vào ô Target, hoặc chọn nút lệnh Browse... để duyệt tìm file. Nhập

tên của bookmark (nếu có) vào ô Bookmark.

Một số quy ước, kí hiệu trong Maple

Page 9: Sử dụng Maple giải một số dạng bài toán hình học

9 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Các phép toán số học: phép cộng (+), phép trừ (-), phép nhân (*), phép chia

(/), phép lũy thừa (^) được viết trực tiếp vào dòng lệnh và thực hiện theo thứ tự

quen biết.Cách viết các hàm sơ cấp (sin, ln...) cũng được viết trực tiếp trong

dòng lệnh, nhưng phải lưu ý là biến số phải để trong ngoặc đơn; hàm tang

không viết là tg(x) mà viết tan(x), arctang(x) không viết là arctg(x) mà viết

arctan(x); hàm cotang không viết là cotg(x) và cũng không viết là ctg(x) mà

viết cot(x); hàm mũ viết là exp(x), số e viết là exp(1); căn bậc hai của x viết

là sqrt(x),

Số π có thể dùng kí hiệu "pi" hoặc "Pi", một chú ý thú vị là maple phân biệt

"pi" (viết thường) và "Pi" (viết hoa), chẳng hạn viết sin(pi) và sin(Pi) sẽ cho kết

quả trên màn hình khác nhau về hình thức.

Luôn nhớ là kết thúc lệnh luôn luôn là dấu ":" hoặc ";". Nếu kết thúc lệnh

bằng dấu hai chấm thì kết quả không hiện ra trên màn hình, còn kết thúc bằng

dấu chấm phảy thì kết quả hiện ra trên màn hình.

Muốn thực hiện lệnh nào thì đưa con trỏ màn hình về dòng lệnh đó hoặc

cụm xử lý có dòng lệnh đó rồi nhấn Enter.

Page 10: Sử dụng Maple giải một số dạng bài toán hình học

10 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Mỗi lệnh được viết trên một dòng với độ dài tùy ý, tuy nhiên có thể ngắt

dòng bằng cách nhấn tổ hợp Ship+Enter.

Cần viết các lệnh theo thứ tự trước sau, vì lệnh sau có thể dùng kết quả của

lệnh trước.

Muốn thực hiện nhiều lệnh chỉ bằng một lần nhấn Enter, ta đưa chúng vào

một cụm xử lý.

Chú ý 1.4.

Các lệnh của Maplerất phong phú, tuy nhiên ở đây chúng tôi chỉ giới thiệu một số

lệnh cơ bản trong phạm vi ứng dụng khi làm việc với hàm số một biến. Nếu muốn

tìm hiểu sâu hơn về một lệnh nào đó, trên màn hình làm việc của Maple, ở chế độ

gõ công thức toán (Math)hoặc sau dấu nhắc lệnh, ta chỉ cần gõ "[> ?<tên lệnh>;"

rồi ấn phím Enter, khi đó cú pháp đầy đủ của lệnh này sẽ được hiển thị để bạn

tham khảo.Ví dụ, khi muốn tìm hiểu về lệnh tính tích phân, ta gõ "[> ?int;" rồi ấn

phím Enter, hướng dẫn về lệnh sẽ hiển thị để trợ giúp cho người sử dụng.

LẬP TRÌNH TRÊN MAPLE

CÁC LỆNH LẬP TRÌNH CƠ BẢN

Vòng lặp while (Vòng lặp không xác định)

Cấu trúc cú pháp:

Page 11: Sử dụng Maple giải một số dạng bài toán hình học

11 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

While <điều kiện> do <dãy lệnh> end do;

Chức năng:

Vòng lặp whilecho phép lặp chuỗi các câu lệnh giữa dovà end dokhi mà điều kiện

condition vẫn còn đúng (tức là biểu thức điều kiện cho giá trị true). Điều kiện

condition được kiểm tra ngay tại đầu mỗi vòng lặp, nếu nó thỏa mãn (giá trị của

nó là đúng) thì các câu lệnh bên trong được thực hiện, sau đó lại tiếp tục kiểm tra

điều kiện condition cho đến khi điều kiện không còn thỏa mãn nữa.Vòng lặp

whilethường được sử dụng khi số lần lặp một hay một chuỗi biểu thức là không

xác định rõ, đồng thời ta muốn các biểu thức đó cần được lặp trong khi một điều

kiện nào đó còn được thỏa mãn.

Điều kiện condition trong vòng lặp phải là một biểu thức boolean, tức là giá trị của

nó chỉ có thể là đúng hoặc sai, nếu không thì sẽ sinh ra lỗi.

Trong trường hợp muốn thoát ra khỏi vòng lặp ngay từ trong giữa vòng lặp, ta có

thể thực hiện bằng cách dùng câu lệnh RETURN, break hoặc quit.

Chú ý rằng vòng lặp while- do- end do; không bắt buộc phải nằm trên nhiều dòng

lệnh nhưng người ta thường viết trên nhiều dòng để câu lệnh dễ đọc và dễ hiểu

hơn.

Vòng lặp Whilecho phép lặp chuỗi các câu lệnh nằm giữa do và od khi mà điều

kiện vẫn còn đúng.

Vòng lặp for (Vòng lặp xác định)

Cấu trúc cú pháp:

for <name> from <start> by <change> to <finishs>

<tatement sequence>

end do;

Hoặc dạng phát biểu khác:

for <name> in <expression> do

<statement sequence>

Page 12: Sử dụng Maple giải một số dạng bài toán hình học

12 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

end do;

Chức năng:

Vòng lặp forđược dùng để lặp một chuỗi các biểu thức được đặt giữa dovà end do,

mỗi lần lặp tương ứng với một giá trị phân biệt của biến chỉ số nameđứng sau từ

khoá for. Ban đầu, giá trị startđược gán cho biến chỉ số. Nếu giá trị của biến

namenhỏ hơn hay bằng giá trị finish thì chuỗi lệnh nằm giữa dovà end dođược

thực hiện, sau đó biến nameđược gán giá trị tiếp theo bằng cách cộng thêm vào nó

giá trị change (name:=name+change). Sau đó, biến nameđược so sánh với finish

để quyết định xem việc thực hiện chuỗi lệnh có được tiếp tục nữa không. Quá trình

so sánh biến chỉ số name và thực hiện chuỗi lệnh được lặp liên tiếp cho đến khi giá

trị của biến namelớn hơn giá trị finish. Giá trị cuối cùng của biến name sẽ là giá trị

vượt quá finishđầu tiên.

Chú ý. Nếu các từ khóa from start hoặc by change bị bỏ qua thì mặc định from1 và

by1 được dùng.

Vòng lặp for- in- do- end do;thực hiện việc lặp với mỗi giá trị mà biến chỉ số

namelấy từ biểu thức expressionđã cho. Chẳng hạn vòng lặp này được sử dụng

hiệu quả khi mà giá trị của biến name là một phần tử của một tập hợp hoặc danh

sách

Trong trường hợp muốn thoát khỏi từ giữa vòng lặp, ta có thể dùng các câu lệnh

break, quit, return giống như trong vòng lặp while.

Lệnh điều kiện if Cấu trúc cú pháp:

if < condition> then

statement sequence

elif <condition> then

<statement sequence>

and if;

Page 13: Sử dụng Maple giải một số dạng bài toán hình học

13 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Chức năng: Nếu bạn muốn một dãy biểu thức được thực hiện khi điều kiện nào đó

được thỏa mãn và một dãy biểu thức khác được thực hiện nếu trái lại thì có thể

dùng câu lệnh if- then- else- end if. Trong câu lệnh trên, nếu điều kiện condition là

đúng thì chuỗi biểu thức đứng sau then được thực hiện, nếu trái lại thì điều kiện

condition sau từ khóa elifsẽ được kiểm tra, nếu nó đúng thì chuỗi lệnh tương ứng

sau then được thực hiện, cứ tiếp tục cho đến khi các điều kiện condition đều không

thỏa mãn, thì các biểu thức sau lệnh elseđược thực hiện.

Lưu ý rằng cấu trúc lệnh (tuỳ chọn) elif...then... được lặp lại với số lần tuỳ ý. Từ

khoá eliflà dạng viết tắt của else if.

Các biểu thức điều kiện condition được sử dụng trong câu lệnh ifphải được tạo

thành từ các bất đẳng thức, các đẳng thức (các phép toán quan hệ), các biến số, các

phép toán logic, các hàm có giá trị trả lại là giá trị logic. Nếu trái lại thì sẽ gây ra

lỗi.

Lệnh break

Cấu trúc ngữ pháp:

Chức năng: Trong lúc vòng lặp while/for đang được thực hiện, nếu lệnh

breakđược gọi thì chương trình sẽ thoát ngay lập tức ra khỏi vòng lặp while/for

tận trong cùng nhất mà có chứa lệnh break(vì cũng có thể có nhiều vòng lặp

while/forđược lồng nhau). Một ví dụ khá điển hình trong việc sử dụng lệnh

breaklà trong quá trình tìm kiếm search, rõ ràng là bạn sẽ muốn dừng quá trình

quét lại ngay khi bạn tìm thấy đối tượng cần tìm. Khi đó, ngay tại thời điểm tìm

thấy, bạn dùng lệnh break để nhảy ra khỏi vòng lặp tìm kiếm. Trước lệnh break

thường có một câu lệnh điều kiện if... then...

Nếu lệnh breakdùng ngoài các vòng lặp while/forthì sẽ sinh ra lỗi. Chú ý:

breakkhông phải là từ khoá (từ dành riêng cho Maple), vì vậy ta có thể gán giá trị

cho biến có tên là breakmà không hề sinh ra lỗi (mặc dù điều này là không nên).

Lệnh next Cấu trúc cú pháp: next

Page 14: Sử dụng Maple giải một số dạng bài toán hình học

14 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Chức năng: Cũng giống như câu lệnh break, lệnh nextđược thực hiện trong vòng

lặp while/forvới mục đích bỏ qua một số lệnh bên trong vòng lặp để nhảy qua lần

lặp tiếp theo. Khi gặp lệnh nexttrong vòng lặp, chương trình bỏ qua các lệnh tiếp

theo của vòng lặp tận cùng nhất chứa nextcho đến khi gặp từ khoá xác định kết

thúc vòng lặp (ở đây là lệnh end do). Đến đây vòng lặp tiếp tục nhảy qua lần lặp

tiếp theo (nếu có thể) bằng cách tăng chỉ số hoặc kiểm tra điều kiện để quyết định

xem có nên thực hiện vòng lặp tiếp theo.

Lệnh nextsinh ra lỗi nếu nó được gọi ngoài vòng lặp while/for. Tương tự như

break, nextcũng không phải là từ khóa, do đó ta hoàn toàn có thể gán cho nextmột

giá trị (xem như nextlà một biến). Ngay trước lệnh next cũng thường là một câu

lệnh điều kiện if... then...

Sử dụng hàm return, error: RETURN được sử dụng để cho giá trị hàm trước khi thoát khỏi chu trình. Nếu

không có lệnh RETURN, chu trình tự động cho kết quả của phép tính cuối cùng

trong chu trình.

ERROR được sử dụng để đưa thông điệp lỗi ra màn hình từ bên trong chu trình.

CÁCH THIẾT LẬP MỘT CHU TRÌNH

Giới thiệu

Maple là một ngôn ngữ lập trình hướng chu trình (procedure). Chúng ta có thể làm

việc với Maple bằng hai chế độ khác nhau: Chế độ tương tác trực tiếp thông qua

việc nhập từng lệnh đơn lẻ ngay tại dấu nhắc lệnh của Maple và nhận được ngay

kết quả của lệnh đó. Chế độ chu trình được thực hiện bằng cách đóng gói một dãy

các lệnh xử lí cùng một công việc vào trong một chu trình (procedure) duy nhất,

sau đó ta chỉ cần gọi chu trình này và Maple tự động thực hiện các lệnh có trong

chu trình đó một cách tuần tự và sau đó trả lại kết quả cuối cùng.

Maple chứa một lượng rất lớn các hàm tạo sẵn đáp ứng cho những yêu cầu tính

toán khác nhau trong nhiều lĩnh vực. Các hàm này được lưu trữ trong các gói chu

trình (package) và người sử dụng có thể dễ dàng gọi đến mỗi khi cần thiết. Tuy

nhiên, người dùng Maple có thể tự tạo cho riêng mình những gói chu trình cũng

Page 15: Sử dụng Maple giải một số dạng bài toán hình học

15 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

như có thể trao đổi dùng chung những gói chu trình nào đấy, phục vụ cho công

việc mang tính đặc thù riêng của mình.

Các khái niệm cơ bản cần phải nắm vững để tạo ra một chu trình (procedure) là:

Cấu trúc proc()..end; cùng với các khai báo trong cấu trúc này (global, local,

option,...).

Các cấu trúc dữ liệu và các hàm có liên quan (dãy-sequence, tập hợp-set, danh

sách-list, mảng-array, bảng-table).

Các hàm lập trình cơ bản (đã nêu ở trên) và các hàm liên quan đến việc xử lí dữ

liệu (eval, evalf, evalm, subs, map, convert,...).

Khai báo chu trình

Lời gọi khai báo một chu trình:

procedure_name:=proc(parameter_sequence)

[local local_sequence] 0934379

[global global_sequence]

[options options_sequence]

statements_sequence;

end;

Giải thích các khai báo:

parameter_name: Là một dãy các ký hiệu, ngăn cách nhau bởi các dấu phẩy, chứa

tên các tham biến truyền cho chu trình.

local_sequence: Là một dãy các tên được khai báo là biến cục bộ trong chu trình,

nó chỉ có giá trị sử dụng trong phạm vi chu trình đang xét (local được sử dụng để

khai báo cho các biến chỉ sử dụng bên trong một chu trình).

global_sequen: Dãy các tên biến toàn cục có giá trị sử dụng ngay cả bên ngoài chu

trình.

options_sequence: Dãy các tuỳ chọn cho một chu trình.

statements_sequence: Dãy các câu lệnh do người lập trình đưa vào.

Tham biến

Page 16: Sử dụng Maple giải một số dạng bài toán hình học

16 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Tham biến (parameter) là các biến được đặt giữa hai dấu ngoặc trong biểu thức

proc(...). Tham biến được dùng để nhận dữ liệu truyền cho chu trình khi gọi chu

trình đó. Ví dụ ta có thể khai báo chu trình tính tổng của 2 số [tong:=proc(x,y)

x+y; end.] thì khi gọi chu trình này để tính tổng của hai số 10 và 5 ta phải truyền

các dữ liệu này cho các tham biến (cho x nhận giá trị là 10, y nhận giá trị là 5), tức

là tại dấu nhắc lệnh ta phải viết tong(10, 5); và sau khi thực hiện chu trình trả lại

kết quả là 15.

Tham biến có tính cục bộ: chúng chỉ được sử dụng bên trong chu trình đã được

khai báo, bên ngoài chu trình này chúng không mang ý nghĩa gì. Kiểu của tham

biến có thể được khai báo trực tiếp.

Phạm vi các biến (biến toàn cục, biến cục bộ và tham biến)

Biến toàn cục:

Biến toàn cục được khai báo sau từ khóa global trong khai báo chu trình. Biến

toàn cục được khai báo bên trong một chu trình, nhưng có phạm vi giá trị trong

toàn bộ chương trình, tức là bên ngoài phạm vi của chu trình mà nó được khai báo

trong đó.

Biến cục bộ:

Biến cục bộ được khai báo sau từ khoá localtrong khai báo chu trình.

Biến cục bộ chỉ có giá trị bên trong chu trình mà nó được khai báo. Ngoài chu trình

này nó không mang ý nghĩa gì.

Tham biến:

Cũng giống như biến cục bộ, các tham biến chỉ có giá trị bên trong phạm vi của

chu trình mà nó được khai báo. Sau khi chu trình kết thúc, chúng không còn giá trị.

Tham biến còn được sử dụng để trả lại kết quả, như các ngôn ngữ lập trình truyền

thống. Ngoài ra, do Maple có những hàm có khả năng trả lại nhiều hơn một giá trị.

Ta có thể gộp các giá trị này vào một danh sách để trả lại như một phần tử.

Định giá các biến

Định giá tên hàm và tham biến:

Page 17: Sử dụng Maple giải một số dạng bài toán hình học

17 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Như đã đề cập trước đây, các tên biến trong một biểu thức được Maple định giá

trước khi thực hiện các phép tính trên chúng. Đối với việc thực hiện các hàm cũng

tương tự như vậy. Trước tiên là tên chu trình được định giá. Sau đó lần lượt đến

các đối số trong danh sách các đối số truyền cho chu trình (được định giá từ trái

sang phải). Nếu tên chu trình được định giá trỏ đến một chu trình, thì chu trình ấy

được thực thi trên các đối số đã được định giá. Tuy nhiên vẫn có một số chu trình

ngoại lệ: đó là các hàm eval, assigned, seq.

Định giá biến cục bộ và biến toàn cục:

Các biến cục bộ và tham biến truyền cho chu trình được định giá một cấp (định giá

một lần), còn các biến toàn cục thì được định giá hoàn toàn (full evaluation). Hàm

eval(...) được dùng để ép định giá hoàn toàn cho biến cục bộ và tham biến, và định

giá một mức cho các biến toàn cục.

Xử lý các chu trình đệ quy (mục 2.6 trang 141)

TÌM LỖI TRONG CHU TRÌNH (3. trang 152)

>

Chương 2. HÌNH HỌC PHẲNG

2.0. TÓM TẮT LÝ THUYẾT

1) Khoảng cách giữa hai điểm:

"d="

Page 18: Sử dụng Maple giải một số dạng bài toán hình học

18 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

"sqrt((x[2]-x[1])^(2)+(y[2]-y[1])^(2))"

NULL

2) Điểm M(x,y) chia đoạn

M[1]

M[2]

theo tỷ số λ, được biểu diễn theo công thức:

x[1] + &lambda;x[2] y[1] + &lambda;y[2]

x = -------------------; y = -------------------;

1 + lambda 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)."

3) Đường thẳng:

i) Phương trình đường thẳng đi qua điểm

M(x[1], y[1])

và có hệ số góc k:

y = k(x - x[1]) + y[1]

ii) Phương trình đường thẳng đi qua hai điểm

Page 19: Sử dụng Maple giải một số dạng bài toán hình học

19 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

M[1](x[1], y[1])

M[2](x[2], y[2])

:

x - x[1] y - y[1]

----------- = -----------

x[2] - x[1] y[2] - y[1]

trong cách viết trên, 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.

iii) Phương trình tổng quát của đường thẳng:

Ax+By+C=0,

với điều kiện A và B không đồng thời bằng không.

4) Hệ hai đường thẳng:

piecewise(l[1], A[1] x + B[1] y + C[1] = 0, l[2],

A[2] x + B[2] y + C[2] = 0)

"[[,],[,]] "

-) Điều kiện song song của

l[1]

l[2]

là:

A[1] B[1] B[1] C[1]

---- = ---- and ---- <> ----

Page 20: Sử dụng Maple giải một số dạng bài toán hình học

20 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

A[2] B[2] B[2] C[2]

-) Điều kiện trùng nhau của

l[1]

l[2]

là:

A[1] B[1] B[1] C[1]

---- = ---- and ---- = ----

A[2] B[2] B[2] C[2]

-) Điều kiện cắt nhau của

l[1]

l[2]

là:

A[1] B[1]

---- <> ----

A[2] B[2]

hay là

A[1] B[2] <> A[2] B[1]

5) Chùm đường thẳng:

Cho 2 đường thẳng cắt nhau

A[1] x + B[1] y + C[1] = 0

Page 21: Sử dụng Maple giải một số dạng bài toán hình học

21 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

A[2] x + B[2] y + C[2] = 0

, khi đó, tập hợp tất cả các đường thẳng có dạng

alpha(A[1] x + B[1] y + C[1]) + beta

A[2] x + B[2] y + C[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 đường thẳng.

6) Góc giữa hai đường thẳng: Giả sử hai đường thẳng có hệ số góc là

k[1]

"k[2], "

khi đó góc quay ngược chiều kim đồng hồ đường thẳng

l[1]

cho tới khi song song với

l[2]

, được ký hiệu là φ tính theo công thức:

k[2] - k[1]

tan(&varphi;) = -------------

1 + k[1] k[2]

i) Trường hợp riêng thứ nhất: hai đường thẳng song song, khi và chỉ khi hệ số góc của chúng bằng nhau

k[1] = k[2]

ii) Trường hợp riêng thứ hai: hai đường thẳng vuông góc, khi và chỉ khi tích hệ số góc của chúng bằng -1:

k1*k2=-1

7) Khoảng cách từ điểm

Page 22: Sử dụng Maple giải một số dạng bài toán hình học

22 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

M[0](x[0], y[0])

tới đường thẳng Ax+By+C=0 là:

|Ax[0] + By[0] + C|

d = -------------------

/ 2 2\

sqrt\A + B /

Ý nghĩa của biểu thức:

rho = Ax + By + C

là mặt phẳng được chia thành 3 tập con:

i) Tập hợp những điểm mà Ax+By+C=0, đó là đường thẳng với phương trình Ax+By+C=0;

ii) 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

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

8) Elip.

i) Phương trình chính tắc:

2 2

x y

-- + -- = 1

2 2

a b

Nếu a>b, hai tiêu điểm thuộc trục thực, có tọa độ

/ / 2 2\ \ / / 2 2\ \

F[1]\-sqrt\a - b /, 0/, F[2]\sqrt\a - b /, 0/

Nếu b>a, hai tiêu điểm thuộc trục tung, có tọa độ

Page 23: Sử dụng Maple giải một số dạng bài toán hình học

23 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

/ / 2 2\\ / / 2 2\\

F[1]\0, -sqrt\a - b //, F[2]\0, sqrt\a - b //

Khi a=b, elip trở thành đường tròn, có tâm tại O(0,0) bán kính R=a.

ii) Tâm sai của elip:

/ 2\

| b |

epsilon = sqrt|1 - --|

| 2|

\ a /

. Tâm sai của elip luôn luôn nhỏ hơn 1

iii) Phương trình tham số của elip:

"{[[x=a.cost,],[y=bsint,]]"

iv) Phương trình tiếp tuyến của elip có tiếp điểm là

M[0](x[0], y[0])

:

xx[0] yy[0]

----- + ----- = 1

2 2

a b

v) Điều kiện cần và đủ để đường thẳng Ax+By=C, tiếp xúc elip:

2 2 2 2 2

A a + B b = C

9) Hyperbol

Page 24: Sử dụng Maple giải một số dạng bài toán hình học

24 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

i) Phương trình chính tắc:

2 2

x y

-- - -- = 1

2 2

a b

Trục thực là trục Ox, hai tiêu điểm thuộc trục thực, có tọa độ

/ / 2 2\ \ / / 2 2\ \

F[1]\-sqrt\a + b /, 0/, F[2]\sqrt\a + b /, 0/

ii) Tâm sai của hyperbol:

/ 2\

| b |

epsilon = sqrt|1 + --|

| 2|

\ a /

. Tâm sai của elip luôn luôn lớn hơn 1

iii) Tiệm cận:

b x b x

y = ---; y = - ---;

a a

iv) Phương trình tiếp tuyến của elip có tiếp điểm là

M[0](x[0], y[0])

:

Page 25: Sử dụng Maple giải một số dạng bài toán hình học

25 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

xx[0] yy[0]

----- - ----- = 1

2 2

a b

v) Điều kiện cần và đủ để đường thẳng Ax+By=C, tiếp xúc elip:

2 2 2 2 2

A a - B b = C

vi) Hyperbol liên hợp:

2 2

x y

-- - -- = 1

2 2

b a

9) Parabol:

"y^(2)=2 px,"

i) Tiêu điểm: F(c,0)

ii) Phương trình tiếp tuyến tại tiếp điểm:

yy[0] = p(x + x[0])

Page 26: Sử dụng Maple giải một số dạng bài toán hình học

26 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

10) Các hệ thức lượng trong tam giác: sin cos dt dknoi tiep tiep tuyen

i) Đị nh lý hàm số sin:

a b b c c

---- = ---- and ---- = ---- and ---- = 2 R

sinA sinB sinB sinC sinC

ii) Đị nh lý hàm số cosin:

2 2 2

a = b + c

/ 2 \

- Typesetting[delayDotProduct]\((2 b) . c) . cosA, b , true/ and

2 2

b + c

/ 2 \

- Typesetting[delayDotProduct]\((2 b) . c) . cosA, b , true/ =

2 2

c + a

/ 2 \

- Typesetting[delayDotProduct]\((2 c) . a) . cosB, c , true/ and

Page 27: Sử dụng Maple giải một số dạng bài toán hình học

27 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2 2

c + a

/ 2 \

- Typesetting[delayDotProduct]\((2 c) . a) . cosB, c , true/ =

2 2

a + b - ((2 a) . b) . cosC

11) Điều kiện nội tiếp của tứ giác: Tứ giác ABCD có hai đường thẳng AB và CD cắt nhau tại E, hai đường

thẳng AC và BD cắt nhau tại F. Điều kiện cần và đủ để ABCD nội tiếp là một trong hai hệ thức sau đây

được thỏa mãn:

EA . EB = (Typesetting[delayDotProduct](EC . ED, FA, true)) . FC and

(Typesetting[delayDotProduct](EC . ED, FA, true)) . FC = FB .

FD

12) Điều kiện cho tiếp tuyến:

i) Khoảng cách từ tâm đường tròn (c) tới đường thẳng l đúng bằng bán kính R của đường tròn.

ii) Tam giác ABC, M thuộc phần kéo dài của cạnh AB. Điều kiện cần và đủ để MC là tiếp tuyến của đường

tròn (ABC) là hệ thức:

2

MA . MB = MC

13) Phương tích, trục đẳng phương, tâm đẳng phương:

i) Đường tròn (O,R); M là một điểm trên mặt phẳng. Đại lượng:

| 2 2|

|MO - R |

được gọi là phương tích của điểm M đối với đường tròn O.

Page 28: Sử dụng Maple giải một số dạng bài toán hình học

28 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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);

Page 29: Sử dụng Maple giải một số dạng bài toán hình học

29 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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

Page 30: Sử dụng Maple giải một số dạng bài toán hình học

30 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

-) Đườ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.

Page 31: Sử dụng Maple giải một số dạng bài toán hình học

31 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

-) 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);

Page 32: Sử dụng Maple giải một số dạng bài toán hình học

32 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

-) 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.

Page 33: Sử dụng Maple giải một số dạng bài toán hình học

33 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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.

Page 34: Sử dụng Maple giải một số dạng bài toán hình học

34 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

-) 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

Page 35: Sử dụng Maple giải một số dạng bài toán hình học

35 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

M[1]

M[2]

theo tỷ số λ, có tọa độ biểu diễn theo công thức:

x[1] + &lambda;x[2]

x = -------------------;

1 + lambda

y[1] + &lambda;y[2]

y = -------------------;

1 + lambda

z[1] + &lambda;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])

M[2](x[2], y[2], z[2])

Page 36: Sử dụng Maple giải một số dạng bài toán hình học

36 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

:

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("&rarr;")) = (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

Page 37: Sử dụng Maple giải một số dạng bài toán hình học

37 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

-) Điều kiện song song của

P[1]

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]

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]

P[2]

là:

A[1] B[1]

Page 38: Sử dụng Maple giải một số dạng bài toán hình học

38 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

---- <> ----

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

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

Page 39: Sử dụng Maple giải một số dạng bài toán hình học

39 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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

Page 40: Sử dụng Maple giải một số dạng bài toán hình học

40 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

(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,

Page 41: Sử dụng Maple giải một số dạng bài toán hình học

41 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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("&rarr;")) = (a[1], a[2], a[3]),

#mover(mi("b"),mo("&rarr;")) = (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:

Page 42: Sử dụng Maple giải một số dạng bài toán hình học

42 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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]

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)

Page 43: Sử dụng Maple giải một số dạng bài toán hình học

43 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

= `+`(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) =

Page 44: Sử dụng Maple giải một số dạng bài toán hình học

44 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

`+`(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).

Page 45: Sử dụng Maple giải một số dạng bài toán hình học

45 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Đ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]);

Page 46: Sử dụng Maple giải một số dạng bài toán hình học

46 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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 := <x|y|z>;

hai lệnh này cho ta vector hàng,

[> u:=<x,y,z>; 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:

Page 47: Sử dụng Maple giải một số dạng bài toán hình học

47 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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

Page 48: Sử dụng Maple giải một số dạng bài toán hình học

48 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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]

S[2]

: [> RadicalPlane(P,

Page 49: Sử dụng Maple giải một số dạng bài toán hình học

49 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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:

Page 50: Sử dụng Maple giải một số dạng bài toán hình học

50 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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]);

Page 51: Sử dụng Maple giải một số dạng bài toán hình học

51 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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

Page 52: Sử dụng Maple giải một số dạng bài toán hình học

52 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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.

Page 53: Sử dụng Maple giải một số dạng bài toán hình học

53 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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

Page 54: Sử dụng Maple giải một số dạng bài toán hình học

54 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

[> 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

Page 55: Sử dụng Maple giải một số dạng bài toán hình học

55 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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];

Page 56: Sử dụng Maple giải một số dạng bài toán hình học

56 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

>

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");

Page 57: Sử dụng Maple giải một số dạng bài toán hình học

57 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

>

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);

Page 58: Sử dụng Maple giải một số dạng bài toán hình học

58 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

>

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ỏ

Page 59: Sử dụng Maple giải một số dạng bài toán hình học

59 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

đ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;

>

Page 60: Sử dụng Maple giải một số dạng bài toán hình học

60 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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]);

Page 61: Sử dụng Maple giải một số dạng bài toán hình học

61 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

>

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):

Page 62: Sử dụng Maple giải một số dạng bài toán hình học

62 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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 ĐỦ");

Page 63: Sử dụng Maple giải một số dạng bài toán hình học

63 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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:

Page 64: Sử dụng Maple giải một số dạng bài toán hình học

64 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

################################################################

#####

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));

>

>

Page 65: Sử dụng Maple giải một số dạng bài toán hình học

65 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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:

Page 66: Sử dụng Maple giải một số dạng bài toán hình học

66 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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]]):

Page 67: Sử dụng Maple giải một số dạng bài toán hình học

67 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

>

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

Page 68: Sử dụng Maple giải một số dạng bài toán hình học

68 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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;

>

Page 69: Sử dụng Maple giải một số dạng bài toán hình học

69 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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");

Page 70: Sử dụng Maple giải một số dạng bài toán hình học

70 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

>

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]:

Page 71: Sử dụng Maple giải một số dạng bài toán hình học

71 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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);

Page 72: Sử dụng Maple giải một số dạng bài toán hình học

72 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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;

Page 73: Sử dụng Maple giải một số dạng bài toán hình học

73 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

>

################################################################

##################

################################################################

###################

################################################################

####################

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");

Page 74: Sử dụng Maple giải một số dạng bài toán hình học

74 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

>

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]:

Page 75: Sử dụng Maple giải một số dạng bài toán hình học

75 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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);

Page 76: Sử dụng Maple giải một số dạng bài toán hình học

76 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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;

Page 77: Sử dụng Maple giải một số dạng bài toán hình học

77 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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:

Page 78: Sử dụng Maple giải một số dạng bài toán hình học

78 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

> 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;

Page 79: Sử dụng Maple giải một số dạng bài toán hình học

79 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

>

>

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:

Page 80: Sử dụng Maple giải một số dạng bài toán hình học

80 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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

Page 81: Sử dụng Maple giải một số dạng bài toán hình học

81 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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);

Page 82: Sử dụng Maple giải một số dạng bài toán hình học

82 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

> 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});

>

>

Page 83: Sử dụng Maple giải một số dạng bài toán hình học

83 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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

Page 84: Sử dụng Maple giải một số dạng bài toán hình học

84 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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] http://boxmath.vn/4rum/f493/tài liệu hướng dẫn sử dụng maple bằng tiếng việt

[6] http://www.maplesoft.com,

Page 85: Sử dụng Maple giải một số dạng bài toán hình học

85 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn