Maple

Maple là một gói phần mềm toán học thương mại phục vụ cho nhiều mục đích. Nó phát triển lần đầu tiên vào năm 1980 bởi Nhóm Tính toán Hình thức tại Đại học Waterloo ở Waterloo, Ontario, Canada.

Từ năm 1988, nó đã được phát triển và thương mại hóa bởi Waterloo Maple Inc. (còn được biết đến với tên gọi Maplesoft), một công ty Canada cũng có trụ sở tại Waterloo, Ontario. Phiên bản hiện tại là Maple 13 được phát hành vào tháng 5 năm 2009. Đối thủ cạnh tranh chính của nó là Mathematica.

Tổng quan

Chức năng cốt lõi

Người dùng có thể nhập biểu thức toán học theo các ký hiệu toán học truyền thống. Có thể dễ dàng tạo ra những giao diện người dùng tùy chọn. Maple hỗ trợ cho cả tính toán số và tính toán hình thức, cũng như hiển thị. Nhiều phép tính số học được thực hiện dựa trên thư viện số học NAG; trong Maple, các chương trình con NAG đã được mở rộng để cho phép độ chính xác ngẫu nhiên lớn. Các ví dụ về tính toán hình thức sẽ được trình bày trong phần sau.

Maple cũng có một ngôn ngữ lập trình cấp cao đầy đủ. Cũng có giao diện cho những ngôn ngữ khác (C, Fortran, Java, MatLab, và Visual Basic). Cũng có một giao diện dành cho Excel.

Kiến trúc

Phần lớn Maple được viết bằng ngôn ngữ java. Maple chạy trên tất cả các hệ điều hành chính.

Ngôn ngữ lập trình Maple là một ngôn ngữ kiểu động. Cũng giống như các hệ thống đại số máy tính, các biểu thức hình thức được lưu trữ trong bộ nhớ theo đồ thị không chu trình có hướng (DAG). Ngôn ngữ cho phép các biến có phạm vi nhất định (lexical scoping). Ngôn ngữ có hình thức lập trình hàm, nhưng cũng có hỗ trợ đầy đủ cho lập trình truyền thống, theo kiểu mệnh lệnh.

Một điều lạ đối với chương trình thương mại, đa số mã nguồn đều có thể xem tự do.

Nguồn gốc tên gọi 
Tên "Maple" không phải là tên viết tắt hoặc từ cấu tạo bằng chữ đầu, mà chỉ đơn giản là để chỉ hình tượng Lá phong () trên Quốc kỳ Canada.

Ví dụ về mã Maple 
Tìm .
 integrate(cos(x/a), x);
Đáp án: 

Tính lời giải chính xác cho phương trình vi phân thường  với điều kiện ban đầu 
 dsolve({diff(y(x),x,x) - 3*y(x) = x, y(0)=0, D(y)(0)=2}, y(x));
Đáp án: 

Tính toán ra số nghiệm của phương trình  bắt đầu tại điểm ; viết kết quả với 75 số sau dấu chấm.
 evalf[75](RootOf(exp(x)=x^2+2,x,-1));
Đáp án: 

Tính định thức của ma trận.
 M:= Matrix(1,2,3, [a,b,c], x,y,z); # Ma trận mẫu
 
 with(LinearAlgebra):Determinant(M);
Đáp án: 

Vẽ  với  và  đi từ -1 đến 1
 plot3d(x^2+y^2,x=-1..1,y=-1..1);

Giải hệ phương trình vi phân cục bộ

with .
 eqn1:= diff(v(x, t), x) = -u(x,t)*v(x,t):
 eqn2:= diff(v(x, t), t) = -v(x,t)*(diff(u(x,t), x))+v(x,t)*u(x,t)^2:
 eqn3:= diff(u(x,t), t)+2*u(x,t)*(diff(u(x,t), x))-(diff(diff(u(x,t), x), x)) = 0:
 pdsolve({eqn1,eqn2,eqn3,v(x,t)<>0},[u,v]): op(%);
Đáp án:   

Tìm hàm  thỏa mãn phương trình tích phân 
.
 eqn:= f(x)-3*Integrate((x*y+x^2*y^2)*f(y), y=-1..1) = h(x):
 intsolve(eqn,f(x));
Đáp án: 

Các xây dựng lập trình mệnh lệnh mẫu:
 
myfac:= proc(n)
   local out, i;
   out:= 1;
   if n < 0 then 
        error "input must be nonnegative"
   else
        for i from 1 to n do
            out:= out * i
        end do;
        out
   end if
end proc;

Lịch sử 
Khái niệm đầu tiên về Maple xuất phát từ một cuộc họp vào tháng 11 năm 1980 tại Đại học Waterloo. Những nhà nghiên cứu tại đại học muốn mua một máy tính đủ mạnh để chạy Macsyma. Thay vào đó, người ta quyết định họ sẽ phát triển hệ thống đại số máy tính riêng để có thể chạy được những máy tính có giá thành hợp lý hơn. Do đó, dự án bắt đầu với mục tiêu là tạo ra một 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.

Sự phát triển đầu tiên của Maple được tiến hành rất nhanh, với phiên bản hạn chế đầu tiên xuất hiện vào tháng 12 năm 1980. Những nhà nghiên cứu đã thử nghiệm và loại bỏ nhiều ý tưởng khác nhau để tạo ra một hệ thống liên tục cải tiến. Maple được trình diễn đầu tiên tại những hội nghị bắt đầu vào năm 1982.

Đến cuối năm 1983, trên 50 trường đại học đã cài Maple trên máy của họ. Do số lượng hỗ trợ và yêu cầu giấy phép lớn, vào năm 1984, nhóm nghiên cứu đã sắp xếp với WATCOM Products Inc để cấp phép và phân phối Maple.

Vào năm 1988, do số lượng hỗ trợ ngày càng tăng, Waterloo Maple Inc. được thành lập. Mục tiêu đầu tiên của công ty là quản lý những bản phân phối phần mềm. Cuối cùng, công ty cũng phải mở ra phòng R&D ở đó khá nhiều sự phát triển cho Maple được thực hiện đến ngày nay. Sự phát triển đáng kể của Maple tiếp tục diễn rại những phòng thí nghiệm trường đại học, bao gồm: Phòng thí nghiệm Tính toán hình thức tại Đại học Waterloo; Trung tâm nghiên cứu Tính toán hình thức Ontario tại Đại học Tây Ontario; và những phòng thí nghiệm khắp nơi trên thế giới.

Vào năm 1989, giao diện đồ họa người dùng đầu tiên của Maple được phát triển và bao gồm trong bản 4.3 dành cho Macintosh. Những phiên bản trước của Maple chỉ gồm giao diện dòng lệnh với ngõ ra hai chiều. Bản X11 và Windows với giao diện mới tiếp bước vào năm 1980 với Maple V.

Vào năm 1999, với việc phát hành Maple 6, Maple đã đưa vào một số Thư viện Số học NAG, được mở rộng độ chính xác ngẫu nhiên.

Vào năm 2003, giao diện "chuẩn" hiện nay được giới thiệu trong Maple 9. Giao diện này được viết chủ yếu bằng Java (mặc dù có nhiều phần, nhưng luật cho việc gõ công thức toán học, được viết bằng ngôn ngữ Maple). Giao diện Java bị phê phán là chậm; những sự phát triển được thực hiện trong các bản sau, mặc dù tài liệu Maple 11 documentation khuyến cáo giao diện ("cổ điển") trước đây dành cho người với bộ nhớ vật lý ít hơn 500 MB. Giao diện cổ điển này không còn được bảo trì.

Giữa 1995 và 2005 Maple đã mất khá nhiều thị phần vào tay đối thủ do có giao diện người dùng yếu hơn. Nhưng vào năm 2005, Maple 10 giới thiệu một "chế độ văn bản" mới, như một phần của giao diện chuẩn. Tính năng chính của chế độ này là phép toán được đưa vào bằng ngõ nhập hai chiều, do đó nó xuất hiện tương tự như công thức trong sách. Vào năm 2008, Maple 12 đã thêm những tính năn giao diện người dùng giống như Mathematica, gồm có những kiểu trình bày theo mục đích đặc biệt, quản lý phần đầu và cuối trang, so trùng mở đóng ngoặc, vùng thực hiện tự động, mẫu hoàn thành lệnh, kiểm tra cú pháp và vùng tự động khởi tạo. Những tính năng khác được thêm để làm cho Maple dễ dùng hơn như một hộp công cụ Maple.

Các bản phát hành trước 
 Maple 12: tháng 5, 2008
 Maple 11: 21 tháng 2 năm 2007
 Maple 10: 10 tháng 5 năm 2005
 Maple 9.5: 5 tháng 4 năm 2004
 Maple 9: 30 tháng 6 năm 2003
 Maple 8: 16 tháng 4 năm 2002
 Maple 7: 1 tháng 7 năm 2001
 Maple 6: 6 tháng 12 năm 1999
 Maple V R5: 1 tháng 11 năm 1997
 Maple V R4: tháng 1, 1996
 Maple V R3: 15 tháng 3 năm 1994
 Maple V R2: tháng 11 năm 1992
 Maple V: tháng 8, 1990
 Maple 4.3: tháng 3, 1989
 Maple 4.2: tháng 12, 1987
 Maple 4.1: tháng 5, 1987
 Maple 4.0: tháng 4, 1986
 Maple 3.3: tháng 3, 1985 (phiên bản phát hành rộng rãi đầu tiên)
 Maple 3.2: tháng 4, 1984
 Maple 3.1: tháng 10, 1983
 Maple 3.0: tháng 5, 1983
 Maple 2.2: tháng 12, 1982
 Maple 2.15: tháng 8, 1982
 Maple 2.1: tháng 6, 1982
 Maple 2.0: tháng 5, 1982
 Maple 1.1: tháng 1, 1982
 Maple 1.0: tháng 1, 1982

Xem thêm 

 Phần mềm toán học
 Waterloo Maple - công ty sáng tạo và phân phối Maple
 Mathematica, phần mềm tương tự có bản quyền

Tham khảo

Liên kết ngoài 
 Maplesoft, division of Waterloo Maple, Inc. home website
 MaplePrimes - a blog devoted to Maple

Ngôn ngữ lập trình chuyên gia
Hệ thống đại số máy tính
Ngôn ngữ hàm
Phần mềm IRIX
Ngôn ngữ lập trình số
Waterloo, Ontario
Phần mềm hệ thống đại số máy tính trên Linux
Phần mềm đa nền tảng