Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
792,8 KB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN HỌC SYMBOLIC ĐỀ TÀI: ỨNG DỤNG MAPLE GIẢI VÀ BIỆN LUẬN HỆ PHƯƠNG TRÌNH BẬC NHẤT HAI ẨN GVHD: PGS TS Đỗ Văn Nhơn Họ tên học viên: Nguyễn Thị Thanh Thảo Mã HV: CH1101137 Tp Hồ Chí Minh, ngày 01, tháng 02 năm 201 Mục lục Lời nói đầu Maple là phần mềm tính toán khá mạnh mẽ. Với phần mềm Maple ta có thể : - Thực hiện tính toán với khối lượng lớn, với độ chính xác cao. Tránh được những sai lầm trong khi tính toán. - Sử dụng các gói chuyên dụng của Maple để giải quyết các bài toán cụ thể như: vẽ đồ thị (gói plot), hình học giải tích (gói geometry), đại số tuyến tính (gói linalg), - Thiết kế các đối tượng 3 chiều… v….v… Ngoài ra, ngoài khả năng tính toán mạnh, Maple còn là ngôn ngữ lập trình hướng thủ tục Thủ tục trong Maple là một dãy các lệnh của Maple theo thứ tự mà người lập trình đã định sẵn để giải quyết một công việc cụ thể nào đó. Maple sẽ tự động thức hiện tuần tự các lệnh trong thủ tục rồi trả về kết quả sau cùng. Để hiểu rõ hơn những tính năng mạnh mẽ của maple, trong phần báo cáo này, tôi xin trình bày ứng dụng của Maple trong việc giải hệ phương trình bậc nhất hai ẩn. Tôi xin chân thành cảm ơn PGS TS Đỗ Văn Nhơn đã truyền đạt cho tôi những kiến thức về Maple. Chân thành cảm ơn! CHƯƠNG I: GIỚI THIỆU TỔNG QUAN VỀ MAPLE I. Giới thiệu về Maple. Maple là một phần mềm Toán học do Đại Học Tổng HợpWaterloo(Canada) xây dựng và đưa vào sử dụng năm 1985. Sau nhiềulần cải tiến và phát triển qua nhiều phiên bản khác nhau và ngày càngđược hoàn thiện. Maple chạy trên tất cả các hệ điều hành, có trình trợ giúp (Help) rất dễ sử dụng. Từ phiên bản 7, Maple cung cấp ngày càngnhiều các công cụ trực quan, các gói lệnh tự học gắn liền với toán phổthông và đại học. Công cụ tính toán như Maple giúp chúng ta được giải phóng khỏi những những tính toán phức tạp vốn mất nhiều thời gian và đặc biệt là tránh được nhầm lẫn, sai sót khi tính toán. Ưu điểm đó khiến ngày càng có nhiều nước trên thếgiới lựa chọn sử dụng Maple trong dạy-học toán tương tác trước đòi hỏicủa thực tiễn và sự phát triển của giáo dục. II. Chức năng chính của Maple. Thực hiện các tính toán với khối lượng lớn, với thời gian nhanh và độchính xác cao. Sử dụng các gói chuyên dụng của Maple để giải quyết các bài toán cụthể như: vẽ đồ thị (gói plots), hình học giải tích (gói geometry), đại sốtuyến tính (gói linalg), Giải tích (gói student), phương trình vi phân(gói DEtools), lý thuyết số (gói numtheory), Dữ liệu rời rạc(góiDiscreteTransforms), Thiết kế các đối tượng 3 chiều. Minh họa hình học thuận tiện gồm: vẽ đồ thị tĩnh và động của cácđường và mặt được cho bởi các hàm tùy ý trong nhiều hệ tọa độ khácnhau; Tính toán trên các biểu thức đại số; Có thể thực hiệc được hầu hết các phép toán cơ bản trong chươngtrình toán đại học và sau đại học; Ngôn ngữ lập trình đơn giản và mạnh mẽ, có khả năng tương tác vớicác ngôn ngữ lập trình khác; Một công cụ biên soạn giáo án và bài giảng điện tử, thích hợp với cáclớp học tương tác trực tiếp; Một công cụ hữu ích cho học sinh và sinh viên trong việc tự học……. III. Cấu trức dữ liệu. 1. Dãy biểu thức ( Expression Sequence) Dãy là một cấu trúc dữ liệu gồm: - Các phần tử ngăn cách nhau bởi dấu , - Các phần tử của dãy có thể là bất cứ gì. Maple áp dụng sự định giá đầy đủ khi định giá một dãy. 2. Danh sách (List) Danh sách là dãy được bao trong cặp dấu ngoặc vuông. Các phần tử của danh sách co thể là bất cứ gì. Tìm số phần tử của list bằng nops(L); Truy cập các phần tử của list > Hàm op(L) trả về dãy tương ứng với danh sách => dùng để nối hai danh sách 3. Tập hợp (Set) Tập hợp là dãy được bao trong cặp dấu ngoặc nhọn. Trong tập hợp thứ tự các phần tử không quan trọng. Các phép toán trên tập hợp như union(hợp),intersect(giao),minus(trừ). Xem kiểu whattype(). Ví dụ xem kiểu của tập hợp Whattype(th) 4. Mảng Mảng là cấu trúc dữ liệu bao gồm. Một hay nhiều chiều. Miền chỉ mục của các chiều phải là khỏang số nguyên. Các phần tử của mảng có thể là mọi thứ. Cú pháp : > array(indexfcn , bounds ,list); - indexfcn (tùy chọn) : hàm chỉ số. - bounds (tùy chọn) : dãy của các khỏang. - list (tùy chọn) : danh sách các giá trị khởi đầu. 5. Bảng (Table) Bảng là cấu trúc dữ liệu trong đó các chỉ mục có thể là bất cứ gì. Cú pháp: > table (F,L); * F (tùy chọn): hàm chỉ số * L (tùy chọn): dãy hay tập hợp gồm các phần tử của bảng. Nếu L có dạng danh sách hay tập hợp các đẳng thức thì các vế trái sẽ là các chỉ số của mảng ; các phần tử vế phải sẽ là các phần tử của bảng. Trái lại, các chỉ số là các số nguyên 1,2,3 indices(bang) : trả về dãy chỉ số. entries(bang) : tra về dãy các phần tử của bảng. IV. Một số hàm thông dụng trên cấu trúc dữ liệu 1. Hàm phát sinh số ngẫu nhiên rand(m n)sẽ trả về thủ tục nếu gọi có thể sinh số nguyên ngẫu nhiên trong khỏang m n rand(m n)( ): sinh số nguyên ngẫu nhiên trong khỏang m n. rand( ): sinh số nguyên ngẫu nhiên không âm có 12 chữ số. randomize( ): gieo giống lại bộ sinh số. 2. Hàm tìm max,min một dãy Cú pháp: > max( day ); > min( day ); 3. Hàm map Ví dụ > map(f, x + y*z); > map(f, y*z); 4. Hàm add,mul add dùng để cộng dãy các giá trị. mul dùng để nhân dãy các giá trị. Cú pháp: add(f, i = m n) add(f, i = x) add(f, i in x) mul(f, i = m n) mul(f, i = x) mul(f, i in x) 5. Hàm subsop Hàm subsop dùng để thay thế một lúc tại nhiều vị trí một biểu thức hoặc một cấu trúc dữ liệu. Cú pháp: > subsop(vt1=bt1,vt2=bt2, ,vtn=btn,bt); 6. Các tính toán số học thông dụng. Các phép toán số học: +, -, *, / Lũy thừa: ^, giai thừa: x! Logarit: ln(x), log[a](b), exp(x) Các hàm lượng giác: sin(x), cos(x), tan(x), cot(x), Một số hàm khác: abs(x) - |x|, sqrt(x) - căn bậc 2 của x 7. Tính toán với độ chính xác theo yêu cầu Lệnh evalf Cú pháp 1: evalf(bieu_thuc) - tính toán chính xác giá trị của biểu thức và biểu diễn kết quả với mặc định là 10 chữ số. Cú pháp 2: evalf(bieu_thuc, k) - tính toán chính xác giá trị của biểu thức và biểu diễn kết quả với k chữ số. 8. Các thao tác với số nguyên tố Phân tích một số n thành thừa số nguyên tố: lệnh ifactor(n); Kiểm tra một số n có phải là số nguyên tố không?: lệnh isprime(n); Tìm số nguyên tố đứng sau một số n cho trước: lệnh nextprime(n); Tìm số nguyên tố đứng trước một số n cho trước: lệnh prevprime(n); Tìm ước số chung lớn nhất của 2 số nguyên dương a, b: lệnh gcd(a,b); Tìm bội số chung nhỏ nhất của 2 số nguyên dương a, b: lệnh lcm(a,b); Tìm số dư khi chia a cho b: lệnh irem(a,b); Tìm thương nguyên khi chia a cho b: lệnh iquo(a,b); > ifactor(3000000000); 9. Giải phương trình. Lệnh isolve: Cú pháp 1: isolve(phuong_trinh/he_phuong_trinh); Cú pháp 2: isolve(phuong_trinh/he_phuong_trinh, <danh_sach_tham_so>); 10. Khái niệm hằng số, biến số. Trong Maple, biến số được sử dụng thoải mái mà không cần khai báo, định nghĩa trước Biến số, hằng số được đặt tên thỏa mãn một số quy tắc sau: + Không bắt đầu bằng chữ số + Không chứa khoảng trắng và một số ký tự đặc biệt như: %,^,&,*,$,#, + Không được trùng với tên một số hàm và lệnh của Maple: sin, cos, ln, min, max, … Một biến số sẽ trở thành hằng số ngay khi nó được gán cho một giá trị nào đó. Nếu muốn biến một hằng số trở lại biến số, ta dùng phép gán: ten_bien:='ten_bien'; 11. Tính tổng và tích Tính tổng: sử dụng lệnh sum (tính trực tiếp ra kết quả) hoặc Sum(biểu diễn dạng công thức) Cú pháp: sum(bieu_thuc_trong_tong, bien :=gia_tri_dau gia_tri_cuoi); Sum(bieu_thuc_trong_tong, bien :=gia_tri_dau gia_tri_cuoi); Tính tích: sử dụng lệnh product (tính trực tiếp ra kết quả) hoặc Product (biểu diễn dạng công thức) Cú pháp: product(bieu_thuc_trong_tong, bien :=gia_tri_dau gia_tri_cuoi); Product(bieu_thuc_trong_tong, bien :=gia_tri_dau gia_tri_cuoi); Lưu ý: giá trị vô cực được biểu diễn bằng từ khóa infinity 12. Khai triển biểu thức đại số Cú pháp: expand(bieu_thuc_dai_so); > expand(bt); 13. Phân tích đa thức thành nhân tử Cú pháp: factor(bieu_thuc_dai_so); > factor(x^4-10*x^3+35*x^2-50*x+24): 14. Đơn giản biểu thức đại số Cú pháp: simplify(bieu_thuc_dai_so); > bt:=cos(x)^5+sin(x)^4+2*cos(x)^2-2*sin(x)^2-cos(2*x): 15. Tối giản phân thức Cú pháp: normal(phan_thuc); > tu := x^3-y^3: > mau := x^2+x-y-y^2: > phanthuc := tu/mau: > normal(phanthuc): 16. Thay giá trị cho biến trong biểu thức Cú pháp: subs(bien = gia_tri , bieu_thuc); > bt := x^2-1; > subs(x=2,bt): > bt := x^2-1; [...]... phạm vi bài này sẽ ứng dụng Maple giải hệ phương trình bậc nhất hai ẩn 1 Phân tích yêu cầu bài toán: Input: hệ phương trình bậc nhất hai ẩn có tham số m theo đúng dạng chuẩn và tham số m Ouput: tập nghiệm của hệ phương trình biện luận theo m 2 Cấu trúc dữ liệu: Biến và kiểu dữ liệu cụ thể của tham biến 3 Thuật giải: Kiểm tra a2 + b2 0 Tính định thức D, Dx, Dy theo tham số m Giải và biện luân nghiệm... hệ phương trình (pht) có nghiệm x= Dx/D và y= Dy/D - 4 Dx=Dy =0 và D =0 hpt vô nghiệm D=0 và Dx 0 hoặc D=0 và Dy 0 hpt vô số nghiệm Triển khai trong Maple Kết luận Đã ứng ụng Maple giải và biện luân được hệ phương trình bậc nhất hai ẩn theo tham số m Tuy nhiên, đối với những hệ phương trình có biến lũy thừa hoặc biến nằm trong căn thì chưa giải quyết được Sẽ khắc phục để có thể giải được hệ phương. .. cục bộ: Biến cục bộ được khai báo sau từ khoá local trong 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ì CHƯƠNG II: BÀI TOÁN ỨNG DỤNG MAPLE Chương trình Maple cho phép ta tính định thức ma trận, giải hệ phương trình, phương trình, bất phương trình, ….Ngoài ra, Maple còn cho phép ta tìm ra giá trị riêng, vectơ riêng, đa... 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. .. (ở đây là lệnh od) 6 Sử dụng các hàm RETURN, ERROR Hàm 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 Hàm ERROR được sử dụng để đưa thông điệp lỗi ra màn hình từ bên trong chu trình VI Thiết lập chu trình trong Maple Maple là một ngôn ngữ lập trình hướng chu trình (procedure) Chúng... có thể được khai báo trực tiếp 4 Phạm vi các biến (biến toàn cục, biến cục bộ và tham biến) a Biến toàn cục: Biến toàn cục được khai báo sau từ khoá 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 đó b Biến cục bộ: Biến cục bộ được khai báo sau từ... statements_sequence; end; 2 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... 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 3 Tham biến 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ố... 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, subs, map, convert, ) 1 Khai báo chu trình Lời gọi khai báo một chu trình: ... [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 ý . phạm vi bài này sẽ ứng dụng Maple giải hệ phương trình bậc nhất hai ẩn. 1. Phân tích yêu cầu bài toán: Input: hệ phương trình bậc nhất hai ẩn có tham số m theo đúng dạng chuẩn và tham số m. Ouput:. Triển khai trong Maple.