Chương 2

Thực hành tính toán trên Matlab

2.1 Các toán tử cơ bản của Matlab

Phép toán Mô tả

x+y

x-y

+ - *

x*y

/

x/y

\

x\y = y/x

^

x^y

06/05/2013

Lập trình tính toán

2

2.1 Các toán tử cơ bản của Matlab (tt.)

 Độ ưu tiên của phép toán:

Độ ưu tiên Phép toán Tính ưu tiên

1 (,) Từ trong ra ngoài

2 ^ Từ trái qua phải

3 ±a

4 *,/,\ Từ trái qua phải

5 +,- Từ trái qua phải

06/05/2013

Lập trình tính toán

3

2.2 Biến (variable)  Không cần khai báo biến

 Một biến sẽ được tự động tạo ra trong quá trình gán dữ liệu cho biến đó.

 Tên biến: bắt đầu bằng một ký tự chữ, tiếp theo có thể là ký tự chữ, ký tự số hoặc dấu gạch chân “_”

Ví dụ:

– Hợp lệ: a, a_b1, a1

– Không hợp lệ: _a, 1a, abc*

 Lệnh “who” và “whos”: cho biết thông tin về các biến đang hiện hữu.

4

06/05/2013

Lập trình tính toán

2.2 Biến (variable) (tt.)

 Một số biến mặc định (hằng số):

Tên biến Giá trị / Ý nghĩa

ans

Tên biến mặc định dùng để lưu kết quả của phép tính cuối cùng

pi π = 3.14159…

eps epsilon = 2-52

inf Vô cực (∞)

nan hay NaN Not a Number (vô định)

06/05/2013

5

Lập trình tính toán

2.2 Biến (variable) (tt.)  Một số biến mặc định (tt.):

1−

Tên biến Giá trị / Ý nghĩa

i, j i = j =

nargin/nargout Số đối số input/output của hàm

realmin Số thực dương nhỏ nhất (2-1022)

realmax

e

Số thực dương lớn nhất ((2-esp)*21023) Nhân lũy thừa của 10 (5e2 = 5*102 = 500)

06/05/2013

6

Lập trình tính toán

2.2 Biến (variable) (tt.)

 Xóa giá trị của biến:

Xóa biến x là xóa vùng nhớ đã cấp phát cho biến x.

Lệnh Ý nghĩa

clear x Xóa một biến x

clear x y z Xóa một lúc nhiều biến

clear Xóa hết các biến hiện hữu

06/05/2013

7

Lập trình tính toán

2.3 Tính toán số học và đại số thông dụng

Tìm USCLN, BSCNN

 Lệnh tìm USCLN

>> gcd(a,b)

 Lệnh tìm BSCNN

>> lcm(a,b)

06/05/2013

8

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Tìm USCLN, BSCNN (tt.)

 Ví dụ:

>>gcd(2^52-1,2^30-1)

3

Tìm USCLN của 2^100-1 và 2^60-1

>>lcm(45,72)

360

Tìm BSCNN của 45,72

06/05/2013

9

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Phân tích một số ra tích các thừa số nguyên tố  Cú pháp

>> factor(số)

>>factor(1223456789)

3109 393521

 Ví dụ: Phân tích 1223456789

Lập trình tính toán

06/05/2013

10

2.3 Tính toán số học và đại số (tt.)

Tìm số nguyên tố

 Trước một số a cho trước

>> primes(a)

 Xác định a có phải là số nguyên tố hay không

>> isprime(a)

>> primes(20)

2

3

5

7

11

13

17

19

 Ví dụ: Tìm các số nguyên tố trước số 20?

06/05/2013

11

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Tìm phần dư

>> rem(a,b) hoặc >>mod(a,b)

4

>> mod(16,-12)

-8

 Ví dụ: >> rem(16,-12)

06/05/2013

12

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Dạng hiển thị số

>>format

3.1416

Kiểu Hiển thị Ví dụ

short (mặc định) 4 chữ số thập phân

3.14

long 15 chữ số thập phân 3.141592653589793

355/113

bank 2 chữ số thập phân

rat Dạng phân số a/b

06/05/2013

13

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Khai báo biến hình thức

 Khai báo biến:

>> syms a b c

hoặc

>> a = sym(‘a’)

 Khai báo biến phức:

>>syms x y real

hoặc >> x=sym(‘x’,‘real’); y=sym(‘y’,‘real’);

>>z =x+i*y

06/05/2013

14

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Khai báo biến hình thức (tt.)

>> syms f(a,b)

>> f(a,b)=2*a+b

>> f(2,3)

7

 Khai báo hàm số:

>> syms x y

>> g(x,y)=2*x+y

Hoặc

06/05/2013

15

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Tính tổng

 Hữu hạn:

>> symsum(f(i),m,n)

 Vô hạn:

>> symsum(f(i),m,inf)

06/05/2013

16

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Tính tổng (tt.)

10

 Ví dụ:

x 2 x

+ 1 ∑ = + 1 1

x

>>symsum((1+x)/(1+x^2),1,10)

2745615458 ------------------ 846523925

Tính

06/05/2013

17

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Tính tổng (tt.)

n

− 1

3

 Ví dụ:

k

Tính

=

k

0

>> syms k

>> symsum(k^3)

4

3

2

+

k 4

k 2

k 4

06/05/2013

18

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Tính tổng (tt.)

 Ví dụ:

=

1 2 k

k

1

>> symsum(1/(k^2),1,inf) 2 π 6

Tính

06/05/2013

19

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Tính tích

 Hữu hạn:

>> symprod(f(i),m,n)

 Vô hạn:

>> symprod(f(i),m,inf)

06/05/2013

20

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Tính tích (tt.)

20

k

 Ví dụ:

=

k

2

2 1 − 2 k

>> symprod((k^2-1)/k^2,2,20)

21/40

Tính

06/05/2013

21

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Tính tích (tt.)

2

 Ví dụ (tt.):

1 n 4

 − 1 

  

n

= 1

>> syms n

>> symprod(1-1/(4*n^2),1,inf)

2 π

Tính Công thức Euler

06/05/2013

22

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Khai triển biểu thức đại số

Cú pháp:

>>expand(expr)

Ví dụ: Khai triển (x + y)4

>> expand((x+y)^4)

x4 + 4x3y + 6x2y2 + 4xy3 + y4

06/05/2013

23

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Phân tích thành nhân tử

Cú pháp:

>>factor(expr)

>>expr1=(x-1)*(x-2)*(x-3)

expr1=(x-1)(x-2)(x-3)

>>expr2=expand(expr1)

expr2=x3-6x2+11x-6

>>factor(expr2)

(x-3)(x-1)(x-2)

Ví dụ:

06/05/2013

24

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Đơn giản biểu thức

>>simplify(expr)

Cú pháp:

>>simple(expr)

Ví dụ: Đơn giản biểu thức

>>simplify(cos(x)^5+sin(x)^4+2*cos(x)^2-2*sin(x)^2-cos(2*x))

cos(x)5 + cos(x)4

cos5(x) + sin4(x) + 2cos2(x) – 2sin2(x) – cos(2x)

25

Lập trình tính toán

06/05/2013

2.3 Tính toán số học và đại số (tt.)

Đơn giản biểu thức (tt.)

3

+

+

+

8

2

1 3 x

6 x

12 x

>>simple((1/x^3+6/x^2+12/x+8)^1/3)

3

2(

x + )1 3 3 x

Ví dụ (tt.): Đơn giản biểu thức

06/05/2013

26

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Tính giá trị biểu thức

>>subs(expr,old,new)

Cú pháp:

>> syms z

>> expr=x^2+y^2-2*z^2*x

x2 – 2xz2 + y2

>> subs(expr,{x,y},{1,z})

1 – z2

Ví dụ:

27

Lập trình tính toán

06/05/2013

2.3 Tính toán số học và đại số (tt.)

Tính tử và mẫu của phân số

>>[N D]=numden(frac)

Cú pháp:

>> [N D]=numden(x/y+y/x)

N = x2 + y2

D = xy

Ví dụ:

06/05/2013

28

Lập trình tính toán

2.3 Tính toán số học và đại số (tt.)

Giải phương trình & hệ phương trình

>> solve(eqns)

Cú pháp:

>> syms a b c x;

>> f=a*x^2+b*x+c;

>> solve(f)

-(b+(b^2-4*a*c)^(1/2))/(2*a)

-(b-(b^2-4*a*c)^(1/2))/(2*a)

Ví dụ: Giải phương trình ax2+bx+c=0

29

Lập trình tính toán

06/05/2013

2.3 Tính toán số học và đại số (tt.)

Giải phương trình & hệ phương trình (tt.)

>> solve(f,b)

-(a*x^2+c)/x

Ví dụ (tt.):

>> syms x real

>> solve(‘x^2+2*x=1’)

Giải phương trình x2+2x=1

2^(1/2)-1

-2^(1/2)-1

hoặc >>solve(x^2+2*x==1)

06/05/2013

Lập trình tính toán

30

2.3 Tính toán số học và đại số (tt.)

Giải phương trình & hệ phương trình (tt.)

+

Ví dụ (tt.):

= c 7 − = b c 3 −

13 1 − =

2

b

4

c

4 0

 a b 5  + − a 2   + a 

>> syms a b c real >> eqn1=a+5*b-7*c==13; eqn2=-2*a+3*b-c==1; eqn3=a+2*b-4*c-4==0; >>s=solve(eqn1,eqn2,eqn3);

Giải hệ phương trình

06/05/2013

Lập trình tính toán

31

2.3 Tính toán số học và đại số (tt.)

Giải phương trình & hệ phương trình (tt.)

>> s.a

10

>> s.b

9

>> s.c

6

Ví dụ (tt.):

06/05/2013

Lập trình tính toán

32

2.4 Phép tính vi phân và tích phân

Phép tính giới hạn  Tính giới hạn của hàm số tại x=0.

>> limit(f)

 Tính giới hạn của hàm số tại x=a.

>> limit(f,x,a) hoặc >>limit(f,a)

 Tính giới hạn của hàm số tại vô cùng

>> limit(f,x,inf)

Lập trình tính toán

06/05/2013

33

2.4 Phép tính vi phân và tích phân (tt.)

Phép tính giới hạn (tt.)  Ví dụ: >> limit(sin(x)/x)

1

>> limit(exp(x),inf)

Inf

>> limit(exp(x),-inf);

0

>> limit(1/x, x=0, real)

NaN

Lập trình tính toán

06/05/2013

34

2.4 Phép tính vi phân và tích phân (tt.)

Giới hạn bên trái – bên phải  Giới hạn bên trái:

>> limit(f, a, ‘left’);

 Giới hạn bên phải:

>> limit(f, a, ‘right’);

Lập trình tính toán

06/05/2013

35

2.4 Phép tính vi phân và tích phân (tt.)

f =

x x

Giới hạn bên trái – bên phải  Ví dụ: Cho hàm số Xét tính liên tục của hàm số trên. >> f=x/abs(x); >> limit(f,x,0, ‘left’)

-1

>>limit(f,x,0,‘right’)

1

Lập trình tính toán

36

06/05/2013

2.4 Phép tính vi phân và tích phân (tt.)

Tính tích phân  Tích phân bất định:

>> int(f,x) hoặc int(f)

>> int(1/(x^2-4*x+3),x)

log(x-3)/2 - log(x-1)/2

Ví dụ:

Lập trình tính toán

06/05/2013

37

2.4 Phép tính vi phân và tích phân (tt.)

Tính tích phân (tt.)  Tích phân xác định:

>> int(f,a,b)

6

2

∫ Tính tích phân

4

+

1 x− 4

x

dx 3

>> int(1/(x^2-4*x+3),4,6)

Ví dụ:

log((3*5^(1/2))/5)

Lập trình tính toán

06/05/2013

38

2.4 Phép tính vi phân và tích phân (tt.)

Tính tích phân (tt.)  Tích phân xác định (tt.):

π

2

+

+

xe 2

x cos( )

dx 1

Ví dụ (tt.):

Tính tích phân

0

>> int(sqrt(exp(2*x)+cox(x)^2+1),0,pi)

Lập trình tính toán

06/05/2013

39

2.4 Phép tính vi phân và tích phân (tt.)

Tính đạo hàm hàm số một biến  Cú pháp:

 Ví dụ: Tính đạo hàm của hàm số

>> diff(f(x))

>> f=cos(x)^2/sin(2*x);

>> f_diff=diff(f)

-(2cos(2x)cos2(x)/sin2(2x)-2cos(x)sin(x))/sin(2x)

>> simplify(f_diff)

2

− 1 2sin( )x

f(x) = cos2(x)/sin(2x)

Lập trình tính toán

06/05/2013

40

2.4 Phép tính vi phân và tích phân (tt.)

Tính đạo hàm hàm số nhiều biến  Cú pháp:

 Ví dụ: Tính đạo hàm của hàm số

>> diff(f(x,y),x)

>> g=y*cos(x*y);

>> g_diff=diff(g,x)

-y^2*sin(x*y)

g(x,y) = y*cos(xy)

Lập trình tính toán

06/05/2013

41

2.4 Phép tính vi phân và tích phân (tt.)

Đạo hàm cấp cao  Đạo hàm cấp hai:

>> diff(f,2) hoặc >> diff(diff(f))

>>diff(f,x,2)

 Đạo hàm cấp k:

>> diff(f,k)

>> diff(x^3-2*x^2,3)

6

 Ví dụ:

Lập trình tính toán

06/05/2013

42

2.4 Phép tính vi phân và tích phân (tt.)

Khai triển hàm số thành chuỗi số  Cú pháp:

>> taylor(f,‘Order’,m)

>> approx=taylor(sin(2*x)*cos(x),‘Order’,15)

(398581*x^13)/3113510400 – (44287*x^11)/19958400 + (703*x^9)/25920 – (547*x^7)/2520 + (61*x^5)/60 – (7*x^3)/3 + 2*x

 Ví dụ: Khai triển y=sin(2x).cos(x) tới bậc 15 tại x=0

Lập trình tính toán

06/05/2013

43

2.5 Tính toán trong đại số tuyến tính

Nhập ma trận  Nhập trực tiếp danh sách các phần tử

 Phát sinh ma trận bằng các hàm sẵn có

 Nhập từ file

 Tạo ma trận bằng các file .m

>> A = [1 2 3;4 5 6;7 8 9]

A =

 Dấu “[” và “]” mở đầu và kết thúc nhập ma trận.  Dấu “;” kết thúc một dòng.  Các phần tử cách nhau bằng “khoảng trắng” hoặc dấu “,”

1 4 7

2 5 8

Ví dụ:

3 6 9 Lập trình tính toán

06/05/2013

44

2.5 Tính toán trong đại số tuyến tính (tt.)

Phát sinh ma trận bằng hàm sẵn có Cú pháp:

Ma trận 0

>> zeros(m,n)

m, n: kích thước ma trận

Ma trận 1

>> ones(m,n)

Ma trận đơn vị

>> eye(n) Lập trình tính toán

06/05/2013

45

2.5 Tính toán trong đại số tuyến tính (tt.)

Phát sinh ma trận bằng hàm sẵn có (tt.) Cú pháp (tt.):

Ma trận đường chéo

>> diag([a,b,c,…])

Ma phương

>> magic(n)

Ma trận các số thực ngẫu nhiên từ 0 đến 1

>> rand(m,n)

Lập trình tính toán

06/05/2013

46

2.5 Tính toán trong đại số tuyến tính (tt.)

Nhập ma trận bằng hàm load Ví dụ:

Giả sử ta có một file mt.dat có nội dung như sau (các số cách nhau bởi khoảng trắng)

1 2 3

4 5 6

7 8 9

Dòng lệnh

>>load mt.dat sẽ đọc file mt.dat, tạo biến có tên là mt, là ma trận các phần tử có trong file mt.dat.

Lập trình tính toán

06/05/2013

47

2.5 Tính toán trong đại số tuyến tính (tt.)

Nhập ma trận bằng file .m Ví dụ:

Tạo file mt.m bằng Matlab Editor hoặc chương trình soạn thảo bất kỳ. Nội dung file:

A=[1 2 3

4 5 6

7 8 9]

Dòng lệnh

>>mt

sẽ đọc file mt.m, tạo biến A là ma trận như trên.

Lập trình tính toán

06/05/2013

48

2.5 Tính toán trong đại số tuyến tính (tt.)

Trích một phần tử trong ma trận  Cú pháp:

>>A(i,j)

i: chỉ số dòng j: chỉ số cột

>> A(3,2)

Ví dụ:

8

>> A(4) %phần tử thứ 4 duyệt theo cột từ trái qua phải, từ trên xuống dưới.

2

A = 1 4 7 2 5 8 3 6 9

Lập trình tính toán

06/05/2013

49

2.5 Tính toán trong đại số tuyến tính (tt.)

Chỉ số vượt khỏi kích thước ma trận Ví dụ:

>> A(4,5)

Index exceeds matrix dimensions

>> X=A

>> X(3,4)=10

X =

1 4 7

2 5 8

3 6 9

0 0 10

A = 1 4 7 2 5 8 3 6 9

Lập trình tính toán

06/05/2013

50

2.5 Tính toán trong đại số tuyến tính (tt.)

Dấu hai chấm “:” Ví dụ:

>> 1:10

ans =

1 2 3 4 5 6 7 8 9 10

%tạo bước tăng/giảm khác 1

>> 100:-7:50

ans =

100 93 86 79 72 65 58 51

>> 0:pi/4:pi

ans =

0 0.7854 1.5708 2.3562 3.1416

Lập trình tính toán

06/05/2013

51

2.5 Tính toán trong đại số tuyến tính (tt.)

Dấu hai chấm “:” (tt.) Ví dụ (tt.):

>> A(1,1:2) %dãy 2 phần tử đầu tiên ở dòng thứ 1 của A

2

ans = 1

>> sum(A(1:2,1)) %tổng 3 số đầu tiên ở cột 1 của A

ans = 5

>> A(1,:)%toàn bộ phần tử của dòng 1

3

ans = 1

2 >> A(end,1) %phần tử cuối cùng của cột 1

A = 1 4 7 2 5 8 3 6 9

Lập trình tính toán

06/05/2013

52

ans = 7

2.5 Tính toán trong đại số tuyến tính (tt.)

Trích nhiều phần tử trong ma trận Ví dụ:

>> A(2,[3,1]) %phần tử thứ 3 và thứ 1 của dòng 2 của A

4

ans = 6 >> x=[2 1 5 8]

x =

2

1

5

8

>> x([2,4])

ans = 1

8

A = 1 4 7 2 5 8 3 6 9

Lập trình tính toán

06/05/2013

53

2.5 Tính toán trong đại số tuyến tính (tt.)

Ghép hai ma trận Ví dụ: Thêm cột: >>D=[A B]

D =

1 4

2 5

3 6

10 12

11 13

1 4 2 5 3 6

10 12 11 13

Thêm dòng: >>E=[A;C] E =

1 4 7 9

2 5 8 7

3 6 9 8

A = B = C = 7 9 8 7 9 8

Lập trình tính toán

54

06/05/2013

2.5 Tính toán trong đại số tuyến tính (tt.)

Xóa dòng, xóa cột Ví dụ: Xóa cột: >>D(:,2)=[] D =

10 12

11 13

2 5

3 6

3 6

10 12

11 13

D = 1 4 E =

1 4 Xóa dòng: >>D(2;:)=[] D =

3

10

11

1 4 7 9

2 5 8 7

3 6 9 8

1 Xóa nhiều phần tử: >>E(1:2:10)=[] E =

4

9

5

6

9

8

7 Lập trình tính toán

06/05/2013

55

2.5 Tính toán trong đại số tuyến tính (tt.)

Tổng các cột của ma trận  Cú pháp:

>>sum(A)

>> sum(A)

ans =

12

15

18

Ví dụ:

A = 1 4 7 2 5 8 3 6 9

Lập trình tính toán

06/05/2013

56

2.5 Tính toán trong đại số tuyến tính (tt.)

Ma trận chuyển vị  Cú pháp:

>>A’

>> A’

ans = 1 2 3

4 5 6

7 8 9

Ví dụ:

A = 1 4 7 2 5 8 3 6 9

Lập trình tính toán

06/05/2013

57

2.5 Tính toán trong đại số tuyến tính (tt.)

Đường chéo ma trận  Cú pháp:

>>diag(A)

>> diag(A)

1 5 9

Ví dụ:

A = 1 4 7 2 5 8 3 6 9

Lập trình tính toán

06/05/2013

58

2.5 Tính toán trong đại số tuyến tính (tt.)

Phép cộng, trừ hai ma trận Ví dụ: Cộng hai ma trận: >>A+B

3 8

ans = 1 6 14 14

5 10 14

1 4 7 2 5 8 3 6 9

ans = 1 2 0

1 2 2

1 2 4

Trừ hai ma trận: >>A-B A = B = 0 2 7 1 3 6 2 4 5

Lập trình tính toán

06/05/2013

59

2.5 Tính toán trong đại số tuyến tính (tt.)

Phép nhân hai ma trận Ví dụ: >>A*B

ans =

25 25 52 55 79 85

25 58 91

1 4 7 2 5 8 3 6 9

A = B = 0 2 7 1 3 6 2 4 5

Lập trình tính toán

06/05/2013

60

2.5 Tính toán trong đại số tuyến tính (tt.)

Lũy thừa ma trận Cú pháp:

>>A^m

ans =

42 96

30 36 66 81 102 126 150

Ví dụ: >>A^2 A = 1 4 7 2 5 8 3 6 9

Lập trình tính toán

06/05/2013

61

2.5 Tính toán trong đại số tuyến tính (tt.)

Ma trận nghịch đảo Cú pháp:

>>A^(-1)

Hoặc

A = 1 4 7 2 5 8 3 6 9

>>inv(A)

0.9007 -0.4504 -1.8014 0.9007 -0.4504 0.9007

-0.4504 0.9007 -0.4504

Ví dụ: >>inv(A) ans =

Lập trình tính toán

06/05/2013

62

2.5 Tính toán trong đại số tuyến tính (tt.)

Định thức của ma trận Cú pháp:

>>det(A)

A = 1 4 7 2 5 8 3 6 9

Ví dụ: >>det(A) ans = 0

Lập trình tính toán

06/05/2013

63

2.5 Tính toán trong đại số tuyến tính (tt.)

Rút gọn dạng ma trận bậc thang Cú pháp:

>>rref(A)

A = 1 4 7 2 5 8 3 6 9

0 1 0

-1 2 0

Ví dụ: >>rref(A) ans = 1 0 0

Lập trình tính toán

06/05/2013

64

2.5 Tính toán trong đại số tuyến tính (tt.)

Hạng của ma trận Cú pháp:

>>rank(A)

A = 1 4 7 2 5 8 3 6 9

Ví dụ: >>rank(A) ans = 2

Lập trình tính toán

06/05/2013

65

2.5 Tính toán trong đại số tuyến tính (tt.)

Giải phương trình ma trận AX=B Cú pháp:

A\B=A-1B

Hoặc

mldivide(A,B)

Hoặc

linsolve(A,B,opts)

opts: các tham số chỉ tính chất của ma trận A

Lập trình tính toán

06/05/2013

66

2.5 Tính toán trong đại số tuyến tính (tt.)

+

= c 7 − = 3 b c −

4 0

b

2

4

c

 a b 5  + − 2 a   + a 

Giải phương trình ma trận AX=B (tt.) Ví dụ: 13 Giải hệ 1 − =

>>X=linsolve(A,B)

X =

10.0000 9.0000 6.0000

5 3 2 -7 -1 -4 1 -2 1

A = B = 13 1 4

Lập trình tính toán

06/05/2013

67

2.5 Tính toán trong đại số tuyến tính (tt.)

Giải phương trình ma trận XA=B Cú pháp:

A/B

Hoặc

mrdivide(A,B)

Lập trình tính toán

06/05/2013

68

2.5 Tính toán trong đại số tuyến tính (tt.)

Phép cộng, nhân giữa một số và một ma trận  Ví dụ: A=[1 2;3 4]

>>A+3

4 6

5 7

A = >>A*2

A =

2 6

4 8

Lập trình tính toán

06/05/2013

69

2.5 Tính toán trong đại số tuyến tính (tt.)

Các phép biến đổi sơ cấp  Biến dòng (cột) i thành k lần dòng (cột) i:

A(i,:) = A(i,:) * k

A(:,i) = A(:,i) *k

Biến dòng (cột) i thành dòng (cột) i cộng k lần dòng (cột) j:

A(i,:) = A(i,:) + A(j,:) * k

A(:,i) = A(:,i) + A(:,j) * k

Lập trình tính toán

06/05/2013

70

2.5 Tính toán trong đại số tuyến tính (tt.)

Các phép biến đổi sơ cấp (tt.) Hoán vị dòng (cột) i và dòng (cột) j:

A = A([thứ tự dòng],:)

A = A(:,[thứ tự cột])

Lập trình tính toán

06/05/2013

71

2.5 Tính toán trong đại số tuyến tính (tt.)

Các phép biến đổi sơ cấp (tt.)  Ví dụ: A=[2 4;3 8;6 7]

>>A(1,:) = A(1,:) * 10

A =

20 3 6

40 8 7

Biến dòng 1 thành 10 lần dòng 1:

Lập trình tính toán

06/05/2013

72

2.5 Tính toán trong đại số tuyến tính (tt.)

Các phép biến đổi sơ cấp (tt.)  Ví dụ (tt.):

>>A(2,:) = A(2,:) + A(3,:) * 3

A =

20 21 6

40 29 7

Biến dòng 2 thành dòng 2 cộng 3 lần dòng 3:

Lập trình tính toán

06/05/2013

73

2.5 Tính toán trong đại số tuyến tính (tt.)

Các phép biến đổi sơ cấp (tt.)  Ví dụ (tt.):

>>A = A([1 3 2],:)

A =

20 6 21

40 7 29

Hoán vị dòng 2 và dòng 3:

Lập trình tính toán

06/05/2013

74

2.5 Tính toán trong đại số tuyến tính (tt.)

Đa thức đặc trưng, giá trị riêng, vector riêng  Cú pháp:

Đa thức đặc trưng

>>p = poly(A)

Tính nghiệm của đa thức đặc trưng

>>roots(p)

Giá trị riêng, vector riêng

>>[V, D] = eig(A)

06/05/2013

75

Lập trình tính toán

2.5 Tính toán trong đại số tuyến tính (tt.)

Đa thức đặc trưng, giá trị riêng, vector riêng (tt.)  Ví dụ:

-9.0000

0.0000

1.0000

-15.0000

A = 1 4 7 2 5 8 3 6 9

15.5777 -0.5777 0.0000

Đa thức đặc trưng >>p = poly(A) p = Tính nghiệm của đa thức đặc trưng >>roots(p) ans =

06/05/2013

76

Lập trình tính toán

2.5 Tính toán trong đại số tuyến tính (tt.)

0.2205 0.7502 0.4082 0.8238 -0.6597 -0.8165 0.5222 0.0453 0.4082

1 4 7 2 5 8 A = 3 6 9

Đa thức đặc trưng, giá trị riêng, vector riêng (tt.)  Ví dụ (tt.): Giá trị riêng, vector riêng >>[V,D] = eig(A) V = D = 15.5777 0 0 0 -0.5777 0 0 0 0.0000 Với giá trị riêng là 15.5777 ta có vector riêng tương ứng là [0.2205 0.8238 0.5222]

06/05/2013

77

Lập trình tính toán

2.5 Tính toán trong đại số tuyến tính (tt.)

Mảng (Array hoặc Vector) Khi không làm việc trên đại số tuyến tính, ma trận đơn giản là một mảng hai chiều

Các phép toán cộng, trừ không đổi giữa ma trận và mảng.

Đối với phép nhân, Matlab dùng dấu chấm trước các phép toán (mang tính nhân) trên mảng

Lập trình tính toán

06/05/2013

78

2.5 Tính toán trong đại số tuyến tính (tt.)

Phép toán trên mảng một chiều (Vector)  Ví dụ: u=[1 2 3 4]

v=[0 1 -1 2]

Phép toán

Ý nghĩa

Kết quả

Nhân từng phần tử

0 2 -3 8

u.*v

Chia xuôi từng phần tử

Inf 2 -3 2

u./v

Chia ngược từng phần tử 0 0.5000 -0.3333 0.5000

u.\v

Lũy thừa từng phần tử

1 4 9 16

u.^2

u.’

Chuyển thành vector cột

1 2 3 4

Lập trình tính toán

06/05/2013

79

2.5 Tính toán trong đại số tuyến tính (tt.)

Phép toán trên mảng hai chiều (Array)  Ví dụ: A=[1 2;3 4]

B=[0 1;-1 2]

Phép toán

Ý nghĩa

Kết quả

Nhân từng phần tử

[0 2;-3 8]

A.*B

A./B

Chia xuôi từng phần tử

[Inf 2;-3 2]

A.\B

Chia ngược từng phần tử [0 0.5000;-0.3333 0.5000]

A.^2

Lũy thừa từng phần tử

[1 4;9 16]

A.’

[1 3;2 4]

Ma trận chuyển vị (giống A’)

Lập trình tính toán

06/05/2013

80