Cách mở thành công cụ trong Mathematica

Đ9. Hớng dẫn Thực hành Mathematica
Phần mềm Mathematica chỉ là một trong những công cụ hỗ trợ cho môn Phơng pháp
tính. Do thời gian học có hạn nên trong hớng dẫn chỉ xem xét một số lệnh cơ bản đủ để giải
quyết các bài toán có trong chơng trình học. Những sinh viên nào có nhu cầu cao hơn có thể
tự học qua phần hớng dẫn Help của phần mềm hoặc tham khảo thêm các sách viết về phần
mềm Mathematica.
Để có thể giải đợc một bài toán của môn Phơng pháp tính, sinh viên cần phải hiểu rõ lý
thuyết, biết đợc các yêu cầu của bài toán, biết đợc các tham số nào cần cho bài toán để từ đó
có thể sử dụng phần mềm Mathematica lập trình để giải bài toán.

I. Một số lu ý khi sử dụng phần mềm Mathematica
- Mathematica phân biệt giữa chữ hoa và chữ thờng. Do đó, chữ cái nào viết hoa cần phải
viết hoa chữ cái đó.
- Những lệnh, hàm, các ký hiệu, các biến có sẵn trong Mathematica luôn đợc bắt đầu bằng
chữ in hoa.
- Để thực hiện một lệnh trong Mathematica, ấn đồng thời hai phím Shift + Enter
- Các hàm, các biến tự khai báo không cần viết hoa chữ cái đầu tiên nhng khai báo thế nào
khi dùng phải dùng đúng nh vậy.
- Các chữ cái không đợc dùng để đặt tên: C, D, E, I, N
- Vai trò của 3 cặp ngoặc ( ), [ ], { }
+ Cặp ngoặc ( ) dùng để ngoặc các biểu thức toán học
+ Cặp ngoặc [ ] dùng để chứa các đối số, biến số của lệnh, của hàm.
+ Cặp ngoặc { } dùng để liệt kê các miền cho đối số, liệt kê các công việc, dùng cho các
mảng hoặc ma trận.
- Tên của các biến, các hàm tự khai báo bao gồm các chữ cái và chữ số, bắt đầu bằng một
chữ cái, có thể là chữ thờng hoặc hoa. Tên này phải khác với tên các lệnh, các hàm đã có sẵn
trong chơng trình.
- Phân biệt giữa x:=1, x=1 và x==1
x:=1 là lệnh gán giá trị 1 cho hằng số x
x=1 là lệnh gán giá trị 1 cho biến x (x có thể thay đổi giá trị trong khi thực hiện chơng
trình)

x==1 là so sánh giữa giá trị vế trái x có bằng giá trị vế phải là 1 hay không.

II. Các phép toán và các hàm cơ bản
- Cho hai số a, b. Một số các phép toán:
Phép cộng: a+b
Phép nhân: a*b
- Một số ký hiệu:

Phép trừ: a-b
Phép chia: a/b

Số e: E

Số : Pi

Số : Infinity
- Một số các hàm số cơ bản có sẵn:

Đơn vị ảo: I

Hàm số cơ bản

Khai báo trong Math

Hàm số cơ bản

Khai báo trong Math

x

Abs[x]

x

sin x

Sin[x]

cos x

Cos[x]

tgx

Tan[x]

cot g x

Cot[x]

arcsin x

ArcSin[x]

arccos x

ArcCos[x]

arctgx

ArcTan[x]

arccotgx

ArcCot[x]

log a x

Log[a,x]

ln x

Log[x]

ax

a^x

ex

E^x hoặc Exp(x)

Sqrt[x] hoặc x^(1/2)

III. Khai báo hàm số mới
1. Khai báo hàm một giá trị
- Khai báo hàm một biến
Ví dụ. Muốn khai báo hàm f ( x ) = x 2 .log 2 (sin 2 (2 x + 1) + e 3 x ) ln 3 x ta khai báo nh sau:
2

f[x_]:=x^2*Log[2,(Sin[2*x+1]^2 + E^(3*x^2))] - Log[x]^3
Sau khi khai báo, để tính giá trị của hàm số tại x = 3 ta dùng lệnh sau:f[3.] hoặc f[x]/.x->3
- Khai báo hàm nhiều biến
Ví dụ. Khai báo hàm 2 biến g ( x , y ) = x 2 sin 2 ( x 2 + y 2 ) tg ( x 2 y 2 )
g[x_,y_]:=x^2*Sin[x^2 + y^2] Tan[x^2 - y^2]
Sau khi khai báo, để tính giá trị của hàm số tại x = 2, y = 1 ta dùng lệnh sau:
f[2,1] hoặc
f[x,y]/.{x->2,y->1}
Ví dụ. Khai báo hàm ba biến h( x , y, z ) = xcotg( y + z ) e x

2

+ yz

ta dùng lệnh sau:

h[x_,y_,z_]:=x*Cot[y+z] - E^(x^2+y*z)

2. Khai báo hàm vectơ
- Khai báo một hàm vectơ
x 2 arctg ( y 2 2 xy )
Ví dụ. Khai báo hàm số F ( x , y ) =
ữ ta dùng lệnh sau:
2
3
sin ( x + y ).ln x

F[x_,y_]:={x^2*ArcTan[y^2 2*x*y], Sin[x + y]^2*Log[x]^3}

III. Ma trận và hệ phơng trình
1. Khai báo ma trận
1.1 Trong trờng hợp ma trận đã biết kích thớc và các phần tử của nó
- Ma trận là ma trận có 1 cột:
2
Ví dụ. Khai báo ma trận 3 hàng 1 cột y = 1 ữ
ữ, dùng lệnh: y={2,1,3} hoặc y={{2},{1},{3}}
3ữ

- Ma trận là ma trận có 1 hàng:
Ví dụ. Khai báo ma trận 1 hàng 4 cột x = ( 1 4 5 2 ) , dùng lệnh: x={{1,4,5,2}}
- Ma trận kích thớc bất kỳ:
1 2 3 0
Ví dụ. Khai báo ma trận 3 hàng 4 cột A = 3 1 2 4 ữ
ữ, dùng lệnh:
5 6 7 8ữ

A={{1,2,3,0},{3,1,2,4},{5,6,7,8}}

1.2 Trong trờng hợp ma trận đã biết kích thớc và cha biếtcác phần tử của nó
Trong trờng hợp ma trận A kích thớc m ì n cha biết các phần tử của nó thì khởi tạo ma
trận A nh sau: A=Table[,{i,1,m},{j,1,n}]

1.3 Khai báo một số ma trận đặc biệt
- Ma trận đơn vị cấp n: IdentityMatrix[n]
- Ma trận vuông cấp n có các phần tử trên đờng chéo đã biết là a1, a 2, ..., an còn các phần tử
khác bằng 0: DiagonalMatrix[a1,a2,,an]
- Ma ma trận A kích thớc m ì n có các phần tử ở hàng i cột j bằng một giá trị aij:

A=Table[aij,{i,1,m},{j,1,n}]

3. Lấy một phần tử của ma trận
- Nếu ta đã khai báo một ma trận A kích thớc m ì n thì để lấy phần tử ở hàng i cột j ta dùng
lệnh sau đây: A[[i,j]]
- Nếu ma trận A chỉ là ma trận cột thì để lấy phần tử thứ k ta dùng lệnh sau: A[[k]]

4. Các phép toán ma trận
- Các phép toán cộng, trừ, nhân hai ma trận A và B thực hiện nh sau:
A+B

AB

A.B

- Phép nhân ma trận A với một số thực k thực hiện nh sau: k*A
- Nếu A là ma trận vuông thì định thức đợc tính bởi lệnh: Det[A]
- Nếu A là ma trận vuông khả nghịch thì ma trận nghịch đảo đợc tính bởi lệnh: Inverse[A]

- Ma trận chuyển vị của A đợc tính bởi lệnh: Transpose[A]

5. Hiển thị ma trận
Để hiển thị ma trận A theo cách ta đã biết, ta dùng lệnh sau: MatrixForm[A]
Chú ý. Để hiển thị ma trận nghịch đảo của ma trận A, dùng lệnh kép:
MatrixForm[Inverse[A]]

6. Tính chuẩn của ma trận
- Nếu ta đã khai báo một ma trận A kích thớc m ì n thì ta có thể tính chuẩn vô cùng của ma
trận A nh sau: Theo công thức lý thuyết: A = max

i(1,2,.. m )

n

a
j =1

ij

ta có lệnh:

chuanvc[A]:=Max[Table[Sum[Abs[A[[i,j]]],{j,1,n}],{i,1,m}]]
- Nếu ma trận x chỉ là ma trận cột có m hàng (một vectơ) thì ta có thể tính chuẩn vô cùng
xi ta có lệnh:
của ma trận x nh sau: Theo công thức lý thuyết: x = imax
(1,2,.. m )
chuanvc[x]:=Max[Table[Abs[x[[i]]],{i,1,m}]]

7. Giải hệ phơng trình
Để giải hệ phơng trình A. x = b , sau khi đã nhập các ma trận A và b , dùng lệnh
LinearSolve[A,b]

IV. Vẽ đồ thị hàm số
1. Vẽ đồ thị hàm số trong hệ toạ độ Oxy
- Vẽ đồ thị hàm y = f ( x ) trên ( a, b ) ta dùng lệnh: Plot[f[x],{x,a,b}]
- Vẽ cùng một lúc hai đồ thị y = f ( x ), y = g ( x ) trên ( a, b ) ta dùng lệnh:
Plot[{f[x],g[x]},{x,a,b}]
x = x( t )
- Vẽ đồ thị hàm cho bởi phơng trình tham số:

với t ( a, b )
y = y( t )
ParametricPlot[{x[t],y[t]},{t,a,b}]
Chú ý. Khi vẽ đồ thị, trục nằm ngang và trục thẳng đứng cha chắc đã là trục tung và trục
hoành.

2. Vẽ đồ thị hàm số trong hệ toạ độ Oxyz
- Vẽ đồ thị hàm z = f ( x , y ) với x ( a, b ), y ( c , d ) ta dùng lệnh:
Plot3D[f[x,y],{x,a,b},{y,c,d}]
x = x( t , s)

- Vẽ đồ thị của một hàm cho bởi phơng trình tham số: y = y( t , s )
z = z(t , s)

với t ( a, b ), s ( c , d )

ParametricPlot3D[{x[t,s],y[t,s],z[t,s]},{t,a,b},{z,c.d}]

VI. Một số phép toán đối với hàm số
1. Tính giới hạn:
f ( x ), lim f ( x ), lim f ( x ), lim f ( x ), lim f ( x ) ta dùng các lệnh
Để tính các giới hạn lim
x a
x
x
x a
x a
+

sau:
Limit[f[x],x->a]
Limit[f[x],x->a,Direction->1]
1]
Limit[f[x],x->Infinity]
Limit[f[x],x->-Infinity]

Limit[f[x],x->a,Direction->-

2. Tính đạo hàm của hàm số
- Đạo hàm cấp 1 của hàm 1 biến f ( x ) : D[f[x],x]
- Đạo hàm cấp n của hàm 1 biến f ( x ) : D[f[x],{x,n}]
- Đạo hàm của hàm nhiều biến f ( x , y, z )
Ví dụ. Đạo hàm 2 lần theo x, 1 lần theo y, 4 lần theo z: D[f[x,y,z],{x,2},y,{z,4}]
f1 ( x , y, z )

- Đạo hàm của hàm vectơ: F ( x , y, z ) = f2 ( x , y, z ) ữ
ữ, ta tính Fx bằng lệnh: D[F[x,y,z],x]
f ( x , y, z ) ữ
3

và từ đây ta có ma trận đạo hàm F đợc tính theo công thức:
Transpose[D[F[x,y,z],x], D[F[x,y,z],y], D[F[x,y,z],z]]
- Để tính F (1, 2, 3) ta phải dùng lệnh sau đây:
Transpose[D[F[x,y,z],x], D[F[x,y,z],y], D[F[x,y,z],z]]/.{x->1, y->2, z->3}
- Để khai báo hàm F ( x , y, z ) ta phải dùng lệnh sau đây:
F[x_,y_,z_]:=Transpose[D[F[u,v,w],u], D[F[u,v,w],v], D[F[u,v,w],w]]/.{u->x,v->y,w->z}

3. Tính tích phân
- Để tính nguyên hàm của hàm f ( x ) , dùng lệnh: Integrate[f[x],x]
- Để tính tích phân xác định của hàm f ( x ) trên [ a, b ] , dùng lệnh: Integrate[f[x],{x,a,b}]
- Để tính tích phân xác định của hàm f ( x ) trên [ a, b ] , kết quả hiển thị dới dạng số thập
phân, dùng lệnh: NIntegrate[f[x],{x,a,b}]

VII. Một số lệnh thờng sử dụng
1. Lệnh tính tổng và tích một dãy số:
- Tính tổng của dãy số:

n

a
i=k

- Tính tổng của dãy số:

n

a
i=k

Ví dụ. Tính tổng 1 +

= ak + ak +1 + ... + an , dùng lệnh: Sum[a[i],{i,k,n}]

i

i

= ak .ak +1 .....an , dùng lệnh: Product[a[i],{i,k,n}]

1 1
1
, dùng lệnh: 1+Sum[1/ i!, {i,1,10}].
+ + ... +
1! 2!
10!

2. Câu lệnh điều kiện
If[điều kiện, công việc 1, công việc 2]
Khi gặp câu lệnh này, Math sẽ kiểm tra điều kiện. Nếu điều kiện đúng, sẽ thực hiện
công việc 1, nếu điều kiện sai thì sẽ thực hiện công việc 2.
Chú ý. Công việc 2 có thể không có. Khi đó nếu điều kiện sai thì Math sẽ bỏ qua lệnh này.

3. Các câu lệnh lặp
3.1 Lặp với số lần lặp biết trớc
- Thực hiện một công việc n lần: Do[dãy công việc, {n}]
- Nếu trong dãy công việc thực hiện có phụ thuộc vào một tham số i với i chạy từ m đến n
, dùng lệnh: Do[dãy công việc, {i,m,n}]
1 1
1
Ví dụ. Tính tổng 1 + + + ... +
, dùng đoạn lệnh sau:
1! 2!
10!
S=1
Do[S=S+1/ i!, {i,1,10}]
Chú ý. Dãy công việc bao gồm k công việc thực hiện liên tiếp nhau, có thể khai báo nh sau:

{công việc 1, công việc 2, công việc k} hoặc công việc 1;công việc 2; ; công việc k

3.2 Lặp với số lần lặp không biết trớc
While[điều kiện, dãy công việc]
Khi gặp câu lệnh này, Math sẽ kiểm tra điều kiện. Nếu điều kiện đúng thì thực hiện
dãy công việc, nếu điều kiện sai thì Math sẽ kết thúc lệnh này và chuyển sang lệnh tiếp theo.

4. Câu lệnh hiển thị
- Để hiển thị một đoạn ký tự So lan lap la, ta dùng lệnh: Print[So lan lap la]
- Để hiển thị giá trị của một biến x , ta dùng lệnh sau: Print[x]
- Nếu muốn hiển thị cùng một lúc nhiều đoạn ký tự và giá trị các biến, ta đặt chúng trong
lệnh Print và đợc cách nhau bởi dấu phẩy.
- Để trình bày hiển thị theo một dòng đã định sẵn, ta dùng thêm lệnh StringForm
Ví dụ. Đã biết giá trị biến n = 7, x = 2, y = 3 và ta muốn hiển thị nó dới dạng:
Sau 7 lần lặp, giá trị của x=2, y=3 ta dùng câu lệnh sau đây:
Print[StringForm[Sau `` lan lap, gia tri x = ``, y= ``, n, x, y]]
Lệnh StringForm sẽ chèn các giá trị n, x, y lần luợt vào các `` tơng ứng.

5. Thay đổi giá trị của biến nguyên
Để thay đổi giá trị biến nguyên n thêm i đơn vị, dùng lệnh: n+=i
Chú ý. Để tăng n 1 đơn vị ta có thể dùng lệnh n+=1 hoặc n++. Để giảm n 1 đơn vị ta có thể
dùng lệnh n-=1 hoặc n- -