Bài giảng mathematica( Phần 1)

53 461 2
Bài giảng mathematica( Phần 1)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lập trình toán học với Mathematica.Lập trình toán học với Mathematica.Bài giảng mathematica( Phần 1) .Lập trình toán học với Mathematica.Lập trình toán học với Mathematica.Bài giảng mathematica( Phần 1) Lập trình toán học với Mathematica.Lập trình toán học với Mathematica.Bài giảng mathematica( Phần 1) Lập trình toán học với Mathematica.Lập trình toán học với Mathematica.Bài giảng mathematica( Phần 1) Lập trình toán học với Mathematica.Lập trình toán học với Mathematica.Bài giảng mathematica( Phần 1) Lập trình toán học với Mathematica.Lập trình toán học với Mathematica.Bài giảng mathematica( Phần 1) Lập trình toán học với Mathematica.Lập trình toán học với Mathematica.Bài giảng mathematica( Phần 1) Lập trình toán học với Mathematica.Lập trình toán học với Mathematica.Bài giảng mathematica( Phần 1) Lập trình toán học với Mathematica.Lập trình toán học với Mathematica.Bài giảng mathematica( Phần 1) Lập trình toán học với Mathematica.Lập trình toán học với Mathematica.Bài giảng mathematica( Phần 1)

Lập trình toán học với Mathematica - NTTH 2016 Làm quen với Mathematica Làm việc với ma trận Làm việc với List Hàm số Vẽ đồ thị điểm Vẽ đồ thị tham số 10 Vẽ đồ thị không gian chiều 11 Vẽ đồ thị hàm số dạng f(x,y) = f(x,y,z) = 12 Vẽ miền bất đẳng thức 15 Các vòng lặp dạng Do, For, While 17 Những kí hiệu đặc biệt 19 Tích Kronecker với lệnh KroneckerProduct 20 Phân tích số tự nhiên thành thừa số nguyên tố 21 Giải phương trình hệ phương trình 22 Tích phân, đạo hàm, chuỗi giới hạn 24 Tính toán nhiều biến 25 Giải phương trình vi phân: DSolve NDSolve 26 Chuyển từ số thực sang số hữu tỉ ngược lại Chuyển số 26 Lệnh Roots lệnh Solve 27 Lệnh khử biến số cách giá trị vào biểu thức 27 Lệnh Chop 28 Thread, Inner, Outer, Transpose, Distribute 29 Lệnh Root lệnh FindRoot 33 Lệnh Quiet 34 Lệnh Off 35 Lệnh On 35 Lệnh Check 36 Giải phương trình vi phân thường - Lệnh NDSolve 36 Lệnh String 36 Ghi đồ thị 37 Vẽ đồ thị động với lệnh Manipulate 38 Các đơn vị đo lường thống kê mô tả 39 Sự sai khác tính toán với số phức 40 Phép đổi biến tích phân 41 Lập trình toán học với Mathematica - NTTH 2016 Thử lại tính đắn nghiệm phương trình 42 Ghi vẽ đồ thị điểm 43 Tam giác Pascal 44 Vẽ đồng hồ treo tường 46 Thao tác biểu thức đại số 47 Mọi thứ biểu thức 50 Một phương trình với nghiệm xác không tìm thấy 53 Lập trình toán học với Mathematica - NTTH 2016 Làm quen với Mathematica Mathematica phân biệt chữ hoa chữ thường, hàm bắt đầu chữ hoa Các biến theo hàm đặt ngoặc vuông, cú pháp hình thức sau: Hàm[expr] Có thể lấy ví dụ Cos[x], Sin[x] Để thực câu lệnh, ta dùng tổ hợp phím "Shift + Enter" Để kết thúc câu lệnh ta đặt dấu chấm phẩy (;), dấu (;) kết hiển thị bên Cần phân biệt dấu [], [[]], {}, () Lệnh N[expr] dùng để thị kết thành số thập phân Ví dụ: bạn gõ Cos[1] kết hiển thị Cos[1], bạn gõ N[Cos[1],6] kết 0.540302 Không chạy nhiều chương trình lúc biến lưu giá trị nó, kết bạn bị sai, để khắc phục, chỉnh lại sau Evaluation/Quit Kernel/Local Cách đặt biến bình thường a, b, c, x, y, z, , không đặtXY_a, XY-a, không dùng chữ sau để đặt tên biến I, E, C, D, N Tổ hợp Ctrl + K để tìm hàm có tên giống phần đầu 10 Lệnh ?Int* để tìm tất hàm bắt đầu "Int", tương tự với ?*Q hay ?*Int* 11 Cần phân biệt List Matrix Mathematica Nếu viết {1,2,3,4} List gồm phần tử, viết {{1},{2},{3},{4}} matrix dòng cột, List dùng hàm chuyển vị Transpose được, nhiên bạn sử dụng phép toán ma trận Matrix List, kết tính toán ma trận Làm việc với ma trận Cách cho ma trận Cách 1: Insert->Table/Matrix->New Cách 3: Dùng hàm Table[] Cách 2: Sử dụng móc nhọn {} Ví dụ: Table[i*j,{i,1,10},{j,1,10}] cho ma trận 10 dòng 10 cột Ví dụ: {{1,2,3},{a,b,c},{x,y,z}} cho ma trận có dòng cột Các phép toán với ma trận Cộng ma trận, sử dụng dấu cộng (+) Trừ ma trận, sử dụng dấu trừ (-) Lập trình toán học với Mathematica - NTTH 2016 Nhân ma trận, sử dụng dấu chấm (.) Các hàm với ma trận Tr[A]: tổng phần tử đường chéo ma trận vuông A Det[A]: định thức ma trận A Transpose[A]: ma trận chuyển vị ma trận A Inverse[A]: ma trận nghịch đảo ma trận A Eigenvalues[A]: giá trị riêng ma trận A Eigenvectors[A]: vec tơ riêng ma trận A MatrixPower[A,n]: lũy thừa n ma trận A MatrixExp[A]: ma trận mũ ma trận A Drop[A,{i},{}]: xóa dòng thứ i từ ma trận A Drop[A,{},{j}]: xóa cột thứ j từ ma trận A Union[A,B]: hợp ma trận A B Tạo ma trận với tính chất cho trước: Tạo ma trận đơn vị cấp n: IdentityMatrix[n] Tạo ma trận đường chéo: DiagonalMatrix[v], v vec tơ đường chéo có dạng v = {a,b,c,d, } Ngoài có thêm hàm: SparseArray[], bạn đọc tự tìm hiểu thêm qua thẻ Help (hoặc nhấn F1) Làm việc với List Cách cho list Cách 1: {} cho list rỗng; {a,1,b,2,c,3} cho list gồm phần tử Cách 2: Table[expr,{i,n}] cho list giá trị expr từ đến n Cách 3: Array[f,n] cho list có n phần tử f[1], f[2], , f[n] Cách 4: Range[n] cho list {1, 2, , n} Cách 5: NestList[f,x,n] cho list n+1 phần tử có dạng {x, f[x], f[f[x]], } Cách gọi phần tử list First[list]: gọi phần tử cùa list Lập trình toán học với Mathematica - NTTH 2016 Last[list]: gọi phần tử cuối list t[[i]] Part[t,i]: lấy phần tử thứ i list t t[[i;;j]] Part[t,i;;j]: lấy phần tử list t từ vị trí i đến vị trí j t[[{i1,i2, }]] Part[t,{i1,i2, }]: lấy phần tử từ list t ứng với vị trí i1, i2, t[[i,j, ]] Part[i,j, ]: lấy phần tử từ list t có dạng t[[i]][[j]] Take[list,n]: lấy n phần tử list Take[list,-n]: lấy n phần tử cuối list Take[list,{m,n}]: lấy phần từ list từ vị trí m đến vị trí n Min[list]: lấy phần tử bé list Max[list]: lấy phần tử lớn list Các hàm xử lí list Kết nhận sau sử dụng hàm đa phần List Table[expr,{i,list}]: cho giá trị expr với i lấy giá trị từ list Map[f,list]: thực hàm f với giá trị list Select[list,text]: chọn giá trị từ list với điều kiện text[elem] TakeWhile[list,text]: giống với hàm Select[] Length[list]: đếm số phần tử list Column[list]: in giá trị list theo dạng cột Position[list,form]: tìm vị trí phần tử list có form Count[list,form]: đếm số phần tử list có form MemberQ[list,form]: kiểm tra xem form có list hay không (cho giá trị logic) Prepend[list,elem]: thêm elem vào vị trí list PrependTo[list,elem]: giống với Prepend[] Append[list,elem]: thêm elem vào vị trí cuối list AppendTo[list,elem]: giống với Append[] Insert[list,elem,i]: thêm elem vào vị trí thứ i list Insert[list,elem,-i]: thêm elem vào vị trí thứ i (tính từ cuối đến đầu list) list Riffle[list,elem]: chèn elem vào vị trí xen kẽ phần tử list Delete[list,i]: xóa elem nằm vị trí thứ i list ReplacePart[list,i->new]: thay giá trị cho phần tử thứ i list new Lập trình toán học với Mathematica - NTTH 2016 Rest[list]: trả lại giá trị cho list sau xóa phần tử Most[list]: trả lại giá trị cho list sau xóa phần tử cuối Drop[list,n]: trả lại giá trị cho list sau xóa n phần tử Drop[list,-n]: trả lại giá trị cho list sau xóa n phần tử cuối Drop[list,{m,n}]: trả lại giá trị cho list sau xóa phần tử từ vị trí m đến n Sắp xếp thứ tự list Sort[list]: xếp list theo trật tự chuẩn Union[list]: xếp list xóa phần tử trùng Ordering[list]: cho biết vị trí ban đầu phần tử list sau xếp Union[] Hàm số Định nghĩa hàm số Mathematica Cách 1: Muốn định nghĩa hàm parabol ta viết f[x_] = x^2+3x+1 Định nghĩa hàm biến: ta viết g[x_,y_] = x^2+y^2 Tương tự hàm nhiều biến Cách 2: Function[x,body]: khai báo hàm biến Function[{x1,x2,…},body]: khai báo hàm nhiều biến Lấy ví dụ trên, ta khai báo sau: Function[x, x^2+3x+1] Function[{x,y}, x^2+y^2] Cách 3: Dùng dấu #& Lấy ví dụ trên, ta khai báo sau: (#^2+3#+1)& (#1^2+#2^2)& Tính giá trị hàm số Ví dụ Lập trình toán học với Mathematica - NTTH 2016 f[x_] = x^2+3x+1 g[x_]=x^2+2 h[x_]=f[x]+g[x] Map[h,{a,b,c}] Map[f[#]+g[#]&,{a,b,c}] Ví dụ f[x_] = x^2+3x+1 f[2] f[x]/.x->2 f[x]/.x->{1,2,3} f@{2} f@{1,2,3} f/@{2} f/@{1,2,3} Ví dụ Map[Function[x,x^2+3x+1],a+b+c] Function[{x,y},x^2+y^2][a,b] Map[#^2&,a+b+c] Map[Take[#,2]&,{{2,1,7},{4,1,5},{3,1,2}}] Lập trình toán học với Mathematica - NTTH 2016 Ví dụ h[x_] = Nest[Function[q,1/(1+q)],x,3] Kết Hàm có sẵn Mathematica Hàm logarit: Log[a,x] (cơ số a) Hàm lượng giác: Sin, Cos, Tan, Cot, Sinh, Cosh, Tanh, Coth, ArcCos, ArcSin, ArcTan, ArcCot Hàm đặc biệt: Gamma, Beta, Zeta, BesselJ, BesselY Có thể tìm qua thẻ Help với từ khóa tutorial/SpecialFunctions Vẽ đồ thị điểm Lệnh Plot Lệnh vẽ đồ thị hàm số Plot[] Cú pháp hình thức viết sau: Plot[f, {x, xmin, xmax}]: vẽ đồ thị hàm f đoạn [xmin,xmax] Plot[{f1, f2, }, {x, xmin, xmax}]: vẽ hệ trục tọa độ hàm f1, f2, … đoạn [xmin,xmax] Ví dụ 1: Plot[Sin[x]/x,{x,0,20}] Để biết danh sách tham số dùng kèm với hàm Plot, ta gõ câu lệnh Options[Plot] Các tham số khai báo dạng: name→value Các giá trị hay dùng tham số là: - Automatic: chọn lựa tự động Lập trình toán học với Mathematica - NTTH 2016 - None: tham số không sử dụng All: sử dụng trường hợp True: sử dụng False: không sử dụng Ví dụ 2: Plot[Sin[x]/x,{x,0,20}, PlotRange→{-0.25,1.2}] Giải thích: Tham số PlotRange→{-0.25,1.2} dùng để giới hạn đồ thị hàm số theo trục dọc từ -0.25 đến 1.2 Một số tham số hay dùng: - Axes->None: không hiển thị hệ trục tọa độ - AxesLabel: ghi tên trục tọa độ - PlotStyle: chỉnh thông số màu sắc, cách hiển thị đậm nhạt Lập trình toán học với Mathematica - NTTH 2016 Lệnh ListPlot Cú pháp hình thức: - ListPlot[{yl, у2, }] – hiển thị giá trị y1, y2, … lên hệ trục tọa độ, giá trị x tương ứng 1, 2, … ListPlot[{{x1, y1},{х2, у2 }, }] – hiển thị điểm có tọa độ {xi,yi} lên hệ trục tọa độ Chú ý: - Đối với lệnh ListPlot có tham số lệnh Plot - Nếu điểm không hiển thị đầy đủ, bạn bổ sung thêm tham số PlotRange→All - Muốn hiển thị nhiều đồ thị hệ trục tọa độ ta dùng lệnh Show[] Vẽ đồ thị tham số Để vẽ hàm số biểu diễn dạng tham số x = fx(t), y = fy(t), t thuộc đoạn [a,b] ta dùng cấu trúc lệnh sau: ParametricPlot[{fx,fy},{t,tmin,tmax}] – xây dựng đồ thị tham số với tọa độ {fx,fy} nhận hàm theo t ParametricPlot[{{fx,fy},{gx,gy},…},{t,tmin,tmax}] – xây dựng vài đường tham số hệ trục tọa độ Ví dụ 1: ParametricPlot[{Cos[5*t], Sin[3*t]}, {t,0,20}, AspectRatio->Automatic] Ví dụ 2: ParametricPlot[{{2Cos[t], 2Sin[t]}, {2Cos[t], Sin[t]}, {Cos[t], 2Sin[t]}, {Cos[t], Sin[t]}}, {t,0,2Pi}] 10 Lập trình toán học với Mathematica - NTTH 2016 Các đơn vị đo lường thống kê mô tả Trong Mathematica cho phép xác định đơn vị đo Thống kê mô tả, chẳng hạn giá trị trung bình, điểm giữa, phần tử xuất phổ biến nhất, … Sau số câu lệnh đuợc sử dụng phổ biến phần Mean[list] – cho giá trị trung bình dãy số; Mean[dist] – cho giá trị trung bình phân phối cho trước Median[list] - cho phần tử list Median[dist] - cho phần tử phân phối dist Commonest[list] - cho phần tử xuất nhiều lần list Commonest[list,n] - cho dãy gồm n phần tử xuất nhiều lần list RootMeanSquare[list] – tính giá trị trung bình list HarmonicMean[list] - tính giá trị trung bình điều hòa list GeometricMean[list] - tính giá trị trung bình hình học list ContraharmonicMean[list] – tính giá trị trung bình phi điều hòa list 39 Lập trình toán học với Mathematica - NTTH 2016 Variance[list] - phương sai list Variance[dist] - phương sai phân phối dist Ví dụ: Mean[{1.12,2.04,1.01,4.2,5.27}] Mean[UniformDistribution[{min,max}]] Median[{1,2,3,4,5,6,7}] Median[ExponentialDistribution[lamda]] Commonest[{1,2,3,1,2,4}] Commonest[{1,2,3,1,2,4,4,2,5},3] RootMeanSquare[ {a,b,c,d}] HarmonicMean[{a,b,c,d}] GeometricMean[{a,b,c,d}] ContraharmonicMean[{a,b,c,d}] Sự sai khác tính toán với số phức Khi tính toán Mathematica thấy có sai khác: giải thích điều Hãy 40 Lập trình toán học với Mathematica - NTTH 2016 Nhận xét: num^(1/12) 12 nghiệm ban đầu num, 2+5I số chúng Phép đổi biến tích phân Tính tích phân không xác định phương pháp đổi biến, sau thử lại lệnh Integrate 41 Lập trình toán học với Mathematica - NTTH 2016 Chú ý: phương án trên, ta chọn phép đổi biến thông thường u=2x^3 Sau phương án đổi biến Thử lại tính đắn nghiệm phương trình Khi thay nghiệm tìm thấy vào phương trình ban đầu Mathematica không tự rút gọn được, cần dùng thủ thuật nhỏ để rút gọn vế bên trái phương trình, kết cho giá trị {True, True} 42 Lập trình toán học với Mathematica - NTTH 2016 Ghi vẽ đồ thị điểm Khi ta vẽ đồ thị điểm hệ trục tọa độ dễ dàng phân biệt chúng nhờ đoạn code sau: 43 Lập trình toán học với Mathematica - NTTH 2016 Tam giác Pascal Hàm pascalTriangleRow[n_] cho dòng thứ n tam giác Pascal, sử dụng hàm để viết một hàm khác pascalTriangle[n_] để in n dòng tam giác Pascal theo form tam giác Tìm ước chung lớn dòng thứ n tam giác Pascal, không tính dòng Làm công việc sau đây: - Định nghĩa hàm pascal(n) cho thành phần dòng thứ n trừ phần tử Định nghĩa hàm gcd(n) cho ước chung lớn thành phần pascal(n) Kiểm tra tính chất: p số nguyên tố GCD(p) = p Hướng dẫn: Một số hàm xây dựng sẵn Mathematica, xem chi tiết thẻ Help: - Hàm Binomial: tính nhị thức - Hàm GCD: cho giá trị ước chung lớn - Hàm Prime: cho số nguyên tố 44 Lập trình toán học với Mathematica - NTTH 2016 Có thể tham khảo cách làm sau: 45 Lập trình toán học với Mathematica - NTTH 2016 Vẽ đồng hồ treo tường Đoạn code sau vẽ đồng hồ treo tường có đủ kim: giây, phút, mặt đồng hộ có chia 12 vạch với số tương ứng, vị trí kim phải chạy với hệ thống máy tính 46 Lập trình toán học với Mathematica - NTTH 2016 Thao tác biểu thức đại số Ví dụ 1: 47 Lập trình toán học với Mathematica - NTTH 2016 Giải thích ví dụ 1: Đầu tiên ta đưa vào biểu thức đại số, Mathematica tự động thay đổi ví trí số hạng theo cách riêng Lệnh Expand khai triển biếu thức nhập vào, hay nói ―phá ngoặc‖ Chúng ta đếm số hạng biểu thức lệnh Length, lần lại bắt gặp kí hiệu % - tương ứng với kết kề trước Nếu muốn phân tích thành nhân tử biểu thức ta dùng lệnh Factor, kí hiệu %% tương ứng với kết nằm trước kết kề Từ ví dụ ta nhận thấy Expand không phân phối lũy thừa hữu tỉ tích, thay vào có lệnh PowerExpand Ví dụ 2: Giải thích ví dụ 2: 48 Lập trình toán học với Mathematica - NTTH 2016 Nhập vào biểu thức dạng phân số exp, lệnh Expand thực ―phá ngoặc‖ tử số, mẫu số ngoặc nguyên Muốn phá hết ngoặc biểu thức ta dùng lệnh ExpandAll, khai triển tất biểu thức Căn bậc hai hay hàm lượng giác Sin, Cos … Lệnh Together thực phép cộng phân số theo mẫu số chung Lệnh Apart viết lại biểu thức ban đầu dạng tổng phân số với mẫu số tối tiểu Việc phân tích đa thức thành nhân tử thực lệnh Factor Lệnh Simplify, tìm tất phương án để viết exp trả phương án cho đơn giản số chúng Riêng lệnh FullSimplify, cố gắng biến đổi phạm vi rộng bao gồm hàm hàm đặc biệt Nếu muốn đưa biểu thức tử hay mẫu cách riêng biệt, ta dùng lệnh Numerator Denominator ví dụ Ví dụ 3: Trong ví dụ cuối này, nhập vào biểu thức với tên newexp Lệnh Collect[exp, var] thử viết exp đa thức theo biến var mà hệ số biểu thức vài biến khác 49 Lập trình toán học với Mathematica - NTTH 2016 Việc xếp kết Out[2] không đẹp mắt lắm, kết không xếp theo chiều tăng lũy thừa biến x, số mũ y hệ số lại xếp tăng dần Cơ là, biểu thức newexp ban đầu không xếp theo lũy thừa x Tuy nhiên, tập hợp hệ số theo biến y việc xếp thực mong muốn, theo kết Out[3] Lệnh Collect sử dụng để tập hợp biến lúc, trường hợp này, điều khác xảy Có thể đưa hệ số riêng lẽ lệnh Coefficient tìm lũy thừa cao biến lệnh Exponent Mọi thứ biểu thức Nguyên tử Các biểu thức biểu diễn cách đệ quy đệ quy phải nơi Nơi bắt đầu nguyên tử Trong Mathematica, nguyên tử kí hiệu, số chuỗi Kí hiệu dãy kí tự số tự nhiên (có thể $), không bắt đầu với số tự nhiên Ví dụ a2Dd kí hiệu ―Một số‖ có nghĩa số tự nhiên số thực Bốn dạng khác số hữu tỷ, số nguyên Gauss, số hữu tỷ Gauss số phức nguyên tử Cuối cùng, chuỗi dãy kí tự ASCII đặt dấu ngoặc kép (―A book ‖) Ý nghĩa biểu thức Có vài cách nghĩ biểu thức giúp sử dụng chúng có hiệu Function[argument] ví dụ: Sin[x] Command[argument] .ví dụ: Expand[(x+y)^10] Operator[Operands] ví dụ: Plus[x,y] Type[parts] ví dụ: List[a, b, c, d] Dạng (form) biểu thức Chúng ta truy suất form lệnh FullForm Xem ví dụ sau: Biểu thức Abc 27 ¾ Head Symbol Integer Rational FullForm abc 27 Rational[3,4] 50 Lập trình toán học với Mathematica - NTTH 2016 Một vài biểu thức phức tạp Biểu thức x+y+z xyz x/y {x, y, z} FullForm Plus[x, y, z] Times[x,y,z] Times[x, Power[y, -1]] List[x, y, z] Các kí hiệu đặc biệt : Biểu thức FullForm % Out[] %% Out[-2] %5 Out[5] _ Blank[] x_ Pattern[x, Blank[]] x_Integer Pattern[x, Blank[Integer]] # Slot #& Function[Slot[1]] Các phần biểu thức Xem ví dụ sau: exp=f[x1, x2, x3, x4]; {exp[[0]], exp[[4]]} exp[[1]], exp[[2]], exp[[3]], {exp[[-4]], exp[[-3]], exp[[-2]], exp[[-1]]} KQ: {f, x1, x2, x3, x4} {x1, x2, x3, x4} Như vậy, số dương cặp ngoặc vuông tương ứng với việc đếm từ trái sang phải, số âm ngược lại Cấu trúc biểu thức Chúng ta thử vài ví dụ lấy phần biểu thức exp1 exp1[[0]] .KQ: Plus exp1[[1]] KQ: x3 exp1[[1]][[2]] exp1[[1, 2]] …………… KQ: exp1[[1, 2, 1]] KQ: báo lỗi thành phần không tồn exp1[[2, 1, 2]] KQ: z Nếu biểu thức dài khó để thấy dạng cấu trúc Chúng ta có hai phương pháp để xem xét biểu thức: Short Shallow 51 Lập trình toán học với Mathematica - NTTH 2016 Short[exp, n] – in biểu thức với chiều dài n hàng Các mức (level) biểu thức, chiều sâu (depth) biểu thức Có thể hiểu ý nghĩa từ ―mức‖ sau: theo cấu trúc trên, đỉnh cấu trúc mức 0, hàng mức 1, v.v… Các mức miêu tả số nguyên n –n nằm ngoặc nhọn {n}, {-n}, {n1, n2} Infinity Chúng ta gọi lại biểu thức exp1 = x^3 + (1+z)^2 phân tích vài ví dụ: Level[exp1, {2}] KQ: {x, 3, 1+z, 2} Kết cho thấy rằng, có gốc mức liệt kê dạng biểu thức Để thấy phần (kể con) mức cao (nghĩa tính mức 1), bỏ dấu ngoặc nhọn: Level[exp1, 2] KQ: {x, 3, x^3, 1+z, 2, (1+z)^2} Nếu viết dạng {n1, n2} cho mà gốc chúng nằm n1 n2 Level[f0[f1[f2[f3[f4[f5]]]]], {2, 4}] Chiều sâu biểu thức số nút lớn dọc theo đường từ gốc đến biểu thức Depth[exp1] Cũng có mức độ âm sử dụng để đếm từ lên Thực chất đếm chiều sâu (depth) biểu thức 52 Lập trình toán học với Mathematica - NTTH 2016 Chẳng hạn {-1} cho biểu thức có depth (tức cấu trúc), -1 (không có ngoặc nhọn) cho tất biểu thức với depth tối thiểu (tức là, liệt kê tất biểu thức nghĩa) Level[exp1, {-1}] Level[exp1, -1] Nếu viết {-2} cho tất depth 2, -2 cho tất với depth tối thiểu Level[exp1, {-2}] Level[exp1, -2] Level[exp1, Infinity] Một phương trình với nghiệm xác không tìm thấy 53 [...]... (1) (2) 28 Lập trình toán học với Mathematica - NTTH 2016 (3) Thread, Inner, Outer, Transpose, và Distribute 1 Thread Listable là một thuộc tính có thể ấn định cho một kí hiệu f rằng hàm f sẽ tự động thực hiện ―xuyên qua‖ các list và xuất hiện với các đối số của nó Các hàm listable (được hiểu là hàm có thuộc tính này) sẽ được thực hiện một cách riêng rẽ đối với mỗi phần tử của list, hoặc với các phần. .. mũ tương ứng}, Sau đó lệnh Superscript@@@% được áp dụng thực để hiện phép lũy thừa cho từng phần tử [cặp số] của list, kí hiệu % tương ứng với kết quả trước đó, kí hiệu @@@ tương đương với Apply ở mức độ 1 [level 1] [sẽ hiểu sâu hơn khi tìm hiểu lệnh Apply] Cuối cùng lệnh CenterDot[]thực hiện phép nhân các phần tử của list kết quả Một ví dụ khác dùng kí hiệu @ và @@: f[x_]=Sin[x] f@3 f@@{3} Cả hai... FactorInteger[2434500] Kết quả là: 2434500 = {{2,2},{3,2},{5,3},{541,1}} Lệnh FactorInteger[] viết các thừa số nguyên tố của một số tự nhiên theo dạng một list của từng cặp Thành phần đầu tiên của mỗi cặp là thừa số nguyên tố, và thành phần thứ hai là số mũ của thừa số đó trong phép nhân tử hóa Chúng ta có thể kiểm tra thừa số cuối cùng trong dãy phân tích trên có phải là một số nguyên tố hay không bằng lệnh... dạng Do Do [expr, {imax}] – thực hiện expr imax lần Do [expr, {i, imax}] – tính expr với biến i nhận giá trị lần lượt từ 1 đến imax (bước nhảy bằng 1) Do [expr, {i, imin, imax}] – tính expr với biến i nhận giá trị lần lượt từ imin đến imax (bước nhảy bằng 1) Do [expr, {i, imin, imax, di}] – tính expr với biến i nhận giá trị lần lượt từ imin đến imax (bước nhảy bằng di) Do [expr, {i, imin, imax}, {j,... đối số (các list) trong hàm listable cần phải có cùng chiều dài Các đối số mà không phải là list sẽ được copy nhiều lần vào các phần tử của các list khác Log[{a,b,c}] – KQ : {Log[a],Log[b],Log[c]} Attributes[Log] {Listable,NumericFunction,Protected} Hàm listable sẽ kết hợp các phần tử tương ứng của lists : {a,b,c}+{x,y,z} – KQ: {a+x,b+y,c+z} Các đối số ko phải là lists thì sẽ được lặp lại {a,b,c}+x –... tích phân Cú pháp: D[f[x], x] có nghĩa là tìm đạo hàm của hàm f(x) theo biến x Tất nhiên có thể tìm đạo hàm bậc n của hàm f(x) bằng lệnh D[f[x], {x, n}] Lệnh Series[f(x), {x, a, n}] sẽ cho ra n thành phần đầu tiên trong khai triển chuỗi Taylor của hàm f(x) tại điểm a Lệnh Limit[f(x), x -> a] sẽ tìm giới hạn của hàm f(x) khi x tiến tới a Sau đây là các ví dụ: 24 Lập trình toán học với Mathematica -

Ngày đăng: 17/09/2016, 12:19

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan