Nếu [M,N] = SIZEX, thì Y và Z phải cùng kích thước POL2CART POL2CART Biến đổi hệ tọa độ cực sang hệ tọa độ Đề-các [X,Y] = POL2CARTTH,R Biến đổi dữ liệu lưu trong hệ tọa độ cực sang hệ
Trang 1từng đơn vị, nghĩa là ALPHA = alpha:1:alpha+n-1, và các giá trị phải thoả mãn 0 <= alpha(j) <= 1000
E = BESSELI(ALPHA,X,1) tính Iα(X)*e-X , Iα(X)*EXP(-X) Quan hệ giữa các hàm Bessel loại 1 là Iα(X) = i-α * Jα(X) , Iα(X) = i^(-alpha) * Jα(X)
BESSELK
BESSELK Sửa đổi các hàm Bessel loại 2
K = BESSELK(ALPHA,X) tính các hàm Bessel loại 2, Kα(X) với giá trị thực, bậc không âm ALPHA và đối số X Kết quả có size(K) = size(Z) nếu ALPHA vô hướng, hoặc size(K) = [prod(size(Z)), length(ALPHA)] nếu ALPHA là vectơ Các phần tử của X có thể là giá trị thực không âm bậc bất kỳ Tuy nhiên, với ALPHA, có 2 hạn chế quan trọng: ALPHA phải tăng từng đơn vị, nghĩa là ALPHA = alpha:1:alpha+n-1, và các giá trị phải thoả mãn 0 <= alpha(j) <=
1000
E = BESSELK(ALPHA,X,1) tính Kα(X)*EXP(X) Quan hệ với các hàm Bessel nguyên bản có đối số ảo: Kα(x) = pi/2 * i-α * (Jα(i*x) + Yα(i*x))
Ví dụ:
besselk(3:9,[0:.2:9.8 10:.5:20],1) phát sinh bảng 71x7 ở trang 424 trong sách "Handbook of Mathematical Functions" của Abramowitz và Stegun
BETA
Hàm Beta
y = beta(z,w)
y = tích phân từ 0 đến 1 của t.^(z-1) * (1-t).^(w-1) dt z và w phải phù hợp thêm
Hàm beta chưa hoàn thành
y = beta(x,a,b) Các phần tử của x phải trong đoạn [0,1] a và b phải là các đại lượng vô hướng
BETAINC
BETAINC Hàm beta chưa hoàn thành
Y = BETAINC(X,A,B) Các phần tử của X phải trong đoạn [0,1] Các đối số X, A và B tất cả phải cùng kích thước, ngoại trừ hàm có các đối số
vô hướng như các ma trận hằng của kích thước chung của các đối số khác
BETALN
Lô-ga-rit của hàm beta
y = betaln(z,w) z và w phải phù hợp thêm
ELLIPJ
Các hàm elliptic Jacobi SN, CN và DN
[Sn,Cn,Dn] = ELLIPJ(U,M) trả về các giá trị của các hàm elliptic Jacobi SN, CN và DN, ước lượng tại đối số U và tham số M Như bổ sung hiện thời, M giới hạn 0 < M < 1
Trang 2ELLIPJ(U,M) được tính chính xác đến EPS U và M phải là các ma trận cùng cỡ hoặc một trong hai là đại lượng vô hương Để chắc chắn không nhầm môđun K với tham số M - chúng quan hệ theo cách sau: M = K^2
ELLIPKE
ELLIPKE Tích phân elliptic đầy đủ
[K,E] = ELLIPKE(M) trả về giá trị của tích phân elliptic đầy đủ loại 1 và 2 trên M Như bổ sung hiện thời, M giới hạn 0 < M < 1
Độ chính xác của ELLIPKE(M) là EPS Để chắc chắn không nhầm môđun K với tham số M - chúng quan hệ theo cách sau: M = K^2
ERF
Hàm sai số
y = erf(x)
y = 2/sqrt(pi) nhân với tích phân từ 0 đến x của exp(-t^2) dt
ERFC
Hàm sai số bù
y = erfc(x)
y = 2/sqrt(pi) nhân với tích phân từ 0 đến x của exp(-t^2) dt
= 1 - erf(x)
ERFCX
Hàm sai số bù có chia tỉ lệ
y = erfcx(x)
y = exp(x^2) * erfc(x) ~ (1/sqrt(pi)) * 1/x với x lớn
ERFINV
Hàm ngược của hàm sai số
x = erfinv(y) thỏa mãn y = erf(x), 1 <= y < 1, -inf <= x <= -inf
EXPINT
Hàm tích phân mũ, E1(x)
Y = EXPINT(X) là tích phân từ X đến Inf (∞) của (exp(-t)/t) dt
GAMMA
Hàm gamma
Y = GAMMA(X) ước lượng hàm gamma tại tất cả các phần tử của X X phải thực
gamma(x) = tích phân từ 0 đến inf (∞) của t^(x-1) exp(-t) dt
gamma(n+1) = n! = n giai thừa = prod(1:n)
GCD
Ước chung lớn nhất
Trang 3G = GCD(A,B) là ước chung lớn nhất của các số nguyên A và B
G = GCD(0,0) = 0 theo quy ước; tất cả các GCD khác đều nguyên dương
[G,C,D] = GCD(A,B) cũng trả về C và D với G = A*C + B*D
GAMMAINC
GAMMAINC Hàm gamma chưa hoàn thành
Y = GAMMAINC(X,A) ước lượng hàm gamma chưa hoàn thành tại tất cả các phần tử của X X phải thực X và A phải cùng kích thước, ngoại trừ hàm có các đối số vô hướng như các ma trận hằng cùng kích thước với các đối số khác
gammainc(x,a) = (tích phân từ 0 đến x của t^(a-1) exp(-t) dt)/gamma(a)
Lưu ý: gammainc(x,a) tiến về 1 khi x tiến về vô cùng
LCM
Bội chung nhỏ nhất
LCM(A,B) là bội chung nhỏ nhất của các số nguyên dương A và B
LEGENDRE
LEGENDRE Các hàm Legendre liên đới
P = LEGENDRE(N,X) tính các hàm Legendre liên đới bậc N và theo thứ tự M = 0, 1, , N, tính trên X
N là một số nguyên nhỏ hơn 257 X là vectơ có các phần tử X(j) thực thỏa mãn abs(X(j)) <= 1 Giá trị xuất P là ma trận cỡ (N+1)xL, với L = length(X) P(i,j) ứng với hàm Legendre liên đới bậc N và vị trí (i-1), tính tại X(j)
Định nghĩa toán học của hàm P là P(n,m;x) = (-1)^m * (1-x^2)^(m/2) * (d/dx)^m P(n,x) , với P(n,x) là đa thức Legendre bậc n
Lưu ý: dòng đầu của P là đa thức Legendre ước
lượng tại X (trường hợp M = 0)
SP = LEGENDRE(N,X,'sch') tính các hàm Schmidt quan hệ bán chuẩn tắc với các hàm Legendre là SP(n,m;x) Các hàm này quan hệ với các hàm Legendre liên đới không chuẩn P(n,m;x) bởi: SP(n,m;x) = sqrt( 2*(n-m)!/(n+m)! ) * P(n,m;x)
Ví dụ:
legendre(2, 0:0.1:0.2) trả về ma trận dạng
P(2,0;0) P(2,0;0.1) P(2,0;0.2)
P(2,1;0) P(2,1;0.1) P(2,1;0.2)
P(2,2;0) P(2,2;0.1) P(2,2;0.2)
GAMMALN
GAMMALN Hàm lô-ga-rit gamma
Y = GAMMALN(X) là LOG(GAMMA(X)), tránh tràn dưới và tràn trên
Trang 4LOG2
Tách các số thực Theo chuẩn IEEE là logb()
y = LOG2(x) tính lô-ga-rit cơ số 2 của x
[f,e] = LOG2(x) với ma trận thực x, trả về ma trận thực, thường trong miền 0.5 <= abs(f) < 1, và
ma trận e các số nguyên, để x = f * 2.^e Mọi số 0 trong x cho ra f = 0 và e = 0 Cách này phù hợp với hàm ANSI C là frexp() và hàm thực chuẩn IEEE là logb()
POW2
Mũ số thực Theo chuẩn IEEE là scalbn()
x = pow2(y) tính 2y
x = pow2(f,e) với ma trận thực f và ma trận nguyên e thì tính x = f * (2 ^ e) Kết quả tính toán nhanh bằng cách đơn giản là cộng e vào phần mũ của f Cách này phù hợp với hàm ANSI C là ldexp() và hàm thực chuẩn IEEE là scalbn()
RAT
Xấp xỉ phân số
[N,D] = RAT(X,tol) trả về 2 ma trận nguyên để N./D gần bằng X, trong trường hợp này abs(N./D - X) <= tol*abs(X) Các giá trị xấp xỉ phân số được phát sinh bằng cách cắt liên tục các khai triển phần thập phân Ngầm định thì dung sai tol = 1.e-6*norm(X(:),1) RAT(X) hoặc RAT(X,tol) hiển thị liên tục các bước biểu diễn Cùng thuật toán, với giá trị ngầm định của dung sai tol, được dùng bên trong MATLAB cho lệnh FORMAT RAT
RATS
Xuât các phân số
RATS(X,LENS) dùng RAT để hiển thị các giá trị xấp xỉ phân số của các phần tử của X Độ dài của mỗi phần tử là LENS Ngầm định thì LENS = 13, cho phép 6 phần tử trong 78 vị trí
Dấu sao (*) được dùng cho các phần tử không thể in ra trong không gian phân bố, nhưng so sánh không đáng kể với các phần tử trong X Cùng thuật toán, với giá trị ngầm định của LENS, được dùng bên trong MATLAB cho lệnh FORMAT RAT
CART2SPH
CART2SPH Biến đổi hệ tọa độ Đề-các sang hệ tọa độ cầu
[AZ,EL,R] = CART2SPH(X,Y,Z) Biến đổi dữ liệu lưu trong hệ tọa độ Đề-các sang hệ tọa độ cầu Nếu [M,N] = SIZE(X), thì Y và Z cũng phải cùng kích thước AZ và EL tính theo đơn vị radian
CART2POL
CART2POL Biến đổi hệ tọa độ Đề-các sang hệ tọa độ cực
[TH,R] = CART2POL(X,Y) Biến đổi dữ liệu lưu trong hệ tọa độ Đề-các sang hệ tọa độ cực
Trang 5[M,N] = SIZE(X), thì Y cũng phải cùng kích thước TH tính theo đơn vị radian
[TH,R,Z] = CART2POL(X,Y,Z) Biến đổi dữ liệu lưu trong hệ tọa độ Đề-các sang hệ tọa độ trụ
Nếu [M,N] = SIZE(X), thì Y và Z phải cùng kích thước
POL2CART
POL2CART Biến đổi hệ tọa độ cực sang hệ tọa độ Đề-các
[X,Y] = POL2CART(TH,R) Biến đổi dữ liệu lưu trong hệ tọa độ cực sang hệ tọa độ Đề-các Nếu [M,N] = SIZE(TH), thì R cũng phải cùng kích thước
TH phải theo đơn vị radian
[X,Y,Z] = POL2CART(TH,R,Z) Biến đổi dữ liệu lưu trong hệ tọa độ trụ sang hệ tọa độ Đề-các Nếu [M,N] = SIZE(TH), thì R và Z phải cùng kích thước
SPH2CART
SPH2CART Biến đổi hệ tọa độ cầu sang hệ tọa độ Đề-các
[X,Y,Z] = SPH2CART(AZ,EL,R) Biến đổi dữ liệu lưu trong hệ tọa độ cầu sang hệ tọa độ Đề-các Nếu [M,N] = SIZE(AZ), thì EL và R cũng phải cùng kích thước AZ và EL phải theo đơn vị radian
Mở và đóng tệp
FOPEN
Mở tệp
FID = FOPEN('filename',permission) mở tệp có tên chỉ định là filename với chế độ cho phép chỉ định là permission Permission là một trong các chuỗi:
'r'_ đọc
'w'_ ghi (tạo mới nếu cần)
'a'_ nối thêm vào cuối tệp (tạo mới nếu cần)
'r+' đọc và ghi (không tạo mới)
'w+' cắt tệp hoặc tạo mới để đọc và ghi
'a+' đọc và ghi thêm vào cuối tệp (tạo mới nếu cần)
'W' ghi mà không tự động xóa vùng đệm 'A' nối thêm mà không tự động xóa vùng đệm
Ngầm định các tệp được mở trong chế độ nhị phân Để mở tệp văn bản thì thêm 't' vào chuỗi permission, như 'rt' và 'wt+'
FID = FOPEN(' filename') giả sử permission là 'r' Nếu mở thành công thì danh hiệu FID lấy một đại lượng vô hướng nguyên của MATLAB, danh hiệu tệp được dùng như đối số đầu tiên cho các phục vụ vào ra tệp Nếu việc mở tệp không thành công thì
Trang 6trả về -1 cho FID Ba danh hiệu tệp được tự động dùng mà không cần mở Chúng là fid=0 (nhập chuẩn), fid=1 (xuất chuẩn), và fid=2 (thiết bị lỗi chuẩn)
[FID, MESSAGE] = FOPEN(' filename ',permission) trả về một lỗi hệ thống nếu mở thất bại
FOPEN('all') trả về một vectơ dòng, các danh hiệu cho tất cả các tệp đang mở bởi người dùng (Nhưng không phải 0, 1, và 2)
[FILENAME, PERMISSION] = FOPEN(FID) trả về tên tệp và chế độ với danh hiệu tệp đã cho Nếu tệp được mở trong chế độ 'r' và không tìm thấy tệp trong thư mục làm việc thì FOPEN tìm xuống đường dẫn tìm kiếm của MATLAB
[FID, MESSAGE] = FOPEN(' filename ',permission, machineformat) mở tệp chỉ định với chế độ chỉ định và đọc dữ liệu bằng cách dùng FREAD hoặc ghi dữ liệu bằng cách dùng FWRITE với FORMAT đã cho bởi machineformat machineformat là một trong các chuỗi sau:
'native' hoặc 'n' - FORMAT máy cục bộ- ngầm định
'ieee-le' hoặc 'l' - chuẩn IEEE
'ieee-be' hoặc 'b' - chuẩn IEEE
'vaxd' hoặc 'd' - chuẩn VAX D
'vaxg' hoặc 'g' - chuẩn VAX G
'cray'_ hoặc 'c' - chuẩn Cray
'ieee-le.l64' hoặc 'a' - chuẩn IEEE và độ dài số liệu 64 bit
[FILENAME,PERMISSION,MACHINEFORMAT] = FOPEN(FID) trả về tên tệp, chế độ mở, và dạng máy với dạnh hiệu tệp Chế độ 'W' và 'A' được thiết kế để dùng với các đĩa từ và không tự động xóa vùng đệm hiện thời sau các thao tác xuất
Ví dụ, mở 1/4" băng từ trên trạm SPARC để ghi mà không tự động xóa vùng đệm: fid = fopen('/dev/rst0','W')
FCLOSE
Đóng tệp
FCLOSE(FID) đóng tệp với danh hiệu FID, là một số nguyên nhận được từ FOPEN() trước đây
FCLOSE('all') đóng tất cả cá tệp đang mở trừ 0,
1 và 2
FCLOSE() trả về s 0 nếu thành công, -1 nếu ngược lại
Trang 7Vào/Ra tệp không dạng thức
FREAD
Đọc tệp nhị phân
[A, COUNT] = FREAD(FID,SIZE,PRECISION) đọc dữ liệu nhị phân từ tệp chỉ định và ghi vào ma trận A Đối số xuất tùy chọn COUNT trả về số phần tử đọc thành công FID là danh hiệu nguyên của tệp được mở từ FOPEN Đối số tùy chọn SIZE; nếu không có thì đọc toàn bộ tệp; nếu có thì các đề mục hợp lý là:
N đọc N phần tử vào một vectơ cột
inf đọc vào cuối tệp
[M,N] đọc các phần tử để lấp đầy ma trận cỡ MxN, theo thứ tự cột
N có thể là inf, nhưng không là M
Đối số PRECISION điều khiển số bit đọc cho mỗi giá trị và thông dịch các bit này như các giá trị ký tự, số nguyên hoặc số thực Các chuỗi sau có thểø dùng, hoặc các phiên bản MATLAB, hoặc C hoặc Fortran tương đương Nếu không chỉ định thì được ngầm định là 'uchar' Các phần tử của ma trận kết quả luôn lưu trong dạng số thực dài của MATLAB
MATLAB C hoặc Fortran Mô tả
'char' 'char' ký tự ,
8 bit
'schar' 'signed char' ký tự có dấu, 8 bit
'short' 'short' số
nguyên, 16 bit
'int' 'int' số
nguyên, 16 hoặc 32 bit
'long' 'long' số
nguyên, 32 hoặc 64 bit*
'float' 'float' số thực , 32 bit
'double' 'double' số thực dài , 64 bit
'uchar' 'unsigned char' ký tự không dấu, 8 bit
'ushort' 'unsigned short' số nguyên không dấu, 16 bit
'uint' 'unsigned int' số nguyên không dấu, 16 hoặc 32 bit
'ulong' 'unsigned long' số nguyên không dấu, 32 bit
'char' 'char*1' ký tự , 8 bit
'float32' 'real*4' số thực
32 bit
'float64' 'real*8' số
thực 64 bit
'int8' 'integer*1' số nguyên, 8 bit
Trang 8'int16' 'integer*2' số nguyên,
16 bit
'int32' 'integer*4' số nguyên,
32 bit
'integer*8' số nguyên, 64 bits**
'intN' số
nguyên có dấu, N bit rộng
'uintN' số
nguyên không dấu, N bit rộng
N biểu hiện giá trị bất kỳ giữa 1 và 32
* 64 bits trên DEC alpha
** chỉ dùng trên DEC alpha
Ví dụ,
fid = fopen('FREAD.m','r');
F = FREAD(fid);
s = setstr(F')
mở tệp chứa đề mục HELP này, rồi đọc và hiển thị toàn bộ tệp, ngầm định dùng size = inf và precision = 'uchar' Kết quả length(F) là số ký tự trong tệp
[A, COUNT] = FREAD(FID,SIZE,PRECISION,SKIP) đưa vào đối số tùy chọn SKIP để chỉ định số byte bỏ qua sau mỗi lần đọc Cách này thường dùng để trích dữ liệu trong các trường không liên tục từ các bản ghi có độ dài cố định
FWRITE
Ghi dữ liệu vào một tệp nhị phân
COUNT = FWRITE(FID,A,PRECISION) ghi các phần tử của
ma trận A vào tệp chỉ định, dịch các giá trị MATLAB sang độ chính xác chỉ định là precision Dữ liệu được ghi theo thứ tự cột COUNT là số phần tử được ghi thành công FID là danh hiệu số nguyên của tệp nhận từ FOPEN, hoặc 1 chi xuất chuẩn hoặc 2 cho lỗi chuẩn PRECISION điều khiển dạng và kích thước của kết quả Xem danh sách PRECISION cho phép trong FREAD
COUNT = FWRITE(FID,A,PRECISION,SKIP) đưa vào đối số tùy chọn SKIP để chỉ định số byte bỏ qua trước mỗi lần ghi Cách này thường dùng để chèn dữ liệu trong các trường không liên tục từ các bản ghi có độ dài cố định
Ví dụ
fid = fopen('magic5.bin','wb')
FWRITE(fid,magic(5),'integer *4')
Tạo mới một tệp nhị phân 100-byte, chứa 25 phần tử của ma phương bậc 5, lưu như các số nguyên 4-byte
Nhập/xuất tệp có dạng thức
FSCANF
Đọc dữ liệu có dạng thức trong một tệp