log10(x)
real(x)
rem(x, y)
round(x)
sign(x)
Logarithm cơ số 10
Hàm trả về phần thực của x
Phần d của phép chia x/ y
Hàm làm tròn về số nguyên tố
Hàm dấu: trả về dấu của argument nh:
sign(-23.4)=-1; sign(0)=0
Hàm tính sine của x
Hàm tính hyperbolic sine của x
Hàm khai căn bậc hai
Tangent
Hyperbolic tangent
sin(x)
sinh(x)
sqrt(x)
tan(x)
tanh(x)
>> 4*atan(1)
ans=
3.1416
>> help atant2
sign(1.2)=1;
% Một cách tính xấp xỉ giá trị của pi
% Yêu cầu giúp đỡ đối với hàm atan2
ATAN2
four quadrant inverse tangent
ATAN2(Y, X) is the four quadrant arctangent of the real
parts of the elements of X and Y.
-pi <= ATAN2(Y, X) <= pi see also ATAN. >> 180/pi*atan(-2/ 3)
ans=
-33.69
>> 180/pi*atan2(2, -3)
ans=
146.31
>> 180/pi*atan2(-2, 3)
ans=
-33.69
>> 180/pi*atan2(2, 3)
ans=
33.69
>> 180/pi*atan2(-2, -3)
ans=
-146.31
Một số ví dụ khác:
>> y = sqrt(3^2 + 4^2) % Tính cạnh huyền của tam giác pitago 3-4-5
y=
5
>> y = rem(23,4)
% 23/4 có phần d là 3
y=
3
>> x = 2.6,y1 = fix(x),y2 = floor(x),y3 = ceil(x),y4
round(x)
x=
2.6000
y1=
2
6
=
y2=
2
y3=
3
y4=
3
>> gcd(18,81)
ans=
9
>> lcm(18,81)
ans=
162
% 9 là ớc số chung lớn nhất của 18 và 81
% 162 là bội số chung lớn nhất của 18 và 81
2.2.3 S phc
Một trong những đặc điểm mạnh mẽ nhất của MATLAB là làm việc với số phức. Số phức
trong MATLAB đợc định nghĩa theo nhiều cách, ví dụ nh sau:
>> c1 = 1 – 2i
% Chèn thêm kí tự i vào phần ảo.
c1=
1.0000 – 2.0000i
>> c1 = 1 – 2j
% j ở đây tơng tự nh i ở trên.
c1=
1.0000 – 2.0000i
>> c2 = 3*(2-sqrt(-1)*3)
c2=
6.0000 – 9.0000i
>> c3 = sqrt(-2)
c3=
0 + 1.4142i
>> c4 = 6 + sin(.5)*i
c4=
6.0000 + 0.4794i
>> c5 = 6 + sin(.5)*j
c5=
6.0000 + 0.4794i
Trong hai ví dụ cuối, MATLAB mặc định giá trị của i = j = dùng cho phần ảo. Nhân với i
hoặc j đợc yêu cầu trong trờng hợp này, sin(.5)i và sin(.5)j không có ý nghĩa đối với
MATLAB. Cuối cùng với các kí tự i và j, nh ở trong hai ví dụ đầu ở trên chỉ làm việc với số cố
định, không làm việc đợc với biểu thức.
Một số ngôn ngữ yêu cầu sự điều khiển đặc biệt cho số phức khi nó xuất hiện, trong
MATLAB thì không cầu nh vậy. Tất cả các phép tính toán học đều thao tác đợc nh đối với số
thực thông thờng:
>> c6 = (c1 + c2)/c3
% Từ các dữ liệu ở trên
c6=
-7.7782 – 4.9497i
>> check_it_out = i^2
% Bình phơng của i phải là -1
check_it_out=
-1.0000 + 0.0000i
7
trong ví dụ này chỉ còn lại phần thực, phần ảo bằng không. Chúng ta có thể dùng hàm real và
imag để kiểm tra từng phần thực và ảo.
Chúng ta có thể biểu diễn số phức dạng độ lớn và góc (dạng cực):
M
M.ej = a+bi
ở trên số phức đợc biểu diễn bằng độ lớn M và góc, quan hệ giữa các đại lợng này và phần
thực, phần ảo của số phức biểu diễn dới dạng đại số là:
M =
= tan-1(b/ a)
a = Mcos
b = Msin
Trong MATLAB, để chuyển từ dạng cực sang dạng đại số, dùng các hàm real, imag,
và angle:
>> c1
c1=
1.0000 – 2.0000i
>> M_c1 = abs(c1)
M_c1=
2.2361
>> angle_c1 = angle(c1)
angle_c1=
-1.1071
>> deg_c1 = angle_c1*180/ pi
-63.4349
>> real_c1 = real(c1)
real_c1=
1
>> imag_c1 = imag(c1)
imag_c1=
-2
% Gọi lại c1
% Tính argument của số phức
% Tính góc của số phức theo radian
% Chuyển từ radian sang độ
% Tính phần thực
% Tính phần ảo
3
MA TRN V CC PHẫP TON MA TRN
Trong phn ny, ta s xem xột cỏc bin n, cỏc i lng vụ hng, cỏc bin ma trn
cựng cỏc phộp tớnh c bn, cỏc hm chc nng sn cú v cỏc toỏn t c s dng. Hu ht
cỏc d liu u cú dng cu trỳc ma trn. Cỏc phn t ca ma trn c sp xp theo hng v
ct. Mt giỏ tr n cú th coi l mt ma trn ch cú duy nht 1 hng v 1 ct hay cũn gi l
i lng vụ hng (scalar). Ma trn ch cú 1 hng hoc 1 ct c gi l vector. truy
nhp n tng phn t ca ma trn, ta s dng ch s hng v ct ca phn t ú.
Cỏch nhp giỏ tr cho ma trn hay cỏc i lng vụ hng
Cú bn cỏch nhp giỏ tr cho cỏc i lng vụ hng hay ma trn
8
– Lit kờ trc tip cỏc phn t ca ma trn
– c d liu t mt file d liu
– S dng toỏn t (:)
– Vo s liu trc tip t bn phớm
Mt s quy nh cho vic nh ngha ma trn:
– Tờn ma trn phi c bt u bng ch cỏi v cú th ch ti 19 ký t l s, ch cỏi
hoc du gch di
– Bờn phi ca du bng l cỏc giỏ tr ca ma trn c vit theo th t hng trong du
ngoc vuụng
– Du chm phy (;) phõn cỏch cỏc hng. Cỏc giỏ tr trong hng c phõn cỏch nhau
bi du phy (,) hoc du cỏch. Khi kt thỳc nhp mt ma trn phi cú du (;).
– Khi s phn t trờn mt hng ca ma trn quỏ ln, ta cú th dựng du ba chm th
hin s phn t ca hng vn cũn.
Lu ý, du ba chm cng cú th c s dng ngn cỏch gia toỏn t v bin, vớ d:
>> average_cost = cost/ …
iterms
average_cost=
50.83333
Tuy nhiờn, khụng th s dng du ba chm lm ngn cỏch tờn bin, vớ d:
>> average_cost = cost/ it…
erms
??? age_cost = cost/iterms
Missing operator, coma, or semicolon.
3.1
Mng n
Giả sử ta xét hàm y=sin(x) trong một nửa chu kỳ ( x 0 ) trong khoảng này số
điểm giá trị của x là vô tận, nhng ta chỉ xét những điểm cách nhau một khoảng giá trị là 0.1
nh vậy số các giá trị của x là đếm đợc. Từ đó ta có mảng các giá trị của x là
x= 0, 0.1, 0.2,…,
Nếu ta dùng máy tính kỹ thuật để tính thì ta đợc tơng ứng các giá trị của y, từ đó ta có
mảng của y
x
y
0
0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
0.31 0.59 0.81 0.95 1.0 0.95 0.81 0.59 0.31 0
trong mảng x chứa các phần tử x1, x2, …, x11
trong mảng y chứa các phần tử y1, y2, …, y11
Trong MATLAB để toạ những mảng này rất đơn giản; ví dụ để tạo hai mảng trên ta đánh
các lệnh sau vào dấu nhắc của MATLAB:
>> x=[0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
>> y = sin(x)
y=
Columns 1 through 7
0
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
Columns 8 through 11
0.8090 0.5878 0.3090 0.0000
9
Kết quả trên ta đợc mảng của y gồm các phần tử tơng ứng là sine của các phần tử của x, ở đây
MATLAB ngầm hiểu là ta tính sine của từng phần tử của x.
Để tạo mảng, ta đặt các phần tử của mảng vào giữa hai dấu ngoặc vuông “[…]”; giữa
hai phần tử của mảng có thể là dấu cách hoặc dấu phẩy “,”
3.2
a ch ca mng
ở trên mảng x có 1 hàng, 11 cột hay có thể gọi là vector hàng, mảng có độ dài 11
+) Để truy nhập đến các phần tử của mảng ta dùng các chỉ số thứ tự của phần tử đó trong
mảng
ví dụ x(1) là phần tử thứ nhất của mảng, x(2) là phần tử thứ hai của mảng…
>> x(2)
ans=
0.3142
>> y(5)
ans=
0.9511
% phần tử thứ nhất của mảng
% phần tử thứ 5 của mảng
+) Để truy nhập đến nhiều phần tử của mảng, ví dụ ta truy nhập từ phần tử thứ nhất đến phần
tử thứ năm của mảng x:
>> x(1:5)
ans=
0
0.3142
0.6283
0.9425
1.2566
Truy nhập từ phần tử thứ 7 đến phần tử cuối của mảng y:
>> y(7:end)
ans=
0.9511
0.8090
0.5878
0.3090
0.0000
Truy nhập từ phần tử thứ ba đến phần tử thứ nhất của mảng y:
>> y(3:-1:1)
ans=
0.5878
0.3090
0
ở ví dụ trên 3 là phần tử thứ 3, 1 là chỉ phần tử đầu tiên, còn -1 là giá trị cộng (vị trí phần tử
sau bằng vị trí phần tử trớc cộng với -1)
Truy nhập đến các phần tử trong khoảng từ phần tử thứ 2, đến phần tử thứ 7, vị trí của phần tử
sau bằng vị trí của phần tử trớc cộng với 2, của mảng x:
>> x(2:2:7)
ans=
0.3142
0.9425
1.5708
Tạo mảng gồm các phần tử thứ 1, 2, 8, 9 của mảng y:
>> y([8 2 9 1])
ans=
0.8090
0.3090
0.5878
0
Nếu ta truy nhập vào các phần tử của mảng mà thứ tự các phần tử tăng đều với 1, ta có thể
đánh lệnh:
>> x(1:3)
ans=
0 0.3142
10
0.6283
3.3
Cu trỳc ca mng
Với mảng có số lợng phần tử ít thì ta có thể nhập vào trực tiếp, nhng với mảng có số lợng
lớn các phần tử thì ta dùng một trong hai cách sau:
+) Tạo một mảng bắt đầu là phần tử 0, sau bằng phần tử trớc cộng với 0.1, phần tử cuối là 1,
tất cả các phần tử của mảng đợc nhân với :
>> x= (0:0.1:1)*pi
x=
Columns 1 through 7
0
0.3142
0.6283
Columns 8 through 11
2.1991
2.5133
0.9425
2.8274
1.2566
1.5708
1.8850
3.1416
+) Tạo mảng gồm các phần tử của x bằng hàm linspace. Cú pháp của hàm này nh sau:
ví dụ
linspace(giá trị phần tử đầu, giá trị phần tử cuối, số các phần tử)
>> x = linspace(0,pi,11)
x=
Columns 1 through 7
0
0.3142
0.6283
0.9425
1.2566
1.8850
Columns 8 through 11
2.1991
2.5133
2.8274
3.1416
1.5708
Cách thứ nhất giúp ta tạo mảng mà chỉ cần vào khoảng cách giá trị giữa các phần tử
(không cần biết số phần tử), còn cách thứ hai ta chỉ cần vào số phần tử của mảng (không cần
biết khoảng cách giá trị giữa các phần tử).
Ngoài các mảng trên, MATLAB còn cung cấp mảng không gian theo logarithm bằng
hàm
logspace. Cú pháp của hàm logspace nh sau:
logspace(số mũ đầu, số mũ cuối, số phần tử)
ví dụ:
>> logspace(0,2,11)
ans=
Columns 1 through 7
1.0000
1.5849
2.5119
3.9811
6.3096
15.8489
Columns 8 though 11
25.1189 39.8107 63.0957
100.0000
10.0000
Tạo mảng, giá trị bắt đầu tại 100, giá trị cuối là 102, chứa 11 giá trị
Các mảng trên là các mảng mà các phần tử của nó đợc tạo lên theo một quy luật nhất
định. Nhng đôi khi mảng đợc yêu cầu, nó không thuận tiện tạo các phần tử bằng các phơng
pháp trên, không có một mẫu chuẩn nào để tạo các mảng này. Tuy nhiên ta có thể tạo mảng
bằng cách vào nhiều phần tử cùng một lúc
Ví dụ
>> a = 1:5,b = 1:2:9
a=
1
2
3
4
11
5
Source: https://mindovermetal.org
Category: Wiki là gì