Tải bản đầy đủ (.pdf) (88 trang)

Bài giảng cơ sở matlab

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.75 MB, 88 trang )


1
Phần 1 Ngôn ngữ lập trình Matlab
Bài 1. Giới thiệu phần mềm Matlab
1.1 Matlab là gì?
Ch-ơng trình MATLAB là một ch-ơng trình viết cho máy tính PC nhằm hỗ trợ cho các tính
toán khoa học và kĩ thuật với các phần tử cơ bản là ma trận trên máy tính cá nhân do công ty
"The MATHWORKS" viết ra.
Thuật ngữ MATLAB có đ-ợc là do hai từ MATRIX và LABORATORY ghép lại. Ch-ơng
trình này hiện đang đ-ợc sử dụng nhiều trong nghiên cứu các vấn đề tính toán của các bài toán kĩ
thuật nh-: Lý thuyết điều khiển tự động, kĩ thuật thống kê xác suất, xử lý số các tín hiệu, phân
tích dữ liệu, dự báo chuổi quan sát, v.v
Matlab đ-ợc điều khiển bởi tập các bộ lệnh, t-ơng tác bằng bàn phím trên cửa sổ điều khiển,
đồng thời Matlab còn cho phép khả năng lập trình với cú pháp thông dịch lệnh hay còn gọi là
script file. Các lệnh, bộ lệnh của Matlab lên đến con số hàng trăm và ngày càng đ-ợc mở rộng
bởi các phần Tools box trợ giúp, hay các hàm ứng dụng tạo ra bởi ng-ời sử dụng.
Các lệnh của Matlab rất mạnh và hiệu quả cho phép giải các loại hình toán khác nhau
và đặc biệt hiệu quả cho các hệ ph-ơng trình tuyến tính cũng nh- thao tác trên các bài toán ma
trận. Khônng những thế Matlab còn rấtt hữu hiệu trong việc trợ giúp thao tác và truy xuất đồ hoạ
trong không gian 2D cũng nh- 3D cũng khả năng tạo hoạt cảnh cho việc mô tả bài toán một cách
sinh động. Cùng với trên 25 Tools box (th- viện trợ giúp) khác nhau Matlab đ-a đến cho ng-ời
sử dụng sự lựa chọn hoàn chỉnh và phong phú về các công cụ trợ giúp đắc lực cho
những lĩnh vực khác nhau trên con đ-ờng nghiên cứu đã lựa chọn.
1.2 Môi tr-ờng làm việc của Matlab
Matlab là ch-ơng trình phần mềm trợ giúp cho việc tính toán và hiển thị. Matlab có thể
chạy trên hầu hết các hệ máy tính từ máy tính cá nhân đến các hệ máy tính lớn super computer.
MATLAB 5.1, 5.2, 6.5 7.0 hoạt động trong môi tr-ờng WINDOWS. Ch-ơng trình Matlab có
thể chạy liên kết với các ch-ơng trình ngôn ngữ cấp cao nh- C, C++, Fortran, Việc cài đặt
MATLAB thật dễ dàng và ta cần chú ý việc dùng thêm vào các th- viện trợ giúp hay muốn liên
kết phần mềm này với một vài ngôn ngữ cấp cao.


1.2.1. Mn hình Matlab
Sau khi khởi động màn hình Matlab có giao diện nh- trên hình:

2

Cưa sỉ th- mơc hiƯn t¹i Current Directory Browser (1): gióp ng-êi sư dơng cã thĨ nhanh
chãng nhËn biÕt, chun ®ỉi th- mơc hiƯn t¹i cđa m«i tr-êng c«ng t¸c, më file, t¹o th- mơc míi.
Cưa sỉ Command Windows (2): §©y lµ cưa sỉ chÝnh cđa Matlab. T¹i ®©y ta thùc hiƯn toµn
bé c«ng viƯc nhËp d÷ liƯu vµ xt kÕt qu¶ tÝnh to¸n. dÊu nhÊp nh¸y >> b¸o hiƯu ch-¬ng tr×nh s½n
sµng ho¹t ®éng.
Cưa sỉ Command history (3): L-u tr÷ tÊt c¶ c¸c lƯnh ®· thùc hiƯn trong cưa sỉ Comman
Windows(2) cã thĨ lỈp l¹i lƯnh cò b»ng c¸ch nh¸y kÐp cht vµo lƯnh ®ã. Còng cã thĨ c¾t, sao
hc xo¸ c¶ nhãm lƯnh hc tõng lƯnh riªng rÏ.
Cưa sỉ Workspace browser (4): TÊt c¶ c¸c biÕn, c¸c hµm tån t¹i trong m«i tr-êng c«ng t¸c
®Ịu ®-ỵc hiƯn t¹i cưa sỉ nµy.
Cưa sỉ Editor : so¹n th¶o ch-¬ng tr×nh
Ngoµi ra cßn cã Cưa sỉ trỵ gióp Help rÊt phong phó gióp ng-êi sư dơng trong qu¸ tr×nh tÝnh to¸n.
B»ng c©u lƯnh Help [command]
Các phím chức năng đặt biệt (chuyên dùng) và các lệnh dùng cho hệ thống:
Ctrl + P hoặc 
Gọi lại lệnh vừa thực hiện trước đó từ của sổ lệnh của MATLAB
Ctrl + n hoặc 
Gọi lại lệnh đã đánh vào trước đó
Ctrl + f hoặc 
Chuyển con trỏ sang phải một kí tự
Ctrl + b hoặc 
Chuyển con trỏ sang trái một kí tự.
Ctrl + l hoặc Ctrl + 
Chuyển con trỏ sang phải một từ
Ctrl + r hoặc Ctrl + 

Chuyển con trỏ sang trái một từ
Ctrl + a hoặc HOME
Chuyển con trỏ về đầu dòng.
Ctrl + k
Xoá cho đến dòng cuối cùng



3
Các lệnh hệ thống :
Các lệnh trên cũng như sau này được viết từ cửa sổ lệnh của MATLAB
Casesen off
Bỏ thuộc tính phân biệt chữ hoa và chữ thường
Casesen on
Sử dụng thuộc tính chữ hoa và chữ thường.
clc
Xóa cửa sổ dòng lệnh
clf
Xó cửa sổ đồ họa
computer
Lệnh in ra một xâu kí tự cho biệt loại máy tính.
exit hoặc quit
Thoát khỏi chương trình MATLAB
Ctrl + C
Dừng chương trình khi nó rơi vào tình trạng lặp không kết thúc
Help
Xem trợ giúp
Input
Nhập dữ liệu từ bàn phím.
Load

Tải các biến đã lưu trong một file đưa vào vùng làm việc.
Pause
Ngừng tạm thời chương trình.
Save
Lưu giữ các biến vào file có tên là matlab.mat
Demo
Lệnh cho phép xem các chương trình mẫu (minh họa khả năng làm việc
của MATLAB).
Edit
Lệnh để vào cửa sổ soạn thảo (dùng để viết một chương trình)



1.2.2. C¸c tƯp trong Matlab
+ TƯp *. m: TƯp so¹n th¶o ch-¬ng tr×nh Scrippts, hµm function, l-u tr÷ sè liƯu
+ TƯp *.mat: TƯp l-u tr÷ sè liƯu (ë cưa sỉ Workspace ) >> save  ; >> load *.mat 
+ TƯp *.fig: tƯp l-u tr÷ c¸c tƯp ®å ho¹
+ TƯp *.mdl : TƯp s¬ ®å khèi Simulink
1.3 §å ho¹ trong Matlab
MATLAB cã c¸c c«ng cơ hÕt søc h÷u hiƯu ®Ĩ hiĨn thÞ c¸c vÐc t¬ vµ ma trËn ë d¹ng ®å thÞ còng
nh- viƯc chó thÝch vµ in Ên ®å thÞ nµy mét c¸ch trùc quan.
1.4 LËp tr×nh øng dơng trong Matlab
Matlab lµ mét phÇn mỊm rÊt ®-ỵc -a chng cho c¸c lËp tr×nh tÝnh to¸n trong kü tht hiƯn nay.
Nã hÇu nh- ®-ỵc phỉ biÕn réng kh¾p trong c¸c tr-êng ®¹i häc ë nhiỊu n-íc.Víi Matlab c«ng
viƯc tÝnh to¸n trë nªn ®¬n gi¶n vµ nhĐ nhµng h¬n so víi nhiỊu ng«n ng÷ lËp tr×nh kh¸c nhê
®· thiÕt kÕ s½n c¸c toolbox gióp cho ng-êi sư dơng:
 Control System Tollbox: lµ nỊn t¶ng cđa hä toolbox thiÕt kÕ ®iỊu khiĨn b»ng Matlab. Nã chøa
c¸c hµn cho viƯc m« pháng, ph©n tÝch vµ thiÕt kÕ c¸c hƯ thèng trong tù ®éng ®iỊu khiĨn.
 Frequency Domain System Identification Tollbox: Bao gåm c¸c M -file gióp cho viƯc m«
pháng c¸c hƯ thèng tun tÝnh trªn c¬ së phÐp ®o ®¸p øng tÇn sè cđa hƯ thèng.


4
Fuzzy Logic Tollbox: Cung cấp một tập hợp đầy đủ các công cụ cho việc thiết kế, mô phỏng
và phân tích các hệ thống logic mờ (Fuzzy Inferencs).
Higher Order Spectral Analysis Toolbox: cung cấp các công cụ cho việc xử lý tín hiệu dùng
phổ bậc cao. Các ph-ơng này đặc biệt hữu dụng cho phân tích các tín hiệu có nguồn gốc từ
một quá trình phi tuyến hay bị nhiễu phi Gaussian ( non-Gaussian noise) xâm nhập.
Image Processing Toolbox: chứa các công cụ cho việc sử lý ảnh. Nó bao gồm các công cụ
cho việc thiết kế các bộ lọc và l-u trữ ảnh, nâng cấp ảnh, phân tích và thống kê.
Model Predictive Control Tollbox: đặc biệt hữu dụng cho các ứng dụng điều khiển với nhiều
biến ngõ vào (input) và ngõ ra (output) mà phần lớn có các giới hạn nhất là trog kỹ thuật hóa
chất.
Mu-Analysis And Syntheris Tollbox: chứa các công cụ chuyên môn hóa cho điều khiển tối -u
hóa; Đặc biệt trong lĩnh vực robot cao cấp và các hệ thống đa biến tuyến tính.
Signal Processing Tollbox: chứa các công cụ xử lý tín hiệu. Các ứng dụng bao gồm: Audio
(Đĩa compact, băng digital), video (digital HDTV, xử lý và nén ảnh), viễn thông (fax,
telephone), y học, địa lý.
Non-linear Control Design Tollbox: cho phép thiết kế các hệ thống điều khiển tuyến tính và
phi tuyến, sử dụng kỹ thuật tối -u hóa trên cơ sở miền thời gian.
Optimization Tollbox: Các lệnh dùng cho sự tối -u hóa các hàm tuyến tính và phi tuyến tổng
quát.
Symbolic Match Toolbox: Bao gồm các công cụ cho việc tính toán trên các biểu thức.
System Identification Toolbox: Tập hợp các công cụ cho -ớc l-ợng và nhận dạng (tìm mô
hình toán học cho một hệ thống vật lý).
Robust Control System: Các công cụ cho phép phân tích và tổng hợp các hệ thống điều khiển
bằng robot.
Simulink: Mô phỏng động học tuyến tính và phi tuyến
Ngoài ra còn có các toolbox khác nh- NAG Foundation Toolbox, Quantitative Feedback
Workshop, Spline Toolbox, Statics Toolbox.
Một khả năng khác cần phải nhắc đến của Matlab là biểu diễn data bằng đồ thị hai chiều,

ba chiều bằng các lệnh (hàm) khá đơn giản.






5
Bài 2: Xử lý dữ liệu dạng mảng trong Matlab
và các ứng dụng
I. Các ph-ơng pháp tạo mảng dữ liệu
1. Ph-ơng pháp nhập trực tiếp từ bàn phím
1.1. Các nguyên tắc chung
Các phần tử của mảng đ-ợc bao trong dấu ngoặc vuông: [ ]
Các phần tử trên một hàng đ-ợc cách nhau bằng dấu cách (b-ớc trống)
Các cột đ-ợc phân cách bằng dấu ; hoặc dấu Enter
1.2 Các ví dụ
Nếu ta gõ : C=[3.5 4.3 5.0], ta sẽ nhận đ-ợc véc tơ hàng có ba phần tử là 3.5, 4.3 và 5.0 và trên
màn hình của Matlab sẽ hiện ra:
C =
3.5000 4.3000 5.0000
Nếu ta nhập vào: V=[3.5; 4.3; 5.0] , hoặc
V=[3.5000
4.3000
5.0000]
Ta sẽ nhận đ-ợc véc tơ cột có ba phần tử là 3.5, 4.3 và 5.0 và trên màn hình của matlab sẽ hiện ra:
V =
3.5000
4.3000
5.0000

Câu lệnh :
M=[1 3 4;5 3 7;2 1 4]
Sẽ cho kết quả ma trận 3 hàng, 3 cột
M =
1 3 4
5 3 7
2 1 4
Chú ý: Các phần tử trong mỗi hàng khi nhập vào phải nh- nhau
2. Dùng toán tử " : "
Cú pháp:
<Tên biến>=<Begin>: <Step>: <Limit>
Sẽ tạo ra véc tơ hàng có phần tử đầu tiên là giá trị <Begin>, gia số giữa các phần tử là <Step>, giá
trị phần tử cuối cùng không v-ợt quá <Limit>
Chú ý : Nếu bỏ qua trị số của <Step>, máy sẽ nhận gia số =1
Ví dụ:
Nếu nhập vào sau dấu nhắc dòng lệnh Y=1:2:10

6
Ta nhận đ-ợc véc tơ hàng:
Y =
1 3 5 7 9
Nếu nhập vào sau dấu nhắc dòng lệnh: Y=1:9
Ta nhận đ-ợc véc tơ:
Y =
1 2 3 4 5 6 7 8 9
3. Dùng hàm linspace và logspace:
Cú pháp:
<tên biến>=linspace(<MinVal>, <MaxVal>, <Num>)
Hàm sẽ tạo ra véc tơ hàng có số phần tử bằng <Num>, gia số giữa các phần tử nh- nhau và bằng
(MaxVal-MinVal)/(Num-1), phần tử đầu tiên có giá trị bằng MinVal, phần tử cuối cùng có giá

trị bằng MaxVal
Ví dụ:
Dùng hàm : linspace(1,11,6)
Ta nhận đ-ợc véc tơ
ans =
1 3 5 7 9 11
ứng dụng: Hàm linspace rất tiện dụng trong việc xác định véc tơ các giá trị trên trục hoành khi
vẽ đồ thị
Hàm logspace
Có cú pháp t-ơng tự nh- hàm linspace, tuy nhiên các phần tử biến thiên theo quy luật hàm số mũ
với gia số của các số mũ tăng đều và bằng:
(MaxVal-MinVal)/(Num-1).
Ví dụ : logspace(1,6,6)
Sẽ cho kết quả:
ans =
10 100 1000 10000 100000 1000000
4. Sử dụng các mảng chuẩn
4.1: Ma trận có các phần tử bằng 0
ứng dụng: Ma trận có các phần tử bằng 0 th-ờng dùng trong các tr-ờng hợp sau:
Dùng làm ma trận mồi trong phép tính tổng nhiều ma trận (dùng vòng lặp)
Dùng để tạo ma trận có nhiều phần tử bằng 0 rất th-ờng gặp trong kỹ thuật
Sử dụng hàm zeros:
Cú pháp : <Tên biến>=zeros(<RowNum>, <ColumnNum>)
Tạo ra ma trận với các phần tử 0, có số hàng là <RowNum>, số cột là <ColumnNum>.
Ví dụ: Hàm M=zeros(2,3)
Sẽ cho kết quả
M =

7
0 0 0

0 0 0
4.2: Ma trận có các phần tử bằng 1
ứng dụng: Ma trận có các phần tử bằng 1 th-ờng dùng trong các tr-ờng hợp sau:
Dùng làm ma trận mồi trong phép tính tích các phần tử t-ơng ứng của nhiều ma trận (dùng
vòng lặp)
Dùng để tạo ma trận có các phần tử bằng nhau (dùng khi thực hiện phép tính cộng hoặc trừ
từng phần tử của ma trận với cùng một số).
Sử dụng hàm ones:
Cú pháp : <Tên biến>=ones (<RowNum>, <ColumnNum>)
Tạo ra ma trận với các phần tử 1, có số hàng là <RowNum>, số cột là <ColumnNum>.
Ví dụ: Ví dụ: M=ones(3,4)
Sẽ cho kết quả
M =
1 1 1 1
1 1 1 1
1 1 1 1
M=3.5*ones(3,2)
Sẽ cho kết quả
M =
3.5000 3.5000
3.5000 3.5000
3.5000 3.5000
4.3: Ma trận đơn vị
Để tạo ma trận đơn vị, ta dùng hàm eye;
Cú pháp :
<Tên biến>=eye(<RowNum>, <ColumnNum>); hoặc
<Tên biến>=eye(<Size>)
Cú pháp thứ nhất sẽ tạo ra ma trận đơn vị chữ nhật, có số hàng bằng <RowNum> và số cột bằng
<ColumnNum>.
Cú pháp thứ hai sẽ tạo ra ma trận đơn vị có số hàng bằng số cột bằng <Size>

Ví dụ: I=eye(3,4)
Sẽ tạo ra ma trận
I =
1 0 0 0
0 1 0 0
0 0 1 0
I=eye(4)
Sẽ tạo ra ma trận

8
I =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
4.4 Tạo các mảng đ-ờng chéo,
ứng dụng:
Mảng đ-ờng chéo th-ờng gặp ở các ma trận độ cứng và ma trận khối l-ợng trong tính toán bền
Dùng hàm diag
Cú pháp :
<tên biến>=diag(v)
<tên biến>=diag(v,n)
ở đây:
V là một véc tơ hàng, hoặc cột. hoặc có thể là ma trận
n là số nguyên chỉ đ-ờng chéo nào của ma trận sẽ đặt các phần tử của véc tơ V.
Nếu V là một véc tơ, hàm sẽ cho kết quả là ma trận vuông có các phần tử trên đ-ờng chéo
chỉ định là các phần tử của véc tơ V
Nếu V là một ma trận, sẽ trả kết quả là véc tơ cột của các phần tử nằm trên đ-ờng chéo của
ma trận V
Nếu không chỉ ra n, các phần tử của V sẽ nằm trên đ-ờng chéo chính

Ví dụ:
V=[1 3 5 3]; M=diag(V)
Sẽ cho kết quả
M =
1 0 0 0
0 3 0 0
0 0 5 0
0 0 0 3
M=diag(V,1)
Sẽ cho kết quả
M =
0 1 0 0 0
0 0 3 0 0
0 0 0 5 0
0 0 0 0 3
0 0 0 0 0
M=diag(V,-1)
Cho kết quả
M =
0 0 0 0 0

9
1 0 0 0 0
0 3 0 0 0
0 0 5 0 0
0 0 0 3 0
V=[3 4 6;5 6 7;8 9 6]; M=diag(V)
Cho kết quả:
M =
3

6
6
4.5. Mảng các số ngẫu nhiên
ứng dụng:
Mảng các số ngẫu nhiên dùng nhiều trong đồ hoạ hoặc tạo các nhiễu trong mô phỏng và sử lý số
liêụ thực nghiệm
Sử dụng lệnh rand:
<tên biến>= rand(số hàng, số cột)
Tạo ra mảng các số ngẫu nhiên với số hàng, cột chỉ định
4.6. Mảng tạo từ tệp
Nếu ta ghi các mảng trong một tệp dạng m.file (theo đúng quy cách tạo mảng trong Matlab
nh- trình bày ở trên), ta hoàn toàn có thể gọi mảng vào môi tr-ờng làm việc của Matlab bằng
cách nhập tên của m.file sau dấu nhắc của Matlab và ấn Enter.
Điều này rất thuận tiện khi ta dữ liệu dạng mảng đ-ợc xuất ra từ một ch-ơng trình tính toán
khác
II. Tham chiếu tới các phần tử của mảng, tạo các mảng con
1. Nguyên tắc tham chiếu tới các phần tử của mảng
Để tham chiếu đến một phần tử của mảng, ta cần chỉ ra chỉ số hàng và cột của phần tử (đặt
trong dấu ngoặc đơn)
Ví dụ: để tham chiếu đến phần tử nằm ở hàng số 2 và cột số 3 của ma trận M ta viết M(2,3)
Để tham chiếu đến một nhóm các phần tử của mảng, thay cho việc chỉ ra chính xác chỉ số
của phần tử nh- trên ta phải chỉ ra đ-ợc mảng các chỉ số của các phần tử cần tham chiếu tới
Ví dụ:
M1= M([1 2],[3 2])
sẽ cho ta một ma trận mới:
M1= M
1,3
M
1,2


M
2,3
M
2,2


Dấu : để chỉ toàn bộ các chỉ số của hàng và cột
Ví dụ
M1=M(:,1)

10
sẽ cho ra véc tơ bao gồm các phần tử trên cột thứ nhất của ma trận M
M1=M(2,:)
sẽ cho ra véc tơ bao gồm các phần tử trên hàng thứ hai của ma trận M
Từ khoá end là chỉ số cuối cùng của hàng hoặc cột của mảng
Ví dụ:
M1=M([2 4],[3:end])
Sẽ tạo ra ma trận M1 từ hàng 2 và 4 của ma trận M, mỗi hàng lấy ra từ phần tử thứ 3 đến phần
tử cuối cùng
2. các ứng dụng của việc truy cập các phần tử của mảng
2.1. Lấy các phần tử của mảng ra để tính toán
Ví dụ:
S=V(2)^2+V(5)^2
Sẽ tính tổng bình ph-ơng các giá trị của phần tử thứ 2 và thứ 5 của véc tơ V
S=M(1,2)-M(2,3)
Sẽ tìm ra hiệu của hai phần tử ở hàng 1 cột 2 và hàng 2 cột 3 của ma trận M
2.2. Thay đổi giá trị của từng phần tử của mảng
Ví dụ:
Để tạo ra ma trận












030
000
001
M
, ta thực hiện theo các b-ớc sau:
Tạo ma trận với các phần tử 0: M=zeros(3,3);
Sau đó gán lại các phần tử khác 0 của ma trận: M(1,1)=1;M(3,2)=3;
2.3. Tạo các mảng con từ mảng cơ sở
Ví dụ:
Để lấy ra hàng đầu tiên của ma trận M ta dùng lệnh:
V=M(1,:)
Để tạo ra véc tơ mới bằng cách bỏ đi phần tử đầu tiên của véc tơ V, ta dùng lệnh:
V1=V(2:end);
2.4. Loại bỏ bớt các phần tử của mảng:
Để loại bỏ các phần tử khỏi mảng ta chỉ cần gán giá trị của các phần tử cần loại trị số rỗng: "[ ]"
Ví dụ: nếu ta có ma trận M =
2 3 4
5 3 7
3 2 8
Sau khi dùng phép gán: M(:,1)=[ ]

Ta nhận đ-ợc:
M =
3 4
3 7

11
2 8
2.5. Hợp mảng mới từ các mảng thành phần (nối mảng)
Để tạo mảng từ các mảng thành phần ta dùng dấu "[ ]" bên trong cần chỉ rõ các phần tử đ-a vào
mảng, nếu các phần tử nằm trên 1 hàng, chúng cách nhau bằn dấu cách (b-ớc trống), để xuống
dòng ta dùng dấu ;
Ví dụ:
Nếu ta có 2 véc tơ: V1=[3 5 7 9], V2=[4 6 8 2 7 3]
Khi dùng lệnh:
V=[V1(2:end) V2([1 3 4])]
Ta sẽ nhận đ-ợc:
V =
5 7 9 4 8 2
III. Các phép tính thực hiện trên mảng
1. Các phép toán thông th-ờng
1.1: Phép cộng
Cú pháp :
M=M1 + M2 + M3+
ý nghĩa:
tạo ra mảng mới M có cùng kích th-ớc với mảng M1, M2 , các phần tử của mảng mới sẽ bằng
tổng từng phần tử t-ơng ứng của các mảng thành phần
Điều kiện:
Các mảng M1, M2, phải có cùng kích th-ớc
1.2: Phép trừ
Cú pháp:

M=M1 - M2 - M3
ý nghĩa: Tạo ra mảng M với các phần tử M(i,j)=M1(i,j)-M2(i,j)-M3(i,j)
Điều kiện:
Các mảng M1, M2, phải có cùng kích th-ớc
1.3. Phép nhân
Cú pháp:
M=A*B
ý nghĩa: Nếu A là ma trận có kích th-ớc (i x k) và B là ma trận có kích th-ớc (k x j), ta sẽ nhận
đ-ợc ma trận M có kích th-ớc là (i x j)
với:
),().,(),( jtMtiMjiM
k
1t




Điều kiện:
số cột của ma trận A phải bằng số hàng của ma trận B
1.4 Phép luỹ thừa

12
Cú pháp:
M=A^n, trong đó n là số nguyên d-ơng
Có kết quả nh- là phép nhân n ma trận A với nhau:
Điều kiện: Các ma trận A phải là ma trận vuông
1.5 Phép chia hai ma trận
Cú pháp: M=A/B
ý nghĩa:
Phép chia ma trận hoàn toàn giống nh- phép nhân với ma trận nghịch đảo: M=A/B M=A*B

-1

Điều kiện:
Các ma trận A, B phải là các ma trận vuông cùng kích th-ớc.
2. Sử dụng các toán tử với dấu "."
2.1. ý nghĩa:
Các toán tử có dấu "." (xem bảng d-ới ) sẽ cho phép thao thác trên từng phần tử của mảng
+
Cộng (không có toán tử .+)
-
Trừ (không có toán tử )
.*
Nhân từng phần tử
./
Chia từng phần tử
.^
Luỹ thừa từng phần tử
'
Phép chuyển vị
2.2 Các ví dụ:
VD1: Xác định véc tơ S, với các phần tử đ-ợc xác định bằng quan hệ:
S(i)=Y(i+1)-2*Y(i); i=1 đến n-1, với Y =[3.5 6.2 7.0 5.4 6.2]
ở đây ta sử dụng biểu thức véc tơ:
S=Y(2:end)-2*Y(1:end-1)
VD2: tính giá trị của véc tơ V mà các phần tử của nó đ-ợc xác định bằng biểu thức: V(i)=2*Y(i)-
b, với Y =[3.5 6.2 7.0 5.4 6.2], b=1.5
ở đây ta sử dụng biểu thức véc tơ:
S=2*Y-b*ones(1,5)
VD3: giải hệ ph-ơng trình:









4XX5X2
12X4X5X3
5X7X4
321
321
31

Ta tạo ra các ma trận: M=[4 0 7; 3 5 -4;2 5 1]; Y=[5;12;4]
nghiệm của hệ đ-ợc xác định bằng biểu thức:
X=eye(3,3)/M*Y
Hoặc
X=inv(M)*Y % lệnh inv đảo ma trận M
Hoặc

13
X=M\Y
Với ba biểu thức trên đều cho kết quả:
X =
3.0000
-0.2000
-1.0000
3. Các hàm dùng trên mảng
3.1 Các hàm dùng chung:

Tất cả các hàm tính toán trên dữ liệu số đều có thể thực hiện trên dữ liệu mảng, và cho kết quả là
mảng có cùng kích cỡ
Ví dụ:
Để vẽ đồ thị của hàm số:
)(cos1
)2cos(2)(sin
2
2
X
XX
Y



, X=0 đến pi
Ta sử dụng các lệnh sau:
X=linspace(0,pi,20);
Y=(sin(X).^2+2*cos(2*X))./(ones(1,20)+cos(X).^2);
plot(X,Y)
3.2 Các hàm dùng cho việc xử lý dữ liệu
a. Hàm sum
Cú pháp : sum(A)
Nếu A là một véc tơ, hàm sẽ trả kết quả là tổng các phần tử của véc tơ
Nếu A là một ma trận, hàm sẽ trả kết quả là một véc tơ hàng với các phần tử là tổng các
phần tử của mỗi cột trong ma trận A
b. Các hàm lật ma trận
Hàm flipud(A), chuyển các hàng từ d-ới lên trên
Hàm fliplr(A) , chuyển các hàng từ phải sang trái
Ví dụ: Nếu ta có ma trận M =
4 0 7

3 5 -4
2 5 1
Hàm flipud(M)
Sẽ đ-a ra két quả
ans =
2 5 1
3 5 -4
4 0 7
Hàm fliplr(M)
Sẽ đ-a ra kết quả

14
ans =
7 0 4
-4 5 3
1 5 2
c. Hàm lấy ra ma trận đ-ờng chéo
Hàm triu(A), lấy ra ma trận đ-ờng chéo phía trên
Hàm tril(A), lấy ra ma trận đ-ờng chéo phía d-ới
Ví dụ: Nếu có ma trận M ở trên
Khi dùng hàm triu(M), Ta nhận đ-ợc:
ans =
4 0 7
0 5 -4
0 0 1
Nếu dùng hàm: tril(M), ta sẽ nhận đ-ợc:
ans =
4 0 0
3 5 0
2 5 1

d. Hàm size
cú pháp :
S=size(A) : đ-a ra véc tơ hàng chỉ số l-ợng hàng và cột của ma trận
[r,c]=size(A) gán số hàng cho r, số cột cho c
Ví dụ: Nếu có ma trận M ở trên
Nếu gọi lệnh : S=size(M), ta nhận đ-ợc:
S = 3 3
e. Hàm cumsum
Cú pháp:
B = cumsum(A)
B = cumsum(A,dim)
Mô tả:
Nếu A là một véc tơ, B = cumsum(A) sẽ đ-a ra kết quả là véc tơ B có các phần tử là tổng
tích luỹ của các phần tử của véc tơ A: đ-ợc xác định bằng công thức:


i
1
iAiB )()(

Nếu A là một ma trận, cumsum(A) Sẽ đ-a ra kết quả là ma trận có cùng kích cỡ với A và
các phần tử của nó t-ơng ứng là tổng tích luỹ của các phần tử trên từng cột của ma trận A .
B = cumsum(A,dim) Sẽ đ-a ra kết quả là ma trận B có cùng kích th-ớc với A, các phần tử
của véc tơ B sẽ là tổng tích luỹ của các phần tử dọc theo hàng hoặc cột của ma trận A, tuỳ
thuộc vào trị số của <dim>. Ví dụ cumsum(A,1) sẽ tính dọc theo các cột, cumsum(A,2)
sẽ tính dọc theo các hàng.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×