Lập trình tính toán - Chương 2: Thực hành tính toán trên Matlab

pdf 80 trang vanle 2070
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:

  • pdflap_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

  1. Chương 2 Thực hành tính toán trên Matlab
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  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 .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
  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.): >> 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
  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.): 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
  32. 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
  33. 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
  34. 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
  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 . 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
  36. 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
  37. 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
  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: >> 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
  39. 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
  40. 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
  41. 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
  42. 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
  43. 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
  44. 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
  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ó .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
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. 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
  59. 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
  60. 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
  61. 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
  62. 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
  63. 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
  64. 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
  65. 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
  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 .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
  67. 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
  68. 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
  69. 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
  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 . 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
  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.) .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
  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ụ: 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
  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.): 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
  74. 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
  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 . 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
  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ụ: 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
  77. 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
  78. 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
  79. 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
  80. 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