10. Cấu trúc luận văn
1.4. Giới thiệu phần mềm toán học Mathematica
1.4.3. Các lệnh trongMathematica
Các lệnh trong Mathemaica là các động từ bằng tiêngs Anh, phản ánh ý nghĩa toán học. Sau khi gõ lệnh của Mathematica theo đúng cú pháp, để chạy chƣơng trình thì ta ấn tổ hợp phím (SHIFT + ENTER) và kết quả cho ra ngay trên màn hình. Trƣờng hợp chƣơng trình bị lỗi thì khơng chạy. Nếu sau mỗi câu lệnh ta đặt dấu ”;” thì Mathematica sẽ thực hiện lệnh mà không cho kết quả ra màn hình. Vậy trong một phép tính nếu chúng ta không cần kết quả trung gian mà chỉ cần kết quả cuối cùng thì sau mỗi câu lệnh ta đặt dấu ”;”. Khi câu lệnh cuối cùng kết thúc ta ấn (SHIFT + ENTER) thì các dịng lệnh sẽ đƣợc thực hiện đồng thời .
Để hủy chƣơng trình hay lệnh nào đó đang chạy thì ta ấn tổ hợp phím (ALT +). Để thốt khỏi Mathematica thì chúng ta cũng tiến hành thoát nhƣ các cửa sổ làm việc khác (ALT + F4, Ctrl + F4,...) khi đó Mathematica hỏi bạn muốn ghi lại ”Save” hay không ghi lại ”Don’t save” hoặc muốn tiếp tục làm việc trên Mathematica thì ấn ”Cancel”.
Để thuận tiện ta có thể dùng các File trong Mathematica, chúng có phầm mở rộng là m. Một số lệnh sử dụng File.
<<baitap Đọc File có tên baitap.
!!baitap Hiện nội dung của file baitap.
Save[ « baitap » x1, x2,… ] Ghi lại các biến x1, x2,… vào file baitap.
x>>baitap Ghi lại các giá trị x vào file baitap (các dữ liệu cũ bị xóa khỏi file baitap).
x>>>baitap Ghi thêm các giá trị x vào file baitap và giữ nguyên các dự liệu cũ.
Muốn biết thơng tin về một lệnh nào đó cần sử dụng thì ta dùng lệnh:
?Log Cho ta biết thông tin về Log.
?? Log Cho ta biết thêm các thông tin cần thiết về Log.
?Abc* Cho ta biết thông tin về các đối tƣợng bắt đầu bằng chữ Abc.
?++ Đƣa ra các thông tin về các dạng lối
vào đặc biệt.
1.4.3.1. Các lệnh cơ bản của Mathematica trong tính tốn bằng số a. Các toán tử số học
Mathematica sử dụng các tốn tử trong tốn học nhƣ máy tính bình thƣờng: + phép cơng. - Phép trừ. * Phép nhân. / Phép chia. ^ Lũy thừa. b. Các toán tử logic
Mathematica sử dụng các phép so sánh nhƣ trong toán học. Nếu phép so sánh là đúng thì Mathematica “trả lời: True” sai “trả lời: False”.
Cách viết trên Mathematica: x = y gán giá trị y cho x.
x!=y x không bằng y. x>y x lớn hơn y. x<y x nhỏ hơn y.
x>=y x lớn hơn hoặc bằng y. x<=y x nhỏ hơn hoặc bằng y.
x==y==z x bằng y bằng z (tất cả bằng nhau).
x !=y!=z x không bằng y không bằng z (tất cả không bằng nhau). x>y>z x lớn hơn y và y lớn hơn z.
!! không phải là. Biểu thức :
Or[bt1, bt2,…] hay (bt1bt2…) thì kết quả là True nếu một
trong các bt là True, là False nếu tất các các bt là False.
And[bt1, bt2, …] hay (bt1 && bt2&&…) thì kết quả là True nếu tất
các bt là True, là False nếu một trong các bt là False.
Xor[bt1, bt2, …] thì kết quả là True nếu một số lẻ các bt là True, là
False nếu một số chẵn các bt là False.
If[p, t, q] cho giá trị là t nếu p đúng, ngƣợc lại cho giá trị là q. LogicalExpand[btL] khai triển biểu thức logic.
Ví dụ : In[1]:=5<3. Out[1]:=False. In[2]:=5 !=3 !5. Out[2]:=False.
Mathematica không biết đúng hay sai: In[3]:=x<y.
Out[3]:=x<y.
In[4]:=5<7&&9 !=6. Out[4]:= True.
In[5]:=(pq)&&!(a b). Out[5]:= (pq)&&!(ab).
c. Các thuật toán trong Mathematica
* Các dấu % biểu thị kết quả của phép tính cuối vừa đƣợc thực hiện % Kết quả cuối cùng.
%% Kết quả liền trƣớc kết quả cuối cùng. %n Kết quả thứ n.
* Cách sử dụng các biến:
x= a Gán giá trị a cho biến x. x=y= a Gán giá trị a cho biến x, y.
x=. Xóa đi tất cả các giá trị đã gán cho biến x.
Để các lệnh trƣớc không ảnh hƣởng tới lệnh mới ta viết thì chúng ta dùng Clear[var] hoặc Clear[“Global`*”] trƣớc khi viết lệnh mới.
d. Các hàm cơ bản
Trong Mathematica chứa các hàm toán học cơ bản và đặc biệt đƣợc dùng trong các phƣơng trình tốn học và vật lý giúp ta thực hiện các lệnh dễ ràng.
Sqrt[x] :căn bậc hai của x.
Exp[x] :hàm e mũ.
Log[x], Log[a,x] :hàm lnx và logax.
Sin[x], Cos[x], Tan[x], Cotan[x] :các hàm lƣợng giác có đơn vị đo góc là rad. ArcSin[x], ArcCos[x], ArcTan[x], ArcCtan[x] :các hàm lƣợng
giác ngƣợc .
n! : Giai thừa của n.
Abs[x] : trị tuyệt đối của x.
Mod[n,m] : cho phần dƣ của phép chia n cho m.
Random[] : cho số ngẫu nhiên giữa
0 và 1.
Random[type, range] : cho số ngẫu nhiên loại type nằm trong range. Max[x,y,...], Min[x,y,...] : cực đại, tiểu của x, y. FactorInterger[n] : các số nguyên mà n
chia hết.
x + Iy : Số phức.
Re[z] : phần thực của z.
Im[z] : phần ảo của z.
Conjugate[z] : liên hợp phức của z.
Abs[z] : Môđun của zz.
Arg[z] : argument của số phức
z. * Một số hằng số có trong Mathematica:
Pi 3,14159
E e 2,71828
Degree Pi/180 Giá trị 10
theo radian. I = i =Sqrt[-1]
Infinity =
(các chữ cái đầu của các hàm chuẩn đƣợc viết hoa và các đối số của hàm phải đƣợc đặt trong dấu [])[4, Tr.31] .
1.4.3.2. Đồ họa trong Mathematica a. Đồ thị hàm một biến
Plot[f [x], {x,a,b}] : vẽ đồ thị hàm f[x] trong khoảng a, b. Ví dụ: vẽ đồ thị hàm f(x)= 5x3 + 6x2+2x -1 Clear[f] In[1]:=f[x_]=5x^3+6x^2+2x-1 Vẽ đồ thị hàm f(x) Plot[f[x],{x,-3,2}] Out[1]:=-1+2x+6x2+5x3 Vẽ đồ thị hàm f(x)
Chạy chƣơng trình, kết quả cho ở hình 1.4.
* Ta có thể vẽ riêng từng đồ thị có dạng các đƣờng chấm và cho cùng hiển thị trên cùng một hệ trục bằng lệnh: PlotStyle->Dashing[{n1, n2,…}]. với n1,n2,… là các số thì đồ thị sẽ có dạng các đƣờng chấm. Ví dụ: vẽ hàm f[x] dƣới dạng đƣờng chấm: dt=Plot[f[x],{x, -5, 5}, PlotStyle- >Dashing[{.01}]]
Chạy chƣơng trình, kết quả cho ở hình 1.5
* Vẽ đồ thị nhƣng chƣa muốn cho hiện lên màn hình thì dùng lệnh: DisplayFunction->Identity.
Ví dụ: Ta vẽ cả ba đồ thị trên cùng một hệ trục nhƣng vẽ lần lƣợt từng đồ thị, nhƣng chƣa cho đồ thị đó hiện lên, sau đó cho chúng hiện lên trên cùng một hệ trục thì: dt1= Plot[f[x_]= x^3-3 x^2+2, {x,-5,5}, PlotStyle->Dashing[{.01}] DisplayFunction->Identity]; Hình 1.4 Hình 1.5 Hình 1.6
dt2= Plot[g[x_]=x^2+3x-1,{x,-5,5},DisplayFunction->Identity]; dt3= Plot[h[x_]=2x,{x,-5,5},DisplayFunction->Identity];
Show[dt1,dt2,dt3,DisplayFunction->$DisplayFunction] Chạy chƣơng trình, kết quả cho ở hình 1.6
* Ngồi ra chúng ta cịn có một số dạng nhƣ:
Tạo tỷ số khoảng chia trên trục Ox, Oy: AspectRatio->number.
Tạo khung: Frame->True, đặt tên cho khung: FrameLabel->{“do thi 1”, “do thi 2”, “do thi 3”} .
Chỉ rõ có đặt dấu kiểm tren các trục Ox, Oy hay không: Ticks->None hay Ticks->{{x-axis ticks},{ y-axis ticks}}.
Ghi tên cac trục tọa độ: AxesLabe->{“x-axisLabel”, “y-axisLabel”}. Nếu muốn bỏ các trục thì: Axes->False, muốn có: Axes->True.
Đặt tên cho đồ thị vừa vẽ: PlotLabel-> “name”.
Quy định vùng giá trị của x: PlotRange->{{x-minimum, x-maxximum},{ y-minimum, y-maxximum}.
Vẽ toàn bộ đồ thị: PlotRange->All.
Vẽ đồ thị trong phạm vi nhất định của x, y: PlotRange->{{xmin,xmax},{ymin,ymax}}.
Vẽ lƣới tự động: GridLines->Automatic.
Chỉ vẽ lƣới ngang : GridLines->{None,Automatic}.
Vẽ các đƣờng thẳng đứng tại x =2, 3 và 4: GridLine->{{2,3,4}}. * Vẽ đồ thị hai chiều: ParametricPlot[{x[t],y[t]},{t, a,b}]
b. Đồ thị hàm hai biến ba chiều
* Vẽ đồ thị hàm hai biến ba chiều ta dùng lệnh có dạng tổng quát : Plot3D[f[x,y],{x, xmin, xmax}, {y, ymin, ymax}]
Ví dụ vẽ đồ thị hàm : f(x,y) = x2
Clear["Global`*"] f[x_,y_]=x^2/4+y^2/16
Plot3D[f[x,y],{x,-5,5},{y,-5,5}] Chạy chƣơng trình, kết quả cho ở hình 1.7
* Vẽ đồ thị tham số : khi các hàm x, y, z liên hệ với nhau theo tham số thì dùng lệnh:
ParametricPlot3D[{x[t],y[t],z[t]},{t,tmin,tmax}]. Nếu có hai tham số thì ta dùng lệnh :
ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,umin,umax},{{v,vmin,vmax}}]. * Đồ thị trƣờng véc tơ :
Để thực hiện đƣợc lệnh vẽ trƣờng vvéc tơ thì ta cần mở gói chƣơng trình. <<Graphics`PlotField`
- Vẽ trên mặt phẳng thực hiện lệnh :
PlotVectorFiled[{fx[x,y],fy[x,y]},{x,xmin,xmax},{y,ymin,ymax},Options] : Vẽ trƣờng véc tơ f trong mặt phẳng
- Vẽ trong không gian ba chiều: <<Graphics`Plot3DField`
PlotVectorFiled3D[{fx[x,y,z],fy[x,y,z],fz[x,y,z]},{x,xmin,xmax},{y,ymin,ymax} ,{z,zmin,zmax},(Options)] ;
* Chú thích cho đồ thị:
Ta mở gói chƣơng trình (Graphics`Legend`), sau đó dùng lệnh Option PlotLegend hay dùng lệnh ShowLegend.
<< Graphics`Legend` PlotLegend->{“text1”, “text2”,…}. ShowLegend[graphics,legend1, legend2,…].
Các tùy chọn với PlotLegend và ShowLegend
Tên tùy chọn Giá trị mặc định Chức năng
LegendPosition {1,3} Chỉ vị trí bảng chú thích với tâm đồ thị.
LegendSize Automatic Chỉ rõ độ dài bản chú thích. LegendShutdow Automatic Có thể cho giá trị None.
LegendOrientation Vertical Có thể cho Vertical hay Horizontal.
LegendLabel None Tên bản chú thích.
LegendTextDirection Automatic Hƣớng của bản chú thích.
LegendTextOffset Automatic Cân bằng chữ trong chú thích. LegendSpacing Automatic Khoảng cách hai hàng trong
bảng chú thích.
LegendTextSpace Automatic Khoảng cách các chữ trong bảng chú thích.
* Vẽ đồ thị động:
Trong Mathematica có khả năng tạo hiệu ứng. Để sử dụng các hiệu ứng trong Mathematica ta phải mở gói chƣơng trình Graphics`Animation` rồi dùng các lệnhvẽ động nhƣ:
- Animate[grcom,{tmin,tmax,dt}]: Vẽ đồ thị grcom với tham số t chạy từ tmin tới tmax với bƣớc là dt.
- ShowAnimation[{h1,h2,…}]: biểu diễn tổ hợp hình động kế tiếp nhau.
- MoviePlot[f[x,t],{x,xmin,xmax},{t, tmin,tmax}].
- MoviePlot3D[f[x,y,t],{x,xmin,xmax},{y,ymin,ymax},{t, tmin,tmax}]. -MovieContourPlot[f[x,y,t],{x,xmin,xmax},{y,ymin,ymax},{t, tmin,tmax}]. -MovieDenstityPlot[f[x,y,t],{x,xmin,xmax},{y,ymin,ymax},{t, tmin,tmax}].
- MovieParametricPlot[f[x,t],h[x,t],{x,xmin,xmax},{t, tmin,tmax}]. Để chạy chƣơng trình ta kích chuột vào dấu (+) và chạy các hiệu ứng
c. Cấu trúc đồ thị
* Trong Mathematica cho phép ta biểu diễn các đồ thị dƣới dạng tổ hợp các lệnh vẽ đồ thị nhƣ: Point, Line, Polygon. Ta có thể tơ màu cho đồ thị bằng lệnh: RGBColor, Tăng độ đậm nhạt của đồ thị bằng các lệnh tƣơng ƣng sau: Thickness, SurfaceColor.
Các lệnh vẽ hỗ trợ vẽ đồ thị:
- Đánh dấu chấm tại điểm có tọa độ x, y Point[{x,y}].
- Vẽ đƣờng thẳng đi qua tọa độ các điểm cho trƣớc (x1,y1), (x2,y2),… dùng lệnh: Line[{{x1,y1}, {x2,y2},…}].
- Vẽ hình chữ nhật: Rectangle[{x1,y1}, {x2,y2}].
- Vẽ đa giác và tô đen: Polygon[{{x1,y1}, {x2,y2},…}].
- Viết dòng Text ( expr) tại điểm có tọa độ x, y: Text[expr,{x,y}]. - Vẽ đƣờng tròn tâm tại điểm (x, y) và bán kính R: Circle[{x,y},R]. Ví dụ: Vẽ đƣờng trịn
Clear["Global`*"]
dt=Graphics[Circle[{0,0},3]] Show[%,Axes->True]
Chạy chƣơng trình ta thu đƣợc kết quả nhƣ hình 1.8
Trên đồ thị, mỗi yếu tố sẽ đƣợc thực hiện bằng một hay một tổ hợp các lệnh khác nhau:
* Cách tô màu:
- Tô màu trắng đen theo mức độ giữa 0 (đen) và 1(trắng)thì dùng lệnh: GrayLevel[i].
- Pha các màu đỏ (r), xanh lá cây (g), xanh da trời (b) với nhau tƣơng ứng các số từ 0 đến 1 thì dùng lệnh: RGB[r,g,b].
- Tô màu với h nằm giữa 0 và 1: Hue[h].
- Tô màu đặc biệt các giá trị từ 0 đến 1: Hue[h,s,b].
* Thay đổi kích thước các đường trên đồ thị
- Độ đậm, nhạt của đồ thị: Thickness[a]. - Đƣờng kính của điểm: PointSize[d].
- Đƣờng chấm chấm: Dashing[{i}] (i nằm trong khoảng từ 0 đến 1).
*Một số lệnh khác hỗ trợ trong khi vẽ đồ thị:
- Tính tới sai số khi vẽ đồ thị:
ErrorListPlot[{{x1,y1,dy1},{x2,y2,dy2},...}].
- Điền tên các điểm trên đồ thị: TextListPlot[{{x1,y1, “A”}, {x2,y2, “B”},... }].
- Trƣờng véc tơ: ListPlotVectorFiled[list].
Ngồi các tính năng về vẽ đồ thị trong toán và trong vật lý ra, Mathematica cịn thực hiện các tính tốn đại số. Các tính tốn giải tích. Tính tốn, biến đổi trong ma trận, vơ hƣớng và véc tơ hay giúp ta lập trình với các thuật toán đơn giản và phức tạp.