Symbolic computation
Lâu rồi không dùng một phần mềm cho symbolic computation như Mathematica hay Maple. Hồi xưa còn làm về q-series nhiều tôi chọc ngoáy Mathematica hàng ngày. Mấy hôm nay tôi cần chúng cho một bài toán đang giải, dùng lại Maple thấy quả thật là hùng mạnh. Dưới đây là ví dụ về output của Maple. Dĩ nhiên, tôi có GUI output cẩn thận chứ không phải output kiểu text cổ điển như thế này.
> x := 2/5;
2
-
5
> y := 1/3;
1
-
3
> C := [2*x*a+2*y*b+(1/2)*c >= 2, max(2*y, 1-x)*b+(1-x)*c >= 2, (1-y)*c >= 2];
[ 4 2 1 2 3 2 ]
[2 <= - a + - b + - c, 2 <= - b + - c, 2 <= - c]
[ 5 3 2 3 5 3 ]
> P := a+b+c;
a + b + c
> with(Optimization);
> LPSolve(P, C, assume = nonnegative);
[3.67500000000000,
[a = 0.374999999999999834, b = 0.300000000000001098, c = 2.99999999999999868]
]
> with(simplex);
> minimize(P, C, NONNEGATIVE);
/ 3 3 \
{ b = –, a = -, c = 3 }
\ 10 8 /
Các phần mềm tính toán như Matlab, Mathematica, Maple đều rất đắt tiền (cỡ 500USD chứ không ít). May mà trường tôi có deal gì đó với Mathematica và Maple nên tôi mua chúng chỉ mất 10USD. Sinh viên thì còn mua thêm được phiên bản sinh viên của Matlab, 50USD. Nếu dùng máy trong khoa thì tôi có thể dùng Matlab thoải mái vì có license tập thể. Tôi không biết có open-source symbolic hay scientific computation softwares nào dùng được không?
Muốn viết các phần mềm cho scientific computation hay symbolic computation cần phải rất giỏi cả KHMT lẫn Toán. Tính hữu dụng của chúng trong nghiên cứu khoa học thì phải nói là vô hạn.

Bản Matlab “xịn” (Professional) thì cũng phải vài ngàn USD chứ không chỉ $500 thôi đâu. Để tính toán numerical, mô phỏng này nọ thì Matlab là nhất rồi. Còn symbolic math thì em thích Mathematica hơn Maple, nhưng em vẫn thấy dùng 2 phần mềm này chưa ưng ý lắm, nhiều khi kết quả ra không đúng theo ý mình (tức là vẫn chính xác nhưng format thì không đúng ý). Có lẽ do em vẫn chưa thành thạo nên không biết cách.
Còn về open source thì cũng có một số lựa chọn:
+ Octave là open-source clone của Matlab, compatible với Matlab nhưng chạy sau khá xa (chắc là chỉ bằng Matlab 5 thôi), và không có giao diện và công cụ đồ hoạ nhiều như Matlab.
+ Scilab gần giống như Matlab nhưng không phải là clone, do đó không tương thích. Scilab khá mạnh, có nhiều toolbox, công cụ đồ hoạ, Scicos (giống như Simulink), code generation,… Tuy nhiên hơi khó dùng và vẫn chưa đầy đủ công cụ như Matlab. Phiên bản 5.0 sắp tới có vẻ nhiều hứa hẹn nhưng mãi chưa thấy ra.
+ Axiom và Maxima là hai phần mềm symbolic math mở, tính năng cơ bản khá tốt, nhưng nhìn chung là thua xa và lạc hậu so với Mathematica và Maple.
Tóm lại là trong lĩnh vực này thì các phần mềm mất tiền vẫn đang là sự lựa chọn tốt nhất (và thậm chí là “standard” mất rồi, ví dụ như Matlab).
À, nếu nói đến phần mềm cho statistics thì lại khác. S là bản mất tiền, nhưng bản open-source tên là R có lẽ đã chiếm thế thượng phong rồi (em không dùng nhưng nghe bạn bè nói vậy).
Góp ý 1 chút về blog KHMT này:
Chú Hưng có thể viết blog theo phong cách của blog sau hay ko?
http://blogs.msdn.com/devdev/
Đây là blog KHMT khá hay và nổi tiếng. Các bài viết có dẫn chứng đầy đủ, cách viết lại không đi sâu quá vào phân tích chi tiết nên SV bình thường cũng có thể nắm được ý của người viết.
@Dung
Cảm ơn bạn vì cái link tới trang devdev. Các bài viết trong đó rất hay và đi và khá nhiều chủ đề thú vị.