ỨNG DỤNG MAPLE TRONG GIẢI BÀI TOÁN HÌNH HỌC GIẢI TÍCH - Pdf 26

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN HỌC
LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG
ĐỀ TÀI:
ỨNG DỤNG MAPLE TRONG GIẢI BÀI TOÁN HÌNH HỌC
GIẢI TÍCH
Giảng viên : PGS.TS ĐỖ VĂN NHƠN
Học viên thực hiện : ĐÀM THANH LONG
Mã số học viên : CH1101020
TP.HCM 2013
CHƯƠNG I. GIỚI THIỆU
Ngày nay, cùng với những thành tựu tuyệt vời trong lĩnh vực công nghệ thông tin, người
ta đã xây dựng nhiều phần mềm để hỗ trợ cho công tác học tập và nghiên cứu. Một thực
tiễn đã được biết từ lâu là những bài toán đặt ra trong thực tiễn thường không được giải
quyết bằng những mẹo tính toán thủ công mà phải dùng đến năng lực tính toán của máy
tính điện tử. Phần mềm tính toán ra đời nhằm đáp ứng yêu cầu của thực tiễn, đưa các tính
toán phức tạp (cả phổ thông lẫn cao cấp) trở thành công cụ làm việc dễ dàng cho mọi
người.
Toán học là thống nhất nên các phần mềm tính toán cũng có cấu trúc cơ bản giống nhau.
Vì vậy, nếu biết sử dụng phần mềm toán học nào đó thì cũng dễ dàng sử dụng được các
Báo cáo môn lập trình symbolic và ứng dụng Trang 2
phần mềm khác. Phần mềm tính toán Maple đã làm cho việc giải các bài toán trở nên đơn
giản và nhanh chóng góp phần làm tăng hiệu suất làm việc của chúng ta trong học tập,
nghiên cứu và giảng dạy. Maple là phần mềm do một nhóm các nhà khoa học của Canada
thuộc trường đại học Waterloo làm ra với mục đích giải quyết mọi công việc liên quan
đến tính toán
Mục tiêu của bài viết là sử dụng tính năng mạnh mẽ của phần mềm Maple để phân tích
giải những bài toán khó và phức tạp.
CHƯƠNG II. MÔ TẢ, PHÂN TÍCH VÀ VIẾT THỦ TỤC BÀI TOÁN

Được tạo từ hai điểm bất kỳ không trùng nhau
Cho A(a
1
, a
2
, a
3
) và B(b
1
, b
2
, b
3
) thì = (b
1
– a
1
, b
2
– a
2
, b
3
– a
3
)
Tích hữu hướng hai vector: là một vector vuông góc với từng vector thành phần, có
phương được xác định theo nguyên tắc mở nút chai
Cho =( a
1

). được gọi là cùng phương nếu và chỉ nếu = = . Suy ra
hai vector không cùng phương khi và chỉ khi tồn tại một thành phần có tỉ lệ không bằng
các thành phần khác
Mặt phẳng:
Báo cáo môn lập trình symbolic và ứng dụng Trang 4
Nếu có phương trình mặt phẳng thì ta luôn lấy được 1 vector pháp tuyến và 1 điểm.
Nếu có 1 vector pháp tuyến và 1 điểm thì ta luôn viết được phương trình mặt phẳng.
Như vậy, mọi bài toán viết phương trình mặt phẳng ta đều có thể đưa về dạng bài toán
trên (1 điểm và 1 vector pháp tuyến).
Chứng minh:
 Đưa bài toán 3 điểm về bài toán 1 điểm và 1 vector pháp tuyến.
Từ 3 điểm, ta lập được 2 vector chỉ phương của mặt phẳng. Từ 2 vector chỉ phương đó ta
được vector pháp tuyến của mặt phẳng.
Lấy 1 điểm tùy ý trong 3 điểm kết hợp với vector pháp tuyến mới tìm được, ta có bài toán
1 điểm và 1 vector pháp tuyến.
 Đưa bài toán 2 điểm và 1 vector chỉ phương về bài toán 1 điểm và 1 vector pháp
tuyến.
Từ 2 điểm, ta lập được 1 vector chỉ phương . Kết hợp với vector chỉ phương đề bài, ta
được vector pháp tuyến của mặt phẳng.
Lấy tùy ý 1 trong 2 điểm kết hợp với vector pháp tuyến mới tìm được, ta được bài toán 1
điểm và 1 vector pháp tuyến.
 Đưa bài toán 1 điểm và 2 chỉ về bài toán 1 điểm và 1 vector pháp tuyến.
Từ 2 vector chỉ phương ta tìm được vector pháp tuyến của mặt phẳng. Kết hợp với điểm
đề bài ta có bài toán 1 điểm và 1 vector pháp tuyến.
Đường thẳng:
Nếu có phương trình đường thẳng thì ta luôn lấy được 1 điểm và 1 vector chỉ phương.
Nếu có 1 điểm và 1 vector chỉ phương ta luôn viết được phương trình đường thẳng hoặc
nếu có 2 điểm thì ta cũng viết được phương trình đư ờng thẳng bằng 2 cách.
Báo cáo môn lập trình symbolic và ứng dụng Trang 5
Giải quyết bài toán phương trình đường thẳng có rất nhiều cách. Tuy nhiên ta sẽ giải

ập: PTDTTSGiao2MP(mặt phẳng 1, mặt phẳng 2 ).
Thử lại xem đường thẳng cần tìm có cắt đường thẳng dạng tham số hay không.
Hàm th i

ế

t l

ập: KiemTra2VectorCungPhuong(vector, vector).
• Cách l



p

m ặ

t p hẳ

ng

t h



1
Ta có mặt phẳng cần tìm chứa đường thẳng đề bài suy ra vector chỉ phương của đường
thẳng là vector chỉ phương 1 của mặt phẳng.
Ta lấy 1 điểm thuộc đường thẳng là điểm thuộc 2 mặt phẳng (LayDiemThuoc2MP)
Báo cáo môn lập trình symbolic và ứng dụng Trang 6

Ta có bài toán viết phương tr
ình
m

ặt phẳng qua 1 điểm và có 1vector pháp tuyến.
Như vậy ta có được phương tr
ình
đư

ờng thẳng cần tìm là giao tuyến của 2 mặt
phẳng.
Bây giờ, ta chuyển dạng phương tr
ình trên
v

ề phương tr
ình tham
s

ố.
Bài toán viết phương tr
ì
nh đường thẳng là giao tuyến 2 mặt phẳng.
 Từ mặt phẳng thứ 1 ta có được vector pháp tuyến 1 (LayPhapMP).
 Từ mặt phẳng
thứ

2
ta có được vector pháp tuyến 2 (LayPhapMP).
Lấy tích hữu hướng 2 vector pháp tuyến đó ta có vector chỉ phương của đường

Z
)
thỏa phương trình của 2 mặt phẳng. Giải
hệ tìm được x
Z
và y
Z
. (LayDiemDTGiao2MP).
Báo cáo môn lập trình symbolic và ứng dụng Trang 7
Đây chính là bài toán viết phương trình đường thẳng qua 1 điểm và có 1 vector chỉ
phương.
T h



l ạ

i
Từ phương trình đường thẳng mới tìm được ta lấy được vector chỉ phương (laychiDTTS).
Ta cũng có vector
ch
ỉ phương của đường thẳng dạng tham số.(LayChiDTTS).
Ta kiểm tra xem 2 vector này có cùng phương không? (KiemTra2VectorCungPhuong).
 Nếu không cùng phương thì
nhận
đường thẳng mới tìm.

Ngược lại, kết luận không có đường thẳng cần tìm
4/ Viết thủ tục
> TaoVector := proc(A, B)

return rhs(subs(z = 0, solve({mp1, mp2}, {x, y})[1])), rhs(subs(z
= 0, solve({mp1, mp2}, {x, y})[2])), 0
end proc;
> LayDiemThuoc2MP := proc(mp1, mp2)
lprint(Chon Z(k, 1, 0)mat phang Ta co);
lprint(subs(y = 1, subs(x = k, subs(z = 0, mp1)))); lprint(subs(x
= k, subs(y = 1, sub(z = 0, mp2))));
lprint(`Suy ra`);
lprint(subs(x = k, subs(z = 0, solve({mp1, mp2}, {x, y})[1])));
lprint(subs(y = 1, subs(z = 0, solve({mp1, mp2}, {x, y})[2])));
lprint(Vay diem mat phang la(rhs(subs(z = 0, solve({mp1, mp2}, {x,
y})[1])), rhs(subs(z = 0, solve({mp1, mp2}, {x, y})[2])), 0));
return rhs(subs(z = 0, solve({mp1, mp2}, {x, y})[1])), rhs(subs(z
= 0, solve({mp1, mp2}, {x, y})[2])), 0);
end proc;
> PTMP1Diem1Phap := proc(A, n)
local ptmp;
print(Bai toan PTMP qua mot diem va co mot VTPT);
lprint(Ta co VTPT cua mat phang la(n[1], n[2], n[3]));
lprint(PTMP co dang);
print(n[1]*x+n[2]*y+n[3]*z+d = 0);
lprint(Ta co diem(A[1], A[2], A[3]));
lprint(Vi diem thuoc mat phang nen d =(-n[1]*A[1]-n[2]*A[2]-
n[3]*A[3]);
lprint(Nen PTMP la);
print(n[1]*x+n[2]*y+n[3]*z-n[1]*A[1]-n[2]*A[2]-n[3]*A[3] = 0);
return n[1]*x+n[2]*y+n[3]*z-n[1]*A[1]-n[2]*A[2]-n[3]*A[3] = 0:
end proc;
> PTMP1Diem2Chi := proc(A, n, m)
print(Baitoan PTMP Diem va co VTCP);

lprint(Vector huu huong hai mat phang la(LayChiDTGiao2MP(mp1, mp2)
[1], LayChiDTGiao2MP(mp1, mp2)[2], LayChiDTGiao2MP(mp1, mp2)[3]));
lprint(Suy ra Vector chi Phuong cua duong thang la
(LayChiDTGiao2MP(mp1, mp2)[1], LayChiDTGiao2MP(mp1, mp2)[2],
LayChiDTGiao2MP(mp1, mp2)[3]));
lprint(Suy ra VTCP1 cua mat phang la(LayChiDTGiao2MP(mp1, mp2)[1],
LayChiDTGiao2MP(mp1, mp2)[2], LayChiDTGiao2MP(mp1, mp2)[3]));
LayDiemThuoc2MP(mp1, mp2);
lprint(Taco diem ban dau la(A[1], A[2], A[3]));
lprint(Bai toan tro thanh);
PTMP2Diem1Chi(A, LayDiemThuoc2MP(mp1, mp2), LayChiDTGiao2MP(mp1,
mp2))
end proc;
# Mặt phẳng thứ 2 qua 1 điểm đề bài và vuông góc đường thẳng dạng tham số.
Báo cáo môn lập trình symbolic và ứng dụng Trang 10
> PTMPQua1DiemVuong1DTTS := proc(A, pt1, pt2, pt3)
print(Bai toan viet PTMP qua mot diem va vuong goc mot duong
thang);
lprint(Ta co phuong trinh duong thang la);
lprint(pt1);
lprint(pt2);
lprint(pt3);
lprint(Suy ra VTPT cua duong thang la(LayChiDTTS(pt1, pt2, pt3)
[1], LayChiDTTS(pt1, pt2, pt3)[2], LayChiDTTS(pt1, pt2, pt3)[3]));
lprint(Bai toan tro thanh);
PTMP1Diem1Phap(A, LayChiDTTS(pt1, pt2, pt3))
end proc;
# Chuyển phương trình đường thẳng dạng giao tuyến của 2 mặt phẳng về dạng tham số.
> PTDTTSGiao2MP := proc(mp1, mp2)
local t, a, b, c, m, n, p, X, Y, T;

m := u[1]*v[2]-u[2]*v[1];
n := u[2]*v[3]-u[3]*v[2];
p := u[1]*v[3]-u[3]*v[1];
if m = n and n = p then
lprint(Ta co cac thanh phan cua hai vector bang nhau);
lprint(Suy ra hai vector cung phuong);
return 1
else
lprint(Ta co cac ty le thanh phan cua hai vector khong bang
nhau);
lprint(Suy ra hai vector khong cung phuong)
end if
end proc;
5/ Dữ liệu thử nghiệm
> PTMPQua1DiemChua1DTGiao2MP([30, 15, 6], x+2*y+2*z+30 = 0, x+y+6*z-43 = 0)
> PTMPQua1DiemVuong1DTTS([30, 15, 6], (x=30+2*t, y=15+1*t, z=6 +3*t), (x=30+9*t,
y=15+1*t, z=6 +3*t), (x=30+2*t, y=15+5*t, z=6 +2*t)
> PTDTTSGiao2MP(1*x+2*y+5*z+30 = 0, 3*x+1*y+6*z-43 = 0)
> KiemTra2VectorCungPhuong([2, 4, 3], [2, 4, 3])
CHƯƠNG III.TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN
Bài viết này sử dụng các hàm có sẳn và một số hàm người viết định nghĩa trong Maple,
cách viết các thủ tục và từ đó có thể xây dựng nhiều chương trình khác phục vụ cho việc
giải những bài toán phổ thông, việc vận dụng giải bài toán là nhằm mục đích giúp chúng
ta có những suy luận trong hướng tiếp cận lập trình symbolic mà sử dụng công cụ lập
trình Maple.
Vấn đề ở đây không phải là đi giải một bài toán, mà là làm thế nào để xây dựng một công
cụ trên máy tính để có hướng tư duy để giải quyết bài toán như thế nào chủ động hơn và
Báo cáo môn lập trình symbolic và ứng dụng Trang 12
phát huy tối ta khả năng của công cụ để từ đó nâng lên một tầm cao hơn trong thời đại
cộng nghệ mới ngày nay.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status