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

13 784 6
ỨNG DỤNG MAPLE TRONG GIẢI BÀI TOÁN HÌNH HỌC GIẢI TÍCH

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠ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 1/ Bài toán Viết phương trình đường thẳng qua một điểm vuông 1 đường thẳng (dạng tham số) và cắt một đường thẳng là giao tuyến 2 mặt phẳng. Yêu cầu bài toán suy ra đường thẳng cần tìm là giao tuyến của 2 mặt phẳng được xác định như sau. Mặt phẳng thứ nhất qua 1 điểm đề bài và chứa đường thẳng là giao tuyến 2 mặt phẳng. Về mặt phẳng  Mặt phẳng phương trình chính tắc có dạng là: Ax +By + Cz +D=0  Vector pháp tuyến của mặt phẳng và các vấn đề liên quan: Báo cáo môn lập trình symbolic và ứng dụng Trang 3  Là vector có giá vuông gốc với mặt phẳng.  Cho phương trình là Ax +By + Cz +D=0 thì vector pháp tuyến là =(A, B, C) Về đường thẳng  Xác định đường thẳng cho điểm A(x0, y0, z0) và vector chỉ phương = (a1, a2, a3) thì  Phương trình tham số là  Phương trình đường thẳng dạng này luôn được biểu diễn bởi 3 phương trình:  Phương trình dạng chính tắc là = =  Phương trình đường thẳng là giao của 2 mặt phẳng d = 2/ Cơ sở lý thuyết và phương hướng giải quyết Vector: Đượ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 , a 2 , a 3 ), =( b 1 , b 2 , b 3 ) và =( c 1 , c 2 , c 3 ) thì = Hai vector cùng phương: khi tỷ lệ thành phần bằng nhau Cho =( a 1 , a 2 , a 3 ) và =( b 1 , b 2 , b 3 ). đượ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 quyết bài toán gọn nhẹ dễ dàng. Mọi bài toán viết phương trình đường thẳng ta đều đưa về được dạng cơ bản là điểm và vector chỉ phương Như vậy, muốn viết được phương trình đường thẳng ta cần một điểm và một vector chỉ phương 3/ Phân tích bài toán Đ ây là một bài toán khó và khá phức tạp, ta giải bài toán này theo các bước sau. Yêu cầu: Nếu có phương trình đường thẳng dạng chính tắc ta cũng dễ dàng chuyển tham số được. Do đó ta chỉ xét đối với bài toán phương trình đường thẳng có dạng phương trình tham số. Hàm th i ế t l ập: PTMPQua1DiemChuaDTGiao2MP(điểm, mặt phẳng 1, mặt phẳng 2) Mặt phẳng thứ 2 qua 1 điểm đề bài và vuông góc đường thẳng dạng tham số. Hàm thiết lập: PTMPQua1DiemVuong1DTTS(điểm, phương trình 1, phương trình 2, phương trình 3). 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ố. Hàm thi ế t l ậ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 Cách 1: Bài toán 2 điểm và 1 vector chỉ phương. Cách 2: Từ điểm đề bài và điểm lấy từ đường thẳng, ta tìm được vector chỉ phương 2 của mặt phẳng. Cách 2a: Bài toán 1 điểm và 2 vector chỉ phương. Cách 2b: Lấy tích hữu hướng 2 vector chỉ phương ta được vector pháp tuyến của mặt phẳng. Đây là bài toán 1 điểm và 1 vector pháp tuyến • Cách l ậ p m ặ t p hẳ ng t h ứ 2 Ta có mặt phẳng vuông góc đường thẳng suy ra vector chỉ phương của đường thẳng là vector pháp tuyến của mặt phẳng. 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 thẳng cần tìm. Từ hệ 2 phương tr ình m ặt phẳng, ta chọn điểm đặc biệt thuộc đường thẳng thì thỏa hệ 2 phương tr ình đó Gọi Z ( x Z , y Z , 0 ) thuộc 2 mặt phẳng thì ( x Z , y 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 B[1]-A[1], B[2]-A[2], B[3]-A[3] end proc; > LayPhapMP := proc(pt) return Vector([coeff(lhs(pt), x, 1), coeff(lhs(pt), y, 1), coeff(lhs(pt), z, 1)]) end proc; > TichHuuHuong := proc(u, v) return u[2].v[3]-u[3]*v[2], u[3]*v[1]-u[1]*v[3], u[1]*v[2]- u[2]*v[1] end proc; > LayChiDTTS := proc(pt1, pt2, pt3) return Vector([coeff(rhs(pt1), t, 1), coeff(rhs(pt2), t, 1), coeff(rhs(pt3), t, 1)]) end proc; > LayChiDTGiao2MP := proc(pt1, pt2) return TichHuuHuong(LayPhapMP(pt1), LayPhapMP(pt2)) end proc; > PTDTTS1Diem1Chi := proc(A, a) local t; print(Bai toan viet PTDT qua mot diem va co motVTCP); lprint(Ta co diem ma duong thang di qua la(A[1], A[2], A[3])); lprint(VTCP cua duong thang la(a[1], a[2], b[3])); lprint(PTDT tham so co dang); print(x = A[1]+a[1]*t); print(y = A[2]+a[2]*t); print(z = A[3]+a[3]*t); print(voi t in R)) Báo cáo môn lập trình symbolic và ứng dụng Trang 8 end proc; > LayDiemDTGiao2MP := proc (mp1, mp2) 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(Ta co VTCP1 la(n[1], n[2], n[3])); lprint(Ta co VTCP2 la(m[1], m[2], m[3])); lprint(Suy ra VTPT cua mat phang la(TichHuuHuong(n, m)[1], TichHuuHuong(n, m)[2], TichHuuHuong(n, m)[3])); lprint(Bai toan tro thanh); PTMP1Diem1Phap(A, TichHuuHuong(n, m)) end proc; > PTMP2Diem1Chi := proc(A, B, a) print(Bai toan PTMP qua hai Diem va co mot VTCP); lprint(Ta co diem mot(A[1], A[2], A[3]); lprint(`diem 2`(B[1], B[1], B[3])); lprint(Suy ra VTCP2 cua mat phang la(TaoVector(A, B)[1], TaoVector(A, B)[2], TaoVector(A, B)[3])); lprint(Ta co VTCP1 cua mat phang la(a[1], [2], [33])); lprint(Bai toan tro thanh); PTMP1Diem2Chi(A, a, TaoVector(A, B)) Báo cáo môn lập trình symbolic và ứng dụng Trang 9 end proc; # Mặt phẳng thứ nhất qua một điểm đề bài và chứa đường thẳng là giao tuyến 2 mặt phẳng > PTMPQua1DiemChua1DTGiao2MP := proc(A, mp1, mp2) print(Bai toan viet PTMP qua mot diem va chua duong thang la giao tuyen hai mat phang); lprint(Ta co Phuong trinh duong thang la giao tuyen hai mat phang); lprint(mp1);lprint(mp2); lprint(Vector phap tuyen mat phang thu nhat la(LayPhapMP(mp1)[1], LayPhapMP(mp1)[2], LayPhapMP(mp1)[3])); lprint(Vector phap tuyen mat phang thu hai la(LayPhapMP(mp2)[1], LayPhapMP(mp2)[2], LayPhapMP(mp2)[3])); 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 [...]... 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, ... để 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 TÀI LIỆU THAM KHẢO [1] PGS.TS Đỗ Văn Nhơn, Bài giảng lập trình symbolic, ĐHCNTT, 2012 [2] J J O’Connor and A P Naughton, Symbolic computation, 2009 Báo cáo môn lập trình symbolic và ứng dụng. .. LayDiemThuoc2MP(mp1, mp2); lprint(Bai toan tro thanh); PTDTTS1Diem1Chi(T, TichHuuHuong(X, Y)) end proc; # Thử lại xem đường thẳng cần tìm có cắt đường thẳng dạng tham số hay không? Báo cáo môn lập trình symbolic và ứng dụng Trang 11 > KiemTra2VectorCungPhuong := proc(u, v) local T, m, n, p; print(Bai toan kiem tra hai vector cung phuong); print(Vector thu nhat la(u[1], u[2], u[3])); print(Vector thu hai la(v[1], v[2], . ĐẠ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. 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 1/ Bài toán Viết phương trình đường thẳng qua. 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 quyết bài toán gọn nhẹ dễ dàng. Mọi bài toán viết phương trình đường

Ngày đăng: 10/04/2015, 01:35

Từ khóa liên quan

Mục lục

  • CHƯƠNG I. GIỚI THIỆU

  • CHƯƠNG II. MÔ TẢ, PHÂN TÍCH VÀ VIẾT THỦ TỤC BÀI TOÁN

    • 1/ Bài toán

    • 2/ Cơ sở lý thuyết và phương hướng giải quyết

    • 3/ Phân tích bài toán

    • 4/ Viết thủ tục

    • 5/ Dữ liệu thử nghiệm

    • CHƯƠNG III. TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN

    • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan