**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 (tiếng Anh: *maple*) trên Quốc kỳ Canada.

Ví dụ về mã Maple
-----------------

Tìm {\displaystyle \int \cos \left({\frac {x}{a}}\right)dx}.  

```
integrate(cos(x/a), x);
```

Đáp án: {\displaystyle a\sin \left({\frac {x}{a}}\right)}

---

  

Tính lời giải chính xác cho phương trình vi phân thường {\displaystyle {\frac {d^{2}y}{dx^{2}}}(x)-3y(x)=x} với điều kiện ban đầu {\displaystyle y(0)=0,\quad \left.{\frac {dy}{dx}}\right|\_{y=0}=2}  

```
dsolve({diff(y(x),x,x) - 3*y(x) = x, y(0)=0, D(y)(0)=2}, y(x));
```

Đáp án: {\displaystyle y(x)={\frac {7}{18}}e^{{\sqrt {3}}x}{\sqrt {3}}-{\frac {7}{18}}e^{-{\sqrt {3}}x}{\sqrt {3}}-{\frac {1}{3}}x}

---

  

Tính toán ra số nghiệm của phương trình {\displaystyle e^{x}=x^{2}+2\,\!} bắt đầu tại điểm {\displaystyle x=-1\,\!}; 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: {\displaystyle 1.31907367685736535441789910952084846442196678082549766925608900490512707635}

---

  

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
```

{\displaystyle {\begin{bmatrix}1&2&3\\a&b&c\\x&y&z\end{bmatrix}}}

```
with(LinearAlgebra):Determinant(M);
```

Đáp án: {\displaystyle bz-cy+3ay-2az+2xc-3xb}

---

  

Vẽ {\displaystyle x^{2}+y^{2}} với x và y đ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ộ

{\displaystyle {\frac {\partial }{\partial x}}v\left(x,t\right)=-u\left(x,t\right)v\left(x,t\right)}
{\displaystyle {\frac {\partial }{\partial t}}v\left(x,t\right)=-v\left(x,t\right){\frac {\partial }{\partial x}}u\left(x,t\right)+v\left(x,t\right)\left(u\left(x,t\right)\right)^{2}}
{\displaystyle {\frac {\partial }{\partial t}}u\left(x,t\right)+2\,u\left(x,t\right){\frac {\partial }{\partial x}}u\left(x,t\right)-{\frac {\partial ^{2}}{\partial {x}^{2}}}u\left(x,t\right)=0}
with {\displaystyle v(x,t)\neq 0}.

```
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:   {\displaystyle v\left(x,t\right)={e^{{\sqrt {{\it {\\_c}}\_{1}}}x}}{\it {\\_C3}}\,{e^{{\it {\\_c}}\_{1}t}}{\it {\\_C1}}+{\frac {{\it {\\_C3}}\,{e^{{\it {\\_c}}\_{1}t}}{\it {\\_C2}}}{e^{{\sqrt {{\it {\\_c}}\_{1}}}x}}},\ \ u\left(x,t\right)=-{\frac {{\sqrt {{\it {\\_c}}\_{1}}}\left({\it {\\_C1}}\,\left({e^{{\sqrt {{\it {\\_c}}\_{1}}}x}}\right)^{2}-{\it {\\_C2}}\right)}{{\it {\\_C1}}\,\left({e^{{\sqrt {{\it {\\_c}}\_{1}}}x}}\right)^{2}+{\it {\\_C2}}}}}

---

  

Tìm hàm f thỏa mãn phương trình tích phân
{\displaystyle f(x)-3\int \_{-1}^{1}(xy+x^{2}y^{2})f(y)dy=h(x)}.  

```
eqn:= f(x)-3*Integrate((x*y+x^2*y^2)*f(y), y=-1..1) = h(x):
intsolve(eqn,f(x));
```

Đáp án: {\displaystyle f\left(x\right)=\int \_{-1}^{1}\!\left(-15\,{x}^{2}{y}^{2}-3\,xy\right)h\left(y\right){dy}+h\left(x\right)}

---

  

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
--------

|  |  |
| --- | --- |
|  | Wikibooks tiếng Anh có chủ đề về
***Maple*** |

* 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
---------

1. ↑  History of computing at Waterloo University Wes Graham Fonds
2. ↑  Open, Dynamic Content and e-Learning Management Infrastructure for Engineering and Natural Sciences Lưu trữ 2008-05-16 tại Wayback Machine Journal of e-Learning
3. ↑  Capturing knowledge with pure maths Lưu trữ 2016-03-03 tại Wayback Machine, Scientific Computing World.
4. ↑  Maple 11 Installation Guide
5. ↑  Interview with Gaston Gonnet, co-creator of Maple, SIAM History of Numerical Analysis and Computing, 16 tháng 3 năm 2005
6. ↑  New in Maple 12 Lưu trữ 2009-04-22 tại Wayback Machine MapleSoft

Liên kết ngoài
--------------

* Maplesoft, division of Waterloo Maple, Inc. home website
* MaplePrimes - a blog devoted to Maple