Tài liệu nhằm hướng dẫn các bạn sử dụng tốt phần mềm giải toán miễn phí Maxima on Android và trở thành công cụ quan trọng trong học tập của các bạn. Chúng tôi không khuyến khích các bạn sử dụng phần mềm Maxima để gian lận trong kiểm tra, thi cử và sao chép tài liệu. Xin cảm ơn
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM TP.HỒ CHÍ MINH
KHOA: VẬT LÝ -oOo -
Bài tiểu luận:
GVHD: Nguyễn Vũ Thụ Nhân Lớp: 42.01.LY.B
Trang 2MỞ ĐẦU
Hiện tại, có khá nhiều phần mềm lập trình tính toán nhằm giúp giải quyết
các bài toán cơ bản trong mọi lĩnh vực Điển hình là các phần mềm Maple,
Mathlab, Mathematica vốn được sinh viên và các nhà nghiên cứu Toán và Vật
lí ưa dùng Ngay từ buổi đầu xuất hiện, các phần mềm trên ngay lập tức thu hút
được rất nhiều sự quan tâm Bằng chứng là nhiều đề tài, luận văn đã được bảo
vệ, nhiều tài liệu hướng dẫn sử dụng và nhiều trường đã đưa các phần mềm trên
vào giảng dạy
Tuy nhiên các phần mềm trên đều là các phần mềm thương mại với chi
phí bản quyền không hề rẽ chút nào, ít nhất cũng phải 500$ Và thế là để có thể
học tập, nghiên cứu được, chúng ta đành nhắm mắt vi phạm bản quyền để sử
dụng nó với giá chỉ 7.000 VND Ngoài ra các chương trình trên đòi hỏi máy
tính phải có cấu hình mạnh
Vậy, giải pháp nào có thể giúp chúng ta có thể sử dụng các chương trình
tính toán nhằm hỗ trợ việc học tập, nghiên cứu mà không bị vi phạm bản quyền
phần mềm Giải pháp duy nhất đó là sử dụng phầm mềm miễn phí, mã nguồn
mở Mặc dù miễn phí nhưng các chương trình vẫn có đầy đủ các chức năng lập
trình toán như Maple Và nổi bật hơn cả là phần mềm toán Maxima
(Trích dẫn thunhan.wordpress.com)
Trang 3I Giới thiệu
Maxima là phần mềm giải toán gọn nhẹ, mã nguồn mở và hoàn toàn miễn
phí Mặc dù không “mạnh mẽ” như các phần mềm Maple, Mathlab hay
Mathematica nhưng phần mềm có khả năng xử lý hầu hết các tính toán từ cơ bản
đến cao cấp của học sinh, sinh viên và những ai nghiên cứu Toán học
Maxima, một hệ thống đại số máy tính được viết trong Common Lisp, bây
giờ nó đã xuất hiện trên các thiết bị di động Android của bạn Maxima, và người
tiền nhiệm của nó Macsyma là một trong những phần mềm nhất lâu đời trên thế
giới Nỗ lực phát triển ban đầu đã trở lại trong năm 1960 tại MIT LCS và dự án
Mac, và bây giờ vẫn tiếp tục phát triển như là một dự án mã nguồn mở
tại maxima.sourceforge.net
Maxima trên Android là một cổng của Maxima trên hệ điều hành
Android Nhờ nỗ lực Sylvain Ageneau’ trong việc mang ECL đến cho hệ điều
hành android một Maxima hoạt động tuyệt vời mà không cần thay đổi quá nhiều
với mã nguồn Maxima trên android là sự kết hợp của nhiều phần mềm mã nguồn
mở: ECL trên android, MathJax và Maxima
Việc cài đặt các phần mềm đòi hỏi tổng cộng 90MB vào lưu trữ Trong đó
30MB cần phải được cài đặt trên bộ nhớ trong, 60MB còn lại có thể được cài đặt
vào thẻ SD hoặc bộ nhớ trong Đối với các máy có bộ nhớ trong ít bạn nên lưu
vào thẻ SD để tăng khoảng trống không gian lưu trữ của thiết bị nhằm giúp máy
hoạt động tốt hơn Việc chạy đầu tiên của ứng dụng sẽ hỏi bạn nơi bạn muốn
60MB được cài đặt
Sau đó, bạn có thể thưởng thức Maxima / Macsyma trên điện thoại di động
hoặc máy tính bảng của bạn trên hệ điều hành Android
Trang 4II Một số hàm và toán tử cơ bản:
1 Các hằng số toán học:
Một số hằng số toán học thông thường có sẵn trong Maxima là:
Trang 5 Toán tử “-”: Trừ toán hạng thứ hai bằng toán hạng đầu
Toán tử “*”: a*b được hiểu là a×b
Toán tử “/”: a/b được hiểu là a÷b
Toán tử “#”: a # b được hiểu là a ≠ b
Toán tử “.” : được dùng để nhân 2 ma trận A, B, nghĩa là: A.B
Lưu ý: Không thể sử dụng toán tử “*” để nhân hai ma trận
true, false dùng để tính giá trị đúng-sai
Ví dụ:
Toán tử “%”: Tương đương với phím Ans trên máy tính cầm tay Nó có chức
năng thay thế kết quả gần nhất
Toán tử “:” (toán tử gán) :Ta sử dụng câu lệnh ten_bien : gia_tri_gan; để
gán 1 giá trị nào đó cho biến
Ví dụ: Để gán giá trị cho biến a là 10 thì ta cần khai báo là: a:10 Nếu gán
giá trị đồng thời nhiều biến ta có thể dùng câu lệnh sau: [a , b, c] : [1, 5, 12] (nghĩa
là a = 1 , b = 5, c = 12)
Toán tử “:=” : dùng để khai báo hàm số
Ví dụ: f (x,y) := x^2 + y^2 – exp(x*y), nghĩa là gán hàm f là hàm theo 2
biến x, y xác ñịnh bởi biểu thức: 𝑥2+ 𝑦2− 𝑒𝑥𝑦
Toán tử “sqrt(x)” : trả về giá trị căn bậc hai của x
Trang 6 Toán tử “abs(x)”: trị tuyệt đối của x , nếu x là số phúc, thì toán tử này chính
là phép lấy modun của số phức x
Ví dụ: compare(1/x,0) kết quả sẽ là # ; compare(x,abs(x)) ta được kết quả
<= ; hay compare(%i,%i+1) kết quả sẽ là: not comparable (vì không thể so sánh
2 số phức với nhau được)
Toán tử “max(𝒙𝟏, 𝒙𝟐, … , 𝒙𝒏)”: trả về giá trị lớn nhất trong các giá trị
Toán tử “random(x)”: tạo 1 số ngẫu nhiên có giá trị trong khoảng từ [0;x]
Ví dụ: random(9) = 1 hoặc random(9) = 6 …
Toán tử “signum(x)”: signum(x) = { 1, 𝑥 > 00, 𝑥 = 0
−1, 𝑥 < 0
Trang 7
III Menu Maxima
Menu của giao diện gồm có:
1 About Maxima on Android
+ What is Maxima on Android? ( giới thiệu về phần mềm Maxima và ứng
dụng của nó)
+ What’s new in this release ( Những cái mới trong phiên bản này )
Maxima android 5.36.1 được hỗ trợ
Sách hướng dẫn bằng tiếng Nhật cho 5.36.1 được bao gồm
…
+ Restrictions:(Hạn chế)
Trong một số trường hợp lệnh Lisp có thể gây ra lỗi khi chấm dứt
dòng được tự động hoàn thành với $
Một số điện thoại Android ( ví dụ SH-01G bởi Sharp Corp, Nhật Bản)
sẽ hiển thị công thức đầu ra với phông chữ rất nhỏ
Hạn chế khi sử dụng bộ vẽ mặc định
Nhiều người sử dụng không được hỗ trợ , chỉ chủ sở hữu của thiết bị
có thể cài đặt và sử dụng một cách chính xác MoA
Tải (Lapack) sẽ thất bại và nó không thể được sử dụng
Gói Plodf không được hỗ trợ phải sử dụng Drawdf thay thế
Gói đơn vị và gói SCCM không làm việc
Tải (opsubst) không hoạt động, tải (‘opsubst) hoạt động
+ MoA User Manual (Hướng dẫn sử dụng MoA)
Lựa chọn nơi để cài đặt
Bắt đầu lên màn hình
Phóng to/ thu nhỏ bằng ngón tay
Lệnh cho người mới bắt đầu Maximad
Tái sử dụng các đầu vào trước
Trang 8 Tùy chọn mức độ sử dụng trong Maxima
Trang chủ JQuery Mobile
+ About the auther
Yasuaki Honda, Chiba, Japan
7 Next Example ( Ví dụ tiếp theo )
IV Các chức năng của Maxima
1 Giải phương trình, hệ phương trình
- Solve: Dùng để giải các phương trình đa thức, phương trình lượng giác
Tuy nhiên chức năng này không giải được các phương trình mũ phức tạp và không
giải triệt để được các bài toán lượng giác…
Câu lệnh: solve (phương trình, biến);
Ví dụ:
1) Giải phương trình: cos(3x)=0
Ta sẽ có được kết quả sau:
Trang 9Khi giải các phương trình lượng giác, kết quả ta nhận được là nghiệm của phương trình, chương trình không đưa
ra họ nghiệm và Maxima cũng đưa ra 1 thông báo là chương trình đã sử dụng phương pháp hàm ngược để tìm nghiệm Do
đó, sẽ có một số nghiệm khác không thể hiện được như ví dụ sau:
2) Giải phương trình: sin(2x)=0.5
Khi đó, chúng ta chỉ nhận dược 1 nghiệm nhưng kết quả thực tế là
- Find root: Tìm nghiệm gần đúng của phương trình trong một đoạn [a; b]
cho trước
Ví dụ: Tìm nghiệm gần đúng của phương trình: 𝑥3+ 𝑥 − 1 = 0 trong đoạn [0;1]
Trang 10Khi đó, ta có được kết quả như sau:
- Ngoài ra, để tìm tất cả các nghiệm của đa thức, các bạn dùng câu lệnh sau:
Thay vì có 3 nghiệm như trên, ta
chỉ thu được 1 nghiệm thực:
- Solve linear system: giải hệ phương trình tuyến tính (hệ phương trình bậc
nhất)
Câu lệnh: linsolve ([phương trình 1, phương trình 2,…,phương trình
n],[biến 1, biến 2,…,biến n]);
Ví dụ: Giải hệ phương trình sau: {
𝑥 − 7𝑦 + 3𝑧 = 12𝑥 − 3𝑦 = 2
𝑥 − 6𝑧 = 3
Trang 11Ta thu được kết quả sau:
Ngoài ra, đối với hệ phương trình có số biến nhiều hơn số phương trình
như hệ 3 phương trình 4 ẩn, theo lý thuyết chúng ta biết hệ phương trình trên có
vô số nghiệm với 1 ẩn là tham số hay nói cách khác là giải hệ phương trình tuyến
tính có chứa tham số
Ví dụ: Giải hệ phương trình sau với tham số t: {
𝑥 − 7𝑦 + 3𝑧 + 4𝑡 = 12𝑥 − 3𝑦 − 𝑡 = 2
𝑥 − 6𝑧 = 3
Ta có được kết quả sau:
Hoặc ta có thể xem biến t như một tham số, ta sẽ có kết quả sau:
- Solve algebraic system: Giải hệ phương trình đại số Cũng tương tự như
trên, chúng ta cũng khai báo các phương trình và các biến của hệ theo câu lệnh
sau: algsys ([phương trình 1, phương trình 2,…,phương trình n],[biến 1, biến
2,…,biến n]);
Ví dụ:
1) Giải hệ phương trình sau: {𝑥2+ 2𝑥 + 𝑦 = 1
3𝑥 + 4𝑦 = 6
Trang 12Khi đó, ta nhận được kết quả sau:
2) Giải hệ phương trình sau theo tham số t:
{
𝑡𝑥 + 𝑦 + 𝑧 = 1
𝑥 + 𝑡2𝑦 + 𝑧 = 14𝑥 + 𝑦 + 𝑡𝑧 = 1
- Solve ODE: Chức năng này dùng để giải phương trình vi phân thường cấp
1 hoặc phương trình vi phân tuyến tính cấp 2 hệ số hằng không có điều kiện đầu
Để thực hiện chức năng này, ta sử dụng cấu trúc lệnh như sau:
ode2 (phương trình, tham số biến, tham số hàm);
Trong đó, biểu thức lấy đạo hàm sẽ được kí hiệu như sau:
Đạo hàm cấp 1: ‘diff(y,x) Đạo hàm cấp n: ‘diff(y,x,n)
Ví dụ: Với phương trình: y’ – y = 0 (1), ta
sẽ có câu lệnh và kết quả như sau:
Trang 13Với phương trình vi phân cấp 2: y’’ – 2y’ + y = 0 (2), ta sẽ có kết quả là:
Hoặc với phương trình vi phương hệ số hàm: y’’ – 3y’ + 4y = sin(2x) (3),
- Để giải phương trình vi phân cấp 1 với điều kiện ban đầu 𝑦(𝑥0) = 𝑦0 thì
các bạn cần giải phương trình trước và ghi nhận kết quả nghiệm tổng quát của
phương trình Ví dụ: Với phương trình (1), nghiệm biểu thức là %𝑐𝑒𝑥, khi đó các
bạn sử dụng chức năng Initial Value Problem (1) (điều kiện đầu của phương
trình vi phân cấp 1) bằng cách thực hiện câu lệnh ic1 (%, 𝒙 = 𝒙𝟎; 𝒚 = 𝒚𝟎)
Lưu ý: Câu lệnh này chỉ
có áp dụng khi bạn vừa tính xong
phương trình (1) và áp dụng ngay
câu lệnh này Đặc biệt, đối với
chương trình Maxima dùng cho
máy tính, các bạn có thể sử dụng
câu lệnh sau ic1 (%i1, 𝒙 =
𝒙𝟎; 𝒚 = 𝒚𝟎), với cách này sẽ tiện
lợi hơn rất nhiều và tiết kiệm
được thời gian hơn. Ví dụ:
- Với phương trình vi phân
tuyến tính cấp 2 hệ số hằng thì Maxima chỉ giải quyết được bài toán có điều kiện
đầu dạng Cauchy: 𝑦(𝑥0) = 𝑦0; 𝑦′(𝑥0) = 𝑦′0 Để tìm nghiệm riêng thỏa mãn điều
kiện đầu dạng này, các bạn sử dụng chức năng Initial Value Problem (2) sau khi
đã tìm nghiệm tổng quát
Ví dụ:
Trang 14- Trong trường hợp phương trình vi phân cấp 2 có điều kiện biên 𝑦(𝑎) =
𝑦0; 𝑦(𝑏) = 𝑦1 thì sau khi giải tìm nghiệm tổng quát, các bạn sử dụng chức năng
Boundary Value Problem
- Solve ODE by Laplace: Giải phương trình vi phân bằng cách biến đổi
Laplace
2 Biến đổi biểu thức
- Partial Fraction: Phân tích 1 phân thức thành các phân thức đơn giản
Việc này sẽ rất có ít trong việc tính các bài toán tính phân hàm hữu tỉ
Câu lệnh: partfrac (phân thức cần phân tích, biến);
Ví dụ:
1) Phân tích 3𝑥
(𝑥−1)2(𝑥+2) thành các phân thức đơn giản
Trang 15𝑥4+5𝑥2+4 với tham số t Ta nhận được:
Ngoài ra, chức năng trên còn có thể khai triển các biểu thức bậc cao thành các đa
thức Ví dụ: Khai
triển biểu thức: (2𝑥 +9)3(𝑥5+ 7𝑥4−6𝑥 + 5)2
Ta được kết quả:
(hình bên)
- Ngược với câu lệnh partfrac dùng để phân tích 1 phân thức thành các phân
thức đơn giản, lệnh ratsimp có khả năng quy đồng các phân thức.Đối với
câu lệnh này, các bạn không cần phải khai báo biến
Ví dụ: Quy đồng biểu thức sau: 𝑥 + 𝑦
𝑥2+4 Ta có:
Trang 16Ngoài ra, ratsimp cũng giống như partfrac, nó cũng có thể khai triển các
biểu thức bậc cao thành các đa thức
Ví dụ: Khai triển biểu thức sau: 𝑥2(𝑥 + 2)(𝑥 + 3) + (𝑥 − 3)(𝑥 + 4)
Kết quả là:
- Câu lệnh factor dùng biến đổi các đa thức thành các nhân tử chung
Ví dụ: Phân tích biểu thức sau thành nhân tử chung:
Ta có:
- Continued fraction: biểu
diễn một số dưới dạng liên phân số
Trang 17- Laplace transform: Tìm phép biến đổi Laplace của một hàm cho trước.Ví
- Devide polynomials: Thực hiện
phép chia đa thức, kết quả trả về gồm 2 thành phần có dạng như sau: [thương ,
phần dư]
3 Nguyên hàm, tích phân, đạo hàm, giới hạn
- Integrate: Tính tích phân bất định và tích phân xác định hoặc tính tích
phân bằng phương pháp số Để thực hiện chức năng này, các bạn thực hiện câu
lệnh sau:
integrate (biểu thức, tên biến, cận dưới, cận trên);
Trang 18Ví dụ: Tính tích phân sau:𝐼 = ∫ 𝑑𝑥
√𝑥2+2𝑥−3
42
Ta được:
Trong trường hợp bạn
chỉ muốn tính nguyên
hàm bài toán trên, ta thực
hiện câu lệnh như sau:
Đối với một số bài
Tuy nhiên, kết quả này khá phức tạp Nếu ta biến đổi bài toán như sau rồi
tính nguyên hàm thì sẽ có kết quả nhanh chống và đơn giản hơn nhiều
𝑠𝑖𝑛2𝑥 + 𝑐𝑜𝑠2𝑥𝑑𝑥 = ∫ (1 −
𝑐𝑜𝑠2𝑥𝑠𝑖𝑛2𝑥 + 𝑐𝑜𝑠2𝑥) 𝑑𝑥
=> 2𝐼 = ∫( 𝑠𝑖𝑛2𝑥
𝑠𝑖𝑛2𝑥 + 𝑐𝑜𝑠2𝑥+ 1 −
𝑐𝑜𝑠2𝑥𝑠𝑖𝑛2𝑥 + 𝑐𝑜𝑠2𝑥)𝑑𝑥
<=> 𝐼 = ∫ (1 −𝑠𝑖𝑛2𝑥 − 𝑐𝑜𝑠2𝑥
𝑠𝑖𝑛2𝑥 + 𝑐𝑜𝑠2𝑥) 𝑑𝑥
Trang 19- Differentiate: Tính đạo hàm các cấp của hàm số
Câu lệnh: diff (hàm số tính đạo hàm, tên biến, cấp đạo hàm);
hạn hàm số với chức năng tìm giới hạn trái, giới hạn phải và giới hạn hai phía
Ví dụ: Tính:lim
𝑥→1
𝑥−1−sin(2𝑥−2)𝑥−1+sin(3𝑥−3)
Nếu bạn muốn tính giới hạn một bên của biểu thức này thì thực hiện câu
lệnh như sau:
Trong đó: 1, plus là x->1+
1, minus là x->1-
Trang 204 Ma trận
- Để nhập 1 ma trận, các bạn dùng lệnh Matrix Chức năng Invert Matrix
dùng để tìm ma trận nghịch đảo (nếu có) của 1 ma trận cho trước
Ví dụ:
- Characteristic Polynomial:
Dùng để tìm đa thức đặc trưng của ma
trận Tuy nhiên cũng giống như ma trận
nghịch đảo, Maxima chỉ cho tìm đa thức đặc trưng cho kết quả liền trước đó Do
đó, nếu kết quả ngay trước, không phải dạng ma trận thì chương trình sẽ báo lỗi
Vì vậy, các bạn nên sử dụng câu lệnh:
Charpoly (biểu thức xác định ma trận, tên biến của giá trị riêng), expand;
Ví dụ:
- Determinant: Tính định thức của ma trận vuông Ví dụ:
Trang 21- Eigenvalues: Tìm giá trị riêng của ma trận cho trước Ví dụ: Tìm giá trị
Trang 22- Sử dụng chức năng
rectform để đơn giản hóa các ma
trận Đối vơi sma trận trên, ta
được:
- Transpose: Tìm ma trận
chuyển vị của ma trận cho trước Ví dụ:
5 Khai triển Taylor – Maclaurin
- Tìm khai triển Taylor tại điểm 𝑥 = 𝑥0 của một hàm số bất kỳ
Câu lệnh: taylor (hàm số f(x), x, x 0, bậc cần khai triển);
Ở câu lệnh trên, các bạn có thể sử dụng biến y, t,… tùy ý Với khai triển
Maclaurin, các bạn chọn x0=0
Ví dụ: Tìm khai triển Maclaurin của hàm số sin(tanx) đến bậc 7 Khi đó ta có kết
quả sau:
Trang 236 Vẽ biểu đồ
- Bao gồm các lệnh để vẽ
đường cong 2 chiều trong mặt
phẳng, hoặc mặt cong trong
không gian
- Tuy nhiên, để vẽ đường
cong trong tọa độ cực, ta phải
chuyển về đường cong r = r(p)
lệnh có cấu trúc như sau:
draw2d (implicit(2*x^2+3*y^2=4, x,-2, 2, y,-2, 2))
V Tài liệu tham khảo
MAXIMA - PHẦN MỀM TOÁN HỌC NGUỒN MỞ
(Thầy Nguyễn Vũ Thụ Nhân)
GIẢI TÍCH HÀM MỘT BIẾN – LÝ THUYẾT CHUỖI
(Đỗ Công Khanh (chủ biên) - Nguyễn Minh Hằng - Ngô Thu Lương)
VI Lời kết
Như vậy, nhóm vừa trình bày các vấn đề cơ bản của phần mềm Toán học
mã nguồn mở Maxima on Android Ngoài những tính năng cơ bản trên, các bạn
có thể tìm hiểu thêm những tính năng mở rộng (thông qua mục Manual) của
chương trình này Nhóm hy vọng phần mềm này sẽ giúp cho các bạn trong học
tập
Trang 24Trong quá trình thực hiện, bài tiểu luận có thể còn những hạn chế và thiếu
sót nên rất mong nhận được ý kiến đóng góp từ các bạn để nhóm chỉnh sửa hoàn
thiện hơn qua gmail s2hoctroviet@gmail.com
Xin cảm ơn!