Lập trình tính toán - Chương 2: Thực hành tính toán trên Matlab
Bạn đang xem 20 trang mẫu của tài liệu "Lập trình tính toán - Chương 2: Thực hành tính toán trên Matlab", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- lap_trinh_tinh_toan_chuong_2_thuc_hanh_tinh_toan_tren_matlab.pdf
Nội dung text: Lập trình tính toán - Chương 2: Thực hành tính toán trên Matlab
- 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. 06/05/2013 Lập trình tính toán 4
- 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 Tên biến mặc định dùng để lưu kết ans 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 Lập trình tính toán 5
- 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 i = j = −1 nargin/nargout Số đối số input/output của hàm realmin Số thực dương nhỏ nhất (2-1022) Số thực dương lớn nhất realmax ((2-esp)*21023) Nhân lũy thừa của 10 e (5e2 = 5*102 = 500) 06/05/2013 Lập trình tính toán 6
- 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 Lập trình tính toán 7
- 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 Lập trình tính toán 8
- 2.3 Tính toán số học và đại số (tt.) Tìm USCLN, BSCNN (tt.) . 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 06/05/2013 Lập trình tính toán 9
- 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ố) . Ví dụ: Phân tích 1223456789 >>factor(1223456789) 3109 393521 06/05/2013 Lập trình tính toán 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) . Ví dụ: Tìm các số nguyên tố trước số 20? >> primes(20) 2 3 5 7 11 13 17 19 06/05/2013 Lập trình tính toán 11
- 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) . Ví dụ: >> rem(16,-12) 4 >> mod(16,-12) -8 06/05/2013 Lập trình tính toán 12
- 2.3 Tính toán số học và đại số (tt.) Dạng hiển thị số >>format 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 06/05/2013 Lập trình tính toán 13
- 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 Lập trình tính toán 14
- 2.3 Tính toán số học và đại số (tt.) 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 06/05/2013 Lập trình tính toán 15
- 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 Lập trình tính toán 16
- 2.3 Tính toán số học và đại số (tt.) Tính tổng (tt.) . Ví dụ: 10 + Tính 1 x ∑ + 2 x=1 1 x >>symsum((1+x)/(1+x^2),1,10) 2745615458 846523925 06/05/2013 Lập trình tính toán 17
- 2.3 Tính toán số học và đại số (tt.) Tính tổng (tt.) . Ví dụ: n−1 Tính ∑ k 3 k =0 >> syms k >> symsum(k^3) k 4 k 3 k 2 − + 4 2 4 06/05/2013 Lập trình tính toán 18
- 2.3 Tính toán số học và đại số (tt.) Tính tổng (tt.) . Ví dụ: ∞ 1 Tính ∑ 2 = k k 1 >> symsum(1/(k^2),1,inf) π 2 6 06/05/2013 Lập trình tính toán 19
- 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 Lập trình tính toán 20
- 2.3 Tính toán số học và đại số (tt.) Tính tích (tt.) . Ví dụ: 20 2 − Tính k 1 ∏ 2 k k =2 >> symprod((k^2-1)/k^2,2,20) 21/40 06/05/2013 Lập trình tính toán 21
- 2.3 Tính toán số học và đại số (tt.) Tính tích (tt.) . Ví dụ (tt.): ∞ 1 − Tính Công thức Euler ∏1 2 n=1 4n >> syms n >> symprod(1-1/(4*n^2),1,inf) 2 π 06/05/2013 Lập trình tính toán 22
- 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 Lập trình tính toán 23
- 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) .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) 06/05/2013 Lập trình tính toán 24
- 2.3 Tính toán số học và đại số (tt.) Đơn giản biểu thức .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 06/05/2013 Lập trình tính toán 25
- 2.3 Tính toán số học và đại số (tt.) Đơn giản biểu thức (tt.) .Ví dụ (tt.): Đơn giản biểu thức 1 6 12 3 + + + 8 x3 x 2 x >>simple((1/x^3+6/x^2+12/x+8)^1/3) (2x +1)3 3x3 06/05/2013 Lập trình tính toán 26
- 2.3 Tính toán số học và đại số (tt.) Tính giá trị biểu thức .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 06/05/2013 Lập trình tính toán 27
- 2.3 Tính toán số học và đại số (tt.) Tính tử và mẫu của phân số .Cú pháp: >>[N D]=numden(frac) .Ví dụ: >> [N D]=numden(x/y+y/x) N = x2 + y2 D = xy 06/05/2013 Lập trình tính toán 28
- 2.3 Tính toán số học và đại số (tt.) Giải phương trình & hệ phương trình .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) 06/05/2013 Lập trình tính toán 29
- 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.): >> 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 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.): abc+−=5 7 13 Giải hệ phương trình −23a + bc −= 1 abc+2 − 4 −= 40 >> 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); 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.) .Ví dụ (tt.): >> s.a 10 >> s.b 9 >> s.c 6 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) 06/05/2013 Lập trình tính toán 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 06/05/2013 Lập trình tính toán 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’); 06/05/2013 Lập trình tính toán 35
- 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 . Ví dụ: x Cho hàm số f = x 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 06/05/2013 Lập trình tính toán 36
- 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) Ví dụ: >> int(1/(x^2-4*x+3),x) log(x-3)/2 - log(x-1)/2 06/05/2013 Lập trình tính toán 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) Ví dụ: 6 1 Tính tích phân dx ∫4 xx2 −+43 >> int(1/(x^2-4*x+3),4,6) log((3*5^(1/2))/5) 06/05/2013 Lập trình tính toán 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.): Ví dụ (tt.): π 22x Tính tích phân ∫ e++cos( x ) 1 dx 0 >> int(sqrt(exp(2*x)+cox(x)^2+1),0,pi) 06/05/2013 Lập trình tính toán 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: >> 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) −1 2sin(x )2 06/05/2013 Lập trình tính toán 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: >> 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) 06/05/2013 Lập trình tính toán 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) . Ví dụ: >> diff(x^3-2*x^2,3) 6 06/05/2013 Lập trình tính toán 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) . 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 06/05/2013 Lập trình tính toán 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 . Dấu “[” và “]” mở . Tạo ma trận bằng các file .m đầu và kết thúc nhập ma trận. . Ví dụ: . Dấu “;” kết thúc >> A = [1 2 3;4 5 6;7 8 9] một dòng. A = . Các phần tử cách 1 2 3 nhau bằng “khoảng 4 5 6 trắng” hoặc dấu “,” 7 8 9 06/05/2013 Lập trình tính toán 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) 06/05/2013 Lập trình tính toán 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) 06/05/2013 Lập trình tính toán 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. 06/05/2013 Lập trình tính toán 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. 06/05/2013 Lập trình tính toán 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 = .Ví dụ: 1 2 3 4 5 6 >> A(3,2) 7 8 9 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 06/05/2013 Lập trình tính toán 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 A = >> X(3,4)=10 1 2 3 X = 4 5 6 1 2 3 0 7 8 9 4 5 6 0 7 8 9 10 06/05/2013 Lập trình tính toán 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 06/05/2013 Lập trình tính toán 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 ans = 1 2 >> sum(A(1:2,1)) %tổng 3 số đầu tiên ở cột 1 của A ans = A = 5 1 2 3 >> A(1,:)%toàn bộ phần tử của dòng 1 4 5 6 ans = 1 2 3 7 8 9 >> A(end,1) %phần tử cuối cùng của cột 1 ans = 06/05/2013 7 Lập trình tính toán 52
- 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 ans = 6 4 >> x=[2 1 5 8] x = A = 2 1 5 8 1 2 3 >> x([2,4]) 4 5 6 ans = 1 8 7 8 9 06/05/2013 Lập trình tính toán 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: A = >>D=[A B] 1 2 3 D = 4 5 6 1 2 3 10 11 B = 4 5 6 12 13 10 11 Thêm dòng: 12 13 >>E=[A;C] C = E = 7 8 9 1 2 3 9 7 8 4 5 6 7 8 9 06/05/2013 9 7 8 Lập trình tính toán 54
- 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 = >>D(:,2)=[] 1 2 3 10 11 D = 4 5 6 12 13 1 3 10 11 4 6 12 13 E = Xóa dòng: 1 2 3 >>D(2;:)=[] 4 5 6 D = 7 8 9 1 3 10 11 9 7 8 Xóa nhiều phần tử: >>E(1:2:10)=[] E = 4 9 5 7 6 9 8 06/05/2013 Lập trình tính toán 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) .Ví dụ: >> sum(A) ans = A = 12 15 18 1 2 3 4 5 6 7 8 9 06/05/2013 Lập trình tính toán 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’ .Ví dụ: >> A’ ans = A = 1 4 7 1 2 3 2 5 8 4 5 6 3 6 9 7 8 9 06/05/2013 Lập trình tính toán 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) .Ví dụ: >> diag(A) 1 A = 5 1 2 3 9 4 5 6 7 8 9 06/05/2013 Lập trình tính toán 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 = >>A+B 1 2 3 ans = 4 5 6 1 3 5 7 8 9 6 8 10 B = 14 14 14 0 1 2 Trừ hai ma trận: 2 3 4 >>A-B 7 6 5 ans = 1 1 1 2 2 2 0 2 4 06/05/2013 Lập trình tính toán 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 A = ans = 1 2 3 25 25 25 4 5 6 52 55 58 7 8 9 79 85 91 B = 0 1 2 2 3 4 7 6 5 06/05/2013 Lập trình tính toán 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 A = 1 2 3 .Ví dụ: 4 5 6 >>A^2 7 8 9 ans = 30 36 42 66 81 96 102 126 150 06/05/2013 Lập trình tính toán 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) A = 1 2 3 Hoặc 4 5 6 7 8 9 >>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 06/05/2013 Lập trình tính toán 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 2 3 .Ví dụ: 4 5 6 >>det(A) 7 8 9 ans = 0 06/05/2013 Lập trình tính toán 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 2 3 .Ví dụ: 4 5 6 >>rref(A) 7 8 9 ans = 1 0 -1 0 1 2 0 0 0 06/05/2013 Lập trình tính toán 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 2 3 .Ví dụ: 4 5 6 >>rank(A) 7 8 9 ans = 2 06/05/2013 Lập trình tính toán 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 06/05/2013 Lập trình tính toán 66
- 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 (tt.) .Ví dụ: abc+−=5 7 13 Giải hệ −23a + bc −= 1 abc+2 − 4 −= 40 >>X=linsolve(A,B) A = X = 1 5 -7 10.0000 -2 3 -1 9.0000 1 2 -4 6.0000 B = 13 1 4 06/05/2013 Lập trình tính toán 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) 06/05/2013 Lập trình tính toán 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 A = 4 5 6 7 >>A*2 A = 2 4 6 8 06/05/2013 Lập trình tính toán 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 06/05/2013 Lập trình tính toán 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]) 06/05/2013 Lập trình tính toán 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] 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 06/05/2013 Lập trình tính toán 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.): 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 06/05/2013 Lập trình tính toán 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.): Hoán vị dòng 2 và dòng 3: >>A = A([1 3 2],:) A = 20 40 6 7 21 29 06/05/2013 Lập trình tính toán 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 Lập trình tính toán 75
- 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ụ: A = 1 2 3 Đa thức đặc trưng 4 5 6 >>p = poly(A) 7 8 9 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 06/05/2013 Lập trình tính toán 76
- 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ụ (tt.): A = Giá trị riêng, vector riêng 1 2 3 >>[V,D] = eig(A) 4 5 6 V = 7 8 9 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] 06/05/2013 Lập trình tính toán 77
- 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 06/05/2013 Lập trình tính toán 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ả 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 1 2 u.’ Chuyển thành vector cột 3 4 06/05/2013 Lập trình tính toán 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ả 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] Ma trận chuyển vị A.’ [1 3;2 4] (giống A’) 06/05/2013 Lập trình tính toán 80