Upload
hoa-co-may
View
175
Download
1
Embed Size (px)
Citation preview
Chương 2
Thực hành tính toán trên Matlab
2 13/03/2014
Phép toán Mô tả
+ x+y
- x-y
* x*y
/ x/y
\ x\y = y/x
^ x^y
Lập trình tính toán
2.1 Các toán tử cơ bản của Matlab
3 13/03/2014
Độ ư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
Lập trình tính toán
2.1 Các toán tử cơ bản của Matlab (tt.)
Độ ưu tiên của phép toán:
4 13/03/2014 Lập trình tính toán
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.
5 13/03/2014 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)
6 13/03/2014 Lập trình tính toán
2.2 Biến (variable) (tt.) Một số biến mặc định (tt.):
Tên biến Giá trị / Ý nghĩa
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 Số thực dương lớn nhất
((2-esp)*21023)
e Nhân lũy thừa của 10 (5e2 = 5*102 = 500)
7 13/03/2014 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
8 13/03/2014
Tìm USCLN, BSCNN
Lệnh tìm USCLN
>> gcd(a,b)
Lệnh tìm BSCNN
>> lcm(a,b)
Lập trình tính toán
2.3 Tính toán số học và đại số thông dụng
9 13/03/2014
Ví dụ:
Tìm USCLN của 2^100-1 và 2^60-1 >>gcd(2^52-1,2^30-1)
3
Tìm BSCNN của 45,72 >>lcm(45,72)
360
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.)
10 13/03/2014
Phân tích một số ra tích các thừa số nguyên tố Cú pháp
>> factor(n) Ví dụ: Phân tích 1223456789 >>factor(1223456789)
3109 393521
Lập trình tính toán
2.3 Tính toán số học và đại số (tt.)
11 13/03/2014
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)
Ví dụ: Tìm các số nguyên tố trước số 20? >> primes(20)
2 3 5 7 11 13 17 19
Lập trình tính toán
2.3 Tính toán số học và đại số (tt.)
12 13/03/2014
Tìm phần dư >> rem(a,b) hoặc >>mod(a,b)
Ví dụ: >> rem(16,-12)
4 >> mod(16,-12)
-8
Lập trình tính toán
2.3 Tính toán số học và đại số (tt.)
13 13/03/2014
Dạng hiển thị số >>format <kiểu>
Lập trình tính toán
Kiểu Hiển thị Ví dụ
short (mặc định) 4 chữ số thập phân 3.1416
long 15 chữ số thập phân 3.141592653589793
bank 2 chữ số thập phân 3.14
rat Dạng phân số a/b 355/113
2.3 Tính toán số học và đại số (tt.)
14 13/03/2014
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 Lập trình tính toán
2.3 Tính toán số học và đại số (tt.)
15 13/03/2014
Khai báo biến hình thức (tt.)
Khai báo hàm số: >> syms f(a,b)
>> f(a,b)=2*a+b
>> f(2,3) 7
Hoặc
>> syms x y
>> g(x,y)=2*x+y
Lập trình tính toán
2.3 Tính toán số học và đại số (tt.)
16 13/03/2014
Tính tổng
Hữu hạn:
>> symsum(f(i),m,n)
Vô hạn:
>> symsum(f(i),m,inf)
Lập trình tính toán
2.3 Tính toán số học và đại số (tt.)
17 13/03/2014
Tính tổng (tt.)
Lập trình tính toán
∑= +
+10
121
1x x
x
2.3 Tính toán số học và đại số (tt.)
18 13/03/2014
Tính tổng (tt.)
Lập trình tính toán
∑−
=
1
0
3n
kk
2.3 Tính toán số học và đại số (tt.)
19 13/03/2014
Tính tổng (tt.)
Lập trình tính toán
21
1k k
∞
=∑
2.3 Tính toán số học và đại số (tt.)
20 13/03/2014
Tính tích
Hữu hạn:
>> symprod(f(i),m,n)
Vô hạn:
>> symprod(f(i),m,inf)
Lập trình tính toán
2.3 Tính toán số học và đại số (tt.)
21 13/03/2014
Tính tích (tt.)
Lập trình tính toán
2.3 Tính toán số học và đại số (tt.)
∏=
−20
22
2 1k k
k
22 13/03/2014
Tính tích (tt.)
Lập trình tính toán
2.3 Tính toán số học và đại số (tt.)
21
114n n
∞
=
−
∏
23 13/03/2014
Cú pháp:
>>expand(expr)
Ví dụ: Khai triển (x + y)4
>> expand((x+y)^4) x4 + 4x3y + 6x2y2 + 4xy3 + y4
Lập trình tính toán
Khai triển biểu thức đại số
2.3 Tính toán số học và đại số (tt.)
24 13/03/2014
Cú pháp:
>>factor(expr)
Ví dụ: >>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)
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ử
25 13/03/2014
Cú pháp:
>>simplify(expr)
>>simple(expr)
Ví dụ: Đơn giản biểu thức
cos5(x) + sin4(x) + 2cos2(x) – 2sin2(x) – cos(2x)
>>simplify(cos(x)^5+sin(x)^4+2*cos(x)^2-2*sin(x)^2-cos(2*x))
cos(x)5 + cos(x)4
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
26 13/03/2014 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 (tt.)
27 13/03/2014
Cú pháp:
>>subs(expr,old,new)
Ví dụ: >> syms z
>> expr=x^2+y^2-2*z^2*x x2 – 2xz2 + y2
>> subs(expr,{x,y},{1,z}) 1 – z2
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
28 13/03/2014
Cú pháp:
>>[N D]=numden(frac)
Ví dụ: >> [N D]=numden(x/y+y/x)
N = x2 + y2
D = xy
Lập trình tính toán
2.3 Tính toán số học và đại số (tt.) Tính tử và mẫu của phân số
29 13/03/2014
Cú pháp:
>> solve(eqns)
Ví dụ: Giải phương trình ax2+bx+c=0 >> 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)
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
30 13/03/2014
Ví dụ (tt.): >> solve(f,b)
-(a*x^2+c)/x
Giải phương trình x2+2x=1 >> syms x real
>> solve(‘x^2+2*x=1’) hoặc >>solve(x^2+2*x==1)
2^(1/2)-1
-2^(1/2)-1
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 (tt.)
31 13/03/2014 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 (tt.)
32 13/03/2014
Ví dụ (tt.): >> s.a
10
>> s.b 9
>> s.c 6
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 (tt.)
33 13/03/2014
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)
2.4 Phép tính vi phân và tích phân
Lập trình tính toán
34 13/03/2014
Ví dụ: >> limit(sin(x)/x)
1 >> limit(exp(x),inf)
Inf >> limit(exp(x),-inf);
0 >> limit(1/x, x=0, real)
NaN
Phép tính giới hạn (tt.)
Lập trình tính toán
2.4 Phép tính vi phân và tích phân (tt.)
35 13/03/2014
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
2.4 Phép tính vi phân và tích phân (tt.)
36 13/03/2014
Giới hạn bên trái – bên phải
Lập trình tính toán
2.4 Phép tính vi phân và tích phân (tt.)
37 13/03/2014
Tích phân bất định:
>> int(f,x) hoặc >> int(f)
Ví dụ: >> int(1/(x^2-4*x+3),x)
log(x-3)/2 - log(x-1)/2
Lập trình tính toán
Tính tích phân
2.4 Phép tính vi phân và tích phân (tt.)
38 13/03/2014
Tính tích phân (tt.) Tích phân xác định:
>> int(f,a,b)
Ví dụ:
Tính tích phân
>> int(1/(x^2-4*x+3),4,6)
log((3*5^(1/2))/5)
Lập trình tính toán
2.4 Phép tính vi phân và tích phân (tt.)
6
24
14 3
dxx x− +∫
39 13/03/2014
Tính tích phân (tt.) Tích phân xác định (tt.):
Ví dụ (tt.):
Tính tích phân
>> int(sqrt(exp(2*x)+cox(x)^2+1),0,pi)
Lập trình tính toán
2.4 Phép tính vi phân và tích phân (tt.)
2 2
0
cos( ) 1xe x dxπ
+ +∫
40 13/03/2014
Tính đạo hàm hàm số một biến Cú pháp:
>> diff(f(x))
Ví dụ: Tính đạo hàm của hàm số
f(x) = cos2(x)/sin(2x) >> 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)
Lập trình tính toán
2.4 Phép tính vi phân và tích phân (tt.)
2
12sin( )x
−
41 13/03/2014
Tính đạo hàm hàm số nhiều biến Cú pháp:
>> diff(f(x,y),x)
Ví dụ: Tính đạo hàm của hàm số
g(x,y) = y*cos(xy) >> g=y*cos(x*y);
>> g_diff=diff(g,x) -y^2*sin(x*y)
Lập trình tính toán
2.4 Phép tính vi phân và tích phân (tt.)
42 13/03/2014
Đạ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)
Ví dụ: >> diff(x^3-2*x^2,3)
6
Lập trình tính toán
2.4 Phép tính vi phân và tích phân (tt.)
43 13/03/2014
Khai triển hàm số thành chuỗi số Cú pháp:
>> taylor(f,‘Order’,m)
Ví dụ: Khai triển y=sin(2x).cos(x) tới bậc 15 tại x=0 >> 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
Lập trình tính toán
2.4 Phép tính vi phân và tích phân (tt.)
44 13/03/2014
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
Ví dụ: >> A = [1 2 3;4 5 6;7 8 9]
A = 1 2 3 4 5 6 7 8 9
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính
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 “,”
45 13/03/2014
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
2.5 Tính toán trong đại số tuyến tính (tt.)
46 13/03/2014
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
2.5 Tính toán trong đại số tuyến tính (tt.)
47 13/03/2014
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
2.5 Tính toán trong đại số tuyến tính (tt.)
48 13/03/2014
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
2.5 Tính toán trong đại số tuyến tính (tt.)
49 13/03/2014
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
Ví dụ: >> A(3,2)
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
Lập trình tính toán
A = 1 2 3 4 5 6 7 8 9
2.5 Tính toán trong đại số tuyến tính (tt.)
50 13/03/2014
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 2 3 0 4 5 6 0 7 8 9 10
Lập trình tính toán
A = 1 2 3 4 5 6 7 8 9
2.5 Tính toán trong đại số tuyến tính (tt.)
51 13/03/2014
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
2.5 Tính toán trong đại số tuyến tính (tt.)
52 13/03/2014
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
ans = 1 2
>> 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
ans = 1 2 3
>> A(end,1) %phần tử cuối cùng của cột 1 ans =
7
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 7 8 9
53 13/03/2014
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
ans = 6 4
>> x=[2 1 5 8] x =
2 1 5 8 >> x([2,4])
ans = 1 8
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 7 8 9
54 13/03/2014
Ghép hai ma trận Ví dụ: Thêm cột: >>D=[A B]
D = 1 2 3 10 11 4 5 6 12 13
Thêm dòng: >>E=[A;C]
E = 1 2 3 4 5 6 7 8 9 9 7 8
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 B = 10 11 12 13 C = 7 8 9 9 7 8
55 13/03/2014
Xóa dòng, xóa cột Ví dụ: Xóa cột: >>D(:,2)=[] D = 1 3 10 11 4 6 12 13 Xóa dòng: >>D(2;:)=[] D = 1 3 10 11 Xóa nhiều phần tử: >>E(1:2:10)=[] E = 4 9 5 7 6 9 8
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
D = 1 2 3 10 11 4 5 6 12 13 E =
1 2 3 4 5 6 7 8 9 9 7 8
56 13/03/2014
Tổng các cột của ma trận Cú pháp:
>>sum(A)
Ví dụ: >> sum(A)
ans = 12 15 18
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 7 8 9
57 13/03/2014
Ma trận chuyển vị Cú pháp:
>>A’
Ví dụ: >> A’
ans = 1 4 7 2 5 8 3 6 9
Lập trình tính toán
A = 1 2 3 4 5 6 7 8 9
2.5 Tính toán trong đại số tuyến tính (tt.)
58 13/03/2014
Đường chéo ma trận Cú pháp:
>>diag(A)
Ví dụ: >> diag(A)
1 5 9
Lập trình tính toán
A = 1 2 3 4 5 6 7 8 9
2.5 Tính toán trong đại số tuyến tính (tt.)
59 13/03/2014
Phép cộng, trừ hai ma trận Ví dụ: Cộng hai ma trận: >>A+B ans = 1 3 5 6 8 10 14 14 14 Trừ hai ma trận: >>A-B ans = 1 1 1 2 2 2 0 2 4
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 7 8 9 B = 0 1 2 2 3 4 7 6 5
60 13/03/2014
Phép nhân hai ma trận Ví dụ: >>A*B
ans = 25 25 25 52 55 58 79 85 91
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 7 8 9 B = 0 1 2 2 3 4 7 6 5
61 13/03/2014
Lũy thừa ma trận Cú pháp:
>>A^m
Ví dụ: >>A^2
ans = 30 36 42 66 81 96 102 126 150
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 7 8 9
62 13/03/2014
Ma trận nghịch đảo Cú pháp:
>>A^(-1)
Hoặc
>>inv(A)
Ví dụ: >>inv(A)
ans = -0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007 -0.4504 0.9007 -0.4504
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 7 8 9
63 13/03/2014
Định thức của ma trận Cú pháp:
>>det(A)
Ví dụ: >>det(A)
ans = 0
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 7 8 9
64 13/03/2014
Rút gọn dạng ma trận bậc thang Cú pháp:
>>rref(A)
Ví dụ: >>rref(A)
ans = 1 0 -1 0 1 2 0 0 0
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 7 8 9
65 13/03/2014
Hạng của ma trận Cú pháp:
>>rank(A)
Ví dụ: >>rank(A)
ans = 2
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 2 3 4 5 6 7 8 9
66 13/03/2014
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
2.5 Tính toán trong đại số tuyến tính (tt.)
67 13/03/2014
Giải phương trình ma trận AX=B (tt.) Ví dụ: Giải hệ
>>X=linsolve(A,B) X =
10.0000 9.0000 6.0000
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
A = 1 5 -7 -2 3 -1 1 2 -4 B = 13 1 4
5 7 132 3 1
2 4 4 0
a b ca b c
a b c
+ − =− + − = + − − =
68 13/03/2014
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
2.5 Tính toán trong đại số tuyến tính (tt.)
69 13/03/2014
Phép cộng, nhân giữa một số và một ma trận
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
Ví dụ: A=[1 2;3 4]
>>A+3
A = 4 5 6 7 >>A*2
A = 2 4 6 8
70 13/03/2014
Các phép biến đổi sơ cấp
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
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
71 13/03/2014
Các phép biến đổi sơ cấp (tt.)
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (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])
72 13/03/2014
Các phép biến đổi sơ cấp (tt.)
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
Ví dụ: A=[2 4;3 8;6 7]
Biến dòng 1 thành 10 lần dòng 1:
>>A(1,:) = A(1,:) * 10
A = 20 40 3 8 6 7
73 13/03/2014
Các phép biến đổi sơ cấp (tt.)
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
Ví dụ (tt.):
Biến dòng 2 thành dòng 2 cộng 3 lần dòng 3:
>>A(2,:) = A(2,:) + A(3,:) * 3
A = 20 40 21 29 6 7
74 13/03/2014
Các phép biến đổi sơ cấp (tt.)
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
Ví dụ (tt.):
Hoán vị dòng 2 và dòng 3:
>>A = A([1 3 2],:)
A = 20 40 6 7 21 29
75 13/03/2014
Đa thức đặc trưng, giá trị riêng, vector riêng
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
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)
76 13/03/2014
Đa thức đặc trưng, giá trị riêng, vector riêng (tt.)
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
Ví dụ:
Đa thức đặc trưng >>p = poly(A) p = 1.0000 -15.0000 -9.0000 0.0000 Tính nghiệm của đa thức đặc trưng >>roots(p) ans = 15.5777 -0.5777 0.0000
A = 1 2 3 4 5 6 7 8 9
77 13/03/2014
Đa thức đặc trưng, giá trị riêng, vector riêng (tt.)
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
Ví dụ (tt.): Giá trị riêng, vector riêng >>[V,D] = eig(A) V = 0.2205 0.7502 0.4082 0.8238 -0.6597 -0.8165 0.5222 0.0453 0.4082 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]
A = 1 2 3 4 5 6 7 8 9
78 13/03/2014
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
2.5 Tính toán trong đại số tuyến tính (tt.)
79 13/03/2014
Phép toán trên mảng một chiều (Vector)
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
Phép toán Ý nghĩa Kết quả u.*v 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.^2 Lũy thừa từng phần tử 1 4 9 16
u.’ Chuyển thành vector cột
1 2 3 4
Ví dụ: u=[1 2 3 4] v=[0 1 -1 2]
80 13/03/2014
Phép toán trên mảng hai chiều (Array)
Lập trình tính toán
2.5 Tính toán trong đại số tuyến tính (tt.)
Phép toán Ý nghĩa Kết quả
A.*B Nhân từng phần tử [0 2;-3 8]
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.’ Ma trận chuyển vị
(giống A’) [1 3;2 4]
Ví dụ: A=[1 2;3 4] B=[0 1;-1 2]
81 13/03/2014
Khai báo
Lập trình tính toán
2.6 Tập hợp
Một tập hợp trong Matlab được khai báo bằng cách liệt kê dưới dạng một vector (dòng hoặc cột)
Ví dụ: Tập hợp a gồm 5 phần tử có thể khai báo như sau:
A = [1 4 8 9 10]
Hoặc A = [1,4,8,9,10]
Hoặc A = [1;4;8;9;10]
Khai báo tập rỗng: A=[]
82 13/03/2014
Các phép toán (tt.)
Lập trình tính toán
2.6 Tập hợp (tt.)
Tìm số phần tử: >> length(A)
Ví dụ: Tập hợp A gồm 5 phần tử:
A = [1 4 8 9 10]
>> length(A)
5
83 13/03/2014
Các phép toán (tt.)
Lập trình tính toán
2.6 Tập hợp (tt.)
Kiểm tra phần tử thuộc tập hợp: >> ismember(s,A)
Ví dụ: Tập hợp A gồm 5 phần tử:
A = [1 4 8 9 10]
Kiểm tra 2 có thuộc A hay không:
>> ismember(s,A)
0
84 13/03/2014
Các phép toán (tt.)
Lập trình tính toán
2.6 Tập hợp (tt.)
85 13/03/2014
Các phép toán (tt.)
Lập trình tính toán
2.6 Tập hợp (tt.)
Loại bỏ các phần tử trùng nhau: >> unique(A)
Ví dụ: Tập hợp A gồm 5 phần tử:
A = [1 4 8 9 10]
>> unique(A) = A
B = [1 9 4 8 10 1 8 4 9 10]
>> unique(B)
[1 4 8 9 10]
86 13/03/2014
Các phép toán (tt.)
Lập trình tính toán
2.6 Tập hợp (tt.)
Hội giữa hai tập hợp: >> union(A,B)
Ví dụ:
A = [1 4 8 9 10]
B = [4 2 3 5]
>> union(A,B)
[1 2 3 4 5 8 9 10]
87 13/03/2014
Các phép toán (tt.)
Lập trình tính toán
2.6 Tập hợp (tt.)
Giao giữa hai tập hợp: >> intersect(A,B)
Ví dụ:
A = [1 4 8 9 10]
B = [4 2 3 5]
>> intersect(A,B)
4
88 13/03/2014
Các phép toán (tt.)
Lập trình tính toán
2.6 Tập hợp (tt.)
Hiệu giữa hai tập hợp: A\B = setdiff(A,B)
Ví dụ:
A = [1 4 8 9 10]
B = [4 2 3 5]
>> setdiff(A,B)
1 8 9 10