2 Các loại biến, hàm toán học cơ bản trong Matlab

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản khá đầy đủ của tài liệu tại đây ( 901.45 KB, 69 trang )

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

Rate this post
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments