Hiện tại, người dùng Maple có thể sử dụng cả phương pháp lập trình hàm và phương pháp theo kiểu lệnh đơn trong chương trình của mình.. Giới thiệu ứng dụng Mục tiêu Hệ thống giải toán onl
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
-o0o -GIẢI MỘT SỐ BÀI TOÁN TRÊN MAPLE
VÀ XÂY DỰNG HỆ THỐNG MATH ONLINE
Giảng viên hướng dẫn:
PGS TS Đỗ Văn Nhơn Học viên thực hiện:
Lê Minh Trí CH1101149 Lớp: Cao học khóa 6
Trang 2MỤC LỤC
I GIỚI THIỆU MAPLE 2
I.1 Maple 2
I.2 Lịch sử phát triển của Maple 2
I.3 So sánh Maple với những công cụ khác: 2
I.4 Sử dụng Maple trong hệ thống 2
II GIẢI MỘT SỐ BÀI TOÁN TRÊN MAPLE 2
II.1 Bài toán tam giác 2
II.2 Giải và biện luận phương trình bậc 2 theo tham số m 2
II.3 Giải hệ phương trình tuyến tính 2
III XÂY DỰNG HỆ THỐNG GIẢI TOÁN ONLINE 2
III.1 Giới thiệu ứng dụng 2
III.2 Phân tích và thiết kế chương trình 2
TÀI LIỆU THAM KHẢO 2
Trang 3I GIỚI THIỆU MAPLE
I.1 Maple
Maple (http://www.maplesoft.com/) là sản phẩm được phát triển lần đầu vào năm
1980 bởi nhóm Toán hình thức của đại học Waterloo, Ontario, Canada Phiên bản 1.0xuất hiện vào năm 1982 Maple là phần mềm thương mại dùng cho nhiều lĩnh vực,mặc dù vậy, Maple được sử dụng cho mục đích toán học là chính
Nhân của Maple được viết bằng C, sau đó ngôn ngữ Maple được phát triển dựa trênnhân này Hiện tại, người dùng Maple có thể sử dụng cả phương pháp lập trình hàm
và phương pháp theo kiểu lệnh đơn trong chương trình của mình
I.2 Lịch sử phát triển của Maple
Maple lần đầu xuất hiện vào tháng 12 năm 1980 với mục đích tạo ra hệ thống đại sốhình thức mà các nhà nghiên cứu và sinh viên có thể truy cập được Sau đó, nó đượcphân phối cho các trường đại học có nhu cầu
Đến năm 1988, khi số lượng người dùng tăng nhanh chóng, không chỉ là các trườngđại học, mà còn có cả các cá nhân sử dụng, đòi hỏi phải có một bộ phận chuyên quản
lý các giấy phép xuất bản và phân phối sản phẩm, Waterloo Maple Inc ra đời và đảmnhiệm vai trò đó
Ban đầu, Maple chỉ tương tác với người dùng qua giao diện là câu lệnh và giao diệnđơn giản Đến năm 2003, giao diện chuẩn được xây dựng trên nền Java và cho đếnnay, nó vẫn được phát triển phù hợp với nhu cầu người dùng
Năm 2010, phiên bản Maple 14 ra đời đánh dấu 30 năm phát triển đầy khó khăn củaMaple Và hiện Maple đã trở thành phần mềm toán học mạnh nhất, đáp ứng nhu cầunghiên cứu và học tập của sinh viên và chuyên gia toán học
Trang 4I.3 So sánh Maple với những công cụ khác:
Khả năng
giải toán
Thiên về toán học
Hỗ trợ lập trình toánhình thức tốt
Dùng cho ngành kỹthuật nói chung
Bộ toolbox rất lớnthuộc nhiều lĩnh vực
Chuyên về giảitoán
Tính phổ
biến
Rất phổ biến, quenthuộc với sinh viên, đặcbiệt các sinh viên có họclập trình toán hình thức
Tương đối phổ biến Tương đối phổ
Gói phổ thông:
$139.95
Dung lượng Nhẹ: 700MB Khá nặng 2.4GB Vừa phải: 900MB
Giới thiệu
chung
Maple là công cụ tínhtoán kĩ thuật cho các kĩ
sư, các nhà toán học, vàcác nhà khoa học Nógiúp bạn làm các phéptính nhanh, tạo các tàiliệu, thiết kế các bàigiảng Công cụ Maple
MathLab là một môitrường tính toán
số và lập trình, đượcthiết kế bởi công
ty MathWorks Sửdụng MathLab, ta
có thể giải quyết vấn
đề kỹ thuật máy
Mathematica lầnđầu tiên đượchãng WolframResearch pháthành vào năm
1988, là một hệthống nhằm thựchiện các tính toán
Trang 5dẫn đầu thế giới cung
cấp nhiều tính năng cao
Maple cung cấp mội
trường thông minh để
dạng các kí hiệu viết tay
Ngoài ra, Maple còn
thống như C, C ++, và Fortran
MathLab cho phéptính toán số với matrận, vẽ đồ thị hàm
số hay biểu đồ thôngtin, thực hiện thuậttoán, tạo các giao diệnngười dùng và liên kếtvới những chươngtrình máy tínhviết trênnhiều ngôn ngữ lậptrình khác Với thưviện Toolbox,MathLab cho phép môphỏng tính toán, thựcnghiệm nhiều mô hìnhtrong thực tế và kỹthuật
toán học trên máytính điện tử.Nó làmột tổ hợp cáctính toán bằng kýhiệu, tính toánbằng số, vẽ đồ thị
và là ngôn ngữlập trình tinh vi,mục đích chínhcủa phần mềmnày là đưa vào sửdụng cho cácngành khoa họcvật lý, công nghệ
và toán học,nhưng cùng với
Mathematica trởthành phần mềmquan trọng trongnhiều lĩnh vựckhoa học khác.Mathematica cungcấp các thư việnhàm toán học cơbản và nâng cao
Mathematica còncung cấp môphỏng dữ liệu 2D,3D, công cụ xử lí
Trang 6hình ảnh, phântích đồ thị.
I.4 Sử dụng Maple trong hệ thống.
Với Maple, chúng ta có thể tạo ra các văn bản tương tác Môi trường Maple cho phépchúng ta bắt đầu giải quyết vấn đề ngay lập tức bằng cách nhập biểu thức toán học vàgiải quyết những biểu thức bằng cách sử dụng các giao diện Ta có thể kết hợp vănbản và toán học trên cùng một dòng, thêm bảng để tổ chức các nội dung công việc củabạn, hoặc chèn hình ảnh, và bảng tính Ta có thể hiển thị và trình bày các vấn đề tronghai và ba chiều, định dạng văn bản, sổ, và chèn các siêu liên kết đến tập tin khácMaple, các trang web, hoặc địa chỉ email Ta có thể nhúng vào các thành phần giaodiện đồ họa người dùng, cũng như đưa ra các giải pháp sử dụng ngôn ngữ lập trìnhMaple
Trang 7Chế độ Worksheet
Chế độ Worksheet sử dụng dấu nhắc Maple là đầu vào mặc định Dấu nhắc nhậpMaple là một khung góc màu đỏ Khi sử dụng chế độ Worksheet, tất cả các lệnh sẽđược hiển thị
Để làm việc trong chế độ Worksheet, chọn File →New→ Worksheet Mode.
Thanh công cụ lệnh:
Sử dụng Biểu tượng Tùy chọn menu hay các lệnh
Chèn văn bản thuần sau dòng
Chèn Maple Input sau dòng
hiện tại
Từ menu Insert, lựa ExecutionGroup và sau đó chọn AfterCursor
Mở mục con chứa nội dung
hoặc bao nội dung được lựa
chọn thành một mục con
Từ menu Format, lựa Indent
Kết thúc mục con và trở về
mục trước hoặc xóa mục con
của nội dung được lựa chọn
Từ menu Format, lựa Outdent
Thi hành tất các các lệnh trong
worksheet hay document
Từ menu Edit, lựa Execute sau đóchọn Worksheet
Thi hành các lệnh trong vùng
lựa chọn
Từ menu Edit, lựa Execute vàchọn Selection
Xóa bộ nhớ của Maple Nhập restart;
Điều chỉnh kích cỡ hiển thị của
nội dung tài liệu
Từ menu View, lựa Zoom Factor
và chọn một cỡ để phóng to
Trang 8Mở hệ thống trợ giúp của
Tab không được kích hoạt
Thanh công cụ Math: cho phép hiệu chỉnh dịnh dạng hiển thị chữ, căn lề cho văn bản
dạng toán học của Maple
Thanh công cụ Plot: cho phép hiệu chỉnh các đồ thị.
Thanh công cụ Drawing: cho phép vẽ một số hình, đường cơ bản.
Thanh công cụ Animation: điều khiển các đối tượng động.
Trang 9 Components: nhúng các thành phần giao diện đồ họa như nút vào tài liệu hay
bảng tính Các thành phần này có thể được lập trình để thực hiện một hànhđộng khi được chọn như là thực hiện một lệnh khi một nút được nhấn
Handwriting: một cách dễ dàng để tìm thấy một biểu tượng mong muốn.
Units (SI): chèn thêm một đơn vị từ các hệ thống đơn vị quốc tế hoặc một đơn
vị phổ biến
Units (FPS): chèn một đơn vị từ Foot-Pound-Second System (FPS),
hoặc bất kỳ đơn vị nói chung
Accents: chèn các kí hiệu trang trí, ví dụ một mũi tên trên đầu để biểu thị một
vector
Favorites: thêm các mẫu mà bạn thường xuyên sử dụng từ các palette khác.
Common Symbols, Relational, RelationalRound, Operator, Large Operators,Negated, Fenced, Arrows, Constants and Symbols: chèn các kí hiệu toán học
Punctuation: chèn các dấu chấm câu, các biểu tượng như @ !
Miscellaneous: chèn thêm các kí hiệu linh tinh khác.
Trang 10II GIẢI MỘT SỐ BÀI TOÁN TRÊN MAPLE
II.1 Bài toán tam giác
Phát biểu: Trong một tam giác ta cho trước một vài thuộc tính yêu cầu của bài toán là
tính toán giá trị thuộc khác của tam giác
Ví dụ:
Giải thiết cho ba cạnh của tam giác: H = {a=5, b = 4, c=3}
Mục tiêu tìm diện tích tam giác và chu vi của đường tròn ngoại tiếp tam giác: G = {S,R}
Tập các biến trong tam giác:
a,b,c: 3 cạnh của tam giác
A, B, C: 3 góc đối diện với 3 cạnh của tam giác
ha, hb, hc: 3 đường cao tương ứng với 3 cạnh của tam giác
ma, mb, mc: 3 đường trung tuyến tương ứng với 3 cạnh của tam giác
S: diện tính tam giác
P: nửa chu vi của tam giác
R: bán kính đường tròn ngoại tiếp tam giác
r: bán kính đường tròn nội tiếp tam giác
Các hệ thức cơ bản giữa các yếu tố trong tam giác:
Liên hệ giữa 3 góc:
A + B + C = PiĐịnh lý cosin:
a2=b2+c2−2.b.c cosA
b2=a2+c2−2 a.c cosB
c2=a2+b2−2.a.b.cosC
Trang 11Định lý sin:
a sinA = b sinB = c sinC =2R
Liên hệ giữa nửa chu vi và 3 cạnh:
2.p = a + b +cCác công thức tính diện tích:
Trang 12Bước 2:
while (G không nằm trong map(x->lhs(x), Fknown) do
2.1 Tìm công thức f thuộc Formula có thể áp dụng trên Fknown
2.2 if (không tìm được r) then
Dừng: không tìm được lời giải
2.3 Thêm f vào Solution:
Xác định biến mới sẽ tính ra: {View = V(f) – V(Fknown);
Thay thế và giải: newfact:=solve (Subs(Fknown, f), Vnew);
Fknown: = Fknown union {Vnew = newfact};
end do;
Bước 3:Cho kết quả tìm được lời giải Solution
Ví dụ:Giải thiết cho ba cạnh của tam giác: H = {a=5, b = 4, c=3} ta tìm diện tích tam
giác và chu vi của đường tròn ngoại tiếp tam giác: G = {S, R}
Chú ý: Để đơn giản cho suy luận của bài toán này, tạm thời ta bỏ các luật liên quan tới tính đường trung tuyến của tam giác.
Lời giải của bài toán:
Trang 13Ap dung cong thuc:
Trang 14Tap Solution:
Nhận xét: Suy diễn trong bài toán chỉ dựa vào các luật một cách tuần tự nên lời giải
của bài toán có thể có một số bước dưa thừa Vì vậy có thể rút gọn lời giải bài toánbằng thuật giải sau:
Thuật giải rút gọn lời giải bài toán:
// Loại bỏ một luật trong LG
newSol = [op(1 i-1, LG), op(i+1 nops(LG), LG)];
if newSol có thể sinh ra tập mục tiêu then
Trang 15newfact:=solve(subs(Fknown, rule), Vnew)Fknown:=Fknown union {Vnew = newfact}end do
Bước 3: Cho kết quả lời giải
Ví dụ: Lời giải bài toán trên sau khi đã rút gọn
Gia thiet
Muc tieu:
Loi giai rut gon:
Ap dung cong thuc:
Trang 16So buoc giai:
Tap LG:
II.2 Giải và biện luận phương trình bậc 2 theo tham số m
Phát biểu bài toán: Cho một phương trình biến x bậc 2 theo tham số m, giải và biện
luận phương trình xem có nghiệm theo m
if (phương trình a = 0 có nghiệm m) then
// Thay nghiệm vào pt
pt2:=subs(m = nghiem_m, pt);
nghiem_pt2:=solve(pt2, bien);
if không có nghiệm nghiem_pt2 then
Trang 17if op(nghiem_pt2) = bien then
Phương trình vô số ngiệmelse
Phương trình có nghiệm kép nghiem_pt2end if;
Phương trình pt có nghiệm kép theo m
2.3 Tính nghiệm của bất phương trình delta > 0
Trang 18delta > 0 Suy ra:
Phương trình có 2 nghiệm phân biệt:
Trang 19x1 = 1/2*(m-(m^2-40*m-80)^(1/2))/(m+2)
x2 = 1/2*(m+(m^2-40*m-80)^(1/2))/(m+2)
II.3 Giải hệ phương trình tuyến tính
Phương pháp khử Gauss: Phương pháp khử Gauss dùng cách khử dần các ẩn để đưa
hệ phương trình đã cho về một dạng ma trận đơn giản hơn Phương pháp này đượcthực hiện qua các bước sau:
Bước 1: Khử các phần tử ở cột một
Tối giản hệ số a11 bằng 1 thông qua biến đổi ma trận lấy hàng đầu chia cho hệ số a11
Tiếp theo đưa các hệ số a21…an1 bằng 0 thông qua các phép biến đổi ma trận
Trang 22Thực hiện phép tính từ dưới lên trên để tìm nghiệm Ta có các nghiệm:
x[1] = -3941/58
x[2] = 1011/29
x[3] = 1009/58
x[4] = -156/29
Trang 23III XÂY DỰNG HỆ THỐNG GIẢI TOÁN ONLINE
III.1 Giới thiệu ứng dụng
Mục tiêu
Hệ thống giải toán online là đề tài xây dựng một hệ thống cho phép người dùng giảicác dạng toán đại số đồng thời xây dựng một trang tin tức toán học
Chức năng
Math Solve: chức năng giải toán, chức năng chính của chương trình
News: trang tin tức toán học
Bên dưới các chức năng kể trên là một hệ thống quản lý chung, điều hành bởi admin.Bao gồm các phần sau:
Trang 24Tổ chức người dùng
Người dùng hệ thống sẽ được phân chia thành 5 nhóm sau:
Nhóm người dùng không đăng kí
Nhóm người dùng đăng kí với hệ thống
Nhóm phụ trách tin tức
Nhóm phụ trách việc hỗ trợ giải toán
Người quản lý cao nhất – Admin
Thông tin và mô tả chi tiết từng nhóm người dùng sẽ được mô tả trong phần đặc tảActor trong mô hình Use Case
III.2 Phân tích và thiết kế chương trình
2
Registered User
Registered User - Người dùng đăng kí là những người
đã đăng kí thông tin với hệ thống, họ sử dụngusername và password đã đăng ký trước đó để đăngnhập vào hệ thống Với quyền này ngoài việc tra cứutin tức, giải toán cơ bản, họ còn có thể sử dụng chứcnăng giải toán theo từng bước, thay đổi thông tin đăngký
3
Math Group
Math Group - Nhóm hỗ trợ giải toán là mức cao hơncủa Người dùng đăng kí, nhóm này bao gồm nhữngngười được admin thiết lập quyền có thể tham gia vàoquá trình hỗ trợ tạo ra các hàm giải toán
Trang 25News Group
News Group - Nhóm hỗ trợ tin tức là những ngườiđược thiết lập quyền có thể sử dụng chức năng đăngtin, quản lý tin tức
5
Admin
Admin là người có quyền cao nhất trong hệ thống,Người này có thể thêm, bớt, kích hoạch, cấm hoạtđộng của người dùng, thiết lập quyền truy cập chongười dùng cũng như tham gia toàn quyền vào việcđăng tin và hỗ trợ giải toán
Danh sách các Use Case
STT Tên Use Case Ý nghĩa
1 Login Người dùng đăng nhập vào hệ thống
2 Logout Người dùng đăng xuất khỏi hệ thống
3
Search News Xem tin tức, tra cứu, tìm kiếm thông tin trong phần
tin tức 4
Math Result Solve Sử dụng chức năng giải toán chỉ hiển thị kết quả mà
không theo từng bước5
Math Step Solve Chức năng này bao gồm một số dạng toán cho phép
người dùng thấy được chi tiết các bước giải6
Change Information
Một người dùng khi đã đăng nhập vào hệ thống có thểxem thông tin cá nhân, hoặc chỉnh sửa những thôngtin cá nhân đã đăng kí với hệ thống trước đó
News Management Chức năng này bao gồm việc thêm, xóa, sửa các mẩu
tin tức trong hệ thống và đăng nó lên trang tin tức
9 User Management Admin sử dụng chức năng này để thêm, xóa, ngừng
hoạt động, phân quyền cho một vài người dùng nào
Trang 2610 Register Người dùng đăng kí tài khoản
Sơ đồ tuần tự
Sơ đồ quá trình Đăng nhập
Sơ đồ quá trình đăng nhập
Mô tả: Trong trang đăng nhập, người dùng nhập tên đăng nhập và mật khẩu, rồi nhấn
nút đồng ý đăng nhập, thông tin sẽ được Controller chuyển tiếp xuống Model kiểmtra Nếu thông tin đăng nhập không hợp lệ, Model sẽ báo cho Controller, và trả vềthông báo không hợp lệ cho trang đăng nhập và yêu cầu người dùng nhập lại Nếuthành công, Người dùng sẽ được thông báo tài khoản hợp lệ và quyền truy cập được
sử dụng
Trang 27Sơ đồ quá trình Tìm kiếm
Sơ đồ quá trình tìm kiếm
Mô tả: Người dùng nhập thông tin tìm kiếm trong trang tìm kiếm, thông tin này sẽ
được Controller gửi đến Model và tiến hành lọc dữ liệu Sau đó Model sẽ gửi kết quảtìm kiếm cho Controller và Controller chuyển kết quả này đến một trang Kết quả tìmkiếm để hiển thị kết quả và kết thúc quá trình tìm kiếm
Trang 28Sơ đồ quá trình giải toán
Sơ đồ quá trình giải toán
Mô tả: Người dùng đến trang giải toán, sau khi chọn hàm và nhập yêu cầu bài toán,
Controller sẽ chuyển yêu cầu này đến trình biên dịch của Maple, trình biên dịch này sẽ
xử lý, nếu có lỗi phát sinh, thông báo lỗi sẽ gửi lên Controller để hiển thị cho ngườidùng ở trang giải toán yêu cầu người dùng nhập lại Người dùng nhập lại thông tin vàgửi đến
Trang 29Sơ đồ quá trình đổi thông tin và mật khẩu
Sơ đồ quá trình đổi thông tin cá nhân và mật khẩu
Mô tả: người dùng sau khi đăng nhập, nếu muốn thay đổi thông tin cá nhân sẽ vào
trang thay đổi thông tin cá nhân, sau khi chỉnh sửa, thông tin sẽ được Controllerchuyển tiếp xuống Model và ở đây tiến hành cập nhật Nếu người dùng muốn thay đổiEmail và mật khẩu, Controller sẽ chuyển người dùng đến trang thay đổi Email và mậtkhẩu Trang này sẽ lấy thông tin thay đổi và tiến hành cập nhật, cuối cùng, thông báokết quả cho người dùng biết quá trình cập nhật thành công