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 tính
Trang 1Đ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:
- 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
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
2
( ) log (sin (2 1) x ) ln
f x = x x+ +e − x ta khai báo nh sau: 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( , )= x2 sin ( 2 x2 + y2 )−tg x( 2 −y2 )
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}
( , , ) 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ơ
( , )
sin ( ).ln
x arctg y xy
F x y
Trang 3F[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} hoặc y={{2},{1},{3}}
- Ma trận là ma trận có 1 hàng:
- 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}}
1.2 Trong tr ờng hợp ma trận đã biết kích th ớc và ch a 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à 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]]
- 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:
- 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]
Trang 4- 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:
(1,2, ) 1
max n ij
i m j
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 của ma trận x nh sau: Theo công thức lý thuyết: max (1,2, ) i
i 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ố
- 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 cha chắc đã là trục tung và trục hoành
- 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 5VI 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 x x
x a x a
sau:
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]
- Đạ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}]
- Đạ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]
- Để 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 i k k 1 n
i k
=
- Tính tổng của dãy số: n i k. k 1 n
i k
=
=
∏ , dùng lệnh: Product[a[i],{i,k,n}]
1! 2! 10!
+ + + + , dùng lệnh: 1+Sum[1/ i!, {i,1,10}]
Trang 62 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]
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