Tải bản đầy đủ (.doc) (56 trang)

Ứng dụng của phần mềm Maple trong hình học giải tích

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.58 MB, 56 trang )

MỤC LỤC
Mở đầu. ……………………………………………………………………
Chương 1 . Giới thiệu về phần mềm Maple…………………………………
1. Giao diện và môi trường làm việc của Maple………………………………
2. Các khái niệm và hàm cơ bản trong lập trình……………………………….
3. Lập trình trên Maple………………………………………………………
Chương 2. Ứng dụng của phần mềm Maple với hình học giải tích trong mặt
phẳng
2.1. Xác định các đối tượng cơ bản………………………………………………
2.2. Các đối tượng hình học dẫn xuất từ các đối tượng cơ bản…………………
2.3. Kiểm tra thuộc tính từ các đối tượng cơ bản ……………………………….
2.4. Tính khoảng cách …………………………………………………………
2.5. Một số chương trình giải bài toán hình học giải tích phẳng………………
Chương 3. Ứng dụng của phần mềm Maple với hình học giải tích trong
không gian
3.1. Xác định các đối tượng cơ bản……………………………………………….
3.2. Các đối tượng hình học dẫn xuất từ các đối tượng cơ bản…………………
3.3. Kiểm tra thuộc tính từ các đối tượng cơ bản…………………………………
3.4. Tính khoảng cách…………………………………………………………….
3.5. Xác định góc………………………………………………………………….
3.6. Một số chương trình giải bài toán hình học giải tích không gian…………….
Kết luận .…………………………………………………………………………
Tài liệu tham khảo……………………………………………………………

1
MỞ ĐẦU
1. Lý do chọn đề tài
Cùng với sự phát triển của loài người kéo theo đó là sự phát triển của công
nghệ thông tin, hiện nay công nghệ thông tin đã chi phối đến hầu hết các mặt
của đời sống, tiêu biểu cho sự đóng góp to lớn ấy là sự xuất hiện của chiếc máy
tính. Nhờ có máy tính nhiều công việc liên quan đến tính toán đã trở nên vô


cùng đơn giản, như ta đã biết có rất nhiều phần mềm hỗ trợ giải toán nhưng tiêu
biểu trong số ấy là phần mềm Maple.
Thật vậy với phần mềm Maple thì các câu lệnh của nó rất gần với ngôn ngữ
toán học thông thường cho nên việc làm quen với phần mềm này là rất dễ dàng
kể cả đối với những người mới học tin học. Với phần mềm Maple các công việc
như giải phương trình, hệ phương trình, bất phương trình, tính giới hạn, đạo
hàm, nguyên hàm, tích phân, vẽ đồ thị và nhiều công việc khác được thực hiện
một cách dễ dàng, nhưng phần mềm Maple mới chỉ đưa ra các câu lệnh riêng
biệt việc vận dụng chúng, liên kết chúng vào các bài toán tổng quát hay cụ thể
còn gặp rất nhiều khó khăn. Vấn đề đặt ra hiện nay là làm sao để liên kết các câu
lệnh đó với nhau để đưa ra các câu lệnh phức hợp chính xác để giải một số dạng
bài toán thường gặp, đồng thời xây dựng một số chương trình con đưa ra lời giải
cụ thể cho các bài toán hình học giải tích.
Với mong muốn đóng góp phần nào đó để giảm bớt những khó khăn cho học
sinh cũng như sinh viên trong việc giải các bài toán thường gặp mà không phải
sử dụng tính toán thô sơ bằng tay nữa mà áp dụng thành tựu khoa học công nghệ
để giải quyết một bài toán một cách nhanh, gọn và cùng với đó là hỗ trợ việc
giảng dạy toán cho đội ngũ giáo viên trong công tác giảng dạy của mình. Bởi
vậy chúng tôi mạnh dạn nghiên cứu đề tài “Ứng dụng của phần mềm Maple
trong hình học giải tích”.
2. Mục đích nghiên cứu
Đề tài khoa học hệ thống một số câu lệnh chuyên biệt, nêu ra các tác dụng
của nó trong giải toán, đồng thời việc kết hợp các câu lệnh này nhằm đưa ra
cách giải, đáp án nhanh nhất cho một số dạng toán hình học giải tích.
3. Nhiệm vụ nghiên cứu
2
- Tìm hiểu về một số câu lệnh, chọn lọc ra hệ thống một số câu lệnh chuyên
biệt. Nghiên cứu việc kết hợp các câu lệnh để giải toán, đưa ra cách giải một bài
toán sao cho nhanh nhất, việc trình bày dễ hiểu.
- Giải một số bài toán hình học giải tích có vận dụng việc kết hợp các câu lệnh

của Maple làm ví dụ minh họa.
4. Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý luận: đọc và nghiên cứu tài liệu các giáo trình có
liên quan đến hình học giải tích và phần mềm Maple. Nghiên cứu thuật toán và
các cách xây dựng các chương trình con phục vụ giải toán hình học giải tích.
- Phương pháp tổng kết kinh nghiệm: qua việc nghiên cứu các tài liệu, giáo
trình rút ra các thuật toán, các chương trình giải toán hình học, giải tích trong
Maple.
5. Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: các câu lệnh và việc kết hợp các câu lệnh trong phần
mềm Maple.
- Phạm vi nghiên cứu: ứng dụng của phần mềm trong các bài toán hình học giải
tích.
6. Ý nghĩa khoa học và thực tiễn
- Khoa học: đề tài hệ thống một số câu lệnh chuyên biệt, đưa ra một số chương
trình con cụ thể để giải một số bài toán hình học giải tích.
- Thực tế: đề tài cũng là một tài liệu tham khảo cho học sinh, sinh viên yêu
thích môn toán và học tập cùng máy tính, và các giáo viên có mong muốn tìm
hiểu phần mềm Maple và ứng dụng của nó.
7. Bố cục của đề tài
Chương 1. Giới thiệu về phần mềm Maple
1.1. Giao diện và môi trường làm việc của Maple
1.2. Các khái niệm và hàm cơ bản trong lập trình
1.3. Lập trình trên Maple
Chương 2. Ứng dụng của phần mềm Maple với hình học giải tích trong
mặt phẳng
3
2.1. Xác định các đối tượng cơ bản
2.2. Các đối tượng hình học dẫn xuất từ các đối tượng cơ bản
2.3. Kiểm tra thuộc tính từ các đối tượng cơ bản

2.4. Tính khoảng cách
2.5. Một số chương trình giải bài toán hình học giải tích phẳng
Chương 3. Ứng dụng của phần mềm Maple với hình học giải tích trong
không gian
3.1. Xác định các đối tượng cơ bản
3.2. Các đối tượng hình học dẫn xuất từ các đối tượng cơ bản
3.3. Kiểm tra thuộc tính từ các đối tượng cơ bản
3.4. Tính khoảng cách
3.5. Xác định góc
3.6. Một số chương trình giải bài toán hình học giải tích không gian

4
CHƯƠNG 1
GIỚI THIỆU VỀ PHẦN MỀM MAPLE
1.1. Giao diện, các menu lệnh và môi trường làm việc của Maple
Giao diện của Maple cũng giống như giao diện của các chương trình khác
trên Window, tức là cũng bao gồm các thanh menu lệnh. Tuy nhiên Maple là
chương trình thiên về tính toán nên nó cũng có một số chức năng đặc thù riêng,
và ở đây chúng tôi chỉ tập trung vào giới thiệu những chức năng này.
1.1.1. File
Menu này chứa những chức năng thao tác trên file. Cụ thể là:
+ Tạo một file mới bằng chức năng New
+ Mở một file đã có bằng chức năng Open
+ Ghi các thông tin dạng soạn thảo bằng chức năng Save
+ Ghi các thông tin đang mở sang một file bằng chức năng Save as
+ Chuyển đổi văn bản đang soạn thảo bằng chức năng Export as
+ Muốn đóng file đang soạn thảo dùng chức năng Close
+ In văn bản sử dụng chức năng Print
+ Thoát ra khỏi chức năng Maple bằng chức năng Exit
1.1.2. Edit

Các chức năng của Edit trong Maple rất giống trong window và các
chương trình soạn thảo khác cho nên chúng tôi không giới thiệu lại chỉ xin lưu ý
một số chức năng như sau:
Xóa toàn bộ đọan văn bản (paragraph) mà con trỏ đang đứng bằng chức
năng Delete paragraph
Chọn bôi đen cả trang văn bản bằng chức năng Select all
Nhúng một đối tượng vào trang làm việc bằng chức năng Insert ole object.
Khi chức năng này được chọn một hộp thoại xuất hiên với danh mục tên các loại
Object mà có thể nhúng vào trang làm việc được.
1.1.3. Insert
Đây là menu chứa những lệnh về chèn.
5
Insert/Text Input
Lệnh này chuyển trạng thái sang chế độ soạn thảo
Insert/Execution Group
Lệnh này cho chèn vào một cụm xử lý, cũng có nghĩa là đưa một dấu nhắc lệnh
ở vị trí trước con trỏ hoặc sau con trỏ.
Insert/Paragraph
Muốn chắc chăn có đoạn văn bản mới thì nên dùng chức năng Insert paragraph.
Insert/Selection
Mục này cho vào trang làm việc một muc mới ngang cấp với mục chưa con trỏ.
Mục và phân mục trong Maple được phân hoạch rất rõ ràng nhờ cách thể hiện
“gói mở”. Các mục con bao giờ cũng được gói trong các “mục mở”. Ta chỉ có
thể nhìn thấy mục con khi mục mẹ đang ở trong trạng thái mở. Mở hoặc đóng
các mục bằng việc nhấn chuột vào ô vuông ở đầu mục.
Insert/Subsection
Lệnh này cho vào trang làm việc một mục con của mục đang chứa con trỏ.
Insert/Math Input
Lệnh này chèn trực tiếp một biểu thức toán học mà con trỏ đang đứng. Khi vào
chức năng này thì thanh định dạng văn bản bản biến đi và thay vào đó thanh

nhập lệnh. Khi nhập xong một lệnh vào thanh này ta nhấn phím Enter thì công
thức toán học biểu diễn lệnh sẽ xuất hiện tại vị trí con trỏ.
Insert/Hyperlink
Siêu liên kết 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 trong một trang làm việc. Chức năng Insert/Hyperlink là công cụ
tạo ra các siêu liên kết. Khi vào chức năng này sẽ xuất hiện hộp thoại khai báo
tên của siêu liên kết và tên file cần liên kết tới. Nếu kết hợp với bookmark nó sẽ
cho ta công cụ chuyển tới vị trí dấu của đoạn văn đã được đánh dấu bằng
bookmark, trong một trang làm việc định trước.
1.1.4. Windows
Windows/Cascade
6
Xếp tầng những trang làm việc đang được mở tại cùng một thời điểm. Chức
năng này cho ta có thể chọn nhanh một trang.
Windows/Tile
Xếp kề các trang làm việc cùng được mở chức năng này cho ta vừa có thể làm
việc với trang hiện tại vừa so sánh với trang khác. Cửa sổ làm việc sẽ bị chia
thành các ô có số lượng bằng số trang được mở.
Windows/Horizontal
Xếp ngang những trang làm việc được mở tại cùng thời điểm về công dụng cũng
giống như Tile.
Windows/Close all
Đóng tất cả các trang được mở trước khi đóng cơ hội ghi bài.
Windows/Close all help
Đóng tất cả các trợ giúp của Maple đã được mở.
1.1.5. View
Menu này chứa các lệnh đề cập với nội dung biểu hiện trình bày của giao diên
làm việc.
View/Tool Bar
Nhấn vào biểu tượng này sẽ xuất hiện thanh công cụ riêng biệt.

View/Contex Bar
Nếu thanh công cụ này được chọn sẽ xuất hiện thanh công cụ riêng biệt của
mình.
View/Zom Factor
Nếu chọn mục này nó sẽ điều chỉnh kích cỡ của font chữ đang làm việc trên màn
hình. Thường ngầm định nguyên bản(100%).
View/Bookmarks
Bookmark là phương tiện di chuyển con trỏ một cách nhanh chóng tới đoạn
văn bản được đánh dấu trước bằng chức năng siêu liên kết. Muốn tạo một
bookmark ta làm như sau:
7
Trong mỗi đoạn văn bản chỉ cho phép đặt một bookmark. Muốn xóa, sửa
chữa, tạo mới một bookmark cho một đoạn văn bản ta đặt con trỏ vào bất kỳ
đoạn văn bản đó, rồi chọn chức năng Edit Bookmark. Sẽ xuất hiện hộp thoại với
tên bookmark cuar đoạn văn đó hoặc hộp thoại chống cho phép ta đặt tên cho
bookmark của đoạn văn này.
View/Show Invisible Chacraters
Cho hiển thị những ký tự hoặc từ có chức năng đặc biệt mà thường không được
hiển thị.
View/Show Section Ranges
Cho hiển thị ngoặc vuông báo làm việc mà bạn mở.
View/Show Group Ranges
Cho hiển thị ngoặc vuông báo mỗi nhóm
View/Expand All Selections
Mở tất cả các mục trong trang làm việc hiện tại.
View/Collapse All Selection
Đóng tất cả các mục của trang làm việc hiện tại.
1.1.6. Format
Menu này chứa các lệnh về định dạng các thành phần của trang làm việc.
Format/Styles

Khi bạn chọn menu này sẽ hiện lên một hộp thoại với dòng đầu tiên thông
báo những kiểu (Style) đã được định nghĩa gồm hai loại sau: P là loại định dạng
có tác dụng lên cả một đoạn định dạng có tác dụng lên cả một đoạn và C là loại
định dạng có tác dụng lên một số ký tự nào đó. Khi chọn một loại style nào đó
thì dòng miêu tả trạng thái của Style này hiện trên cửa sổ mô tả Discription.
Muốn tạo ra những style mới dùng chức năng Create New Style. Style mới
cần tạo thuộc loại nào thì nhấn chuột vào nút tương ứng sau đó sẽ xuất hiện hộp
thoại để bạn đặt tên và thuộc tính cho file đó. Style cho phép văn bản được định
dạng một cách toàn diện và thống nhất, danh mục tất cả các styles đã tạo nằm
trong ổ styles. Bạn có thể tạo style bằng cách chọn trực tiếp trong danh mục các
styles vừa định nghĩa.
8
Format/Paragraph
Chức năng này chỉ là một phần trong Menu Styles đã trình bày ở trên. Nó
được đưa ra như một chức năng độc lập chỉ để sử dụng cho thuận tiện hơn. Khi
sử dụng chức năng này thì xuất hiện hộp thoại thiết lập các thuộc tính cho đoạn
văn bản như kiểu font chữ,màu sắc chữ…
Format/Chacrater
Khi hiện chức năng này thì xuất hiện hộp thoại thiết lập các thuộc tính của
cụm ký tự đã được chọn như kiểu font,kiểu chữ, màu…
Format/Convert
Chức năng này cho phép chuyển đổi một nhóm ký tự nào đó sang một trong
các biểu thức toán học siêu liên kết hoặc lệnh Maple. Nếu chức năng chuyển
sang một siêu liên kết thì sẽ xuất hiện hộp thoại cho ta xác định các thuộc tính
của siêu liên kết này. Tên của siêu liên kết là nhóm ký tự, còn địa chỉ cần liên
kết tới sẽ được nhập vào các ổ trong hộp thoại. Nếu chọn các chức năng còn lại
thì cụm ký tự đã chọn sẽ được chuyển sang Style tương ứng.
Môi trường làm việc của Maple có thể bao gồm những thành phần cơ bản
sau:
1.1.7. Cụm xử lý

Cụm xử lý là thành phần tính toán cơ bản trong trang làm việc. Có thể dễ
dàng nhận biết một cụm xử lý bằng ngoặc vuông bên trái của dấu nhắc lệnh.
1.1.8. Lệnh và kết quả tính toán của Maple
Lệnh của Maple (Maple Input)
Lệnh của Maple được đưa vào trang làm việc tại dấu nhắc lệnh. Theo mặc
định dấu nhắc lệnh là “>” và lệnh của Maple được mặc định bằng font chữ
Courier màu đỏ. Tên và cú pháp của các lệnh tính toán sẽ được hướng dẫn theo
từng chuyên mục sau này, lưu ý là mỗi lệnh cần phải được kết thúc bằng dấu
chấm phảy “,” hoặc dấu hai chấm “:”.
Kết quả của Maple(Maple Output)
Sau khi cho thực hiện lệnh trong một cụm xử lý (nhấn phím Enter) thì kết
quả tính toán sẽ được hiện ra.
1.1.9. Mục (Section)
9
Mỗi mục trong trang làm việc của Maple cũng tương tự như các mục trong
các văn bản thông thường. Một nét độc đáo là mục của Maple có thể được thể
hiện dưới dạng “gói-mở”, nghĩa là có thể mở ra đọc và gói lại sau khi đọc.
Muốn đưa thêm một mục vào trang văn bản ta sử dụng chức năng
Insert/Section.
Một trang làm việc bao gồm nhiều mục, mỗi mục có thể chứa những đoạn
và những mục con thì dùng chức năng Insert/Subsection.
1.1.10. Đồ thị
Maple cho phép vẽ đồ thị ngay trong trang làm việc, đặc tính này gọi là “đồ
họa trực tiếp”.
1.1.11. Siêu liên kết (Hyperlink)
Một siêu liên kết là một nhóm ký tự mà nếu ta kích chuột vào thì sẽ dẫn ta
đến một đoạn khác trong trang làm việc hiện hành, hoặc đến một trang làm việc
khác. Như vậy, siêu liên kết là một công cụ dịch chuyển con trỏ. Thủ tục thiết
lập một siêu liên kết đã được hướng dẫn ở phần trên.
1.1.12. Văn bản và đoạn văn bản (text và paragraph)

Muốn đưa văn bản vào trong trang làm việc của Maple ta chuyển trạng thái
tính toán sang trạng thái văn bản bằng việc nhấn vào nút chữ T trên thanh công
cụ hoặc vào chức năng Insert/Text. Văn bản trong Maple cũng được định dạng
phong phú như hầu hết mọi chương trình soạn thảo văn bản khác trong
windows.
Một đoạn trong trang làm việc của Maple cũng tương tự như một đoạn
trong các văn bản thông thường.
Muốn bắt đầu một đoạn vă bản mới ta cần dùng chức năng
Insert/paragraph.
1.2. Các khái niệm và các hàm cơ bản trong lập trình
1.2.1. Khái niệm cơ bản
Tên(name) và xâu ký tự
Tên là một xâu hình ký tự được dùng như một chỉ mục hay một nhãn để
đại diện cho các đối tượng trong Maple có thể thay đổi được(như biến, ký hiệu
toán học, các biểu thức nói chung…) mà ta có thể gán cho nó. Tên là một trong
10
các thành phần không thể thiếu được trong Maple trong việc tạo ra các biểu
thức. Chiều dài tối đa của tên phụ thuộc vào hệ máy tính mà Maple chạy trên
đó(với máy 32 bit thì chiều dài tối đa của tên là 524275).
Bất cứ biểu thức nào đều có thể gán cho một tên. Nếu không có giá trị nào
được gán cho một tên thì nó sẽ nhận chính tên nó làm giá trị mặc định.
Chương trình Maple sử dụng tên bắt đầu với một dấu gạch dưới ( _ ) làm
các biến toàn cục, và vì thế nên chúng ta nên tránh sử dụng.
Một xâu ký tự bất kỳ có thể không phải là một xâu hình tự và do đó không
phải là một cái tên hợp lệ. Tuy nhiên, Maple cho phép tạo một tên từ một xâu ký
tự bất kỳ bằng cách cho nó vào trong cặp nháy đơn ( ‘ )
Một xâu hình tự thường là một tên hợp lệ và được xem là trùng với tên
được tạo bằng cách bao chung quanh xâu này bằng cặp dấu nháy. Tuy nhiên,
nếu xâu hình tự mà trùng với từ khóa của Maple thì không phải là một tên hợp
lệ, và muốn cho nó trở thành một tên ta lại phải cho nó vào trong dấu nháy

Hai dấu nháy liên tiếp trong một xâu ký tự sẽ được hiểu như là một dấu.
Trong trường hợp bạn muốn loại bỏ giá trị đã gán cho biến chương trình, khôi
phục lại nó như là một ký hiệu toán học, thì bạn hãy gán tên của biến cho chính
nó.
1.3. Lập trình trên Maple
1.3.1. Các lệnh lập trình cơ bản
1.3.1.1. Vòng lặp while
Vòng lặp while cho phép lặp các chuỗi các câu lệnh nằm giữa do và od khi
mà điều kiện condition vẫn còn đúng. Đ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 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 while thường được sử dụng khi số lần lặp
hay một chuỗi biểu thức là không xác định rõ.
Trong trường hợp muốn thoát ra khỏi vòng lặp ngay từ giữa vòng lặp ta
thực hiện lệnh retur, break hoặc quite.
1.3.1.2. Vòng lặp for
11
Vòng lặp for được dùng để lặp một chuỗi các biểu thức được đặt giữa do
và od 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ừ khóa for. Ban đầu, giá trị start được gán cho biến chỉ số. Nếu giá trị của
biến name nhỏ hơn hoặc bằng giá trị của biến finish thì chuỗi lệnh nằm giữa do
va od đượ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. 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ó tiếp tục hay không. Qúa trình so
sánh như vậy cứ tiếp tục cho đến khi giá trị của biến name lớn hơn giá trị finish.
Gía trị cuối cùng của biến name sẽ là giá trị vượt quá finish đầu tiên.
1.3.1.3. Lệnh điều kiện
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, nếu trái lại thì có thể dùng câu lệnh if-then-else-fi. Trong câu
lệnh trên, nếu điều kiện condition là đúng thì chuỗi biểu thức sau then được thực

hiện, nếu trái lại thì điều kiện condition sau từ khóa elif sẽ được kiểm tra, nếu nó
đúng thì chuỗi lệnh 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.
1.3.1.4. Lệnh break
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 ra khỏi 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. Nếu lệnh break dùng ngoài các vòng lặp
while/for thì sẽ sinh ra lỗi.
1.3.1.5. Lệnh next
Lệnh next được thực hiện trong vòng lặp while/for vớ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 next trong
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 next cho đến khi gặp từ khóa xác định kết thúc vòng lặp. Đến đây vòng lặp
nhảy qua vòng lặp tiếp theo 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 next sinh ra lỗi nếu nó được gọi ngoài vòng lặp while/for.
1.3.2. Thiết lập một chu trình
1.3.2.1. Khai báo chương trình
12
1.3.2.2. Tham biến
Tham biến là 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 đó.
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 có ý nghĩa gì. Kiểu tham biến có
thể được khai báo trực tiếp.
1.3.2.3. Phạm vi các biến
Biến toàn cục được khai báo sau từ khóa global trong khai báo chu trình.
Biến cục bộ được khai báo sau từ khóa local trong khai báo chu trình.
Tham biến được sử dụng để trả lại kết quả, như các ngôn ngữ truyền

thống khác.
1.3.2.4. Định giá trên các biến
Định giá tên hàm và tham biến: trước tiên là tên chu trình được định giá.
Sau đó là lần lượt đến các đối số trong danh sách các đối số truyền cho chu
trình, 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á.
Đị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, còn các biến toàn cục thì được định
giá hoàn toàn.
Xử lý các chu trình đệ qui: nghĩa là trong quá trình thực hiện có gọi đến
các hàm này.
Sau đó ta chạy chương trình.
13
CHƯƠNG 2
ỨNG DỤNG CỦA PHẦN MỀM MAPLE VỚI HÌNH HỌC GIẢI TÍCH
TRONG MẶT PHẲNG
Trong chương này chúng tôi sẽ cung cấp cho các bạn những lệnh của
Maple liên quan đến các kiến thức về môn hình học giải tích trong mặt phẳng
như: toạ độ điểm, phương trình đường thẳng, đường tròn, khoảng cách, diện
tích…Sau đây chúng ta sẽ làm quen với các lệnh trên:
2.1. Xác định các đối tượng cơ bản.
Trước khi thực hiện các lệnh này ta phải nạp thư viện liên quan qua
lệnh: [>with(geometry):
- Khai báo điểm A(x,y): point()
Ví dụ: Điểm A(1,2)
[> A:=[1,2]; hoặc [> point(A,[1,2]);
- Đánh dấu điểm A: [> draw(point(A,1,2));
-Xác định một đoạn thẳng đi qua hai điểm A, B: Trước tiên cần khai báo hai
điểm sau đó dựng đoạn thẳng với lệnh: segment()
Ví dụ: Với hai điểm A(1,2), B(-1,-2)

[> point(A,[1,2]);point(B,[-1,-2]);
segment(AB,[A,B]);
Hoặc có thể sử dụng câu lệnh kép:
[> segment(AB,[point(A,[1,2]),point(B,[-1,-2])]);
-Vẽ đoạn thẳng qua hai điểm A, B vừa định nghĩa:
[> draw(segment(AB,[A,B]));
-Vẽ đường thẳng qua hai điểm A, B: line()
Ví dụ: A=(1,2), B=(-1,-2)
[>line(l,[point(A,(1,2)),point(B,(-1,-2))]);draw(l);
-Xác định đường thẳng l có dạng ax+by=c: line()
Ví dụ: Đường thẳng l có pương trình 2x+9y=-9
14
[> line(l,2*x+9*y=-9,[x,y]); draw(l);
-Khai báo đường tròn: circle()
Ví dụ: Dựng một đường tròn đi qua ba điểm A(0,0), B(2,0), C(1,2) không
thẳng hàng
[> circle(dtr,[point(A,0,0), point(B,2,0),
point(C,1,2)],'centername'=O);
-Vẽ đường tròn tâm O vừa dựng được ở trên:[>draw(dtr,color=blue);
-Xác định tọa độ tâm đường tròn: coordinates()
Ví dụ:
[>coordinates(O);
-Dựng đường tròn khi biết phương trình của nó:
Ví dụ: Dựng đường tròn tâm O(3,-5) có dạng phương trình sau:

[> circle(dtr,(x-3)^2+(y+5)^2=3^2,[x,y],'centername'=O);
-Vẽ đường tròn vừa dựng được: [> draw(dtr,color=magenta);
-Dựng đường tròn tâm O(x1,y1), bán kính R:
Ví dụ: Với O(-5,4), R=6:
[> point(O,-5,4);

Circle(dtr,[O,6], 'centername'=O);
-Vẽ đường tròn vừa dựng được:
[>draw(c);
2.2. Các đối tượng hình học dẫn xuất từ các đối tượng cơ bản
- Xác định giao điểm của hai đường thẳng, đường thẳng với đường tròn, hai
đường tròn
- Dựng giao điểm của hai đường thẳng l1,l2: intersection()
Ví dụ: Đối với hai đường thẳng x=0 và x+y=1
[> line(l1, x = 0, [x,y]); line(l2, x + y = 1, [x,y]);
15
2 2 2
( ) ( )x a y b R− + − =
intersection(G, l1, l2);
- Xác định toạ độ giao điểm:
[> coordinates(G);
- Dựng giao điểm giữa đường thẳng và đường tròn khi biết các phương trình
của chúng:
Ví dụ: Đối với đường thẳng x+y=1 và đường tròn
2 2
1x y
+ =
[> line(l, x + y = 1, [x,y]); circle(c, x^2 + y^2 = 1, [x,y]);
intersection(P, l, c,[M,N]); detail(P);
draw({l,c});
- Dựng giao điểm của hai đường tròn khi biết phương trình của chúng:
Ví dụ: Với hai đường tròn c1có tâm (0,0) bán kính 1; và c2 có tâm O(2,0) bán
kính 1.5
[> circle(c1, x^2 + y^2 = 1, [x,y]);
circle(c2,[point(O,2,0),1.5],[x,y]);
intersection(H,c2,c1,[U,V]);

detail(H);
- Vẽ hai đường tròn cắt nhau ở trên như sau:
[> draw({c1,c2});
- Tìm toạ độ trung điểm M của đoạn thẳng AB: midpoint()
Ví dụ: Với A(1,2), B(3,6)
[>point(A,1,2);point(B,3,6);
midpoint(A,B,M); coordinates(M);
- Tìm toạ độ trọng tâm G của tam giác ABC: centrold()
Ví dụ: Tam giác ABC có 3 đỉnh A(1,7), B(2,8), C(9,12)
[>tamgiac:=[point(A,1,7),point(B,2,8),point(C,9,12)];
centrold(tamgiac,G); coordinates(G);
- Tìm toạ độ trực tâm H của tam giác ABC: orthocener()
16
Ví dụ: Tam giác ABC có 3 đỉnh A(3,4), B(2,5), C(9,1)
[>tamgiac:=[point(A,4,3),point(B,2,5),point(C,9,1)];
orthcenter(tamgiac,H);coordinates(H);
- Viết phương trình đường trung tuyến mA của tam giác ABC: median()
Ví dụ: Tam giác ABC có 3 đỉnh A(3,4), B(2,5), C(9,1); hãy viết phương trình
đường trung tuyến mA của tam giác ABC.
[> triangle(ABC,[point(A,4,3),point(B,2,5),point(C,9,1)]);
median(ABC,A,mA);mA[equation];
- Viết phương trình đường cao hA của tam giác ABC: altitude()
Ví dụ: Tam giác ABC có 3 đỉnh A(3,4), B(2,5), C(9,1); hãy viết phương trình
đường cao hA của tam giác ABC.
[> triangle(ABC,[point(A,4,3),point(B,2,5),point(C,9,1)]);
altitude(ABC,A,mA);hA[equation];
- Viết phương trình đường thẳng đi qua điểm A và song song với một đường
thẳng: parallel()
Ví dụ: Viết phương trình đường thẳng d đi qua điểm A(2,3) và song song với
đường thẳng l: x+y=1

[>point(A,2,3); line(l,[x+y=1]);
parallel(A,l,d); d[equation];
- Viết phương trình đường thẳng đi qua điểm A và vuông góc với một đường
thẳng: perpendicural()
Ví dụ: Viết phương trình đường thẳng d đi qua điểm A(2,7) và vuông góc với
đường thẳng l: 2x-y=2
[>point(A,2,7);line(l,[2*x-y=2]);
perpendicural(A,l,d); d[equation];
- Tìm toạ độ điểm I là điểm đối xứng của A qua đường thẳng d: reflect()
Ví dụ: Tìm điểm đối xứng của A(2,3) qua đường thẳng d: x-y=1
[>point(A,2,3); line(d,[x-y=1]);
17
reflect(A,d,I); coordinates(I);
2.3. Kiểm tra các thuộc tính của các đổi tượng hình học
- Kiểm tra hai đường thẳng có song song không: AreParallel()
Ví dụ: Với hai đường thẳng l1: 2x+3y+1=0 và l2: 4x+6y-1=0
[> line(l1,2*x+3*y+1=0,[x,y]);
line(l2,4*x+6*y-1=0,[x,y]);
AreParallel(l1,l2);
- Kiểm tra hai đường thẳng có vuông góc không: ArePerpendicular()
Ví dụ: Với 2 đường thẳng l1: y=x và l2: y=-x
[> line(l1,y=x,[x,y]); line(l2,y=-x,[x,y]);
ArePerpendicular(l1,l2);
- Kiểm tra một điểm có thuộc một đường tròn không: IsOncircle()
Ví dụ: Với B(1,-1) và đường tròn c có tâm (1,2) bán kính 3
[> point(B,1,-1); circle(c,(x-1)^2+(y-2)^2=3^2,[x,y]);
IsOncircle(B,c);
- Kiểm tra một điểm có thuộc đường thẳng không: on_line()
Ví dụ: Với A(3,2) và đường thẳng l: x-3y=3
[>point(A,3,2); line(l,x-3*y=3,[x,y]);

On_line(A,l);
Nếu điểm A thuộc đường thẳng l thì máy tính sẽ báo “true” và ngược lại
không thuộc thì máy tính sẽ báo “false”.
- Kiểm tra ba điểm có thẳng hàng không: AreCollinear()
Ví dụ: Với A1(1,-1), B1(0,1), C1(2,-3)
[> point(A1,1,-1); point(B1,0,1); point(C1,2,-3);
AreCollinear(A1,B1,C1);
- Kiểm tra ba đường thẳng có đồng quy không: AreConcurrent()
Ví dụ: Với ba đường thẳng l2: x-y=1, l3: 2x-3y=2, l4: x+2y=1
18
[> line(l2,x-y=1,[x,y]); line(l3,2*x-3*y=2,[x,y]);
line(l4,x+2*y=1,[x,y]);
AreConcurrent(l2,l3,l4);
- Kiểm tra bốn điểm thẳng hàng có liên hợp điều hoà với nhau không:
AreHarmonic()
Ví dụ: Với A(1,3), B(0,-1), C(-1,2), D(-4,3)
[> point(A,1,3); point(B,0,-1);
point(C,-1,2); point(D,-4,3);
AreHarmonic(A, B, C, D);
- Kiểm tra hai tam giác có liên hợp với nhau đối với một đường tròn không:
AreConjugate()
Ví dụ: Với tam giác T1 có 3 đỉnh P1(1,3), P2(2,1), P3(0,1) và tam giác T2 có
3 cạnh nằm trên 3 đường thẳng l1:y=0, l2: y=x, l3: x+y-2=0 đối với đường
tròn tâm O(1,2) bán kính 1
[>triangle(T1,[point(P1,1,3),point(P2,2,1),point(P3,0,1)]);
line(l1,y=0,[x,y]); line(l2,y=x,[x,y]);
line(l3,x+y-2=0,[x,y]); triangle(T2,[l1,l2,l3]);
circle(c,[point(O,1,2),1]);
AreConjugate(T1,T2,c);
- Kiểm tra bốn điểm có thuộc cùng một đường tròn không: AreConcyclic()

Ví dụ: P1(0,0), P2(2,0), P3(2,2), P4(0,2)
[> point(P1,0,0); point(P2,2,0); point(P3,2,2); point(P4,0,2);
AreConcyclic(P1,P2,P3,P4);
- Kiểm tra các đường tròn có trực giao không: AreOrthogonal()
Ví dụ: Với 3 đường tròn c1 có tâm (0,0) bán kính 1; c2 có tâm (2,0) bán kính
2 và c3 có tâm (0,0) bán kính 2
[> EnvHorizontalName := 'x';
EnvVerticalName := 'y';
19
circle(c1,x^2 + y^2 =1); circle(c2, (x-2)^2 + y^2 = 4);
circle(c3, x^2 + y^2 = 4);
AreOrthogonal(c1,c2,c3);
- Đường thẳng tiếp xúc với đường tròn: AreTangent()
Ví dụ: Với đường tròn c1 có tâm (0,0) bán kính 1 và đường thẳng l: 2x+3y=0
[> _EnvHorizontalName := 'x': _EnvVerticalName := 'y' ;
circle(c1,x^2 + y^2 =1); line(l, 2*x + 3*y =0);
AreTangent(l, c1);
- Đường tròn tiếp xúc với đường tròn: AreTangent()
Ví dụ: Với 2 đường tròn c1 có tâm (0,0) bán kính 1và c2 có tâm (2,0) bán kính
1
[> circle(c1,x^2 + y^2 =1); circle(c2,(x-2)^2 + y^2 =1);
AreTangent(c1,c2);
- Kiểm tra hai tam giác có đồng dạng không: AreSimilar()
Ví dụ: Với 3 tam giác T1 có 3 đỉnh A(0,0), B(0,3), C(1,0); T2 có 3 đỉnh
A(0,0), H(0,6), F(2,0); và T3 có 3 đỉnh A(0,0), H(0,6), G(3,1)
[>point(A,0,0); point(B,0,3); point(C,1,0); point(H,0,6); point
(F,2,0);
point(G,3,1);
triangle(T1, [A, B, C]); triangle(T2, [A, H, F]);
triangle(T3, [A, H, G]);

AreSimilar(T1, T2); AreSimilar(T1, T3);
- Kiểm tra tam giác có đều không: IsEquilateral()
Ví dụ: Với tam giac ABC có 3 đỉnh A(0,0), B(2,0), C(1,2)
[> triangle(ABC, [point(A,0,0), point(B,2,0), point(C,1,2)]);
IsEquilateral(ABC);
- Kiểm tra tam giác có vuông không: IsRightTriangle()
Ví dụ: Với tam giac ABC có 3 đỉnh A(0,0), B(2,0), C(0,2)
20
[> triangle(ABC, [point(A,0,0), point(B,2,0), point(C,0,2)]);
IsRightTriangle(ABC);
2.4. Tính khoảng cách
- Khoảng cách giữa hai điểm: distance()
Ví dụ: Với A(1,-2), B(2,-5)
[> point(A,1,-2);point(B,2,-5);distance(A,B);
hoặc
[> distance(segment(AB,[A,B]));
- Khoảng cách giữa điểm với đường thẳng: distance(A,T)
A: là một điểm
T: là một đường thẳng
Ví dụ: Với A(1,-2) và đường thẳng l: 2x-3y=1
[> point(A,-1,2); line(l,2*x-3*y=1,[x,y]);
distance(A,l);
Ta cũng có thể tính khoảng cách giữa điểm với đường thẳng bằng cách tính
khoảng giữa điểm đó với hình chiếu của nó trên đường thẳng. Ta tìm toạ độ
hình chiếu của điểm bằng lệnh: projection(B, A, l) với B: là hình chiếu của A
trên l.
[> projection(B, A, l); coordinates(B);
distance(A,B);
- Khoảng cách giữa hai đường thẳng: distance()
Ví dụ: Với 2 đường thẳng l1: 2x-y=3 và l2: x-3y=0

[> line(l1,2*x-y=3,[x,y]); line(l2,x-3*y=0,[x,y]);
distance(l1,l2);
Ta cũng có thể lấy ngẫu nhiên một điểm trên một đường thẳng và tìm hình
chiếu của nó trên đường thẳng kia. Sau đó tính khoảng cách giữa hai điểm vừa
tìm được:
[> randpoint(P,l1, -1 2, -1 2); coordinates(P);
21
projection(Q,P,l2); distance(P,Q);
- Xác định hệ số góc của đường thẳng: slope()
Ví dụ: Với đường thẳng l: y=2x+5
[> line(l,y=2*x+5,[x,y]);
slope(l);
- Xác định hệ số góc của đường thẳng qua hai điểm cho trước:
slope()
Ví dụ: Với đường thẳng đi qua 2 điểm A(3,-3) và B(4,-4)
[> point(A,3,-3; point(B,4,-4);
slope(A,B);
- Tính góc giữa hai đường thẳng khi biết phương trình của nó: FindAngle():
Ví dụ: Với hai đường thẳng l1: 3x-y=2 và l2: 2x-5y=3
[> line(l1,3*x-y=2,[x,y]); line(l2,2*x-5*y=3,[x,y]);
FindAngle(l1,l2);
- Tính góc giữa hai đường tròn: FindAngle():
Ví dụ: Với 2 đường tròn c1 có tâm (1,3) bán kính 4; và c2 có tâm
(3,-1) bán kính 2
[> circle(c1,(x-1)^2+(y-3)^2=16,[x,y]);
circle(c2,(x-3)+(y+1)=4,[x,y]);
FindAngle(c1,c2);
- Tính diện tích tam giác: area()
Ví dụ: Với tam giác ABC có 3 đỉnh A91,2), B(-3,2), C(-2,-3)
[> triangle(ABC,[point(A,1,2),point(B,-3,2),point(C,-2,-3)]);

area(ABC);
- Tính cạnh diagonal() và diện tích hình vuông area()
Ví dụ: Với hình vuông có 4 đỉnh A(0,0), B(1,0), C(1,1), D(0,1)
[>point(A,0,0);point(B,1,0);point(C,1,1);point(D,0,1);
22
square(ABCD,[A,B,C,D]);
sides(ABCD);
diagonal(ABCD);
area(ABCD);
draw(ABCD,axes=none);
- Tính diện tích hình tròn: area()
Ví dụ: Với hình tròn có tâm O(1,-2) và bán kính 5
[> circle(c,[point(O,1,-2),5]);
area(c);
draw(c);
- Tính diện tích Elip area():
Ví dụ:
[> ellipse(e,x^2/4+y^2/9=16,[x,y]);
area(e);
2.5. Một số chương trình giải bài toán hình học giải tích phẳng.
Bài tập 1
Cho điểm A(3,5) và đường thẳng (d): x+2y=1.
1) Viết phương trình đường thẳng đi qua A và song song với d.
2) Viết phương trình đường thẳng đi qua A và vuômg góc với d
3) Tìm bán kính đường tròn tâm A và tiếp xúc với d.
Chương trình giải
[>with(geometry):
point(A,3,5); line(d,x+2y=1,[x,y]);
print();
print();

print(`……………… BAI GIAI……………….`);
print(`Phuong trinh duong thang d1 di qua A va song song voi duong thang d`);
parallel(A,d,d1); detail(d1);
print(` *………………………………………* `);
print(`Phuong trinh duong thang d2 di qua A va vuong goc voi duong thangd`);
23
perpendicular(A,d,d2); detail(d2);
print(` *………………………………………* `);
print(` Ban kinh duong tron tam A va tiep xuc voi (d): `);
distance(A,d);
Bài tập 2
Cho 3 điểm A(3,-1), B(3,3), C(2,4)
1) Viết phương trình đường thẳng AB, BC, CA.
2) Viết phương trình đường tròn ngoại tiếp tam giác ABC.
Chương trình giải
[>with(geometry):
ba_diem:=[ point(A,3,-1), point(B,3,3), point(C,2,4)];
print();
print();
print(`……………… BAI GIAI……………….`);
print(` Phuong trinh duong thang AB, BC, CA: `);
print(`Phuong trinh duong thang AB: `);
line(ab,[A,B]); detail(ab);
print(`Phuong trinh duong thang BC: `);
line(bc,[B,C]); detail(bc);
print(`Phuong trinh duong thang CA: `);
line(ca,[C,A]); detail(ca);
print(` *………………………………* `);
print(` Phuong trinh duong tron c1 ngoai tiep tam giac ABC: `);
circle(c1,ba_diem); detail(c1);

print(` *………………………………* `);
Bài tập 3
Trong mặt phẳng Oxy cho hình vuông ABCD có đỉnh A(2,1), một đường chéo
nằm trên một đường thẳng có phương trình (d): x+2y=6 và đỉnh B(-2,4) thuộc
vào (d).
1) Viết phương trình các cạnh và đường chéo còn lại của hình vuông ABCD.
2) Viết phương trình đường tròn ngoại tiếp hình vuông ABCD.
Chương trình giải
24
[>with(geometry):
point(A,2,1); point(B,-2,4); line(d,x+2*y=6,[x,y]);
print();
print();
print(`……………… BAI GIAI…… ………….`);
print(` Phuong trinh cac canh va duong cheo con lai cua hinh vuong ABCD: `);
print(` Phuong trinh duong cheo con lai cua hinh vuong ABCD: `);
perpendicular(A,d,d1); detail(d1);
print(` Diem C se doi xung voi diem A qua duong thang d: `);
print(` Toa do diem C la: `);
reflect(A,d,C); detail(C);
print(` Diem D se doi xung voi diem B qua duong thang d1: `);
print(` Toa do diem D la: `);
reflect(B,d1,D); detail(D);
print(` Phuong trinh cac canh cua hinh vuong ABCD: `);
print(` Phuong trinh canh AB: `);
line(ab,[A,B]); detail(ab);
print(` Phuong trinh canh BC: `);
line(bc,[B,C]); detail(bc);
print(` Phuong trinh canh CD: `);
line(cd,[C,D]); detail(cd);

print(` Phuong trinh canh DA: `);
line(da,[D,A]); detail(da);
print(` *………………………………* `);
print(` Phuong trinh duong tron ngoai tiep hinh vuong ABCD: `);
print(` Tam I cua duong tron c1 ngoai tiep hinh vuong ABCD la: `);
intersection(I,d,d1); coordinates(I);
print(` Ban kinh cua duong tron c1 la: `);
distance(I,A); radius(c1);
print(` Phuong trinh duong tron la: `);
circle(c1,I,radius(c1)); detail(c1);
25

×