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.. Để có thể giải được một bài toán của môn Phương pháp
Trang 1HƯỚNG DẪN THỰC HÀNH MATHEMATICA 4.0
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ố lưu ý 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:
- Một số ký hiệu:
Trang 2Số e: E Số π : Pi
- Một số các hàm số cơ bản có sẵn:
Hàm số cơ bản Khai báo trong Math Hàm số cơ bản Khai báo trong Math
x
Ta cũng có thể sử dụng bảng BasicInput có sẵn trong Math 4.0 để nhập vào nhanh hơn Bảng BasicInput có dạng:
Nếu bảng BasicInput chưa xuất hiện vào File -> vào Palettes -> chọn BasicInput
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 2 2 3 2 3
2
( ) log (sin (2 1) x ) ln
f x = x x+ +e − x ta khai báo như sau:
Trang 3f[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( , )= x2 sin ( 4 x2 + y2 )−tg x( 2 − y2 )
g[x_,y_]:=x^2*Sin[x^2 + y^2]^4 – 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 2
( , , ) cotg( ) x yz
h x y z = x y z+ −e + 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ơ
Ví dụ Khai báo hàm số
( , )
sin ( ).ln
x arctg y xy
F x y
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:
Ví dụ Khai báo ma trận 3 hàng 1 cột
2 1 3
y
÷
= ÷ ÷
, dùng lệnh y={{2},{1},{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ỳ:
Ví dụ Khai báo ma trận 3 hàng 4 cột
1 2 3 0
3 1 2 4
5 6 7 8
A
, dùng lệnh:
A:={{1,2,3,0},{3,1,2,4},{5,6,7,8}}
hoặc có thể thực hiện như sau:
- Trên dòng lệnh gõ A:=
- Ấn Shift + Ctrl + C, trên màn hình sẽ xuất hiện:
Trang 4Trong mục: Make chọn Matrix
Number of rows: nhập vào là 3 Number of columns: nhập vào là 4 Sau đó ấn Ok Khi đó dòng lệnh sẽ hiển thị lên như sau:
A :
Nhập các giá trị tương ứng của ma trận A vào các ô Kết quả ta được
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à chưa biết các phần tử của nó
Trong trường hợp ma trận A kích thước m n× chưa 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:
e[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à 1, 2, ,a a 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]] hoặc nếu sử dụng bảng BasicInput: A i,j
Trang 5- 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]] hoặc nếu
sử dụng bảng BasicInput 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:
- 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 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}]
- Vẽ đồ thị hàm cho bởi phương trình tham số: ( )
( )
x x t
y y t
=
=
với t∈( , )a b
ParametricPlot[{x[t],y[t]},{t,a,b}]
Chú ý Khi vẽ đồ thị, trục nằm ngang và trục thẳng đứng chưa 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}]
- Vẽ đồ thị của một hàm cho bởi phương trình tham số:
( , ) ( , ) ( , )
x x t s
y y t s
z z t s
=
=
=
với t∈( , ),a b s∈( , )c d
Trang 6VI Một số phép toán đối với hàm số
1 Tính giới hạn:
Để tính các giới hạn lim ( ), lim ( ), lim ( ), lim ( ), lim ( )x a→ f x x a→ + f x x a→ − f x x→∞ f x x→−∞ f x ta dùng các lệnh tương ứng sau đây:
Limit[f[x],x->a]
Limit[f[x],x->a,Direction->1]
Limit[f[x],x->a,Direction->-1]
Limit[f[x],x->Infinity]
Limit[f[x],x->-Infinity]
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]
hoặc nếu sử dụng bảng BasicInput x f x hoặc f'[x]
- Đạo hàm cấp n của hàm 1 biến ( )f x : D[f[x],{x,n}]
hoặc nếu sử dụng bảng BasicInputx,n f x
- Đạ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}]
hoặc nếu sử dụng bảng BasicInput x,2,y,z,4 f x, y, z
- Đạo hàm của hàm vectơ:
1 2 3
( , , ) ( , , ) ( , , )
( , , )
f x y z
F x y z f x y z
f x y z
, ta tính F x′ bằng lệnh: D[F[x,y,z],x]
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]
hoặc nếu sử dụng bảng BasicInput 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}],
hoặc nếu sử dụng bảng BasicInput a
b
fx x
Trang 7- Để 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 các s:
- Tính tổng của dãy số: n i k k 1 n
i k
=
sử dụng bảng BasicInput i k
n
ai
Ví dụ Tính tổng
1! 2! 10!
, ta thực hiện như sau: i 0
10 1
i
- Tính tổng của dãy số: n i k. k 1 n
i k
=
=
∏
sử dụng bảng BasicInput: i k
n
ai
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}]
Ví dụ Tính tổng 1 1 1 1
1! 2! 10!
+ + + + , dùng đoạn lệnh sau:
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]
Trang 8Khi 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
-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: (1,2, )
1
max n ij
i m
j
∈ =
chuanvc[A]:=Max[Table[j 1
n
Abs a i,j ,{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 của ma trận x như sau: Theo công thức lý thuyết: x ∞ imax (1,2, )m x i
∈
chuanvc[x]:=Max[Table[Absx i,{i,1,m}]]
Trang 9Bài tập thực hành
Bài I Khai báo các hàm số sau, vẽ đồ thị để tìm khoảng tách nghiệm của hàm số và ước lượng gần đúng giá trị lớn nhất, giá trị nhỏ nhất của hàm số trên khoảng tách nghiệm:
1 f x ( ) = x3 − log (5 2 x2 + sin (4 x + 1)) + arctg x ( + 4)
2 g x ( ) 5 = x − 4cos (3 x2 + e3x) 15 4 + × 2x
Bài II Khai báo các ma trận sau:
12 4 1
2 10 3
3 1 16
A
−
= − ÷
− ÷
1 2 0
3 4 3
= − ÷
1 3
2 4
5 0
C
−
= − ÷
1 Tính det , A A−1
2 Tính B C C B A B C B C A , , + , −
3 Sử dụng lệnh Max, tìm giá trị lớn nhất của ma trận A
4 Sử dụng các lệnh tính tổng, tích các phần tử của ma trận A
Bài III Tính đạo hàm cấp 1 và cấp 10 của các hàm số cho trong bài I Vẽ đồ thị của các đạo hàm cấp 1 của các hàm số này
Bài IV Tìm nguyên hàm của các hàm số sau:
1 f x ( ) = x2.arcsin 3 x 2 g x ( ) = e−2x.sin2 x
Bài V Tính các tích phân xác định sau:
1
5 lg
x + x + x dx
0
.sin
x
π
−
∫ Bài VI Tìm các giới hạn sau:
1
1
lim(1 ) .
2
x x tg x π
→
− ÷
2 lim ( 2 1 )
x x x x
3, sin (2 1)
3
x = x = x − − Sử dụng các lệnh Do, While tìm:
1 x10, x25
2 xn thoả mãn xn− xn−1 ≤ 10−7
3 Tính
20
1
i i
x
=
∑
4 Tính
1
n
i i
x
=
∏ với xn thoả mãn xn− xn−1 ≤ 10−5