Chương III: TÍNH TOÁN TRÊN MATLAB 3.1 Mảng Mảng là một tập hợp số liệu mà ta muốn tính toán... space hoặc dấu phẩy ,... 3.3.3 Ma trận con và phần tửTa có thể lấy một phần tử hoặc ma trận
Trang 1Chương III:
TÍNH TOÁN TRÊN MATLAB
3.1 Mảng
Mảng là một tập hợp số liệu mà ta muốn tính toán
Để tạo mảng, đặt các phần tử của mảng vào giữa 2 dấu ngoặc vuông
3.1.1 Khai báo mảng
M = [a b c] hoặc M = [a, b, c]
VD: >> A = [3 6 4] hoặc A = [3, 6, 4] % vector hàng
M = [ x; y; z]
VD: >> B = [5; 1; 9] % vector cột
Mảng có ít phần tử
Trang 2Biến = giới hạn đầu : giới hạn cuối
hoặc biến = giới hạn đầu : bước chạy : giới hạn cuối
VD: Tạo 1 vectơ t chạy từ 0 đến 0.6 với bước chạy tiến là 0.1
>> t = 0: 0.1:0.6
t = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
Biến = linspace(giới hạn đầu, giới hạn cuối, số phần tử)
VD: Tạo 1 vectơ t chạy từ 0 đến 10 với 5 phần tử ở giữa
>> t = linspace(0,10,5)
t = 0 2.000 4.000 6.000 8.000 10.000
Mảng có số lượng lớn các phần tử
Trang 33.1.2 Tính toán dùng số liệu mảng
Các toán tử nhân, chia, mũ phải thêm dấu chấm
.* / ^
VD: Tính X = sin(A 2 )/(1+3A)
>> X = sin (A.^2)./(1+3.*A)
>> X = 0.0412-0.0522 -0.0221
3.2 Toán tử quan hệ quyết định chương trình
Nhỏ hơn: <
Nhỏ hơn hoặc bằng: <=
Lớn hơn: >
Lớn hơn hoặc bằng: >=
Bằng: ==
Không bằng (khác):~=
Trang 43.3 Ma trận
3.3.1 Định nghĩa: Ma trận là một mảng nhiều chiều và theo nguyên tắc:
Bao quanh các phần tử của ma trận bằng dấu ngoặc vuông [a ij ].
(space) hoặc dấu phẩy (,).
cách giữa các hàng của ma trận
3.3.2 Nhập ma trận
Liệt kê trực tiếp:
VD: >>A =[1 2 3; 4 5 6]
>> B =[1 2 3;
4 5 6]
Trang 5Nhập thông qua lệnh input:
>> input('Nhap gia tri cho ma tran C = ')
>> Nhap gia tri cho ma tran C = [1 3 4;4 5 7;7 5 8]
>> ans =
1 3 4
4 5 7
7 5 8
Để hiển thị lại ma trận ta gõ tên ma trận sau đó enter VD: >> A
A = 1 2 3
4 5 6
Trang 63.3.3 Ma trận con và phần tử
Ta có thể lấy một phần tử hoặc ma trận con của một ma trận đã có Tên của ma trận (Chỉ số hàng, chỉ số cột)
A(i,j) số liệu của phần tử hàng i và cột j
>> A(2,3)
ans =
6
>> B = C (2 : 3 , 1 : 3)
B=
4 5 7
7 5 8
Trang 73.3.4 Nhân 2 ma trận
Phép nhân 2 ma trận là C = A*B
>> A = [6 -2; 10 3; 4 7];
>> B = [9 8; -5 12];
>> C = A*B
C =
Muốn nhân 2 ma trận thì số cột của ma trận A phải bằng số hàng của
ma trận B
Trang 83.3.5 Hoán vị ma trận
Phép chuyển đổi véctơ hàng thành véctơ cột gọi là phép hoán vị Thực hiện phép chuyển vị bằng toán tử dấu nháy đơn ( ‘ )
>> a = [1 2 3; 4 5 6; 7 8 9]
a =
1 2 3
4 5 6
7 8 9
>> b = a’
b =
1 4 7
2 5 8
3 6 9
Trang 93.3.6 Xóa hàng và cột ma trận
Muốn xóa hàng hay cột ta gán giá trị rỗng (ký hiệu []) cho hàng hoặc cột của ma trận
>> a = [1 2 3; 4 5 6; 7 8 9];
>> a (2,:) = []
a =
1 2 3
7 8 9
>> a (:,3) = []
a =
1 2
7 8
Trang 103.3.7 Các ma trận đặc biệt
zeros(m,n) là ma trận m x n với các phần tử bằng 0
ones(m,n) là ma trận m x n với các phần tử bằng 1
eye(m,n) là ma trận m x n với số 1 trên đường chéo chính
>> zeros (2,3)
ans =
0 0 0
0 0 0
>> B = [ones(2) zeros(2,3); zeros(3,2) 7*eye(3)]
1 1 0 0 0
0 0 7 0 0
0 0 0 7 0
0 0 0 0 7
Trang 113.3.8 Các hàm ma trận
expm(A) tìm hàm mũ của ma trận A, tức eA
logm(A) tìm log(A)
sqrtm(A) tìm căn A
det(A) tính định thức A
Trang 123.4 Ứng dụng các phép toán ma trận
3.4.1 Giải phương trình bậc cao:
Bước1: Lập 1 ma trận hàng có các phần tử là các hệ số từ a n đến a 0 giảm dần theo bậc của phương trình (Nếu hệ số nào không có ghi 0)
VD: giải phương trình sau x 5 - 2x 4 + 5x 2 - 1 = 0
>> y = [ 1 -2 0 5 0 -1];
>> kq = roots(y)
kq =
1.5862 + 1.1870i
1.5862 - 1.1870i
-1.1606
-0.4744
0.4627
Trang 133.4.2 Biết nghiệm tìm lại phương trình
Sử dụng lệnh poly
>> r = [1, 3 + 5i, 3 - 5i];
>> poly(r)
ans =
1 -7 -40 34
3.4 Ứng dụng các phép toán ma trận
Trang 15Như vậy việc giải hệ PT tuyến tính thực chất là thực hiện phép toán về ma trận.
Vì vậy, nghiệm của hệ phương trình là: u = A\b
Việc giải trong Matlab gồm 3 dòng sau:
>> b = [8; -6; 4];
>> A = [2 4 -3; -2 3 2; -2 4 1];
>> u = A\b
Chú ý: dấu \ là dấu chia trái dùng để giải hệ phương trình khi hệ chỉ có một nghiệm