Professional Documents
Culture Documents
GT Matlab Va Ung Dung 2952 3
GT Matlab Va Ung Dung 2952 3
ỗ i nói đ u ...................................................................................................................... 1
ớồ ộ I. ỘỌTỗỌọ C ọ ộ ........................................................................................ 3
Chư ng . Ộ Đ U .................................................................................................. 3
. M t s kiến th c cơ b n .................................................................................... 5
. . C{c l nh qu n lý ............................................................................................. 5
. . C{c l nh nh p xu t d li u ............................................................................ 7
. Ởơ l c về M-file .............................................................................................. 12
. Đ i s tuyến tính.............................................................................................. 36
. Ở ph c ............................................................................................................. 49
. Đa th c m t biến s ......................................................................................... 57
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
. ớh ơng trình vi ph}n ...................................................................................... 61
. Ma tr n biến ký hi u ....................................................................................... 75
. M ng h n h p .................................................................................................. 89
. . ởhiết l p m ng h n h p ............................................................................... 89
. . C u trúc lồng nhau v| vector biến c u trúc lồng nhau ........................... 103
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
. . Ở dụng plot .............................................................................................. 120
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
. ‛iến đ i z ........................................................................................................ 196
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
L i nói đ u
M‚ởỗ‚‛ đ c trang bị sẵn nhiều h|m để thực hi n c{c nhi m vụ kh{c nhau
thu c nhiều lĩnh vực, từ đơn gi n thực hi n c{c phép tính to{n học đến c{c nhi m
vụ ph c t p nh tìm nghi m c a ph ơng trình vi ph}n, t i u hóa, x lý
nh ởhêm n a, M‚ởỗ‚‛ còn đ c trang bị c{c c}u l nh c u trúc dùng cho l p
trình cho phép ng i dùng tự ph{t triển c{c ch ơng trình theo mục đích riêng cho
nh ng b|i to{n cụ thể gặp ph i trong thực tế.
Cu n gi{o trình n|y đ c biên so n cho sinh viên khoa Cơ học Ỗỹ thu t v| ởự
đ ng hóa, tr ng Đ i học Cẫng ngh , Đ i học Qu c gia H| ộ i nhằm giúp sinh
viên l|m quen v i M‚ởỗ‚‛. s dụng M‚ởỗ‚‛ để gi i c{c b|i to{n đơn gi n v|
tiến t i l p trình tính toán mô phỏng cho các bài toán cơ bản phức tạp hơn. Khi đã
nắm đư c những kiến thức cơ bản về khả năng, phương thức làm vi c của
MATLAB và kỹ năng lập trình, sinh viên có thể xây dựng các chương trình phức
tạp hơn trong MATLAB để giải quyết hi u quả các v n đề thực tế liên quan đến
ngành, chuyên ngành đã học. Cuốn sách đư c dùng kết h p với các bài giảng và các
buổi thực hành để trang bị những kiến thức c n thiết cho các nhà khoa học và kỹ sư
tương lai để có thể phát triển và nâng cao khả năng tính toán, xử lý và phân tích
những v n đề chuyên môn đa dạng với sự tr giúp của máy tính.
ộ i dung gi{o trình gồm c{c ch ơng sau:
Ch ơng M đầu,
Ch ơng ỡector v| ma tr n
Ch ơng ởính to{n s v i M‚ởỗ‚‛
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng ‛ cẫng cụ ký hi u
Ch ơng M ng h n h p v| d li u có c u trúc
Ch ơng 6: Đồ thị trong MATLAB
Ch ơng 7: ỗ p trình trong MATLAB
Ch ơng ớh}n tích đ ng học cơ c u
Ch ơng ỗý thuyết điều khiển tự đ ng
Ỗết thúc m i ch ơng, sinh viên có thể tự ẫn t p v| c ng c kiến th c đã học
qua mục t ng h p c{c l nh trong ch ơng v| b|i t p có l i gi i t ơng ng. Đ i v i
nh ng b|i t p khẫng có l i gi i chi tiết, sinh viên có thể trao đ i v i gi ng viên
trong c{c bu i thực h|nh.
ộgo|i ra để cung c p thẫng tin định h ng cho sinh viên mu n tìm hiểu
thêm nh ng cẫng cụ dùng cho nh ng ng dụng chuyên s}u ởoolbox , m t s b
cẫng cụ ph biến sẽ đ c gi i thi u tóm tắt trong phần phụ lục.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 3
ớồ ộ I. MATLAB C ọ ộ
Chư ng . Ộ Đ U
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 4
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 5
ỏ u % đ c s dụng để viết chú thích cho c}u l nh. Mọi ký tự phía sau d u % sẽ
khẫng đ c M‚ởỗ‚‛ x lý. ỡí dụ l y a nh}n v i b v| g{n gi{ trị cho d
>> d = a*b
1.2 Ộ t s ki n th c c b n
1.2. C{c l nh qu n lý
ởrong M‚ởỗ‚‛ khi gặp tr ng h p th i gian thực hi n l nh qu{ l}u, có
thể s dụng t h p phím ctrl + c để ngừng c{c tính to{n đang thực thi. C}u l nh
m i có thể đ c nh p v|o t i d u nhắc xu t hi n sau khi thực hi n t h p phím
vừa nêu, l nh ngắt n|y đặc bi t hi u qu khi l p trình v i vòng lặp.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 6
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 7
1.2. C{c l nh nh p xu t d li u
ộh p d li u từ b|n phím input
Cú ph{p
>>bien = input(‘text’)
>>bien = input(‘text’ ‘s’)
ởrong đó: bien l| tên biến b t kỳ do ng i s dụng đặt, text l| đo n văn b n
sẽ hiển thị th|nh c}u nhắc trên m|n hình, s l| tham s để M‚ởỗ‚‛ hiểu v| x lý
d li u nh p v|o d ng x}u ký tự.
c hai cú ph{p trên, đo n văn b n sẽ đ c hiển thị trên m|n hình, đồng
th i M‚ởỗ‚‛ sẽ ch ng i s dụng nh p ký tự từ b|n phím tuy nhiên khi s
dụng cú ph{p th nh t, ng i dùng chỉ có thể nh p v|o m t s , còn cú ph{p th
hai, ng i dùng có thể nh p v|o m t x}u ký tự sau khi đã thẫng b{o cho
M‚ởỗ‚‛ bằng tham s s. ởr ng h p thực hi n l nh input khi ng i dùng khẫng
nh p gi{ trị m| b m trực tiếp phím Ốnter thì gi{ trị tr về sẽ l| m t m ng r ng.
ỡí dụ
>> Lop = input(‘Ban hoc lop nao: ‘, ‘s’)
Ban hoc lop nao: Co Dien Tu
Lop = Co Dien Tu
>>x=10;
>>SoSV = input(‘Lop ban co bao nhieu sinh vien: ‘)
Lop ban co bao nhieu sinh vien: 80
SoSV = 80
>>SVG = input(‘Bao nhieu sinh vien duoc A+ mon MATLAB:
‘)
Bao nhieu sinh vien duoc A+ mon MATLAB: x
SVG = 10
ộh p d li u từ file load
ởrong M‚ởỗ‚‛ có r t nhiều c{ch để t i d li u từ file v|o Ợorkspace,
trong đó đơn gi n nh t l| l nh load cho phép t i to|n b n i dung file v|o
Ợorkspace. Yêu cầu khi s dụng l nh load l| n i dung file đ c t i ph i d ng
ma tr n ch a c{c s , m i s c{c dòng ph}n c{ch nhau bằng ký tự tr ng, d u
phẩy hoặc tab. ốile có thể ch a c{c dòng chú thích trong M‚ởỗ‚‛ c{c dòng bắt
đầu bằng ký tự % .
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 8
Cú ph{p
>>load name.ext
ởrong đó name.ext l| tên file ch a d li u cần t i. ộếu trong phần tên file
khẫng có phần m r ng ext, M‚ởỗ‚‛ sẽ tìm trong th mục hi n h|nh file có tên
name.mat, nếu khẫng tìm th y name.mat hoặc tên file khẫng có phần m r ng
khẫng ph i l| mat ví dụ txt, dat thì M‚ởỗ‚‛ sẽ coi file đó l| file ch a d li u
ASCII.
ỗ nh load nh đã nói trên sẽ cho phép t i to|n b n i dung trong file
name.ext v|o trong Ợorkspace.
ỡí dụ T o trong th mục hi n h|nh file diem.txt l| m t ma tr n h|ng c t
có n i dung nh sau
10 8 8.8
7 9 8.2
5 8 6.8
9 6 7.2
9 10 9.6
Ởau đó t i d li u từ file v|o Ợorkspace rồi copy v|o c{c vector x, y, z.
C{c c}u l nh cần thực hi n có thể nh sau
>>load diem.txt
t i d li u từ file v|o ma tr n
>>x = diem(:,1);
copy c t c a diem vao vector x
>>y = diem(:,2);
copy c t c a diem v|o vector y
>>z = diem(:,3);
copy c t c a diem v|o vector z
ộh p d li u từ file fscanf
Cho phép t i d li u từ file ma tr n m| c{c kiểu d li u c a c{c phần t l|
khẫng gi ng nhau.
Cú ph{p
>>A = fscanf(fid, format)
ởrong đó file đ c x{c định b i tham s fid (file identifier l| s nguyên x{c
định file có từ l nh fopen cú ph{p fid = fopen(filename) ), format l| định
d ng d li u. ởo|n b d li u có định d ng format sẽ đ c copy từ file x{c định
b i fid v|o trong Ợorkspace v| sắp xếp theo d ng c t.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 9
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 10
>>disp(A)
xu t ra ma tr n ‚ thu đ c từ ví dụ trên
>>nhap = ‘Kiem tra lenh disp’
>>disp(nhap)
Kiem tra lenh disp
ợu t d li u theo định d ng ra file hoặc ra m|n hình fprinf
Cú ph{p
>>fprintf(fileID,formatSpec,A1,...,An)
>>fprintf(formatSpec,A1,...,An)
ởrong đó fileID l| s nguyên x{c định file thu đ c khi s dụng l nh fopen,
formatSpec l| định d ng {p dụng cho c{c phần t c a m ng “ , “ , …, “n.
Cú ph{p th nh t cho phép xu t ra file d li u d i d ng c t {p dụng định
d ng formatSpec đ i v i c{c phần t c a m ng “ , “ , …, “n.
Cú ph{p th hai {p dụng định d ng formatSpec cho d li u v| xu t ra m|n
hình.
C{c định d ng cho vi c xu t, nh p d li u xem b ng phần .
ỡí dụ sau trình b|y c{ch m file vd1.txt v| ghi v|o n i dung d i đ}y
Diem cua sinh vien 1 la: 8
Diem cua sinh vien 2 la: 9
Diem cua sinh vien 3 la: 10
>> A=[1 2 3;8 9 10];
>> fileID=fopen(‘vd1.txt’,’w’);
>> formatSpec=‘Diem cua sinh vien %d la: %d\n’;
>> fprintf(fileID,formatSpec,A);
>> fclose(fileID);
ộ i dung trên cễng có thể xu t trực tiếp ra m|n hình
>> fprintf(formatSpec,A);
ỗ nh fprintf còn cho phép định d ng sẵn s ký tự dùng để biểu di n c{c
biến. ỡí dụ % d sẽ s dụng m t kho ng r ng ký tự để biểu di n m t s nguyên,
% s sẽ s dụng m t kho ng r ng ký tự để biểu di n m t x}u. Đ i v i s thực,
s ch s phần th p ph}n cễng đ c x{c định, ví dụ % . f đồng nghĩa v i vi c
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 11
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 12
. Ở lư c v Ộ-file
‛ên c nh vi c cho phép ng i s dụng thao t{c trực tiếp trên c a s l nh,
hi n m t t p h p c{c l nh lặp lặp đi lặp l i hoặc tự x}y dựng cho mình c{c h|m
M-file có thể đ c t o đơn gi n bằng vi c chọn New trên danh mục File v|
M-file bằng c{ch gậ tên c a file lên c a s l nh, hoặc có thể copy m t phần c a file
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 13
cho hai biến a v| b, dòng tiếp theo lần l t tính t ng, hi u, tích t ơng ng c a
hai s trên. Ỗhi gậ qh_ so trên c a s l nh, M‚ởỗ‚‛ sẽ hiển thị nh sau
>>qh_2so
a = 5
b = 3
tong = 8
hieu = 2
tich = 15
ỗ i ích đầu tiên c a vi c s dụng M-file có thể th y đ}y l| nếu ta có nhiều
cặp gi{ trị (a, b) thì chỉ vi c thay gi{ trị t ơng ng v|o qh_2so v| ch y l i file ch
đó, nh đã nói trên, M‚ởỗ‚‛ cho phép ng i dùng tự x}y dựng c{c h|m v i
c{c tham s đầu v|o cễng nh gi{ trị tr về t ơng ng, sau đ}y l| m t ví dụ đơn
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 14
end
C u trúc cơ b n đ i v i m t h|m trong M‚ởỗ‚‛ l| dòng khai b{o h|m bắt
đầu bằng từ khóa function, tiếp đến l| c{c thẫng tin liên quan về gi{ trị đầu ra v|
đầu v|o, kết thúc h|m bằng từ khóa end, phần n i dung gi a l| c{c l nh phù
h p theo yêu cầu b|i to{n. H|m tong.m vừa x}y dựng có thể đ c gọi trong c a s
l nh nh sau
>>t1 = tong(3,2)
t1 =
5
>>t2 = tong(6,4)
t2 =
10
Ộ t s ký t đặc bi t
: ở o kho ng c{ch gi a c{c phần t c{ch đều, biểu di n m t
h|ng/c t c a ma tr n
( ) ộgoặc bao tham s h|m, chỉ s m ng, vector
[ ] ộgoặc bao phần t m ng, vector
. ỏ u ngăn c{ch phần nguyên v| phần th p ph}n
… Ỗý hi u dòng liên tục
, ộgăn c{ch c{c c}u l nh v| c{c phần t trên cùng m t h|ng
; ộgắt c t v| khẫng hiển thị kết qu sau khi thực hi n l nh
% ởhể hi n phần chú thích v| c{c định d ng đặc bi t
ộhóm l nh qu n lý
clc ợóa m|n hình c a c a s l nh
clear ợóa biến kh i b nh
help ởr giúp khi biết chính x{c tên h|m
lookfor ởr giúp khi khẫng biết chính x{c tên h|m
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 15
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 16
ọ|i . ộh p l nh
ộh p lần l t c{c l nh sau, tr c khi nh p hãy dự đo{n kết qu in ra m|n hình
a) >>a = 1 + 2 + 3 + 4 + 5 +6
b) >>b = 1 + 2 + 3 + 4 + 5 + 6;
c) >>b +3
d) >>1 + 2 + 3 + 4 + 5 + 6
e) >>c = 10*ans
Đáp án:
a) a = gi{ trị c a t ng + + + + + l u v|o biến a, kết qu a = hiển
thị trên c a s l nh.
b) b = , kết qu c a phép tính khẫng hiển thị trên m|n hình c a s l nh do
có d u ; cu i c}u l nh, tuy nhiên gi{ trị c a t ng + + + + + v n
đ c l u v|o biến b.
c) ans = , kết qu phép tính b + 3 hiển thị trên m|n hình c a s l nh, trong
tr ng h p phép tính khẫng x{c định biến l u kết qu nh c}u n|y, kết
qu sẽ tự đ ng g{n v|o biến ans.
d) ans = 21
e) c = Ỗết qu c}u n|y phụ thu c v|o c}u d do có s dụng biến ans trong
phép tính, do c}u d ta có ans = 21 nên c = 210.
b) 4 2 / 2
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 17
c) sin
4
d) log(e)
Đáp án:
a) 0.1707
b) 2.5198
c) 0.7071
d) log(exp(1)) 1
ỗưu ý: th tự u tiên c{c phép tính trong M‚ởỗ‚‛. ởrong M‚ởỗ‚‛, c{c phép
tính đ c thực hi n theo th tự nh quy định trong đ i s , trong đó l)y thừa
thực hi n tr c, tiếp theo l| c{c phép nhân, chia rồi đến cộng, trừ. ởuy nhiên khi
xu t hi n ngoặc , phép tính trong ngoặc sẽ đ c u tiên tr c. Đ i v i
nh ng phép tính có cùng m c u tiên, trình tự tính to{n tiến h|nh từ tr{i qua
ph i.
ỡí dụ Phép tính d i đ}y đ c thực hi n trong M‚ởỗ‚‛ nh sau
1 4 6
23 5 7
2
x
1 x2
c)
d) x 3 sin( x 2 )
e) x1 / 2
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 18
tan 1 ( x)
1 x2
f)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 19
Đáp án:
>>save bai1_6 sv diem
>>clear all
>>load bai1_6
Có thể s dụng load để t i v|o Ợorkspace c{c biến cụ thể từ file theo cú
ph{p load filename var, ví dụ b|i n|y có thể dùng >>load vd1_6 diem để
chỉ load biến diem từ file v|o Ợorkspace.
ọ|i . fopen v| fscanf
Ở dụng m t ch ơng trình so n th o b t kỳ, t o file bai1_7.txt có n i dung
l| m t ma tr n nh sau
1 2 3 4
5 6 7 8
0 0 0 0
Ở dụng fopen v| fscanf để hi n thị l i ma tr n trên lên m|n hình c a s
l nh.
Đáp án: để s dụng fscanf tr c tiên ta cần thẫng s fid l y từ l nh fopen
>>fid = fopen(‘bai1_7.txt’);
ỗưu ý: khi dùng fopen, tên file đ a v|o khẫng có phần m r ng, M‚ởỗ‚‛
sẽ tự đ ng tìm .mat file có tên nh tên đ a v|o, nếu fopen khẫng thể m
đ c file, fid sẽ nh n gi{ trị = -1.
>>fscanf(fid, ‘%d’, [4,3]);
M‚ởỗ‚‛ l|m vi c v i ma tr n theo c t, m{y tính x lý file theo dòng. ốile
bai1_7.txt có ma tr n h|ng c t t ơng đ ơng v i s dòng c a file l| . Ỗhi
thực thi, fscanf đọc từng s c a file, l y s đầu c a h|ng , tiếp đến s
c a h|ng , cu i cùng l| s c a h|ng , đ a t t c s n|y v|o m t ma
tr n m t c t. Ởinh viên có thể tự kiểm tra l i bằng c{ch nh p l nh
>>fscanf fid, %d thay vì >>fscanf fid, %d , , . ví dụ n|y ta s dụng
, để yêu cầu M‚ởỗ‚‛ t i d li u từ file v|o ma tr n h|ng c t. ộh
v y phần t c a dòng th nh t trong file đ c đ a v|o vị trí t ơng ng
c a c t ma tr n m i t o, phần t c a dòng th hai đ c đ a từ file v|o
vị trí t ơng ng c a c t Ma tr n thu đ c sau b c n|y sẽ có d ng:
1 5 0
2 6 0
3 7 0
4 8 0
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 20
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 21
>> fclose(fid);
ọ|i . Input
ở o biến r có gi{ trị nh p v|o từ b|n phím l| b{n kính c a hình cầu theo
cm. In ra m|n hình thể tích v| di n tích bề mặt hình cầu theo m u sau
The tich hinh cau la V cm khoi
Dien tich hinh cau la S cm vuong
trong đó gi{ trị thể tích v| di n tích có hai ch s sau d u th p ph}n
Cẫng th c tính thể tích v| di n tích bề mặt t ơng ng
V r 2 , S 4 r 2
4
3
Đáp án:
>>r = input(‘Nhap ban kinh hinh cau (cm): ‘);
>>tt = 4/3*pi*r^3;
>>dt = 4*pi*r^2;
>>fprintf('\nThe tich hinh cau la %.2f cm khoi\nDien
tich hinh cau la %.2f cm vuong\n',tt,dt);
ọ|i . Đ iđ nv
ở o biến pounds để l u trọng l ng theo pounds có gi{ trị nh p v|o từ b|n
phím, đ i ra kilograms v| g{n gi{ trị cho biến kilos. Gi{ trị quy đ i l|
1 kilogramm = 2.2 pounds
ọ|i . Đ i đ n v ti p
ở o biến ftemp để l u nhi t đ theo ốahrenheit ố có gi{ trị nh p v|o từ
b|n phím, đ i ra đ Celcius C v| l u kết qu v|o biến ctemp. Gi{ trị quy
đ i l|
C ( F 32)
5
9
ọ|i . Đ nh d ng hi n th
ởìm lựa chọn cho l nh format để có thể hiển thị kết qu sau
>>5/16 + 2/7
ans =
67/112
ọ|i . ộhi t đ c m nh n v| nhi t đ th c t
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 22
Gió th ng l|m cho khẫng khí l nh hơn so v i thực tế. Cẫng th c tính
nhi t đ c m nh n khi biết nhi t đ thực tế ở đ Celcius v| v n t c gió ỡ
km/h hai gi{ trị ở, ỡ nh p v|o từ b|n phím
WT 0.045 (5.2735 V 10.45 0.2778 V ) (T 33.0) 33
ở o biến ở, ỡ l u nhi t đ c m nh n v| t c đ gió có gi{ trị nh p từ b|n
phím, tính gi{ trị nhi t đ c m nh n, in ra m|n hình kết qu nh sau
Nhiet do thuc te: (do C)
Toc do gio: (km/h)
Nhiet do cam nhan: (do C)
Ỗiểm tra v i ở = do C , ỡ = km/h
ọ|i . rand
H|m rand cho phép t o s thực trong kho ng ,
a) ở os thực trong kho ng ,
b) ở os thực trong kho ng ,
c) ở os thực trong kho ng ,
d) ở os nguyên trong kho ng ,
e) ở os nguyên trong kho ng ,
f) ở os nguyên trong kho ng ,
ọ|i . ọi u di n s th c
Ở dụng fprintf biểu di n s thực .
a) ởrong kho ng r ng ký tự v i ch s phần th p ph}n
b) ởrong kho ng r ng ký tự v i ch s phần th p ph}n
c) ởrong kho ng r ng ký tự v i ch s phần th p ph}n
d) ởrong kho ng r ng ký tự v i ch s phần th p ph}n
ọ|i . ọi u di n ký t
ở o hai biến sau
x = 12.34
y = 4.56
Điền v|o ch tr ng trong l nh fprintf d i đ}y để có thể hiển thị c{c kết qu
a) >>fprintf(
0123456789
0000012.340
b) >>fprintf(
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 23
0123456789
12
c) >>fprintf(
0123456789
4.6
d) >>fprintf(
0123456789
4.6 !
G i ý Để chuyển đ i m t ch th|nh s t ơng ng trong b ng mã ‚ỞCII s
dụng l nh double hoặc int32, ví dụ >>double a sẽ đ a ra kết qu . Để
chuyển ng c l i dùng h|m char, ví dụ >>char(97) sẽ đ a ra kết qu a.
ọ|i . ọ|i to{n thu nh p
ởrung bình con ng i s dụng đến % thu nh p cho thực phẩm. ở o
biến l u gi{ trị thu nh p m t năm c a m t ng i nh p từ b|n phím
dollars , in ra m|n hình s tiền bình qu}n ng i đó s dụng trong m t
th{ng để mua thực phẩm biểu di n bằng s th p ph}n có hai ch s sau
d u th p ph}n
Thu nhap mot nam cua ban la:
Moi thang ban su dung tu X den Y dollars de mua thuc pham
ọ|i . V n t c m{y bay
ỡ n t c m{y bay th ng ghi theo miles/h hoặc m/s. ở o biến l u v n t c
m{y bay theo miles/h nh p v|o từ b|n phím v| in ra m|n hình v n t c m/s.
‛iết rằng h = s, mile = feet, foot = . m feet l| s nhiều c a
foot)
Nhap van toc may bay theo (miles/hour):
Van toc may bay theo meters/second la:
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 1. M Đ U 24
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 25
Chư ng . VỐCTỚờ Vủ ỘỌ Tờ ộ
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 26
1 2 3 4
ởrong tr ng h p c{c phần t trong ma tr n có gi{ trị c{ch đều nhau, d u :
có thể s dụng để thiết l p vector, trong tr ng h p n|y khẫng cần s dụng
ngoặc vuẫng [ ] n a. ỡí dụ
>>v1 = 1 : 5
v1 =
1 2 3 4 5
ỏ u : cễng có thể s dụng để thiết l p vector m| c{c phần t c{ch nhau m t
kho ng cho tr c theo cẫng th c s đầu kho ng c{ch s cu i ).
ỡí dụ: T o vector gồm c{c s nguyên từ đến c{ch đều
>>v2 = 1 : 2 : 9
v2 =
1 3 5 7 9
ỡí dụ ỏự đo{n v| kiểm tra kết qu bằng M‚ởỗ‚‛ khi kho ng c{ch nh p
v|o d n đến vi c v t qu{ kho ng định nghĩa b i s đầu s cu i
>>1 : 2 : 6
ỗ nh n|y sẽ t o m t vector bao gồm c{c phần t , , . ởăng thêm v|o
sẽ v t qua , vì thế vector sẽ dừng . Ỗết qu hiển thị sẽ l|:
1 3 5
ở ơng tự ta có h|m linspace (lineary spaced), cho phép t o vector có c{c
phần t c{ch đều theo cú ph{p sau
>>linspace (x, y, n)
Trong đó n l| s phần t sẽ đ c t o ra nằm trong kho ng gi i h n gi a x
v| y. Đ i v i tr ng h p n = 1 h|m linspace sẽ tr về gi{ trị y.
ỡí dụ: L nh sau sẽ t o vector có phần t trong kho ng đến
>>ls = linspace (3, 15, 5)
ls =
3 6 9 12 15
ỡector cễng có thể đ c thiết l p dựa trên nh ng biến có sẵn. ỡí dụ: Vector
m i đ c thiết l p d i đ}y bao gồm t t c c{c phần t c a vector v2 v| vector ls:
>>newvec = [v2 ls]
newvec =
1 3 5 7 9 3 6 9 12 15
Truy xu t v| thay đ i c{c ph n t trong m t vector
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 27
M i phần t trong vector có thể truy xu t đến bằng c{ch s dụng tên vector
v| chỉ s c a phần t đó trong ngoặc ( ). ỡí dụ: Phần t th c a vector newvec
l|
>>newvec (5)
ans =
9
Ở dụng d u : cễng có thể truy xu t đến c{c phần t trong m t vector. ỡí
dụ: C}u l nh sau sẽ l y từ phần t th t đến phần t th s{u c a vector newvec
v| l u gi{ trị v|o vector b:
>>b = newvec (4 : 6)
b =
7 9 3
‛ên c nh vi c s dụng d u : c{c phần t trong vector n|y có thể đ c truy
xu t b i c{c vector kh{c, gọi l| vector chỉ s . ỡí dụ: C}u l nh sau sẽ l y ra phần t
th nh t, th năm v| th m i c a vector newvec:
>>newvec ([1 5 10])
ans = 1 9 15
Gi{ trị c a m i phần t trong m t vector có thể thay đ i bằng c{ch g{n gi{
trị kh{c cho phần t c a vector đó vị trí t ơng ng. ỡí dụ: Phần t th hai c a
vector b sau khi thực hi n c}u l nh d i đ}y sẽ ch a gi{ trị l|
>>b (2) = 11
b =
7 11 3
Ỗhi g{n gi{ trị cho m t phần t trong m t vector m| chỉ s c a phần t đó
khẫng tồn t i, ta có thể m r ng vector đó. ỡí dụ vector b trên có phần t . Ỗhi
ta g{n gi{ trị cho phần t th t c a b, b tr th|nh vector có phần t
>>b (4) = 1
b =
7 11 3 1
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 28
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 29
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 30
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 31
ộếu chỉ s dụng m t chỉ s ch s tuy n tính để truy xu t đến c{c phần
t trong ma tr n, M‚ởỗ‚‛ khi đó sẽ sắp xếp l i t t c c{c phần t ma tr n đó v|o
m t c t. ỡí dụ ma tr n intmat đ c t o đ}y, phần t th nh t v| th hai c a ma
tr n l| hai phần t t ơng ng c a c t th nh t, phần t th ba v| th t c a ma
tr n l| phần t th nh t v| th hai c a c t th hai.
>>intmat = [100 77; 28 14]
intmat =
100 77
28 14
>>intmat (1)
ans = 100
>>intmat (2)
ans = 28
>>intmat (3)
ans = 77
>>intmat (4)
ans = 14
Để thay đ i gi{ trị c a c{c phần t đơn lẻ trong ma tr n, có thể truy xu t
đến v| g{n cho phần t đó gi{ trị m i. ỡí dụ: Đ i v i ma tr n mat t o tr c đó
>>mat(1, 2);
ans =
2 11 4
3 4 5
ở ơng tự có thể thay đ i gi{ trị c a c m t h|ng hoặc m t c t c a ma tr n
>>mat (2, :) = 5:7
ans =
2 11 4
5 6 7
Để m r ng ma tr n, khẫng thể chỉ thêm v|o m t phần t vì khi đó sẽ l|m
s phần t c a m i h|ng tr nên kh{c nhau m| cần thêm v|o c h|ng hoặc c t. ỡí
dụ: Chèn thêm c t th t v|o ma tr n mat trên
>>mat (:, 4) = [9; 2]
mat =
2 11 4 9
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 32
5 6 7 2
ở ơng tự nh đ i v i vector, nếu h|ng hoặc c t thêm v|o so v i h|ng hoặc
c t cu i cùng c a ma tr n hi n th i khẫng ph i l| liền nhau, M‚ởỗ‚‛ sẽ tự điền
đầy ma tr n bằng c{c gi{ trị . ỡí dụ: Chèn thêm h|ng th t v|o ma tr n mat chỉ
có hai h|ng
>>mat (4, :) = 2 : 2 : 8
ans =
2 11 4 9
5 6 7 2
0 0 0 0
2 4 6 8
Ỗích thư c c a ma tr n
C{c h|m length, size trong M‚ởỗ‚‛ đ c s dụng để x{c định kích th c
c a vector v| ma tr n. Cú ph{p gọi h|m nh sau
>>length(X)
>>size(X)
ởrong đó X l| vector, ma tr n đ c quan t}m.
H|m length tr về s phần t c a m t vector. H|m size tr về s h|ng v|
s c t c a ma tr n hoặc vector. ỡí dụ vector vec t o d i đ}y có b n phần t , nh
v y gi{ trị tr về c a h|m length vec sẽ có gi{ trị l| . ỡector vec cễng có thể coi l|
m t ma tr n m t h|ng b n c t, nh v y kích th c c a vec sẽ l| × .
>>vec = -2 : 1
vec = -2 -1 0 1
>>length (vec)
ans =
4
>>size (vec)
ans =
1 4
H|m size tr về s h|ng v| s c t c a m t ma tr n vì thế để có thể l u c{c
gi{ trị n|y v|o c{c biến kh{c nhau ta có thể s dụng m t vector có hai biến vế
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 33
tr{i c a c}u l nh. ‛iến h sẽ l u gi{ trị đầu tiên tr về, t ơng ng v i s h|ng c a
ma tr n, biến c sẽ l u gi{ trị s c t.
>>mat = [1 : 3; 5 : 7]’
mat =
1 5
2 6
3 7
>>[h, c] = size (mat)
h =
3
c =
2
Ỗhi s dụng v i ma tr n, h|m length sẽ tr về s h|ng hoặc s c t c a ma
tr n đó, tùy v|o gi{ trị n|o l n nh t.
>>length (mat)
ans =
3
ộgo|i ra trong M‚ởỗ‚‛ còn có h|m numel tr về t ng s phần t trong
m t vector hoặc ma tr n theo cú ph{p sau
N = numel(A)
ởrong đó ộ l| s phần t tr về c a m ng ‚
Đ i v i vector, h|m n|y có ý nghĩa t ơng đ ơng h|m length, đ i v i ma
tr n, numel tr về gi{ trị l| tích c a s h|ng v| s c t c a ma tr n đó.
>>numel (vec)
ans =
4
>>numel (mat)
ans =
6
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 34
phép c ng hai ma tr n có thể đ c thực thi s dụng phép to{n +. ở ơng tự phép
trừ hai ma tr n thực hi n b i phép to{n -, biểu di n cij aij bij .
k 1
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 35
1 2
2 2
>>Ainv = inv(A)
Ainv =
-1.0000 1.0000
1.0000 -0.5000
>>A*Ainv
ans =
1 0
0 1
ộếu ma tr n ‚ l| ma tr n khẫng kh nghịch, M‚ởỗ‚‛ sẽ đ a ra l i c nh
b{o v| cễng có thể đ a ra ma tr n m| c{c phần t đều l| Inf.
>>inv([1 1; 0 0])
Warning: Matrix is singular to working precision
ans =
Inf Inf
Inf Inf
Đ nh th c c a ma tr n vuẫng ‚ trong M‚ởỗ‚‛ đ c tính theo h|m det.
ồ ng c a ma tr n ‚ trong M‚ởỗ‚‛ đ c tính theo h|m rank.
ớhép nh}n vô hư ng c a hai vector t ơng tự nh phép nh}n ma tr n khi ta
nh}n vector h|ng av i vector c t b, kết qu thu về l| m t gi{ trị vẫ h ng m t s .
ởrong M‚ởỗ‚‛ có thể thực hi n bằng c{ch s dụng phép to{n * gi a a v| chuyển
vị c a b, hoặc s dụng h|m dot theo cú ph{p
>>C = dot(A, B);
ởrong đó C l| gi{ trị tích vẫ h ng c a hai vector A v| B
ỡí dụ
>>vec1 = [4 2 5 1];
>>vec2 = [3 6 1 2];
>>vec1 * vec2’
ans =
31
>>dot(vec1, vec2)
ans =
31
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 36
. Đ i s tuy n tính
.
am1 x1 am2 x2 am3 x3 ... amn xn bm
A x b
H ph ơng trình trên có thể gi i m t c{ch đơn gi n trong M‚ởỗ‚‛ s
dụng phép chia tr{i mldivide , hoặc nh}n c hai vế v i ma tr n nghịch đ o c a
A.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 37
A1 Ax A1b
Ix A1b
x A1b
ỡí dụ ta có h ba ph ơng trình ba ẩn x1, x2, x3
4 x1 2 x2 1x3 7
1x1 1x2 5 x3 10
2 x1 3x2 1x3 2
ỡiết l i h d i d ng Ax = b
4 1 1 x1 7
1 1 5 x 10
2
2 3 1 x3 2
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 38
C nh b{o trên đồng nghĩa v i vi c kết qu thu đ c th ng khẫng chính x{c. ởuy
nhiên cễng có khi M‚ởỗ‚‛ khẫng đ a ra c nh b{o nh ng kết qu thu đ c l i
khẫng đ{ng tin c y do M‚ởỗ‚‛ đ a ra nghi m bình ph ơng t i thiểu c a h ví
dụ tr ng h p ‚ khẫng ph i l| ma tr n vuẫng , vì v y điều quan trọng khi s
dụng phép chia tr{i l| luẫn kiểm tra kết qu thu đ c bằng c{ch so s{nh A*x v| b.
s tuyến tính đều bắt đầu bằng vi c thiết l p ma tr n A | b v| {p dụng c{c phép
ớhép kh Ồauss v| Ồauss – Jordan s dụng trong vi c gi i h ph ơng trình đ i
biến đ i lên c{c h|ng c a ma tr n n|y nh}n t t c c{c phần t trong h|ng v i m t
s , đ i ch c{c h|ng trong ma tr n, thay thế m t h|ng bằng c{ch c ng hoặc trừ v i
c{c h|ng kh{c để thu về ma tr n tam gi{c trên có cùng t p nghi m. ớh ơng ph{p
Gauss từ đ}y sẽ {p dụng thế ng c để tìm ra t p nghi m c a h ph ơng trình
trong khi ph ơng ph{p Gauss –ổordan sẽ tiếp tục kh để thu về ma tr n đ ng
chéo từ đó suy ra t p nghi m c a h ph ơng trình.
ỡí dụ
>>a = [ 1 3 0; 2 1 3; 4 2 3]
a =
1 3 0
2 1 3
4 2 3
>>b = [1 6 3]’
b =
1
6
3
>>ab = [a b]
ab =
1 3 0 1
2 1 3 6
4 2 3 3
>>ab(2, :) = ab(2, :) – 2*ab(1, :)
ab =
1 3 0 1
0 -5 3 4
4 2 3 3
>>ab(3, :) = ab(3, :) – 4*ab(1, :)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 39
ab =
1 3 0 1
0 -5 3 4
0 -10 3 -1
>>ab(3, :) = ab(3, :) – 2*ab(2, :)
ab =
1 3 0 1
0 -5 3 4
0 0 -3 -9
>>ab(2, :) = ab(2, :) + ab(3, :)
ab =
1 3 0 1
0 -5 0 -5
0 0 -3 -9
>>ab(1, :) = ab(1, :) + 3/5*ab(2, :)
ab =
1 0 0 -2
0 -5 0 -5
0 0 -3 -9
D ng b c thang t i gi n
ởừ kết qu d ng đ ng chéo từ phép kh Gauss-ổordan, ma tr n đ c
đ a về d ng b c thang t i gi n, t ơng đ ơng v i t t c c{c h s trên đ ng chéo
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 40
0 0 1 3
ộghi m c a h chính l| gi{ trị c a c t cu i cùng x1 = -2, x2 = 1, x3 = 3
>>x = ans(:, end)
x =
-2
1
3
C{c l nh đ i v i m ng
linspace ở o m ng có c{c phần t c{ch đều
find ởìm chỉ s c a c{c phần t kh{c khẫng trong m ng
max ởìm gi{ trị l n nh t trong m ng
min ởìm gi{ trị nh nh t trong m ng
prod ởính tích c{c phần t trong m ng
sum ởính t ng c{c phần t trong m ng
length ởìm t ng s phần t trong m ng
size ởìm kích c c a m ng
cross ởích có h ng c a hai vector trong ỏ
dot ởích vẫ h ng c a hai vector
Ộ t s ma tr n đặc bi t
eye ở o ma tr n đơn vị
ones ở o ma tr n m| t t c c{c phần t đều nh n gi{ trị
zeros ở o ma tr n m| t t c c{c phần t đều nh n gi{ trị
diag ở o ma tr n đ ng chéo
C{c l nh gi i h phư ng trình đ i s tuy n tính
det ởính định th c ma tr n
inv ởính ma tr n nghịch đ o
rank ởính h ng c a ma tr n
rref Đ a về d ng b c thang t i gi n
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 41
. ọ|i t p chư ng
ọ|i .
ỏùng d u : t o c{c vector h|ng sau:
3 4 5 6
a) 1.0000 1.5000 2.0000 2.5000 3.0000
b) 5 4 3 2
Đáp án
a) >>3 : 6
b) >>1 : .5 : 3
c) >>5 : -1 : 2
ọ|i .
ỏùng h|m linspace t o c{c vector sau:
a) >>4 6 8
b) >>-3 -6 -9 -12 -15
c) >>9 7 5
Đáp án
a) >>linspace(4, 8, 3)
b) >>linspace(-3, -15, 5)
c) >>linspace(9, 5, 3)
ọ|i .
ỏùng : v| ‘ t o vector c t ch a c{c gi{ trị trong kho ng từ - đến c{ch đều
nhau 0.2.
Đáp án
>>[ -1 : .2 : 1]’
ọ|i .
a) ở o ma tr n × ch a c{c s nguyên ng u nhiên từ đến 20.
b) ở o biến hang ch a s nguyên ng u nhiên từ đến , t o biến cot ch a
s nguyên ng u nhiên từ đến , t o ma tr n m| t t c c{c phần t đều
nh n gi{ trị khẫng có kích c hang × cot.
Đáp án
a) >>round(5 + 15*rand(2, 3))
b) >>hang = round(3*rand);
>>cot = round(3 + 2*rand);
>>zeros(hang, cot)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 42
ọ|i .
Ỗhẫng nh p t t c c{c phần t , t o ma tr n sau:
mat =
7 8 9 10
12 10 8 6
ỡiết c{c l nh truy xu t đến:
a) ớhần t h|ng m t c t ba c a ma tr n.
b) ởo|n b h|ng hai c a ma tr n.
c) Hai c t đầu c a ma tr n.
Đáp án
a) >>mat = (7:10; 12:-2:6);
>>mat(1,3);
b) >>mat(2, :);
c) >>mat(:, 1:3);
ọ|i .
Cho c{c ma tr n sau:
1 2
1 2
1 2 5 6
A B C
3 4 7 8 1 2
1 2
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 43
d) Ma tr n ng u nhiên x .
e) Ma tr n đ ng chéo m| c{c gi{ trị trên đ ng chéo ch y từ đến .
Đáp án
a) >> eye (6)
b) >>zeros (5,10)
c) >>ones (5,15)
d) >>rand (5)
e) >>e0 = 1:5;
>>diag(e0)
ọ|i .
Cho ma tr n A, b v| h ph ơng trình tuyến tính Ax = b
1 2 3 6
A 2 3 2 B 14
3 1 1 2
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 44
ọ|i .
Cho h ph ơng trình sau:
6 x1 2 x2 3x3 0
4 x1 1x2 2 x3 0
2 x1 1x2 5 x2 0
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 45
ọ|i .
Cho hai ma tr n A, b v| h ph ơng trình tuyến tính Ax = b
12 3 4
A B
21 3 4
Gi i h ph ơng trình s dụng phép chia tr{i, t p nghi m thu đ c có ph i
l| duy nh t?
ởìm nghi m t ng qu{t s dụng h|m rref.
Đáp án:
>>A = [1 2 3; 2 1 -3];
>>b = [-4; 4];
>>x = A\b;
x =
0
0.0000
-1.3333
>>A*x
Ỗiểm tra x có ph i l| nghi m c a ph ơng trình
>>rref([ A b])
H có vẫ s nghi m do s biến nhiều hơn s ph ơng trình
ans =
1 0 -3 4
0 1 3 -4
ọ|i .
Cho ma tr n sau:
1 2 1 3
7 2 0 1
A
3 2 1 1
0 1 4 8
ỏự đo{n kết qu v| kiểm tra l i bằng M‚ởỗ‚‛ ý nghĩa c a l nh sau:
>>A( [1 3], [1 3] ) = 10 * ones (2)
ọ|i .
ộh p v|o ma tr n sau:
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 46
1 2 1 3
7 2 0 1
A
3 2 1 1
0 1 4 8
a) ởính AT = B
b) ởính C = A * B
c) ởính D = B * A
d) ởính 3A + 5B3
ọ|i .
ộh p v|o c{c ma tr n sau:
3 2 1 2 1 0 0
A 0 5 2 B 1 C 0 1 0
1 0 3 3 0 0 1
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 47
ọ|i .18
ở o ma tr n mat. ởìm t t c c{c l nh cho phép truy xu t đến phần t cu i
cùng c a ma gi s khẫng biết s phần t , s h|ng, s c t c a mat).
ọ|i .
ỡiết c{c l nh yêu cầu nh p v|o từ b|n phím c{c gi{ trị n, low, high (high l n
hơn low).
ởừ c{c gi{ trị nh p v|o t o ma tr n đ ng chéo n × n trong đó đ ng chéo
ch a c{c gi{ trị nguyên ng u nhiên từ low đến high.
ọ|i .
ỡiết c{c c}u l nh yêu cầu nh p v|o từ b|n phím hai s nguyên d ơng l u
v|o c{c biến m, n. ỡiết c}u l nh nh p v|o s nguyên k. ỡiết c}u l nh t o ma
tr n có kích c m × n m| t t c c{c phần t đều có gi{ trị k trong c}u l nh có
s dụng l nh ones).
ọ|i .
Cho h ph ơng trình đ i s tuyến tính Ax = b.
ộh p c{c ma tr n A, b v| gi i s dụng c{c l nh chia tr{i v| rref.
11 1 2
A 12 1 B 3
11 1 6
ọ|i .
Cho h b n ph ơng trình b n ẩn sau:
ộh p c{c ma tr n v|o M‚ởỗ‚‛ v| gi i.
4 x1 x2 3x4 10
2 x1 3x2 x3 5 x4 3
x1 x2 x3 2 x4 2
3x1 2 x2 4 x3 4
ọ|i .
Gi i h ph ơng trình đ i s tuyến tính:
2 x1 2 x2 x3 2
x2 2 x3 1
x1 x2 3x3 3
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỡỐCởỚờ ỡủ M‚ ởờ ộ 48
ọ|i .
Gi i h ph ơng trình đ i s tuyến tính:
x1 2 x2 x3 2
2 x1 5 x2 3 x3 6
x1 2 x2 2 x3 4
ọ|i .
Cho h ph ơng trình đ i s tuyến tính Ax = b, tìm nghi m c a h .
10 10
A 12 b 16
14 17
ọ|i .
Cho h ph ơng trình đ i s tuyến tính Ax = b, tìm nghi m c a h .
1 1 2
A 1 1 b 0
1 3 3
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 49
. Ở ph c
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 50
>>z4 = 2 + 3j
z4 =
2.00 + 3.0000i
>>z5 = (-4)^1/2
z5 =
0.0 + 2.0000i
ỗ u ý l| ngay c khi dùng j để biểu di n s ph c trong c}u l nh thì
M‚ởỗ‚‛ v n s dụng i trong c{c kết qu tr về. ởrong M‚ởỗ‚‛ còn có c{c h|m
real v| imag tr về phần thực v| phần o c a m t s ph c, cú ph{p gọi h|m nh
sau
>>real (X)
>>imag (X)
ởrong đó X l| s ph c, gi{ trị tr về c a hai h|m real v| imag sẽ l| phần
thực v| phần o t ơng ng c a X.
>>real(z1)
ans =
4
>>imag(z3)
ans =
-3
ởr ng h p mu n xu t ra m|n hình gi{ trị c a m t s ph c, l nh disp sẽ
hiển thị c phần thực v| phần o trong khi đó l nh fprintf chỉ hiển thị phần thực
trừ khi có l nh in đồng th i c hai th|nh phần c a s ph c.
>>disp(z1)
ans =
4.0000 + 2.0000i
>>fprintf(‘ %f \n’, z1)
4.0000
>>fprintf(‘ %f %f \n’, real(z1), imag(z1))
4.0000 2.0000
>>fprintf(‘ %f + %fi \n’, real(z1), imag(z1))
4.0000 + 2.0000i
H|m isreal tr về gi{ trị logic nếu đúng l| s ph c khẫng có gi{ trị phần
o, tr về gi{ trị logic nếu s ph c có gi{ trị phần o kể c gi{ trị phần o l| .
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 51
>>isreal(z1)
ans =
0
>>z6 = complex(3)
z6 =
3
>>isreal(z6)
ans =
0
>>isreal(3.3)
ans =
1
Đ i v i z6 mặc dù gi{ trị hiển thị trên c a s l nh l| nh ng biểu di n
trong M‚ởỗ‚‛ v n l| . + . i xem Ợorkspace vì thế gi{ trị tr về c a
h|m isreal trong tr ng h p n|y l| do z6 v n ch a phần o.
ọi u di n s ph c bằng t a đ c c v| lễy thừa c a loga t nhiên
Mọi s ph c z = a + bi đều có thể biểu di n b i điểm (a, b) hoặc d i d ng
vector trên mặt phẳng ph c trong đó trục ho|nh v| trục tung biểu di n phần thực
v| phần o c a z. ỏo m t vector có thể đ c biểu di n trong h tọa đ Đề c{c hoặc
h tọa đ cực, m t s ph c cễng có thể biểu di n trong h tọa đ cực s dụng c{c
phép quy đ i sau:
‛iến đ i h tọa đ cực sang h tọa đ Đề c{c:
a = r cosθ
b = r sinθ
‛iến đ i h tọa đ Đề c{c sang h tọa đ cực:
r z a 2 b2
tan 1 ( )
b
a
z a bi r cos (r sin )i
ộgo|i ra, s ph c có thể biểu di n d i d ng lễy thừa c a loga tự nhiên
e cos i sin , biểu di n d ng ph c d ng lễy thừa có thể thu đ c trong
i
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 52
0.0000 + 1.0000i
ởrong M‚ởỗ‚‛ ta có thể s dụng nh ng h|m x}y dựng sẵn để tìm gi{ trị
c a r v| θ l| abs v| angle theo cú ph{p sau
>>abs (X)
>>angle (X)
ởrong đó X l| s ph c, abs v| angle sẽ tr về gi{ trị r v| θ t ơng ng c a X,
xét ví dụ
>>z1 = 3 + 4i;
>>r = abs(z1)
r =
5
>>theta = angle(z1)
theta =
0.9273
>>r*exp(i*theta)
ans =
3.0000 + 4.0000i
C ng, trừ, nh}n, chia s ph c: Cho hai s ph c z1 = a + bi, z2 = c + di
z1 + z2 = a + bi + c + di = (a+c) + (b +d)i
z1 – z2 = a + bi – c – di = (a –c) + (b – d)i
z1 * z2 = (a + bi) * (c + di) = ac + (bc + ad)i –bd = (ac – bd) + (bc + ad)i
ỡí dụ:
>>z1 = 3 + 4i;
>>z2 = 1 – 2i;
>>z1*z2
ans =
11.0000 – 2.0000i
ớhép chia hai s ph c có thể đ c thực hi n d d|ng khi biểu di n hai s
ph c d i d ng lễy thừa c a loga tự nhiên rồi thực hi n phép chia sau đó.
ỡí dụ
2 1.5 j
z3
z2
z1 1.25 2.5 j
>>z1 = 2 + 1.5j;
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 53
. ồ|m vô danh
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 54
ỡí dụ
>>dt_hinhtron = @(r) pi*r.^2;
>>dt_hinhtron(4)
ans =
50.2655
ởrong tr ng h p khẫng truyền tham s cho h|m, v n ph i s dụng d u
ngoặc lúc khai b{o v| lúc gọi h|m. ỡí dụ: H|m vẫ danh sau in ra m|n hình s
thực ng u nhiên có hai ch s phần th p ph}n
>>in_nn = @( ) fprintf(‘ %.2f \n’, rand);
>>in_nn ( )
0.95
ởr ng h p gọi h|m chỉ có tên h|m m| khẫng có d u ngoặc, M‚ởỗ‚‛ sẽ
hiển thị th}n h|m lên m|n hình.
>>in_nn
in_nn =
@ ( ) fprintf(‘ %.2f \n’, rand)
. C c tr v| nghi m c a h|m s m t bi n s
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 55
>>clear all
>>f = @ (x) x^3 – x^2 – 3*atan(x) + 1;
>>x1 = fminbnd(f, 0, 2)
x1 =
1.0878
>>f(x1)
ans =
-1.3784
ộh v y trên , h|m s có m t cực tiểu t i x = . v i gi{ trị -1.3784.
H|m s n|y cễng có m t cực đ i trong kho ng - , . M‚ởỗ‚‛ khẫng có h|m để
tìm trực tiếp cực đ i c a h|m s tuy nhiên ta có thể s dụng fminbnd để tìm cực
tiểu c a h|m –f(x) trên kho ng t ơng ng.
>>finv = @(x) –f(x);
>>x2 = fminbnd(finv, -1, 0)
x2 =
-0.5902
>>finv(x2)
ans =
-2.0456
ộh v y h|m s có m t cực đ i t i x = - . v i gi{ trị -2.0456
ộghi m c a h|m s m t bi n s
Định nghĩa to{n học về nghi m c a c a h|m s f(x) l| giao điểm c a đồ thị
h|m s đó v| trục Ox hay gi{ trị x0 m| t i đó f(x0) = 0. ỏo M‚ởỗ‚‛ s dụng d u
ch m đ ng nên r t khó x{c định chính x{c điểm khẫng c a h|m s , nên thay vì
tìm gi{ trị biến m| t i đó h|m s bằng khẫng, M‚ởỗ‚‛ tìm điểm m| t i đó h|m
s đ i d u.
Cú ph{p: x = fzero (fun, x0)
ởrong đó x0 l| l}n c n điểm m| h|m s giao v i trục Ox hoặc x0 l| vector
ch a hai gi{ trị x1 v| x2 m| f(x1) v| f(x2) kh{c d u nhau. H|m fzero cho phép x{c
định nghi m c a h|m s f(x) = 0 t i l}n c n x0.
ỡí dụ: Xét h|m s f(x) =x2 – 2x – 3
Đồ thị h|m s n|y giao v i trục Ox t i hai điểm x1 = - và x2 = 3
Để dùng M‚ởỗ‚‛ tìm c{c gi{ trị x1, x2 tr c tiên cần khai b{o h|m
>>f = @(x) x^2 – 2*x – 3;
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 56
Hình 3. 1. Xác định nghiệm c a hàm số tại điểm đồ thị giao với trục hoành
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 57
. Đa th c m t bi n s
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 58
ỡí dụ:
>>polyval ([1 -2 0 1], [1 2 3 4])
ans =
[0 1 10 33]
ởrong đó , 1, 10, lần l t l| c{c gi{ trị c a đa th c x3 – 2x2 + 1 t i c{c
điểm x = 1, 2, 3, 4 t ơng ng.
H|m roots trong M‚ởỗ‚‛ cho phép tìm nghi m c a ph ơng trình biểu
di n d i d ng đa th c. Cú ph{p gọi h|m nh sau
>>roots(C)
ởrong đó C l| vector ch a c{c h s c a đa th c cần tìm nghi m, gi{ trị tr
về sẽ l| t p h p c{c nghi m c a đa th c cần tìm.
ỡí dụ cho đa th c f(x) =4x3 – 2x2 – 8x + 3, gi i ph ơng trình f(x) = 0.
>>Rs = roots([4 -2 -8 3])
Rs =
-1.3660
1.5000
0.3660
ởr ng h p đã biết t t c c{c nghi m c a đa th c biểu di n trong vector Rs,
ta có thể biểu di n l i đa th c đó d i d ng vector c a c{c h s s dụng l nh poly
theo cú ph{p sau
>>f = poly(Rs)
ởrong đó ờs l| vector biểu di n t p nghi m c a ph ơng trình f(x) = 0 t ơng
ng, gi{ trị tr về c a h|m sẽ l| vector ch a c{c h s c a f(x).
ỡí dụ: Biểu di n l i đa th c có nghi m ch a trong ờs đ c tính trên:
>>f = polys(Rs)
f =
1.0000 -0.5000 -2.0000 0.7500
ộh}n t t c c{c h s c a đa th c v i để đ c đa th c ban đầu
ởrong M‚ởỗ‚‛ ta cễng có thể x{c định tích c a hai đa th c a, b bằng l nh
conv(a, b) v i gi{ trị tr về l| vector ch a c{c h s c a đa th c tích. ở ơng tự
phép chia hai đa th c cễng có thể thực hi n trong M‚ởỗ‚‛ s dụng l nh
deconv(b, a). Trong đó, b, a lần l t l| c{c đa th c t s v| m u s . Cú ph{p
t ơng ng nh sau:
>>c = conv(a, b)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 59
>>[q, r] = deconv(b, a)
ởrong đó: a, b lần l t l| c{c đa th c th|nh phần, c l| đa th c tích, q l|
th ơng c a phép chia đa hai đa th c v| r l| phần d trong phép chia đa th c b cho
a.
ỡí dụ: Xét hai đa th c
A 2x 5 B x 2 3x 7
>>A = [2 5];
>>B = [1 3 7];
Ỗết qu c a phép tính AB
>>C = conv(A, B)
C =
2 11 29 35
C
Ỗết qu c a phép tính
A
>>[D, r] = deconv(C, A)
D =
1 3 7
r =
0 0 0 0
Để tính tích ph}n x{c định, M‚ởỗ‚‛ có h|m quad fun, a, b tính gần đúng
tích ph}n c a h|m fun trong kho ng (a, b) v i sai s 1e-6 s dụng cẫng th c
Ởimpson. H|m y = fun(x) ph i ch p nh n tham s x d i d ng vector v| tr về kết
qu d i d ng vector y. ỡì thế khi định nghĩa h|m cần s dụng c{c phép to{n đ i
v i vector .* ./ .^
Cú ph{p gọi h|m nh sau
>>q = quad(fun, a, b)
Gi{ trị tr về c a h|m q l| kết qu tính gần đúng tích ph}n t ơng ng c a
h|m fun nh đã trình b|y trên.
ỡí dụ: Tính tích ph}n x{c định c a h|m x2 – 6x + 5 trong kho ng (1, 5).
>>f = @(x) x.^2 – 6*x + 5;
>>intf = quad(f, 1, 5)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 60
intf =
-10.6667
x
2
1
2x 5
ỡí dụ: Tính tích ph}n sau 3
0
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 61
>>y = f(x)
y =
0 -3 -4 -3 0
ộếu coi dy l| đ o h|m c a f(x) theo x v| x{c định gi{ trị c a đ o h|m t i c{c
điểm x = [1 2 3 4 5] t ơng ng
>>dy = @(x) 2*x – 6
>>dy(x)
ans =
-4 -2 0 2 4
Ởo s{nh gi{ trị đ o h|m c a h|m s t i c{c điểm cho tr c bằng c{ch tính
gần đúng gi i h n s dụng h|m diff.
>>diff(y)./diff(x)
ans =
-3 -1 1 3
ỗ u ý trong M‚ởỗ‚‛ vi c tính diff c a vector a gồm n phần t đ c x{c
định bằng vector m i da có n – 1 phần t do đó s phần t c a phép tính đ o h|m
theo diff ít hơn so v i c{ch tính thẫng th ng m t phần t . Gi{ trị chênh l ch gi a
hai phép tính nh dần khi kho ng c{ch gi a c{c phần t trong vector x c|ng gi m
(có thể th l i khi nh p x = 1: .1 : 5).
a = [a1 a2 a3 … an-2 an-1 an]
da = [a2 – a1 a3 – a2 … an-1 – an-2 an – an-1]
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 62
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 63
Ở ph c
abs(x) ợ{c định gi{ trị tuy t đ i c a biến x
angle(x) Góc c a s ph c x
conj(x) ởr về s ph c liên h p c a x
imag(x) ớhần o c a x
real(x) ớhần thực c a x
ồ|m s v| đa th c m t bi n s
fminbnd ợ{c định cực tiểu c a h|m s trong m t kho ng cho tr c
fzero ộghi m c a h|m f(x) = 0 x{c định trong kho ng cho tr c
polyval ởính gi{ trị đa th c
roots ởính nghi m c a đa th c
poly ởr về vector h s c a đa th c nếu biết vector nghi m
conv ởhực hi n phép nh}n hai đa th c
deconv ởhực hi n phép chia hai đa th c
Tích ph}n, đ o h|m, vi ph}n s
quad ởích ph}n h|m s
polyder Đ o h|m đa th c m t biến s
diff ởính gần đúng đ o h|m c a h|m s m t biến s
ode23 H|m tính vi ph}n theo cẫng th c ờunge-Kutta
ode45 H|m tính vi ph}n theo cẫng th c ờunge-Kutta
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 64
. ọ|i t p chư ng
7i (4 5i)
b.
3(2 4i)
c.
(5 3i)i
d.
(2 7i)(3 4i)
e.
f.
1
g.
i
3
1 i
h.
4 7i
2 5i
i.
Đáp án:
a. 5 2i
b. 9 5i
c. 4 2i
d. 6 12i
e. 3 5i
f. 34 13i
g. i
h. 1.5 1.5i
i. 1.4828 0.2069i
ọ|i . ờềt g n
1 i 3i
(1 2i)(2 2i)
1 i 1 i
a.
b. 2i(i 1) ( 3 i) (1 i)(1 i)
3
Đáp án:
3 7i
10i
a.
b.
ọ|i .
i d ng [r , ]
7 2i
a. ỡiết l i c{c s ph c sau d
i.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 65
3i
4 6i
ii.
a bi
iii.
b. ỡiết l i c{c s ph c sau d i d ng
i. [3, ]
[5, ]
4
2
ii.
iii. [ 2, ]
3
c. ỡiết l i c{c s ph c sau d i d ng lễy thừa.
i. 2(cos i cos )
2
3 3
ii. [5, ]
3
iii. 1 i 3
ọ|i . Cho h|m s sau:
y exp(2 x)-4 exp(x)+2
4
-2 x
-10 -8 -6 -4 -2 0 2
f ( x) e 4e 2
Hình 3. 5. Hình bài 3.4
2x x
ởìm nghi m f(x) = 0 v| cực trị c a h|m trong kho ng biểu di n c a đồ thị.
ọ|i .
Cho: H ( s )
n( s )
d ( s)
ỡ i:
n(s) s 4 6s3 5s 2 4s 3
d (s) s5 7s 4 6s3 5s 2 4s 7
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 66
ởìm:
a. n(10), n(-5), n(-3), n(-1)
b. d(10), d(-5), d(-3), d(-1)
c. H(10), H(-5), H(-3), H(-1)
ọ|i . Cho:
p1(s) s3 5s 2 3s 10
p2 (s) s 4 7s3 5s 2 8s 15
p3 (s) s5 15s 4 10s3 6s 2 3s 9
a. ởìm p1(2), p2(2), p3(3)
b. ởìm p1(s)p2(s)p3(s)
c. ởìm p1(s)p2(s)/p3(s)
c. p3 ( x) x4 7 x3 12 x 2 25x 8
ọ|i .
Ở dụng h|m quad tính c{c tích ph}n sau
a. y1 sin xdx
2
b. y2
sin x
dx
x
2
y3 ( x3 x 2
3
1
c. )dx
1 x2
ọ|i .
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 67
2
f ( x)dx
0
x (sin(x)2)
5
4
0
0 1 2 3 4 5 6
x
ọ|i .
kho ng th i gian 0(s) t 5(s) . ợ{c định gia t c c a v t th i điểm t = 2.5 (s).
Đáp án:
Ỗhai b{o biến t ch a c{c gi{ trị th i gian c{ch nhau t 0.1(s) , tính v theo
t
>>t = 0: 0.1: 5;
>>v = t.^3 – 2*t.^2 + 2;
ởính đ o h|m theo t c a v
>>dv = diff(v)./diff(t);
Gia t c t i th i điểm t = 2.5 (s)
>>dv(26)
ans =
9.3100
ộh v y v i t 0.1(s) , gia t c t i th i điểm t = 2.5(s) l| . m/s2
v '(t ) 3t 2 4t
v '(2.5) 3 (2.5)2 4 2.5 8.75 m/s 2
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 3. ởÍộH ởỚ[ộ Ở ỡ I M‚ởỗ‚‛ 68
gần đúng, để thu về kết qu chính x{c hơn sinh viên có thể th v i t 0.01( s)
Gi{ trị gia t c tính bằng ph ơng ph{p s dụng h|m diff chỉ đ a ra đ{nh gi{
v| t 0.001(s)
ọ|i .
Ở dụng h|m ode23 v| ode45 để gi i c{c ph ơng trình vi ph}n sau:
a. x 1 2tx v i x(0) = 1 trên kho ng ,
b. x
tx
1 x2
v i x(0) = 3 trên kho ng ,
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 69
Chư ng . ọ C4ộỒ C ỖÝ ồI U
4.1 Ồi i thi u bi n ký hi u
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 70
>>double(a)
ans =
1.4142
Ỗhi t o m t ph}n s có ch a đ i t ng ký hi u, M‚ởỗ‚‛ sẽ l u l i t s
v| m u s c a ph}n s đó. ỡí dụ
>>sym(2)/sym(5)
ans =
2/5
Ỗết qu thu đ c trong phép to{n s dụng đ i t ng ký hi u sẽ đ c biểu
di n d i d ng biểu th c, kh{c v i c{c kiểu d li u tiêu chuẩn kh{c. ỡí dụ: Trong
phép c ng hai ph}n s có kiểu d li u double, M‚ởỗ‚‛ tr về kết qu d ng s
th p ph}n
>>2/5 + 1/3
ans =
0.7333
ởrong khi đó nếu thực hi n phép c ng hai ph}n s có kiểu biến ký hi u,
M‚ởỗ‚‛ sẽ quy đồng m u s rồi thực hi n phép c ng, kết qu tr về sẽ có d ng
ph}n s
>>sym(2)/sym(5) + sym(1)/sym(3)
ans =
11/15
. ọi n v| bi u th c
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 71
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 72
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 73
0
Chề ý Ỗhi s dụng h|m subs m| khẫng chỉ rậ ra biến s ký hi u n|o sẽ
đ c thay gi{ trị, M‚ởỗ‚‛ sẽ chọn bi n ký hi u mặc đ nh theo quy tắc sau đ i
v i biến m t ký tự, M‚ởỗ‚‛ sẽ chọn biến gần v i x nh t trong b ng ch c{i, nếu
có hai biến có cùng kho ng c{ch t i x, biến đ c chọn sẽ l| biến xếp sau trong
b ng ch c{i.
‛ cẫng cụ ký hi u còn cho phép ta gi i ph ơng trình, h ph ơng trình s
dụng h|m solve theo cú ph{p sau
>>solve pt , pt , pt , , ptộ
>>solve pt , pt , pt , , ptộ, bien , bien , bien , , bienộ
ởrong đó pt , pt , pt , …, ptN l| c{c ph ơng trình cần gi i còn bien1, bien2,
bien , …, bienN l| c{c ẩn t ơng ng.
ợét ví dụ đ i v i đa th c trong mục . :
f(x) =4x3 – 2x2 – 8x + 3
Đa th c n|y có thể đ c biểu di n d i d ng vector:
>>clear all
>>v = [4 -2 -8 3]
v| có thể đ c biểu di n d i d ng h|m biến ký hi u nh l nh poly2sym:
>>f = poly2sym(v)
f =
4*x^3 – 2*x^2 – 8*x + 3
ỗ u ý trong tr ng h p n|y, biến m i xu t hi n trong Ợorkspace chỉ có f
v| x v n l| biến ch a đ c khai b{o.
>>x
??? Undefined function or variable ‘x’
ộg c l i M‚ởỗ‚‛ cễng cho phép biến đa th c biến ký hi u sang d ng
vector h s v i l nh sym2poly.
ộh đã biết f(x) = 0 có nghi m v| có thể gi i bằng l nh solve khi f đ c
khai b{o nh m t biến ký hi u.
>>x=solve(f)
x =
3/2
1/2*3^(1/2)-1/2
-1/2-1/2*3^(1/2)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 74
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 75
. Ộa tr n bi n ký hi u
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 76
[c a b]
Đ i v i ma tr n tuần ho|n, gi{ trị t ng c{c phần t c a m i h|ng v| c t l|
nh nhau, ví dụ kiểm tra h|ng m t v| c t hai c a ma tr n ‚:
>>sum(A(1,:) )
ans =
a + b + c
>>sum( A(:,2) )
ans =
a + b + c
ở o thêm c{c biến ký hi u alpha, beta v| thay thế cho c{c phần t trong ‚:
>>syms alpha beta
>>A(2,3) = beta;
>>subs(A,b,alpha);
>>A
A =
[a alpha c]
[alpha c beta]
[c a alpha]
ỡí dụ: Xét ma tr n quay G v i góc quay t
cos(t ) sin(t )
G
sin(t ) cos(t )
>>syms t;
>>G = [cos(t) sin(t); -sin(t) cos(t)];
Ở dụng hai lần ma tr n quay G cho phép quay mặt phẳng v i m t góc
bằng hai lần góc t cho tr c
>>A = G*G
A =
[ cos(t)^2-sin(t)^2, 2*cos(t)*sin(t)]
[ -2*cos(t)*sin(t), cos(t)^2-sin(t)^2]
Cễng gi ng nh t i gi n biểu th c bằng l nh simplify, ma tr n cễng có thể
đ c đ a về d ng đơn gi n s dụng l nh simple theo cú ph{p sau
>>simple(S)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 77
>>syms x;
>>int(3*x^2-1)
ans =
x^3 – x
ợ{c định tích ph}n trên khi biết hai gi i h n [a, b] = [2, 4]
>>int(3*x^2 – 1, 2, 4)
ans =
54
ỡí dụ: Tính đ o h|m h|m s sau f x 3 2 x 2 4 x 3
>>syms x f
>>f = x^3 + 2*x^2 – 4*x + 3
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 78
f =
x^3 + 2*x^2 – 4*x + 3
>>diff(f)
ans =
3*x^2 + 4*x - 4
ỗ u ý: Khi mu n x{c định đ o h|m c a hằng s s dụng l nh diff, tr c
tiên cần định nghĩa hằng s đó kiểu biến ký hi u. ỡí dụ:
>>c = sym(‘5’);
>>diff(c)
ans =
0
ộếu chỉ nh p từ c a s l nh
>>diff(5)
Ỗết qu tr về sẽ có d ng
ans =
[ ]
Đ i v i đa th c có nhiều biến, cần chỉ rậ trong l nh để x{c định sẽ đ o h|m
đa th c theo biến n|o. ỡí dụ
>>syms s t
>>f = sin(s*t)
Đ o h|m theo t:
>>diff(f, t)
ans =
cos(s*t)*s
Đ o h|m theo s:
>>diff(f, s)
ans =
cos(s*t)*t
H|m diff cễng có thể nh n gi{ trị đầu v|o l| ma tr n biến ký hi u, khi đó
phép đ o h|m sẽ đ c thực hi n bằng c{ch đ o h|m từng phần t c a ma tr n
đầu v|o. ỡí dụ: Tìm đ o h|m c a ‚.
cos(ax) sin(ax)
A
sin(ax) cos(ax)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 79
>>syms a x
>>A = [cos(a*x) sin(a*x); -sin(a*x) cos(a*x)];
>>B = diff(A)
B =
[ -sin(a*x)*a, cos(a*x)*a]
[ -cos(a*x)*a, -sin(a*x)*a]
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 80
f 3 f 4g g 4 f 3g
>>S=dsolve(‘Df = 3*f + 4*g’, ‘Dg = -4*f + 3*g’)
Ỗết qu tr về đ c l u l i trong c u trúc Ở, để truy xu t t i f v| g có thể s
dụng l nh:
>>f = S.f
f =
exp(3*t)*(C1*sin(4*t)+C2*cos(4*t))
>>g = S.g
g =
exp(3*t)*(C1*cos(4*t)-C2*sin(4*t))
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 81
. ọ|i t p chư ng
ọ|i 4.1
Cho h|m s f ( x) 2 xe x sin( x) trên kho ng [0, ] , x{c định nghi m
c a ph ơng trình f ( x) 0 v| cực trị h|m s trên kho ng [0, ]
Đáp án
2 x exp(-x)-sin(x)
0.2
0
y
-0.2
-0.4
0 1 2 3
x
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 82
x01 =
0.8030
ởìm nghi m th hai trên kho ng . ,
>>x02 = fzero( char(y), [2.5, 3])
x02 =
2.7923
ợ{c định cực tiểu c a h|m s trên kho ng . ,
>>xmin1 = fminbnd( char(y), [1.5, 2])
xmin1 =
1.8409
ợ{c định cực đ i c a h|m s trên kho ng ,.
>>xmax2 = fminbnd( char(-y), 0, .5)
xmax2 =
0.3384
ọ|i .
Cho đa th c x 2 y 3 sin( xy) , tính gi{ trị c a đa th c khi thay x = 2 v| y = 3
t ơng ng.
Đáp án:
>>syms x y
>>z = x^2*y^3 + sin(pi*x*y)
z =
x^2*y^3 + sin(pi*x*y)
>>z23 = subs(z, {x, y}, {2, 3})
z23 =
108
ọ|i .
Ỗiểm tra kết qu c a phép tính tích ph}n b t định sau bằng c{ch đ o h|m
kết qu v| so s{nh v i biểu th c trong d u tích ph}n:
1 x
1
4
dx
Đáp án:
>>syms x
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 83
>>b = diff(y, x)
>>[t, n] = numden( b – 1/(1+x^4));
>>t
t =
0
s c a phép tính b
1
1 x4
ở nh n gi{ trị khẫng ch ng t kết qu tích
ph}n l| đúng.
ọ|i .
ởính c{c tích ph}n sau:
3 1
a. (cos( x 1) )dx
b. 0 e cos(3x)dx
1
x
2 x
log( x)dx
1
x 2
c. 0
4 2 3
d.
0
dx
Đáp án:
a. 2.0079
b. 0.1538
c. -0.4343
d. 1.3461e+003
ỗ u ý trong M‚ởỗ‚‛, >>log(x) biểu di n loga tự nhiên c a x, mu n tính
loga cơ s c a x cần nh p >>log10(x)
ọ|i 4.5
Gi i thích ý nghĩa kết qu hi n trên m|n hình khi thực hi n l nh >>sqrt x^
Đáp án:
>>sqrt(x^2)
ans =
(x^2)^(1/2)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 84
ln(1 x)
x2
f ( x)
(1 x) 2
2
2
y
0 0.5 1 1.5
x
f ( x) e2 x 5e x 6
Có đồ thị trong kho ng , . nh trong hình vẽ.
a. ởìm nghi m f(x) = 0
b. ợ{c định cực tiểu c a h|m s
ợ{c định gi{ trị h|m s v| gi{ trị đ o h|m c a h|m s t i điểm cực tiểu vừa
tính.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 85
Đáp án:
>>syms x;
>>y = exp(2*x) – 5*exp(x) + 6
ởừ đồ thị có thể th y ph ơng trình f(x) = 0 có hai nghi m t i l}n c n cực trị
c a h|m s , vì thế cực trị h|m s sẽ đ c tính tr c.
>>xmin = fminbnd(char (y), .5, 1)
xmin =
0.9163
Gi{ trị h|m s v| gi{ trị đ o h|m c a h|m s t i xmin.
>>ymin = subs(y, xmin)
ymin =
-0.2500
>>dymin=subs(diff(y), xmin)
dymin =
-6.5272e-006
ởìm hai nghi m c a ph ơng trình f(x) = 0.
>>x1 = fzero(char(y), [xmin, xmin+1])
x1 =
1.0986
>>x2 = fzero(char(y), [xmin-1, xmin])
x2 =
0.6931
Hai nghi m n|y cễng có thể x{c định bằng c{ch s dụng h|m solve.
>>nghiem = solve(y);
ọ|i .
Cho h|m s
x2 2 x 3
f ( x) sin
x 1
ởính đ o h|m c p v| đ a kết qu về d ng t i gi n.
Đáp án:
>>syms x;
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 86
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Chương 4. B CÔNG C KÝ HI U 87
ọ|i .
Cho:
y 2 x3 x 2 4 x 5
ởính y’ x v| y’ ) theo hai c{ch kh{c nhau.
ọ|i .
Gi i h ph ơng trình vi ph}n sau
x1 5x1 2 x2
x2 7 x1 4 x2
ỡ i c{c điều ki n ban đầu:
x1 (0) 2
x2 (0) 8
ọ|i .
Gi i ph ơng trình vi ph}n
4 y v i c{c điều ki n ban đầu y(0) 1v| y '( ) 0
d2y
a.
dt 3
8 2 y cos( x) v i c{c điều ki n ban đầu y(0) 0 v|
2
d y dy
b.
y '(0) 1
2
dx dx
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 88
Chư ng . Ộ ộỒ ồ ộ ồ ớ Vủ ỏ ỗI U C2 C U TờÚC
ỏ li u có c u trúc (data structures) l| c{c biến ch a nhiều hơn m t gi{ trị.
Có r t nhiều lo i biến nh thế n|y trong M‚ởỗ‚‛ m| vector v| ma tr n đ c gi i
thi u ch ơng l| ví dụ. ởa có thể th y m t biến vector hay m t biến ma tr n
ch a r t nhiều gi{ trị liên quan m t c{ch logic v i nhau v| có m t điểm đặc bi t l|
t t c c{c gi{ trị đó đều cùng m t lo i v| trong m t s tr ng h p n|o đó đ c s
dụng để biểu di n cùng m t đ i t ng ví dụ ma tr n ch a điểm c a c{c mẫn học
c a m t sinh viên thì c{c phần t trong ma tr n đều có thể có kiểu d li u
double .
M t m ng h n h p (cell array) cễng l| m t lo i d li u có c u trúc, tuy
nhiên có thể ch a c{c gi{ trị có c{c kiểu kh{c nhau. M ng h n h p có thể l| vector
hay ma tr n. M t ví dụ điển hình c a vi c s dụng m ng h n h p l| khi l u tr
c{c chu i ký tự có đ d|i kh{c nhau, m ng h n h p cễng có thể đ c s dụng để
l u c{c biến con tr tr t i c{c d li u đ c l u tr kh{c.
M t tr ng h p kh{c c a d li u có c u trúc đó l| c{c biến c u trúc
(structures) l u gi c{c gi{ trị có quan h logic v i nhau, tuy nhiên c{c gi{ trị n|y
khẫng nh t thiết ph i có cùng kiểu cễng nh cùng s dụng để biểu di n m t đ i
t ng. C{c gi{ trị kh{c nhau trong biến c u trúc đ c l u gi trong c{c tr ng
(fields).
M t điển hình về vi c s dụng biến c u trúc l| khi x}y dựng cơ s d li u
s dụng trong qu n lý. ỡí dụ m t gi{o viên mu n qu n lý t t c c{c sinh viên
trong l p học c a mình theo tên, mã s sinh viên v| c{c điểm th|nh phần c a mẫn
học. ởrong tr ng h p n|y, có thể s dụng M‚ởỗ‚‛ để l u gi c{c d li u trên
bằng vi c dùng biến c u trúc.
M ng h n h p v| biến c u trúc đều có thể đ c s dụng để l u gi c{c gi{
trị có kiểu kh{c nhau trong m t biến đơn lẻ. Điểm kh{c bi t l n nh t gi a m ng
h n h p v| biến c u trúc l| m ng h n h p qu n lý gi ng nh vector v| ma tr n,
nghĩa l| có thể truy xu t t i c{c phần t trong m ng bằng c{ch s dụng c{c h s
vị trí cễng nh có thể s dụng vòng lặp để duy t m ng còn biến c u trúc thì
khẫng. Đ i v i biến c u trúc, ng i s dụng có thể duy t v| truy xu t t i c{c
th|nh phần d li u trong biến s dụng tên c a c{c tr ng th|nh phần t ơng ng.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 89
. Ộ ng h n h p
. . Thi t l p m ng h n h p
Có r t nhiều c{ch để thiết l p m t m ng h n h p trong M‚ởỗ‚‛. ỡí dụ ta
sẽ t o m t m ng h n h p gồm phần t , trong đó m t phần t ch a gi{ trị l| m t
s kiểu integer, m t phần t ch a m t ký tự, m t phần t ch a m t vector, v| m t
phần t ch a m t chu i ký tự. ộh v y m ng h n h p m| ta định t o có thể l|
m t vector h|ng hoặc vector c t gồm phần t , hoặc cễng có thể l| m t ma tr n
h|ng c t. Cú ph{p thiết l p vector h|ng, c t hay ma tr n cễng ho|n to|n t ơng
tự nh ch ơng , nghĩa l| c{c gi{ trị trong cùng m t h|ng có thể đ c ph}n t{ch
v i nhau b i ký tự tr ng hoặc d u phẩy, c{c h|ng ph}n bi t v i nhau b i d u
ch m phẩy. ởuy nhiên thay vì s dụng ngoặc vuẫng, m ng h n h p sẽ đ c thiết
l p bằng c{ch s dụng ngoặc nhọn { }.
M ng h n h p l| m t vector h|ng
>>cellrowvec = {23, ‘a’, 1:2:9, ‘hello’}
cellrowvec =
[23] ‘a’ [1x5 double] ‘hello’
M ng h n h p l| m t vector c t
>>cellcolvec = {23; ‘a’; 1:2:9; ‘hello’}
cellcolvec =
[23]
‘a’
[1x5 double]
‘hello’
M ng h n h p l| m t ma tr n x
>>cellmat = {23 ‘a’; 1:2:9 ‘hello’}
cellmat =
[23 ] ‘a’
[1x5 double ] ‘hello’
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 90
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 91
Ví dụ:
>>cellcolvec (2)
ans =
‘a’
>>cellmat (2,1)
ans =
[1 x 5 double]
>>cellmat {2,1}
ans =
1 3 5 7 9
ỏo phần t truy xu t t i l| m t vector, cễng có thể s dụng kết h p ngoặc
nhọn v| ngoặc tròn để truy xu t t i phần t nằm bên trong m t phần t c a m ng
h n h p nh sau
>>cellmat{2,1}(4)
ans =
7
ở ơng tự nh đ i v i ma tr n, có thể truy xu t t i m t t p h p c{c phần t
trong m ng h n h p nh sau
>>cellcolvec {2:3}
ans =
a
ans =
1 3 5 7 9
ỗ u ý: Nếu khẫng g{n gi{ trị tr về c a l nh trên cho m t biến b t kỳ,
M‚ởỗ‚‛ sẽ s dụng biến mặc định ans, nh v y sẽ chỉ có gi{ trị c a cellcolvec }
đ c l u l i. Để tr{nh tr ng h p n|y, có thể dùng m t vector hoặc m t m ng
h n h p m i để l u gi{ trị tr về nh sau
>>[c1, c2] = cellcolvec{2:3}
c1 =
a
c2 =
1 3 5 7 9
>>cellcolvec (2:3)
ans =
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 92
‘a’
[1x5 double]
Để hiển thị c{c m ng h n h p, ta có thể s dụng l nh celldisp để hiển thị
n i dung, gi{ trị c a t t c c{c phần t hoặc s dụng l nh cellplot để hiển thị l i
c{c phần t trong m ng d i d ng đồ thị tuy nhiên khẫng hiển thị n i dung .
Ví dụ:
>>celldisp(cellrowvec)
cellrowvec{1} =
23
cellrowvec{2} =
a
cellrowvec{3} =
1 3 5 7 9
cellrowvec{4} =
hello
‛ên c nh đó, có r t nhiều h|m {p dụng cho vector, ma tr n cễng có thể
đ c s dụng trên m ng h n h p, ví dụ m t s h|m về kích th c v| chiều nh
sau:
>>length(cellrowvec)
ans =
4
>>size(cellrowvec)
ans =
4 1
>>cellrowvec{end}
ans =
hello
ởa cễng có thể xóa m t phần t trong m ng h n h p hoặc xóa c{c h|ng, c t
th|nh phần c a m ng h n h p d i d ng ma tr n s dụng tham s vị trí nh sau:
>>cellrowvec
cellrowvec =
[23] ‘a’ [1x5 double] ‘hello’
>>length(cellrowvec)
ans =
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 93
4
>>cellrowvec(2) = [ ]
cellrowvec =
[23] [1x5 double] ‘hello’
>>length(cellrowvec)
ans =
3
>>cellmat
cellmat =
[ 23] ‘a’
[ 1x5 double] ‘hello’
>>cellmat(1,:) = [ ]
cellmat =
[1x5 double] ‘hello’
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 94
>>C = cellstr(S)
ởrong đó Ở l| m ng ký tự. Gi{ trị tr về C sẽ bao gồm c{c h|ng c a m ng ký
tự Ở đ c l u v|o c{c phần t m ng h n h p riêng bi t.
>>greetmat = char (‘Hello’, ‘Goodbye’);
>>cellgreets = cellstr (greetmat)
cellgreets =
‘Hello’
‘Goodbye’
>>length(cellgreets{1}) + length(cellgreets{2})
ans =
12
>>whos greetmat
Name Size Byte Class Attributes
greetmat 2x7 28 char
‛ên c nh đó, ng i s dụng cễng có thể kiểm tra nếu to|n b phần t c a
m t m ng h n h p l| chu i ký tự hay khẫng s dụng h|m iscellstr, M‚ởỗ‚‛ tr
về gi{ trị logic nếu đúng v| ng c l i.
>>iscellstr(names)
ans = 1
>>iscellstr(cellcolvec)
ans = 0
. ọi n có c u trềc
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 95
ởrong đó field1, field2,... l| tên c{c tr ng th|nh phần, val1, val2, ... l| c{c gi{
trị t ơng ng v i c{c tr ng th|nh phần đó. Gi{ trị tr về S sẽ l| m t biến c u trúc
bao gồm c{c tr ng field1, field2, ... v i c{c gi{ trị val1, val2, ... t ơng ng.
Ví dụ: Thiết l p m t danh s{ch c{c mặt h|ng c a m t siêu thị m{y tính,
trong đó m i m t mặt h|ng có c{c thẫng tin nh s s n phẩm, gi{ th|nh mua v|o
UỞỏ , gi{ th|nh b{n ra, mã h|ng. M t biến c u trúc ch a thẫng tin s n phẩm có
d ng nh sau có thể th|nh l p biến có tên l| package v i c{c tr ng th|nh phần
lần l t l| item_no, cost, price, code.
Package
item_no cost Price Code
123 19.99 39.95 G
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 96
cost: 19.90
price: 34.95
code: ‘g’
‛iến c u trúc có thể in ra to|n b hoặc chỉ in c{c tr ng th|nh phần bằng
c{ch s dụng h|m disp, v| chỉ có thể in ra c{c tr ng th|nh phần khi s dụng
h|m fprintf.
>>disp(package)
item_no: 123
cost: 19.90
price: 39.95
code: ‘g’
>>disp(package.cost)
19.90
>>fprintf(‘%d %c \n’, package.item_no, package.code)
123 g
ởa cễng có thể s dụng h|m rmfield để lo i b tr ng th|nh phần trong
biến c u trúc. ỗ u ý l| gi{ trị tr về c a h|m n|y sẽ l| m t biến m i có tr ng
th|nh phần đã bị lo i b ch khẫng có sự thay đ i đ i v i biến cễ, cú ph{p gọi
h|m nh sau:
>>S = rmfield(S, ‘field’)
ởrong đó field l| tr ng mu n lo i b c a biến c u trúc S. Gi{ trị tr về l|
biến c u trúc ban đầu đã lo i b tr ng field t ơng ng.
>>rmfield (newpack, ‘code’)
ans =
item_no: 111
cost: 19.90
price: 34.95
Để thay đ i gi{ trị c a biến newpack, gi{ trị tr về c a rmfield ph i đ c g{n
luẫn cho biến newpack.
>>newpack = rmfield (newpack, ‘code’)
newpack =
item_no: 111
cost: 19.90
price: 34.95
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 97
. . Vector bi n c u trềc
ộh đã trình b|y trong ví dụ mục tr c, khi qu n lý c{c s n phẩm c a m t
siêu thị m{y tính, ta có thể s dụng biến c u trúc để l u thẫng tin c a m i s n
phẩm. Để qu n lý c{c s n phẩm kh{c nhau trong siêu thị n|y, ta có thể s dụng
vector biến c u trúc nh sau
packages
item_no cost price code
1 123 19.99 39.95 g
2 456 5.99 49.99 l
3 587 11.11 33.33 w
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 98
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 99
packages =
1 x 3 truct array with fields:
item_no
cost
price
code
‛iến packages lúc n|y l| m t vector c u trúc, nghĩa l| m i phần t l| m t
biến c u trúc. Để hiển thị, truy xu t phần t trong vector c u trúc, ta ph i s dụng
tham s vị trí t ơng ng c a phần t đó, ví dụ truy xu t t i phần t th trong
vector c u trúc trên
>>packages (2)
ans =
item_no: 456
cost: 5.99
price: 49.99
code: ‘l’
Để truy xu t t i tr ng th|nh phần c a từng phần t , ta có thể s dụng kết
h p tham s vị trí t ơng ng c a phần t đó v| tên c a tr ng cần truy xu t,
ph}n c{ch b i d u ch m nh sau
>>packages(1).code
ans =
g
Có thể th y đ}y packages l| m t biến có c u trúc b c ba đơn gi n, trong đó
b c cao nh t l| vector có c u trúc packages, m i m t phần t c a vector n|y l| m t
biến c u trúc, c p th p nh t trong biến n|y l| c{c tr ng th|nh phần. ởa có thể s
dụng vòng lặp for để hiển thị t t c c{c phần t trong biến vector packages nh sau
>>for i = 1: length (packages)
disp (packages (i))
end
item_no: 123
cost: 19.99
price: 39.95
code: ‘g’
item_no: 456
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 100
cost: 5.99
price: 49.99
code: ‘l’
item_no: 587
cost: 11.11
price: 33.33
code: ‘w’
Để truy xu t t i c{c tr ng th|nh phần trong m t vector biến c u trúc,
M‚ởỗ‚‛ có l i thế hơn so v i phần l n c{c ngẫn ng l p trình thẫng dụng khi
khẫng cần thiết ph i s dụng vòng lặp duy t qua t t c c{c phần t kh{c trong
vector cễng nh s dụng d u ch m để truy xu t t i c{c tr ng th|nh phần. ở t c
c{c gi{ trị trong m t tr ng c a t t c c{c phần t trong m t vector c u trúc đều
có thể truy xu t trong M‚ởỗ‚‛ v i chỉ m t c}u l nh. ởuy nhiên nếu khẫng g{n
gi{ trị tr về cho m t biến cụ thể, c{c gi{ trị n|y sẽ đ c ghi đè lên nhau trong biến
ans v| ng i s dụng chỉ có thể truy xu t t i gi{ trị cu i cùng
>>packages.cost
ans =
19.99
ans =
5.99
ans =
11.11
Để khắc phục, ta có thể l u c{c gi{ trị n|y trong m t vector kh{c nh sau
>>pc = [packages.cost]
pc =
19.99 5,99 11.11
ỡ i ph ơng ph{p n|y, M‚ởỗ‚‛ cho phép {p dụng h|m lên t t c c{c
tr ng t ơng ng trong cùng m t vector c u trúc. ỡí dụ: Để tính t ng gi{ trị c a
t t c c{c tr ng có tên cost ta có thể dùng h|m sum.
>>sum([packages.cost])
ans =
37.09
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 101
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 102
ans =
name: ‘C, Joe’
id_no: 999
quiz: [10 9.5 0 10]
>>student (1). quiz
ans =
10 9.5 0 10
>>student (1). quiz (2)
ans =
9.5
>>student (3). name (1)
ans =
B
ỡ i nh ng biến có c u trúc ph c t p, điều quan trọng nh t l| ng i s
dụng ph i nắm đ c c{c th|nh phần trong biến để x lý. ỡí dụ đ i v i biến
student l| m t biến vector c u trúc, trong đó student (1) l| m t phần t c a vector
student v| l| m t biến có c u trúc v i c{c tr ng name, id_no, quiz, trong đó student
(1). quiz l| m t vector kiểu double, student(1). quiz(2) l| m t phần t c a vector
quiz, student(3). name (1) l| ký tự đầu tiên c a tên sinh viên th ba.
ởa cễng có thể s dụng vòng lặp để duy t vector c u trúc student, qua đó
thực hi n nhi m vụ sau in ra tên v| điểm trung bình c a từng sinh viên.
>>for i = 1: length(student)
qsum = sum([student(i).quiz]);
no_quizzes = length(student(i).quiz);
ave = qsum/no_quizzes;
fprintf(‘%-20s %.1f\n’, student(i).name, ave);
end
C, Joe 7.4
Hernandez, Pete 9.8
Brownnose, Violet 7.4
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 103
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 104
endpoint2: [1 x 1 struct]
>>lineseg.endpoint1
ans =
x: 2
y: 4
>>lineseg.endpoint1.x
ans =
2
Ỗết h p vector v| biến c u trúc lồng nhau ta sẽ đ c m t vector biến c u
trúc trong đó m t s tr ng c a c{c phần t th|nh phần cễng l| kiểu c u trúc. ợét
ví dụ s dụng m t vector c u trúc lồng để biểu di n c{c s n phẩm có d ng hình
trụ tròn c a m t cẫng ty v i c{c kích th c, v t li u, kh i l ng kh{c nhau nh
sau:
Cyls
code dimensions weight
Rad height
1 x 3 6 7
2 a 4 2 5
3 c 3 6 9
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 105
>> cyls(3).weight = 9;
>> cyls(1).code = 'x';
>> cyls(1).dimensions.rad = 3;
>> cyls(1).dimensions.height = 6;
>> cyls(1).weight = 7;
>> cyls(2).code = 'a';
>> cyls(2).dimensions.rad = 4;
>> cyls(2).dimensions.height = 2;
>> cyls(2).weight = 5;
Cần ph}n bi t rậ c{c l p cụ thể trong biến cyls nh sau
- cyls l| biến chính ch a to|n b thẫng tin liên quan đến s n phẩm đ c
quan t}m, đồng th i l| m t vector c u trúc.
- cyls(1) l| phần t th|nh phần trong vector cyls.
- cyls(2).code l| m t trong c{c tr ng th|nh phần trong c u trúc v| có d ng ký
tự.
- cyls(3).dimensions l| m t tr ng th|nh phần trong c u trúc nh ng b n th}n
nó cễng l| m t c u trúc v i hai tr ng th|nh phần rad v| height.
- cyls(1).dimensions.rad l| tr ng th|nh phần trong c u trúc dimensions, gi{ trị
đ c l u d ng double.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 106
ọ|i .
ở o m t m ng h n h p ch a c{c phần t l| c{c chu i ký tự nh sau:
exclaimcell = ‛ravo , ốantastic job }
In m t phần t ng u nhiên trong m ng.
ọ|i .
ở o m ng h n h p sau
>>ca = abc , , , zeros(2)}
ở o m t m ng h n h p m i có d ng ma tr n x ch a c{c phần t c a
m ng ca vừa t o, viết l nh truy xu t t i c t cu i cùng trong m ng m i.
ọ|i .
Ở dụng h|m cell thiết l p m ng h n h p x sau đó g{n gi{ trị b t kỳ cho
c{c phần t th|nh phần. Chèn m t h|ng v|o gi a để m ng m i t o th|nh có d ng
ma tr n x .
ọ|i .
ở o m ng h n h p l u tr c{c thẫng tin sau c a m t sinh viên b t kỳ tên
sinh viên, mã s sinh viên, điểm trung bình chung v| in thẫng tin n|y ra m|n
hình.
ọ|i .
Yêu cầu t ơng tự nh b|i 5.4 nh ng l u thẫng tin v|o m t biến c u trúc
sau đó in ra m|n hình.
ọ|i .
Cho m t vector c u trúc đ c định nghĩa nh sau
>>kit(2).sub.id = 123;
>>kit(2).sub.wt = 4.4;
>>kit(2).sub.code = ‘a’;
>>kit(2).name = ‘xyz’;
>>kit(2).lens = [4 7];
>>kit(1).name = ‘rst’;
>>kit(1).lens = 5:6;
>>kit(1).sub.id = 33;
>>kit(1).sub.wt = 11.11;
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 107
>>kit(1).sub.code = ‘q’;
ởrong c{c c}u l nh sau, c}u l nh n|o l| h p l v| nêu gi{ trị tr về t ơng
ng c}u l nh n|o khẫng h p l , gi i thích.
>>kit(1).sub
>>kit(2).lens(1)
>>kit(1).code
>>kit(2).sub.id == kit(1).sub.id
>>strfind(kit(1).name, ’s’)
ọ|i .
ỗ p m t vector c u trúc có d ng nh d i đ}y v i thẫng tin c a hai phần
t còn l i trong vector sinh viên tự khai b{o.
>>subjects
subjects =
1x3 struct array with fields:
name
sub_id
height
weight
>>subjects(1)
ans =
name: ‘Joey’
sub_id: 111
height: 6.7
weight: 222.2
Gi s khẫng biết tr c s phần t c a vector c u trúc subjects, viết m t
đo n ch ơng trình tìm phần t m| gi{ trị c a c{c tr ng height hoặc weight nh
hơn gi{ trị trung bình c a tr ng height hoặc weight c a t t c c{c phần t trong
vector, in ra m|n hình thẫng tin phần t tìm đ c.
ọ|i .
Cho m t file d li u có d ng sau:
44 7 7.5 8
33 5.5 6 6.5
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . M ộG H ộ H ớ ỡủ ỏ ỗI U C2 C U ởờÚC 108
37 8 8 8
24 6 7 8
ọ|i .
ở o m t biến c u trúc lồng để l u gi thẫng tin về m t c{ nh}n bao gồm
tên, địa chỉ, s đi n tho i trong đó c{c tr ng th|nh phần địa chỉ v| s đi n tho i
có c u trúc riêng.
ọ|i .
ởìm hiểu hai h|m x}y dựng sẵn trong M‚ởỗ‚‛ l| cell2struct chuyển từ
m ng h n h p sang vector c u trúc v| struct2cell chuyển từ vector c u trúc sang
m ng h n h p .
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 109
6.1.1 C{c l nh c b n
M‚ởỗ‚‛ cung c p cho ng i dùng th vi n gồm nhiều h|m x}y dựng sẵn
để thiết l p v| hi u chỉnh đồ họa trong khẫng gian hai chiều cễng nh ba chiều.
ỏanh s{ch nh ng c}u l nh cơ b n để l|m vi c v i chế đ đồ họa trong M‚ởỗ‚‛
có thể tham kh o v i l nh help trong c a s l nh.
C{c l nh đồ họa ỏ cơ b n
>>help graph2d
C{c l nh đồ họa ỏ cơ b n
>>help graph3d
‛ c quan trọng đầu tiên khi l|m vi c v i chế đ đồ họa trong M‚ởỗ‚‛
đó l| chuẩn bị nguồn d li u. ỏ li u nguồn đ}y có thể đ c thiết l p đơn gi n
bằng c{ch nh p từ b|n phím, s dụng gi{ trị tr về c a c{c h|m, hoặc đ c thiết
l p bằng c{ch t i từ m t hay nhiều file.
ỗ nh đồ họa ỏ cơ b n nh t trong M‚ởỗ‚‛ l| plot, h|m cho phép thể hi n
d i d ng đồ thị c a m t hay nhiều t p d li u. ỡí dụ cho y l| m t vector bao
gồm c{c phần t l| lễy thừa b c c a c{c s c{ch đều . từ - đến
>>y = (-5 : 0.1 : 4).^3;
C{c phần t c a y sẽ đ c biểu di n d i d ng đồ thị nh sau
>>plot(y)
100
50
-50
-100
-150
0 50 100
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 110
ỗ u ý rằng trong đồ thị trên gi{ trị t ơng ng trên trục ho|nh chính l| s
th tự c a c{c phần t trong vector y. Đồ thị trên ho|n to|n t ơng đ ơng v i đồ
thị có hai tham s đầu v|o x v| y trong đó x l| c{c phần t c{ch đều nh n c{c gi{
trị từ đến t ơng đ ơng v i s phần t c a y).
>>x = 1 : length(y);
>>plot (x, y)
Đ i v i l nh plot chỉ có m t tham s đầu v|o plot(y), y có thể l| vector hoặc
ma tr n, tùy v|o d ng c a tham s đầu v|o m| đồ thị đ c thiết l p có sự kh{c
bi t theo quy tắc sau
- ộếu y l| vector, đồ thị có d ng t p h p c a c{c điểm (xi, yi) trong đó xi l|
s th tự c a yi trong vector y.
- ộếu y l| ma tr n m x n, đồ thị thu về l| t p h p n đ ng, trong đó m i
đ ng l| t p h p c{c điểm (xi, yi) v i xi = … m, yi c{c phần t trong m i
c t ng v i xi t ơng ng.
ỡí dụ
>>A = round(10*rand(5,3))
A =
1 2 9
5 8 10
10 3 5
3 5 1
6 7 1
>>plot(A)
10
0
1 2 3 4 5
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 111
20
18
16
14
12
10
0 2 4 6 8 10
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 112
- ộếu m t trong hai tham s l| ma tr n vuẫng, đồ thị sẽ hiển thị c{c phần
t c a tham s n|y theo c{c phần t c t c a tham s ma tr n vuẫng.
ỡí dụ
>>y3=[11 12 13; 14 15 16; 17 18 19];
>>plot(x, y3, ’*-‘)
>>hold on
>>plot(y3, x, ‘o-‘)
20
15
10
0
0 5 10 15 20
Hình 6. 4. Đồ thị (x, y3) và (y3, x)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 113
-1
-2
-3
0 5 10 15 20
Hình 6. 5. Plot giá trị 3 cặp vector trên cùng một đồ thị
Đồ thị c a c{c h|m trên đ c thể hi n bằng c{c m|u kh{c nhau, đó l| do
chế đ mặc định hiển thị m|u trong M‚ởỗ‚‛. Khi thể hi n nhiều đồ thị, c{c
đ ng biểu di n sẽ lần l t đ c hiển thị v i c{c m|u t ơng ng xanh da tr i
(blue , xanh l{ c}y green , đ red), lam (cyan , hồng th m magenta , v|ng
(yellow v| đen black . Quan s{t trên đồ thị ta có thể th y x , y , x , y , x ,
y đ c biểu di n bằng c{c đ ng m|u xanh da tr i, xanh l{ c}y v| đ t ơng
ng.
Ộ|u ỏ ng ký hi u
Ký tự Thể hiện Ký hiệu Thể hiện
B ợanh da tr i . Điểm
G ợanh l{ c}y o Hình tròn
R Đ x ỏ ux
C Lam + ỏ u+
M Hồng th m * ỏ u sao
Y ỡ|ng s Hình vuẫng
K Đen d Ỗim c ơng
ỏ ng đư ng v ởam gi{c xu ng
Ký tự Thể hiện ^ Tam gi{c lên
- ộét liền < ởam gi{c tr{i
: Hai ch m > ởam gi{c ph i
-. Ch m g ch p Ởao năm c{nh
-- ộét đ t h Ởao s{u c{nh
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 114
Chế đ đồ thị trong M‚ởỗ‚‛ cho phép hiển đ ng biểu di n v i c{c m|u
sắc, d ng đ ng, v| ký hi u kh{c nhau. Để thực hi n điều n|y, trong c}u l nh plot
có thể thêm v|o m t chu i từ đến ký tự để đặt c{c thu c tính m|u-d ng
đư ng-d ng ký hi u cho đ ng biểu di n. C{c ký tự t ng tr ng cho c{c thu c
tính c a đ ng biểu di n tóm tắt trong b ng trên.
Đ i v i plot, M‚ởỗ‚‛ yêu cầu c{c tham s ph i đ c khai b{o v| đồ thị sẽ
đ c thể hi n t ơng ng v i d i gi{ trị c a c{c tham s đầu v|o. ‛ên c nh đó,
M‚ởỗ‚‛ cễng cung c p cho ng i dùng m t l nh vẽ kh{c v i nhiều ti n ích hơn,
đó l| ezplot. Đ i v i ezplot, kho ng biểu di n c a đồ thị mặc định sẽ l| - π đến π
v| có thể thay đ i phụ thu c v|o tham s đầu v|o, tên c a đồ thị sẽ l| tên c a
chu i ký tự khai b{o trong phần tham s h|m v| đ c hiển thị trên hình vẽ. Đặc
bi t, ezplot cho phép vẽ đồ thị biểu di n h|m s khai b{o d i d ng chu i ký tự.
Cú ph{p l nh nh sau
>>ezplot(fun);
>>ezplot(fun, [a, b]);
ởrong đó fun l| h|m s đ c vẽ đồ thị. cú ph{p th nh t, đồ thị h|m s
sẽ đ c thể hi n trên kho ng mặc định l| -2π đến π, cú ph{p th hai, ng i s
dụng có thể thể hi n đồ thị trên kho ng a, b tùy chọn.
ỡí dụ sau đ}y so s{nh hai h|m plot v| ezplot vẽ đồ thị h|m s y = x2 + 2x +
1.
>>x = -2*pi: .1 : 2*pi; >>ezplot(‘x^2 + 2*x + 1’);
>>y = x.^2 + 2.*x + 1;
>>plot(x,y)
Ỗhi s dụng h|m plot, đầu tiên cần khai b{o vector x, từ h|m s đã cho tìm
gi{ trị vector y, sau đó thực hi n l nh vẽ đồ thị. ởuy nhiên đ i v i ezplot chỉ cần
thực hi n m t c}u l nh đơn gi n, kết qu đồ thị thu đ c từ hai c{ch l| t ơng
đ ơng. Ở dụng h|m ezplot trong M‚ởỗ‚‛ có thể coi l| c{ch đơn gi n nh t để
thể hi n đồ thị c a m t h|m s kiểu chu i ký tự hoặc biến ký hi u, tuy nhiên về
mặt ch c năng, ezplot có nhiều h n chế hơn so v i plot.
C{c thẫng s c a đồ thị biểu di n trong M‚ởỗ‚‛ có thể đ c thay đ i s
dụng c{c l nh sau
- Điều chỉnh hai trục tọa đ axis trong đó cần l u ý cú ph{p c a hai c}u
l nh sau
>>axis ([Xmin Xmax Ymin Ymax])
biểu di n đồ thị trong gi i h n ợmin ≤ ợ ≤ ợmax, Ymin ≤ Y ≤
>>axis equal
Ymax.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 115
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 116
>>x = 1:10;
>>y1 = 0.5*x;
>>y2 = x^2 – 5*x;
>>plot(x,y1);
>>hold on;
>>plot(x,y2);
>>plot([8,8],[-10,50]);
50
40
30
20
10
-10
2 4 6 8 10
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 117
1500
1000
500
-500
0 5 10 15 20 25
20 1300
15 1200
10 1100
5 1000
0 900
-5 800
-10 700
-15 600
-20 500
0 5 10 15 20 25
Hình 6. 8. Hai đồ thị với hai trục tung tương ng khác nhau
M t c{ch kh{c để thể hi n nhiều hơn m t đồ thị trên cùng m t trục tọa đ
đó l| s dụng l nh lines, l nh n|y cho phép chèn thêm đồ thị t o b i c{c gi{ trị c a
m t cặp vector hoặc vector lên m t trục tọa đ có sẵn.
ỡí dụ
0 x 5, 1 y 5
ởhể hi n đồ thị c a c{c đ ng sau trên cùng m t trục tọa đ
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 118
y1 sin t
y2 t
y3 t
t3 t5 t7
0 t 2
3! 5! 7!
-1
0 1 2 3 4 5
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 119
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 120
100
diem cuc dai
0
diem cuc tieu
-100
-200
-300
-5 0 5
x
6. . Ở d ng plot
M‚ởỗ‚‛ cung c p cho ng i dùng m t th vi n h|m phong phú để l|m
vi c v i chế đ đồ họa trong c khẫng gian hai chiều v| ba chiều. ởrong mục n|y,
m t s l nh cơ b n để t{i hi n l i d li u trong khẫng gian ba chiều cễng nh m t
s kỹ thu t t o bề mặt sẽ đ c trình b|y v i mục đích cung c p cho ng i đọc m t
c{i nhìn t ng quan về c{c h|m đồ họa trong MATLAB.
ở ơng tự nh l nh plot nh trong khẫng gian hai chiều, ta có thể s dụng
l nh plot3 để t{i hi n l i d li u trong khẫng gian ba chiều v i c{c ch c năng
t ơng tự, kèm theo m t tham s th ba để biểu di n trục z. ợét ví dụ sau v i l nh
plot3:
>>t = 0: .1 : 10*pi;
>>x = exp(-t/20).*cos(t);
>>y = exp(-t/20).*sin(t);
>>z = t;
>>plot3(x, y, z);
>>xlabel(‘x’);
>>ylabel(‘y’);
>>zlabel(‘z’);
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 121
40
20
z
0
1
1
0 0.5
0
-0.5
y -1 -1
x
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 122
xy. Đơn vị c a hai thẫng s azimuth v| elevation đều l| đ . ởrong M‚ởỗ‚‛, c{c
thẫng s n|y đ c mặc định lần l t l| ‚Z=-37.5o v| Ốỗ= o.
Gốc tọa đ
20
z
0
1
0.5
-0.5
y 0.5 1
-1 -0.5 0
-1
x
>>plot3(x,y,z,’og’);
>>xlabel(‘x’);
>>ylabel(‘y’);
>>zlabel(‘z’);
>>view(-9,56);
>>title(‘Az=-9,El=56’);
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 123
AZ = 0, EL = 90
1
0.5
y
-0.5
-1
-1 -0.5 0 0.5 1
x
>>plot3(x,y,z,’xb’);
>>xlabel(‘x’);
>>ylabel(‘y’);
>>zlabel(‘z’);
>>view(0,90);
>>title(‘Az=0,El=90’);
AZ = 90, EL = 0
35
30
25
20
z
15
10
0
-1 -0.5 0 0.5 1
y
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 124
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 125
>>[X,Y]=meshgrid(linspace(0,2*pi,50),
linspace(0,pi,50));
>>Z=sin(X).*cos(Y);
>>mesh(X, Y, Z);
>>xlabel(‘x’); ylabel(‘y’); zlabel(‘z’);
>>axis([0 2*pi 0 pi -1 1])
0.5
0
z
-0.5
-1
3
2 6
4
1
2
y 0 0
x
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 126
0.5
-0.5
-1
4
8
2 6
4
2
0 0
Hình 6. 17. Thể hiện màu trên các ô lưới với lệnh surf
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 127
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 128
ọ|i 6.1
y(x)=e-0.7x sin15x
1
0.5
y 0
-0.5
-1
0 5 10 15
x
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 129
>> y=exp(-0.7*x).*sin(15*x);
>> plot(x,y)
>> xlabel('x')
>> ylabel('y')
>> title('y(x)=e^-^0^.^7^x sin15x');
ọ|i 6.2
ỡẽ đồ thị h|m s sau s dụng l nh polar.
r 2 5cos3t v i 0 t 2
Đáp án:
90 3
120 60
2
150 30
1
180 0
210 330
240 300
270
>> t=linspace(0,2*pi,200);
>> r=sqrt(abs(5*cos(3*t)));
>> polar(t,r)
ọ|i .
ỏùng l nh fill tẫ m|u vùng gi i h n b i x, y trong đó
r 2 5cos3t 0 t 2
x r cos t y r sin t
Đáp án:
>> t=linspace(0,2*pi,200);
>> r=sqrt(abs(5*cos(3*t)));
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 130
>> x=r.*cos(t);
>> y=r.*sin(t);
>> fill(x,y,'k')
>> axis('square')
1.5
0.5
-0.5
-1
-1.5
-2
-4 -2 0 2 4
ọ|i 6.4
Ở dụng l nh plotyy để vẽ hai đồ thị h|m s trên cùng trục tọa đ .
y1 e2 x cos x
y e2x 0 x 20
Đáp án:
>> x=1:0.1:20;
>> y1=exp(-2*x).*cos(x);
>> y2=exp(2*x);
>> Ax=plotyy(x,y1,x,y2);
>> hy1=get(Ax(1),'ylabel');
>> hy2=get(Ax(2),'ylabel');
>> set(hy1,'string','exp(-2x).cos(x)')
>> set(hy2,'string','exp(2x)')
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 131
17
x 10
0.08 2.5
0.06 2
exp(-2x).cos(x)
0.04 1.5
exp(2x)
0.02 1
0 0.5
-0.02 0
0 2 4 6 8 10 12 14 16 18 20
ọ|i 6.5
Ở dụng l nh area tẫ m|u vùng khẫng gian x{c định b i đồ thị h|m s v i trục
tung v| trục ho|nh
y 5 x 5
cos x
x
cos(x)/x) 0
-2
-4
-6
-8
-15 -10 -5 0 5 10 15
x
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 132
Đáp án:
>> x=linspace(-5*pi,5*pi,100);
>> y=cos(x)./x;
>> area(x,y);
>> xlabel('x')
>> ylabel('cos(x)/x)')
ọ|i 6.6
ỏùng l nh surf để vẽ đồ thị h|m s sau trong khẫng gian chiều.
x2 y 2
z cos( x)cos( y )e 5
x 7 y 7
Đáp án:
0.5
-0.5
-1
10
5 10
0 5
0
-5 -5
-10 -10
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 133
Đáp án:
>> t=0:0.1:6*pi;
>> x=sqrt(t).*sin(3*t);
>> y=sqrt(t).*cos(3*t);
>> z=0.8*t;
>> plot3(x,y,z)
>> grid
20
15
10
0
5
5
0
0
-5 -5
ọ|i .
z
2xy 2
x2 y 2
Ở dụng l nh mesh v| surface để vẽ đồ thị h|m s trên kho ng
2 x 6 v| 2 y 8
Đáp án:
>> x=-2:0.1:6;
>> y=2:0.1:8;
>> [x,y]=meshgrid(x,y);
>> z=2*x.*y.^2./(x.^2+y.^2);
>> mesh(x,y,z)
>>figure(2)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 134
>> surf(x,y,z)
10
-5
8
6 6
4
4 2
0
2 -2
10
-5
8
6 6
4
4 2
0
2 -2
ọ|i 6.9
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 135
>> z=2.^(-1.5*sqrt(x.^2+y.^2))*cos(0.5*y).*sin(x);
>> surf(x,y,z);
>> shading interp;
10
-5
-10
4
2 4
0 2
0
-2 -2
-4 -4
ọ|i 6.10
f (t ) t cos t 0 t 10
a. ỏùng l nh fplot để vẽ đồ thị h|m s sau
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 136
40
30
20
10
-10
-20
-30
0 5 10 15 20 25 30
b.
1.6
1.4
1.2
0.8
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3
>> t=linspace(0,pi,200);
>> r=sqrt(abs(3*sin(7*t)));
>> y=r.*sin(t);
>> stairs(t,y)
>> axis([0 pi 0 inf])
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . Đồ thị trong MATLAB 137
c.
>> t=linspace(0,pi,200);
>> r=sqrt(abs(3*sin(4*t)));
>> y=r.*sin(t);
>> bar(t,y)
>> axis([0 pi 0 inf])
1.6
1.4
1.2
0.8
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 138
7. Ồi i thi u Ộ-file
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 139
7. . Văn b n
Để t o m t văn b n trong M‚ởỗ‚‛ . . ờ b , nh p chu t v|o ốile,
chọn ộew sau đó chọn M-file. M t c a s m i gọi l| Editor sẽ xu t hi n. ởrong
c a s n|y, nh p chu i c{c c}u l nh mong mu n s dòng c a văn b n sẽ hiển thị
bên tr{i, khẫng có d u nhắc >> rồi l u l i v i tên có phần m r ng .m mặc định
trong M‚ởỗ‚‛ . ỡí dụ sau minh họa cho vi c t o m t văn b n có tên script1.m để
tính di n tích hình tròn v i b{n kính cho tr c. ởrong ví dụ n|y, n i dung c a văn
b n sẽ đ c thể hi n trong ẫ hình ch nh t v i tên file trên
script1.m
radius = 5
area = pi * (radius^2)
radius = 5
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 140
area = pi * (radius^2)
ỗ nh help trong M‚ởỗ‚‛ cễng có thể s dụng đ i v i M-file v| sẽ hiển thị
kh i chú thích đầu tiên đ c hiểu l| nh ng dòng chú thích kế tiếp nhau trên c a
s l nh. ỡí dụ đ i v i văn b n script1b.m vừa l u
>>help script1b
Chuong trinh tinh dien tich hinh tron
ởr ng h p gi a hai dòng chú thích %Chuong trinh v| %Cho truoc
khẫng ph i l| m t dòng tr ng, M‚ởỗ‚‛ sẽ hiểu hai dòng n|y thu c cùng m t
kh i chú thích v| sẽ hiển thị lên m|n hình khi l nh help cho văn b n n|y đ c gọi.
ởrong l p trình, vi c xu t nh p d li u c{c d ng kh{c nhau l| r t quan
trọng. C{c l nh cơ b n về xu t nh p d li u đã đ c gi i thi u ch ơng m đầu
v| sẽ đ c nhắc l i cụ thể hơn ch ơng n|y trong c{c b|i t p t ơng ng. ỡí dụ:
Từ file script1b.m viết ch ơng trình tính di n tích hình tròn v i b{n kính nh p từ
b|n phím.
script2.m
%Chuong trinh tinh dien tich hinh tron
%Dua vao ban kinh duoc nhap tu ban phim
%Yeu cau nhap ban kinh hinh tron tu ban phim
fprintf(‘Luu y: Don vi ban kinh la centimet\n’)
radius = input(‘Nhap ban kinh: ‘);
area = pi * (radius^2);
%In ra cac gia tri ban kinh va dien tich hinh tron
fprintf(‘Ban kinh hinh tron la %.2f cm, \n’, radius)
fprintf(‘Dien tich hinh tron la %.2f cm2\n’, area)
Ỗhi ch y ch ơng trình, m|n hình sẽ hi n ra c{c n i dung sau
>> script2
Luu y: Don vi ban kinh la centimet
Nhap ban kinh: 3.9
Ban kinh hinh tron la 3.90 cm,
Dien tich hinh tron la 47.78 cm2
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 141
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 142
ộói chung vi c gọi h|m sẽ thực thi th|nh cẫng khi nh p tên c a file ch a
h|m tuy nhiên để tr{nh rắc r i v| d qu n lý, nên chọn tên file v| tên h|m trùng
nhau. Ỗết qu tr về c a h|m có thể l u trong m t biến có tên trùng hoặc kh{c v i
tên c a gi{ trị tr về trong h|m.
Gi{ trị tr về c a h|m cễng có thể in ra m|n hình hoặc xu t ra file s dụng
l nh disp hoặc fprintf:
>>disp(calcarea(4))
50.2655
>>fprintf(‘Dien tich hinh tron la %.1f\n’, calcarea(4))
Dien tich hinh tron là 50.3
C{c h|m do ng i dùng định nghĩa cễng có thể đ c gọi từ văn b n gi ng
nh c{c h|m x}y dựng sẵn trong M‚ởỗ‚‛. ỡí dụ tính di n tích hình tròn trên đ}y
l| m t tr ng h p đơn gi n chỉ cần s dụng m t tham s đầu v|o. ởuy nhiên
trong thực tế chúng ta th ng gặp ph i c{c b|i to{n ph c t p yêu cầu nhiều tham
s đầu v|o cễng nh c{c tính to{n trung gian đ i v i biến cục b để có thể đ a ra
gi{ trị tr về mong mu n nh ví dụ sau ởính tiền cẫng bằng UỞỏ cho vi c gia
cẫng m t hình trụ tròn biết c{c kích th c c a hình trụ cễng nh gi{ th|nh gia
cẫng cho m t m2 tính bằng ỡộỏ v| tỉ gi{ UỞỏ = ? ỡộỏ. Chúng ta có thể gi i b|i
to{n bằng c{ch tính to{n di n tích xung quanh c a hình trụ từ đó tính ra gi{ th|nh
gia cẫng bằng ỡộỏ rồi quy đ i ra UỞỏ v i tỉ gi{ cho tr c. ỏi n tích xung quanh
c a hình trụ đ c tính theo cẫng th c
dt 2 rh 2 r 2
giacong.m
function chiphi=giacong(r, h, giaVND, tigia)
% Ham tinh so tien tra cho viec gia cong mot hinh tru
tron bang USD
% Cu phap goi ham: giacong(ban kinh, chieu cao, gia
theoVND, ti gia quy doi)
% Ham tra ve chi phi tinh bang USD
% Ban kinh va chieu cao tinh bang m
% Chi phi co don vi USD/m2
% Tinh dien tich xung quanh cua hinh tru
dt = 2*pi*r*h + 2*pi*r^2;
% Tinh chi phi gia cong bang VND
cpVND = dt*giaVND;
% Tinh chi phi gia cong bang USD
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 143
chiphi = cpvnd/tigia;
end
H|m có thể đ c gọi nh sau, ví dụ hình trụ b{n kính . m, chiều cao . m,
tiền cẫng l| ỡộỏ/m2 v| ỡộỏ đ i đ c UỞỏ.
>>giacong(.1, .5, 200000, 20000)
ans =
3.7699
>>fprintf('Tien gia cong hinh tru la: %.2f
USD\n',giacong(.1,.5,200000,20000))
Tien gia cong hinh tru la 3.77 USD
H|m do ng i dùng tự định nghĩa trong M‚ởỗ‚‛ có thể đ c ph}n bi t
theo s l ng biến đầu v|o v| kết qu đầu ra nh sau
- H|m tính to{n v| tr về m t gi{ trị
- H|m tính to{n v| tr về nhiều hơn m t gi{ trị
- H|m chỉ thực hi n m t s nhi m vụ nh t định m| khẫng tr về gi{ trị n|o
ỡề t ng quan, nh đã trình b|y trên, mọi h|m do ng i dùng tự định
nghĩa trong M‚ởỗ‚‛ đều có từ khóa function đầu, trong tr ng h p h|m có
tr về gi{ trị thì t p h p c{c tên c a gi{ trị tr về sẽ đ c thể hi n trên cùng dòng
v i từ khóa function, theo sau l| phép g{n = . ởham s đầu v|o đ c biểu di n
trong ngoặc đơn, trong tr ng h p có nhiều tham s đầu v|o, s dụng d u , để
ph}n bi t.
ỡí dụ trên l| m t minh họa cho h|m tr về m t gi{ trị, đ i v i h|m tr về
nhiều hơn m t gi{ trị, cú ph{p t ng qu{t c a m t h|m d ng n|y nh sau
ten_ham.m
function [tap hop cac gia tri tra ve] = ten_ham(tap hop
cac tham so vao)
%Dong chu thich mo ta noi dung ham
Cac cau lenh thanh phan
Tat ca cac gia tri tra ve liet ke o dong dau deu phai
duoc gan gia tri
end
ỗ u ý l| đ i v i d ng h|m n|y, trong phần th}n h|m bắt bu c ph i có l nh
g{n gi{ trị cho t t c c{c gi{ trị tr về đã đ c li t kê phần khai b{o h|m.
ỡí dụ h|m sau sẽ tính v| tr về hai gi{ trị chu vi v| di n tích c a hình tròn
v i tham s đầu v|o l| b{n kính c a hình tròn t ơng ng.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 144
areacirc.m
function [area, circum] = areacirc(rad)
% ham areacirc tra ve gia tri chu vi va dien tich hinh
% tron
% cu phap goi ham: areacirc(radius)
area = pi * rad .* rad;
circum = 2 * pi * rad;
end
ỏo h|m có hai gi{ trị tr về, dòng khai b{o h|m, hai gi{ trị tr về n|y sẽ
đ c biểu di n trong ngoặc vuẫng, ph}n bi t v i nhau b i d u phẩy. ỗ u ý l| do
h|m có hai gi{ trị tr về nên cần ph i l u c{c gi{ trị n|y v|o c{c biến riêng bi t
kh{c nhau, trong ví dụ n|y, di n tích sẽ đ c l u v|o biến a v| chu vi đ c l u
v|o biến c
>>[a c] = areacirc(4)
a =
50.2655
c =
25.1327
ởrong tr ng h p khẫng l u v|o c{c biến riêng lẻ, chỉ có gi{ trị đầu tiên
c a h|m đ c tr về, ví dụ
>>disp(areacirc(4))
50.2655
Ởinh viên cần l u ý về th tự l u c{c gi{ trị tr về nh trong dòng khai b{o
h|m, trong tr ng h p n|y, gi{ trị tr về đầu tiên sẽ l| di n tích, tiếp theo l| chu
vi, tuy nhiên th tự g{n kết qu cho c{c gi{ trị tr về trong th}n h|m khẫng quan
trọng. b|i n|y, sinh viên có thể kiểm tra kết qu khi tham s đầu v|o khẫng
ph i l| m t s m| l| m t vector.
ở ơng tự nh c{c h|m x}y dựng sẵn trong M‚ởỗ‚‛, khi dùng h|m help
đ i v i h|m vừa t o, m|n hình sẽ hiển thị n i dung trong c{c dòng chú thích ngay
phía d i dòng khai b{o h|m, ví dụ
>>help areacirc
ham areacirc tra ve gia tri chu vi va dien tich hinh
tron
cu phap goi ham: areacirc(radius)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 145
ỡi c gọi h|m cễng ho|n to|n t ơng tự nh đ i v i c{c h|m x}y dựng sẵn
trong M‚ởỗ‚‛, nghĩa l| ng i s dụng có thể gọi trực tiếp trong c a s l nh hoặc
trong văn b n
Đ i v i c{c h|m khẫng có gi{ trị tr về m| chỉ thực hi n m t s nhi m vụ
nh t định, cú ph{p t ng qu{t nh sau
ten_ham.m
function ten_ham(tap hop cac tham so vao)
%Dong chu thich mo ta noi dung ham
Cac cau lenh thanh phan
end
ỗ u ý dòng khai b{o h|m, ta có thể th y khẫng có khai b{o c{c gi{ trị tr
về cễng nh khẫng có phép g{n =, ví dụ h|m sau chỉ thực hi n nhi m vụ in c{c
tham s đầu v|o đã nh p trong cùng m t c}u
printem.m
function printem(a,b)
% printem in hai tham so dau vao trong cung mot cau
% cu phap goi ham: printem(so1, so2)
fprintf(‘So thu nhat %.1f va so thu hai %.1f\n’,a,b)
end
ỡí dụ gọi h|m
>>printem(3.3, 2)
So thu nhat 3.3 va so thu hai 2.0
ỗ u ý do h|m khẫng có gi{ trị tr về nên nếu g{n kết qu c a h|m cho m t
biến, M‚ởỗ‚‛ sẽ hiển thị thẫng b{o l i, ví dụ
>>x = printem(3, 5) %Error!!
??? Error using ==> printem
Too many output arguments.
Đ i v i c{c ví dụ trên, ta đều th y c{c h|m đều có tham s đầu v|o, tuy
nhiên trong m t s tr ng h p, tùy v|o b|i to{n cụ thể, sự xu t hi n c a tham s
đầu v|o l| khẫng cần thiết, ví dụ h|m sau sẽ in ra m t s ng u nhiên v i hai ch
s phần th p ph}n
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 146
printrand.m
function printrand()
% printrand in ra man hinh mot so ngau nhien
% cu phap goi ham: printrand hoac printrand()
fprintf(‘So ngau nhien la %.2f\n’,rand)
end
7. C{c l nh l a ch n
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 147
>>3 < 5
ans =
1
>>2 > 9
ans =
0
Gi{ trị tr về c a phép to{n so s{nh mặc dù l| c{c gi{ trị logic nh ng v n có
thể s dụng trong tính to{n to{n học v i c{c gi{ trị v| . ỡí dụ
>>5 < 7
ans =
1
>>ans + 3
ans =
4
C{c phép to{n logic th ng gặp l|:
| hoặc || Logic OR
& hoặc && Logic AND
~ Logic NOT
‛ên c nh đó M‚ởỗ‚‛ còn có phép to{n xor chỉ nh n hai tham s đầu v|o
v| tr về gi{ trị logic đềng khi m t v| chỉ m t tham s l| đềng. ỡí dụ:
>>xor(3<5, ‘a’ > ‘c’)
ans =
1
>>xor(3<5, ‘a’ < ‘c’)
ans =
0
‛ ng gi{ trị cho c{c phép to{n logic đ c gi i thi u trong ch ơng n|y đ i
v i hai biến x, y đ c trình b|y trong b ng d i
x y ~x x || y x && y xor (x, y)
1 1 0 1 1 0
1 0 0 1 0 1
0 0 1 0 0 0
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 148
7.2.2 IF
If cho phép lựa chọn thực hi n hoặc khẫng thực hi n m t hoặc nhóm c}u
l nh. Cú ph{p t ng qu{t cho c}u l nh điều ki n n|y l|
if dieu_kien
hanh_dong
end
ởrong đó dieu_kien l| biểu th c quan h chỉ nh n gi{ trị đềng hoặc sai,
hanh_dong l| m t hoặc nhóm c}u l nh sẽ đ c thực hi n khi dieu_kien nh n gi{ trị
đềng. ỡí dụ sau đ}y sẽ kiểm tra m t gi{ trị l| d ơng hay }m, sau đó chuyển gi{ trị
}m sang gi{ trị d ơng bằng c{ch l y gi{ trị tuy t đ i.
if num < 0
num = abs(num)
end
Có thể s dụng if trong c a s l nh tuy nhiên t t nh t v n nên thực hi n
trong M-file để d kiểm so{t cễng nh thực hi n l nh. M r ng ví dụ trên, ta có
thể kiểm tra m t s nh p v|o từ b|n phím l| }m hay d ơng v| thực hi n phép
tính khai căn v i s nh p v|o nếu đó l| s d ơng, hoặc khai căn v i trị tuy t đ i
c a s đó nếu s nh p v|o }m.
vidukhaican.m
% Yeu cau nhap vao mot so tu ban phim, tra ve gia tri
can bac hai
num = input(‘Hay nhap mot so: ‘);
% Neu so duoc nhap vao nhan gia tri am, tim tri tuyet
doi cua so do
if num<0
disp(‘Ban da nhap vao so am, chuong trinh se khai
can gia tri tuyet doi’);
num = abs (num)
end
fprintf(‘Can bac hai cua %.1f la %.1f
\n’,num,sqrt(num))
Ch y th ch ơng trình v i c{c s nh p v|o l| v| - , cho biết kết qu .
ởrong khi l nh if chỉ cho phép lựa chọn có hay khẫng thực thi m t hay
nhóm c}u l nh, để lựa chọn gi a nhiều hay c{c nhóm c}u l nh ta có thể s dụng
if-else, c{c c}u l nh if lồng nhau, switch.
Cú ph{p cho c}u l nh if-else nh sau
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 149
if dieu_kien
hanh_dong_1
else
hanh_dong_2
end
C{c hanh_dong sẽ đ c thực hi n dựa trên vi c kiểm tra dieu_kien. ộếu
dieu_kien nh n gi{ trị đềng, hanh_dong_1 sẽ đ c thực thi v| sau khi ho|n th|nh,
c}u l nh if-else sẽ kết thúc. ộếu dieu_kien nh n gi{ trị sai, ch ơng trình sẽ b qua
hanh_dong_1 để thực hi n hanh_dong_2 v| sau đó kết thúc c}u l nh if-else. ỡí dụ
testifelse.m
a=rand;
fprintf('So ngau nhien vua nhan: %.1f\n',a);
if a<=.5
fprintf('la mot so nho hon hoac bang 0.5\n')
else
fprintf('la mot so lon hon 0.5\n')
end
M t trong nh ng ng dụng c a if-else l| để kiểm tra l i nh p d li u trong
văn b n. ỡí dụ đầu ch ơng chúng ta có ch ơng trình nh p b{n kính hình tròn
rồi tính di n tích, b}y gi ta sẽ chèn thêm dòng l nh để kiểm tra xem b{n kính
nh p v|o có h p l hay khẫng ví dụ b{n kính nh hơn khẫng l| khẫng h p l .
checkradius.m
% Chuong trinh tinh dien tich hinh tron
% Kiem tra tinh hop le cua gia tri ban kinh nhap vao
radius = input(‘Hay nhap vao ban kinh: ‘);
if radius <= 0
fprintf(‘Xin loi, %.2f khong phai la ban kinh hop
le\n’,radius)
else
area = calcarea(radius);
fprintf(‘Hinh tron co ban kinh %.2f,’,radius)
fprintf(‘ co dien tich la %.2f\n’,area)
end
Qua ví dụ trên có thể th y vi c s dụng if-else cho phép lựa chọn thực hi n
gi a hai c}u l nh hay hai nhóm c}u l nh, trong tr ng h p s l nh, nhóm l nh
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 150
ph i lựa chọn nhiều hơn hai, có thể s dụng c{c c}u l nh if lồng nhau. ợét ví dụ
v i h|m s y=f(x) d i đ}y
y 1 nếu x 1
y x 2 nếu 1 x 2
y 4 nếu x 2
‛iểu di n t ơng ng trong M‚ởỗ‚‛
if x < -1
y = 1;
else
Đến đ}y chỉ xét tr ng h p x>=-1
S dụng if-else để lựa chọn gi a hai kho ng còn l i
if x <= 2
y = x^2;
else
Chỉ còn l i tr ng h p x>
y = 4;
end
end
ởrong phần l n c{c ngẫn ng l p trình, khi có nhiều c}u l nh, nhóm c}u
l nh để lựa chọn, ta có thể s dụng c{c c}u l nh if lồng nhau. Tuy nhiên,
M‚ởỗ‚‛ cho phép gi i quyết v n đề trên bằng m t c}u l nh kh{c elseif, khi có
trên hai lựa chọn tr lên.
if dieu_kien_1
hanh_dong_1
elseif dieu_kien_2
hanh_dong_2
elseif dieu_kien_3
hanh_dong_3
else
hanh_dong_khac
end
ợét ví dụ viết h|m đ i điểm s ra điểm ch sau đ}y, trong đó điểm s l| s
nguyên đ c nh p từ b|n phím, điểm trên đến t ơng ng v i điểm ‚ , điểm
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 151
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 152
>>diemchu = doidiem(11)
diemchu =
X
7.2.3 SWITCH
ỗ nh switch th ng s dụng trong tr ng h p c{c c}u l nh if lồng nhau
hoặc s dụng nhiều c}u l nh elseif. Switch đ c s dụng khi so s{nh xem m t
biểu th c có gi{ trị bằng c{c gi{ trị cụ thể cho tr c.
Cú ph{p c a switch:
switch bieu_thuc
case truong_hop_1
hanh_dong_1
case truong_hop_2
hanh_dong_2
case truong_hop_3
hanh_dong_3
otherwise
hanh_dong_n
end
M t c}u l nh switch bắt đầu v i từ khóa switch v| kết thúc v i từ khóa
end. ởr c tiên biểu th c trong switch sẽ đ c so s{nh theo th tự v i c{c gi{ trị
c a (trường hợp , trường hợp , trường hợp … . ộếu gi{ trị c a biểu th c trùng v i
gi{ trị c a trường hợp , hành động sẽ đ c thực thi v| sau đó kết thúc c}u l nh
switch. ộếu gi{ trị c a biểu th c trùng v i tr ng h p i, hành động i sẽ đ c thực
thi v| kết thúc c}u l nh switch. ộếu gi{ trị c a biểu th c khẫng trùng v i tr ng
h p n|o, hành động n phía d i từ khóa otherwise sẽ đ c thực thi. ợét ví dụ sau
đ}y nếu ng i s dụng chỉ nh p v|o từ b|n phím c{c gi{ trị , , thì M‚ởỗ‚‛ sẽ
in ra m|n hình m t , ba , năm t ơng ng, tr ng h p gi{ trị nh p v|o khẫng
ph i l| , , M‚ởỗ‚‛ sẽ hiển thị thẫng b{o l i.
otherwisetest.m
%Vi du su dung otherwise trong switch de hien thi thong
bao loi
sonhap=input('Nhap vao mot trong cac gia tri 1, 3, 5:
');
switch sonhap
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 153
case 1
disp('So nhap vao la so mot!!');
case 3
disp('So nhap vao la so ba!!');
case 5
disp('So nhap vao la so nam!!')
otherwise
disp('So nhap vao khong dung, lam theo huong
dan lan sau!!')
end
7. Vòng lặp
7.3.1 FOR
ỡòng lặp for th ng s dụng khi cần lặp l i nhiều lần m t l nh hay nhóm
c}u l nh trong M-file văn b|n hay h|m v| s lần lặp x{c định tr c, trong đó lần
lặp th n đ c x{c định b i gi{ trị c a bi n lặp. C{c biến lặp th ng gặp trong c{c
ngẫn ng l p trình l| i, j, k, l… tuy nhiên trong M‚ởỗ‚‛ do i v| j đã đ c s
dụng để biểu di n s ph c nên cần l u ý khi s dụng i v| j l|m biến lặp.
Cú ph{p cho vòng lặp for:
for bien_lap = khoang_lap
hanh_dong
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 154
end
ởrong đó khoảng_lặp ch a c{c gi{ trị từ nh nh t đến l n nh t c a biến_lặp.
khoảng_lặp có thể đ c định nghĩa bằng vector tuy nhiên thẫng th ng khoảng_lặp
đ c biểu di n s dụng d u hai ch m :
ỡí dụ: In m t c t s nh n c{c gi{ trị từ đến :
for i = 1 : 5
fprintf(‘%d \n’, i)
end
Đầu tiên biến lặp i sẽ đ c g{n gi{ trị đầu tiên c a khoảng_lặp l| , sau đó
hành_động c a vòng lặp for sẽ đ c thực thi đ}y l| l nh fprintf in ra gi{ trị c a i,
sau đó xu ng dòng . ởiếp đó i sẽ đ c g{n gi{ trị , M‚ởỗ‚‛ in gi{ trị t ơng ng
c a i ra m|n hình, xu ng dòng cho đến khi hành_động thực hi n xong v i i nh n
gi{ trị cu i cùng bằng , vòng lặp kết thúc.
M t trong nh ng ng dụng ph biến c a vi c s dụng vòng lặp for l| tính
t ng hoặc tích. M‚ởỗ‚‛ có h|m sum v| prod để tính t ng v| tích c a c{c phần t
trong m t vector, ta có thể s dụng for để thực hi n cẫng vi c t ơng đ ơng m|
>>A = 1:10;
>>sumA = 0;
>>prodA = 1;
>>for i = 1 : length(A)
sumA = sumA + i;
prodA = prodA * I;
end
Ởo s{nh sumA v| prodA v i kết qu c{c phép tính sum(A) v| prod(A).
ỡòng lặp for cễng có thể kết h p v i c}u l nh lựa chọn if nh trong ví dụ
d i đ}y Chỉ tính t ng nh ng phần t trong ‚ nh n gi{ trị nh hơn v| tính tích
c a c{c phần t còn l i c a ‚.
>>sum5 = 0;
>>postrest = 1;
>>for i = 1 : length(A)
if i < 5
sum5 = sum5 + i;
else
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 155
postrest = postrest * i;
end
end
ộh đã th y ví dụ trên, hành_ động trong vòng lặp for có thể l| b t kì
c}u l nh h p l n|o, vì thế ta có thể nhiều vòng lặp for lồng trong nhau theo cú
ph{p sau
for bien_lap_1 = khoang_lap_1
%hanh dong 1 tuong duong voi viec khai bao them
vong lap
for bien_lap_2 = khoang_lap_2
hanh_dong_2
end
end
C{c vòng lặp for lồng nhau th ng gặp trong ma tr n khi ph i duy t c{c
phần t theo h|ng v| c t. ỡí dụ hãy in ra m|n hình ngẫi sao xếp theo h|ng
liên tiếp m i h|ng ngẫi
>>h = 3; c = 5;
>>for i = 1 : h
for j = 1 : c
fprintf(‘*’);
end
fprintf(‘\n’);
end
*****
*****
*****
7.3.2 WHILE
C}u l nh while l| c}u l nh cho phép lặp có điều ki n trong M‚ởỗ‚‛, đ c
s dụng để lặp l i m t h|nh đ ng khi khẫng biết chính x{c s lần lặp. Cú ph{p
t ng qu{t
while dieu_kien
hanh_dong
end
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 156
ởr c tiên dieu_kien sẽ đ c kiểm tra, nếu dieu_kien nh n gi{ trị logic đềng,
hanh_dong sẽ đ c thực thi. Ởau đó M‚ởỗ‚‛ thực hi n l i phép kiểm tra, nếu
dieu_kien v n nh n gi{ trị đềng, hanh_dong l i tiếp tục đ c thực thi ỡòng lặp có
thể tr th|nh vòng lặp vẫ cùng nếu dieu_kien khẫng nh n gi{ trị sai nh ví dụ sau
đ}y
>>dieu_kien=1;
>>while dieu_kien
fprintf(‘Su dung to hop phim Ctrl+C de thoat khoi vong
lap\n’)
end
Để tr{nh tr ng h p vòng lặp vẫ cùng nh trên, hanh_dong ph i d n đến
sự thay đ i trong dieu_kien để gi{ trị logic c a nó tr th|nh sai. ỡí dụ cho m t
chu i vẫ h n c{c s sau trong đó phần t đầu tiên c a chu i nh n
gi{ trị , phần t th hai nh n gi{ trị , phần t th n nh n gi{ trị bằng tích c a
phần t th n-1 nh}n v i vị trí c a phần t đó trong chu i n. ỡiết h|m tìm phần t
đầu tiên c a chu i l n hơn gi{ trị tham s đầu v|o c a h|m đó.
timso.m
function a = timso(b)
%Tim so tra ve gia tri phan tu dau tien cua chuoi lon
hon tham so dau vao cua ham
i = 1;
so = 1;
while so <= b
i = i + 1;
so = so * i;
end
a = so;
end
ỡí dụ: Cho tham s đầu v|o c a h|m bằng .
>>timso(700)
ans =
720
ởrong ch ơng trình n|y ta s dụng hai biến i v| so, trong đó i biểu di n s
th tự c a phần t trong chu i, so đ i di n cho c{c phần t trong chu i bắt đầu từ
phần t th nh t, dieu_kien đ c chọn cho h|m l| phần t th nh t nh hơn gi{ trị
đầu v|o c a h|m. Ch y vòng lặp while lần đầu tiên, dieu_kien v n nh n gi{ trị
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 157
đềng (1 < 700), so đ c g{n gi{ trị c a phần t th hai trong chu i theo cẫng th c
(1 * 2 = 2),dieu_kien m t lần n a đ c kiểm tra v| v n tr về gi{ trị đềng. Qu{ trình
kiểm tra điều ki n v| g{n đ c lặp l i đến khi so nh n gi{ trị l n hơn tham s đầu
v|o c a h|m, ch ơng trình kết thúc.
M t ví dụ kh{c về vi c ng dụng vòng lặp while đó l| lặp l i vi c nh p gi{
trị từ b|n phím theo định d ng cho tr c.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 158
ọ|i 7.1
ỡiết h|m sumstep tính v| tr về gi{ trị t ng c a c{c s từ đến n v i kho ng
c{ch gi a c{c s l| k, trong đó n v| k l| tham s đầu v|o c a h|m. Ỗiểm tra kết qu
bằng c{ch gọi h|m v i n = 11, k = 3 nh sau
>>sumstep(11, 3)
ọ|i 7.2
ỡiết h|m prodby nh n v|o gi{ trị c a m t s nguyên d ơng n, tr về gi{ trị
tích c a c{c s lẻ trong kho ng , n .
ọ|i 7.3
ỡiết ch ơng trình printE yêu cầu nh p v|o m t vector, in ra theo th tự c{c
phần t c a vector đó theo m u sau:
Nhap vao mot vector: vec
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 159
Phan tu thu 1 la
Phan tu thu 2 la
Phan tu thu 3 la
Phan tu thu 4 la
ọ|i 7.4
ở o file sp.txt ch a ma tr n x trong đó c t th nh t ch a c{c s thực
ng u nhiên trong kho ng , , c t th hai ch a c{c s thực ng u nhiên trong
kho ng , , c{c phần t c a ma tr n l u v|o file v i hai ch s phần th p
ph}n.
ọ|i 7.5
File sp.txt ch a c{c thẫng s về chiều d|i L v| c}n nặng W c a lo t s n
phẩm cần kiểm tra. ởrong đó c{c s n phẩm đ t yêu cầu có chiều d|i trong kho ng
. , . v| c}n nặng trong kho ng . , . . ỡiết ch ơng trình kiểm tra
thẫng s s n phẩm theo d li u trong file sp.txt, in ra m|n hình c{c s n phẩm bị
lo i theo m u
STT L W
ọ|i 7.6
ớh{t triển ch ơng trình c a b|i 7.5, n i dung in ra m|n hình có d ng sau:
Danh sach cac san pham bi loai
**************************
STT L W
Ket_luan
ởrong đó n i dung c a Ỗet_luan phụ thu c v|o s s n phẩm bị lo i, nếu
khẫng có s n phẩm n|o hoặc t t c c{c s n phẩm đều bị lo i, dòng STT L
W sẽ khẫng in ra v| Ỗet_luan có n i dung Khong co san pham nao bi
loai!!! hoặc Tat ca cac san pham deu bi loai!!! , nếu s s n phẩm n bị lo i trong
kho ng , , in ra theo c u trúc trên v| Ỗet_luan có n i dung Co n san pham bi
loai!!! .
ọ|i 7.7
ở o m t vector ‚ gồm m i phần t l| c{c s nguyên ng u nhiên trong
kho ng [- , . Ở dụng vòng lặp v| if nếu cần thực hi n c{c yêu cầu sau
a. ởrừ m i phần t cho .
b. Ỗiểm tra xem vector có bao nhiêu phần t nh n gi{ trị d ơng.
c. ở o vector ‛ có c{c phần t l| trị tuy t đ i c a c{c phần t t ơng ng ‚.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 160
2
v|o b{n kính v| chiều cao c a hình nón, kiểm tra xem s nh p v|o có ph i l| s
d ơng hay khẫng, tính v| in ra thể tích hình nón theo cẫng th c V rh
3
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 161
ọ|i 7.12
ỡiết h|m dtcv yêu cầu nh p v|o b{n kính, tr về di n tích v| chu vi đ ng
tròn, b{o l i nếu b{n kính nh p v|o có gi{ trị }m.
ọ|i 7.13
ỡiết h|m recpol nh n v|o hai gi{ trị x, y( x, y > 0 ) trong tọa đ Đê c{c, tr về
r ( x 2 y 2 ) , arctan( )
y
gi{ trị tọa đ cực r, θ theo cẫng th c
x
ọ|i 7.14
‛iết kho ng c{ch gi a hai điểm (x1, y1), (x2, y2) tính theo cẫng th c
d ( x x1 )2 ( y y1 )2
ỏi n tích tam gi{c tính theo cẫng th c
A s( s a)(s b)(s c)
ởrong đó a, b, c l| c{c c nh c a tam gi{c, s l| n a t ng c a ba c nh tam gi{c.
ỡiết h|m tính kho ng c{ch c a hai điểm b t kỳ theo cẫng th c trên. ỡiết ch ơng
trình yêu cầu ng i dùng nh p v|o tọa đ ba đỉnh c a m t tam gi{c, tính v| in ra
m|n hình di n tích tam gi{c, trong đó s dụng h|m vừa viết để tính đ d|i c{c
c nh.
ọ|i 7.15
Cho ma tr n mat
mat =
4 2 4 3 2
1 3 1 0 5
2 4 4 0 2
ỡiết h|m sumprint trong đo n code sau để có n i dung in ra m|n hình theo
m u
[r, c] = size(mat);
for i = 1 : r
sumprint(mat(i, :))
end
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng 7. ỗ p trình trong M‚ởỗ‚‛ 162
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 163
ớồ ộ II. ỘỌTỗỌọ ộỒ ỏ ộỒ
B 2
1
y
3
A � C
x 0
0
Hướng dẫn.
Ỗhi bắt đầu m t ch ơng trình M‚ởỗ‚‛, nên đ a v|o nh ng dòng l nh sau
để xóa t t c c{c biến hi n h|nh, xóa n i dung trên c a s l nh, đóng c{c c a s đồ
họa đang m để tr{nh nh h ng đến kết qu tính to{n cễng nh d ph{t hi n l i
trong qu{ trình l p trình.
clear all %xoa tat ca cac bien hien hanh
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 164
( xB xC )2 ( yB yC )2 BC 2
Đ}y l| ph ơng trình b c có ẩn xC ch a biết. ớh ơng trình n|y sẽ có hai
nghi m trong đó chỉ có m t nghi m l| đ{p {n c a b|i to{n. Yêu cầu đặt ra l| tìm
0 90 , xC luẫn l n hơn x‛. ớh ơng trình để x{c định tọa đ c a C trong
điều ki n để lo i nghi m c a ph ơng trình trên. Có thể th y l| trong tr ng h p
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 165
B
y
C2 C1
x
A
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 166
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 167
0.6
0.4 B
y (m) 0.2
A C
0
-0.2
-0.4
0 0.5 1
x (m)
8. . Ỗh o s{t chuy n đ ng
Để kh o s{t chuyển đ ng c a cơ c u khi kh}u d n quay trọn vẹn m t
vòng, có thể s dụng vòng lặp để tính to{n vị trí c{c kh p t i c{c góc t ơng ng.
Ỗhi l p trình cần chú ý điều ki n để chọn nghi m đ m b o điều ki n đơn gi n d
quay con tr t quay trọn vẹn m t vòng 0 360 có thể th y x‛ nh n c{c gi{
thực hi n nh ng có tính chính x{c cao. ợét ví dụ khi kh}u d n c a cơ c u tay
trị d ơng khi 0 90 hoặc 270 360 v| nh n gi{ trị }m v i c{c gi{ trị
còn l i c a . ởuy nhiên ta cễng có thể s dụng m t điều ki n kh{c đơn gi n hơn
đó l| v i mọi gi{ trị c a , xB luẫn nh hơn xC.
ởrong ví dụ n|y, ta s dụng vòng lặp for v i b c nh y c a vòng lặp l|
pi/4. Để ti n cho vi c quan s{t đồ thị, sinh viên có thể thay thế bằng c{c b c nh y
có gi{ trị nh hơn.
%Khao sat chuyen dong cua co cau
for phi=0:pi/4:2*pi
xB = AB*cos(phi);
yB = AB*sin(phi);
yC = 0;
ptC = '(xB-xCn)^2+(yB-yC)^2-BC^2';
nghiemC = solve(ptC,'xCn');
%Hai nghiem cua phuong trinh
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 168
xC1 = eval(nghiemC(1));
xC2 = eval(nghiemC(2));
%Tim C thoa man dieu kien xC > xB
if xC1 > xB
xC = xC1;
else
xC = xC2;
end
hold on
axis equal
plot([xA,xB],[yA,yB],'-o','LineWidth',2);
plot([xB,xC],[yB,yC],'-o','LineWidth',2);
text(xA,yA+.1,'A');
text(xB,yB+.12,'B');
text(xC,yC-.08,'C');
end
title('Khao sat chuyen dong cua co cau')
xlabel('x(m)')
ylabel('y(m)')
Ỗhi đã x{c định đ c vị trí c{c kh p c a cơ c u trong chuyển đ ng, ta
cễng có thể suy ra quỹ đ o c a m t điểm b t kỳ trên kh}u trong chuyển đ ng đó.
ỡí dụ xét điểm ớ l| trọng t}m c a thanh ‛C, t i mọi th i điểm kh}u chuyển đ ng,
tọa đ c a ớ đ c tính t ơng ng theo tọa đ c a hai đầu ‛, C l|
xP ( ) xB ( ) xC ( )
yP ( ) yB ( ) yC ( )
ởrong vòng lặp, ta có thể thêm v|o m t s dòng l nh để tính tọa đ trọng
t}m ớ v| l u c{c tọa đ n|y v|o m t m ng gi{ trị.
i = i+1; %i la bien chay nhan gia tri 0 o ngoai vong
lap
xP(i) = (xB + xC)/2;
yP(i) = (yB + yC)/2;
plot(xP(i),yP(i),’*’,’MarkerSize’,10);
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 169
0.6 B
B B
0.4
0.2
B A B
y(m 0
C C C C C
-0.2
B B
-0.4 B
-0.6
0.2
y(m) 0
-0.2
-0.4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x(m)
plot(xP,yP,'*-','MarkerSize',10);
axis([0 1 -.4 .4]);
title('Quy dao chuyen dong trong tam khau 2');
xlabel('x(m)');
ylabel('y(m)');
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 170
. . T o clip mô ph ng chuy n đ ng
M t trong nh ng c{ch thẫng dụng để t o nh ng đo n phim ngắn trong
M‚ởỗ‚‛ l| s dụng h|m getframe để chụp l i n i dung thể hi n trên c a s đồ
họa hi n h|nh rồi sau đó s dụng h|m movie để cho c{c khung hình đã đ c
chụp l i lần l t thể hi n ra trên m|n hình t o nên chuyển đ ng.
H|m getframe th ng đ c s dụng trong vòng lặp, gi{ trị tr về c a h|m
l| vector m t h|ng, vì thế c hai cú ph{p gọi h|m d i đ}y đều h p l :
>>M(i) = getframe;
hoặc
M(:, j) = getframe;
ởrong đó M l| vector ch a c{c khung hình c a phim thể hi n chuyển đ ng,
i, j l| s th tự c a khung hình trong vector.
Một số lưu ý khi sử dụng hàm getframe
Đ m b o h trục tọa đ c{c khung hình kh{c nhau l| khẫng đ i, nếu
khẫng c{c hình vẽ sẽ đ c thể hi n trên c{c h trục tọa đ có gi i h n cễng nh đ
chia kh{c nhau d n đến kết qu c a phim sẽ khó theo dậi.
Ở dụng d u ; cu i l nh getframe để khẫng hiển thị c{c gi{ trị th|nh phần
c a M khi ch y vòng lặp.
Ỗhi vòng lặp đang đ c ch y, b o đ m c a s đồ họa hi n h|nh khẫng bị
che khu t b i c{c c a s kh{c c a s l nh, c a s đồ họa kh{c nếu khẫng n i
dung c a c{c c a s đồ họa n|y cễng sẽ đ c l u v|o c{c khung hình c a phim.
Đ i v i cơ c u tay quay con tr t trong ví dụ n|y, ngo|i vòng lặp %khao
sat chuyen dong cua co cau đã trình b|y trên có thể t o m t biến ch y incr = 1 ngo|i
vòng lặp, v| thêm v|o bên trong vòng lặp phía d i c{c l nh vẽ dòng l nh sau:
axis ([-1.5 1.5 -.6 .6]);
M(incr) = getframe;
close;
incr = incr +1;
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 171
8.3 V n t c v| gia t c
B
α
y 2
1
ω C 3
A
x
Hình 8. 6. Bài toán vận tốc, gia tốc với cơ cấu tay quay con trượt
th c rBA rB rA trong đó rA x A y A 0 ,
T
rB xB 0 , rA v| rB lần l
đ c tính theo cẫng
T
yB t l| tọa đ c a ‚, ‛
vCx vBx 0 xC xB
0 v 0 y y
By C B
0 0 2 0
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 172
rA=[xA yA 0]';
rB=[xB yB 0]';
rC=[xC yC 0]';
omega1=[0 0 1]'; %rad/s
syms vCx omega2z real;
vC=[vCx 0 0]'; %m/s
omega2=[0 0 omega2z]'; %rad/s
%Tinh van toc diem B
vB=cross(omega1,rB-rA); %m/s
%Tinh van toc diem C
%Lap phuong trinh
ptvC=vC - vB - cross(omega2,rC-rB);
%Tach ra hai phuong trinh chua cac an vCx va omega2z
ptvC1=ptvC(1);
ptvC2=ptvC(2);
nv=solve(ptvC1,ptvC2);
vCxs=eval(nv.vCx);
omega2s=eval(nv.omega2z);
vC=[vCxs 0 0]’; %m/s
omega2=[0 0 omega2s]’; %rad/s
%Tinh van toc quay tuong doi giua C va B
vCB=cross(omega2, rC-rB); %m/s
”iểu diễn họa đồ vận tốc trong M“TL“”
ởrong M‚ởỗ‚‛, ng i s dụng có thể biểu di n c{c vector s dụng h|m
quiver theo cú ph{p sau:
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 173
>>quiver(x, y, u, v, S)
ởrong đó x, y l| điểm đặt c a g c vector u, v l| đ d|i vector chiếu xu ng
trục ho|nh v| trục tung, Ở l| tỉ l xích biểu di n vector trên c a s đồ họa. Đ i v i
ví dụ tay quay con tr t n|y, họa đ v n t c có thể đ c biểu di n nh sau
hold on
axis equal %dam bao the hien quan he vuong goc tren
hinh
title('Bieu dien quan he van toc vB, vC');
xlabel('x (m)');
ylabel('y (m)');
plot([xA-.2,xC+.2],[yA,yC],'--','LineWidth',2);
plot([xA,xB],[yA,yB],'-o','LineWidth',2);
plot([xB,xC],[yB,yC],'-o','LineWidth',2);
%Ve vector vB, vC co goc dat tai diem B va C tuong ung
quiver(xB,yB,vB(1),vB(2),1,'LineWidth',2);
quiver(xB,yB,vC(1),vC(2),1,'LineWidth',2);
%Ve vector vBC co goc trung voi ngon cua vector vB
quiver(xB+vB(1),yB+vB(2),vCB(1),vCB(2),1,'LineWidth',2)
;
vCB BC
vB AB
vC AC
B
A C
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 174
aC aC2 aCx 0 0
T
aCx aBx 0 xC xB 0 0 xC xB
0 a 0 yC yB 0 0 yC yB
By
0 0 2 0
2 2 0
ởa đ c h hai ph ơng trình v i hai ẩn aCx v| 2 :
aCx aBx 2 ( yC yB) 22 ( xC xB)
0 aBy 2 ( xC xB) 22 ( yC yB)
Ởau khi tính đ c 2 ta có thể suy ra hai th|nh phần tiếp tuyến v| ph{p
tuyến c a gia t c t ơng đ i gi a C v| ‛
t
aCB 2 rCB
n
aCB 2 (2 rCB )
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 175
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 176
aC aCBn
A C
aCBt
aBt
aBn
hold on
axis equal
title('Bieu dien quan he gia toc aB, aC');
xlabel('x (m)');
ylabel('y (m)');
%Ve lai co cau
plot([xA,xC],[yA,yC],'--','LineWidth',2);
plot([xA,xB],[yA,yB],'-o','LineWidth',2);
plot([xB,xC],[yB,yC],'-o','LineWidth',2);
%Ve vector aBt tai diem C
quiver(xC,yC,aBt(1),aBt(2),1,'k','LineWidth',2);
%Ve vector aBn tai ngon cua vector aBt
xs=xC+aBt(1);
ys=yC+aBt(2);
quiver(xs,ys,aBn(1),aBn(2),1,'k','LineWidth',2);
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 177
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 178
C 3
y
D
1 B
1
A x
Đáp án
rB 0.106066 0.106066 0 m
T
rC 0.0400698 0.449788 0 m
T
rE 0.0898952 0.524681 0 m
T
2 -79.1312
3 -29.9532
1 0 0 6.28319 rad / s
T
2 0 0 3.43639 rad / s
T
3 0 0 3.43639 rad / s
T
1 0 0 0 rad / s 2
T
2 0 0 8.97883 rad / s 2
T
3 0 0 22.6402 rad / s 2
T
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 179
vC 0.514728 0.893221 0 m / s
T
vE 0.772092 1.33983 0 m / s
T
aC 0.321767 7.65368 0 m / s 2
T
aE 0.48265 11.4805 0 m / s 2
T
d
d
10 cm 10 cm
15 cm 15 cm
180 N
180 N
Đáp án:
Hình 8. 10. Hình đề bài 8.2
Đáp án:
C{c lực kéo d}y c{p v| h p lực ở biểu di n nh hình trên. ớh ơng trình
T Fx P cos 180cos
c}n bằng lực có thể viết nh sau
0 Fy P sin 180sin
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 180
ỡẽ đồ thị c a ớ v| ở theo d
>>d = 5: .5: 60;
>> beta=atan(15./d);
>> theta=atan(10./d);
>>P = 180*sin(beta)./sin(theta);
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 181
>>T =
180*(sin(beta).*cos(theta)+cos(beta).*sin(theta))./sin(t
heta);
>>plot(d, P, d, T);
>>xlabel(‘d (cm)’); ylabel(‘Luc (N)’);
ọ|i .
ởrong điều ki n khẫng t i, xe có trọng l ng ộ đặt t i trọng t}m G.
Đặt t i ỢL có trọng t}m phía sau c a b{nh xe sau m t đo n l| x cm . ởìm m i
quan h gi a Ợ L v| x nếu biết ph n lực lên b{nh tr c v| b{nh sau l| bằng nhau.
ỡẽ đồ thị biểu di nỢ L theo x v i x nằm trong kho ng đến cm. ‛iết a =
cm, b = 170 cm.
16000N
a b a b
Đáp án:
ớh ơng trình c}n bằng moment v| ph ơng trình c}n bằng lực t{c dụng lên
M B 0 16000.170 N.285 WL x
xe có thể viết nh sau
Fy 0 N N 16000 WL
C{c b c gi i trong M‚ởỗ‚‛ nh sau
>>syms x N W
>> pt1 = '16000*170 - N*285 - W*x';
>> pt2 = 'N + N - 16000 - W';
>> ds=solve(pt1, pt2, 'W,N');
>>ds.W
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 182
ans =
880000/(285+2*x)
>>x = 0: .5: 100;
>>W = 880000./(285 + 2*x);
>>plot(x,W);
>> ylabel('Tai trong (N)'); xlabel('x (cm)');
3200
3000
2800
Tai trong (N)
2600
2400
2200
2000
1800
0 20 40 60 80 100
x (cm)
ọ|i 8.4
c a góc từ -90o đến o. ởính c{c lực t i ‚ v| ‛ theo , x{c định gi{ trị cực đ i
Cho cơ c u nh hình vẽ, cơ c u có thể chịu t i đến kộ t i C v i mọi gi{ trị
Hình 8. 14. Hình bài 8.4
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 183
Fx Ax 5 B 3sin 0
3
Fy Ay 5 B 3cos 0
4
Ax cos 3sin
9
Ay 3cos
2
B cos
15
2
ỡẽ đồ thị c a ‛, ‚ theo
>> theta=-pi/2:0.1:pi/2;
>> B=15/2*cos(theta);
>> Ax=9/2*cos(theta)-3*sin(theta);
>> Ay=-3*cos(theta);
>> A=sqrt(Ax.^2+Ay.^2);
>> plot(theta,B,theta,A)
>> xlabel('theta (rad)');
>> ylabel('Luc (kN)');
>> fA=sqrt(ds.Ax^2+ds.Ay^2);
>> dfA=diff(fA);
>> ntheta=solve(dfA)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 184
ntheta =
2.6779450445889871222483871518183
-.46364760900080611621425623146121
-2.0344439357957027354455779231010
1.1071487177940905030170654601785
0.5
Hình 8. 15. Đồ thị bài 8.4
Quan s{t đồ thị ta có thể th y đ c ‚ đ t cực đ i t i l}n c n c a
>> Amax=subs(fA,ntheta(2))
Amax =
6.0000
>> thetaA=double(ntheta(2)*180/pi)
thetaA =
-26.5651
>> Bmax=subs(ds.B,0)
Bmax =
7.5000
ọ|i 8.5
M t v t nặng đ c gi c}n bằng trên mặt phẳng nghiêng m t góc so v i
ph ơng ngang. ởính lực căng ở v| ph n lực ộ c a đ t t{c dụng lên v t theo .
ỡ i gi{ trị n|o c a thì ở = ộ. ‛iết v t có kh i l ng kg.
Đáp án:
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 185
C{c lực t{c dụng lên v t đ c biểu di n nh hình d i. ớh ơng trình c}n
bằng lực chiếu lên c{c mặt phẳng song song v| vuẫng góc v i mặt phẳng nghiêng
lần l t có d ng
θ
N P
Fi P sin T 0
Fk N P cos 0
C{c b c gi i trong M‚ởỗ‚‛ nh sau
>> syms P N T theta
>> pt1='P*sin(theta)-T';
>> pt2='N-P*cos(theta)';
>> N=subs(ds.N,{P,theta},{100,pi/6});
để ở = ộ
>> T=subs(ds.T,{P,theta},{100,pi/6});
ởìm gi{ trị c a
>> pt3=ds.N-ds.T;
>> ntheta=solve(pt3,'theta')
ntheta =
1/4*pi
ọ|i .
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 186
Đáp án:
Hình 8. 17. Hình bài 8.6
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 187
(0.7v3 ) v(0) 30
dv
dt
v s(0) 0
ds
dt
C{c b c gi i trong M‚ởỗ‚‛ nh sau
>> v=dsolve('Dv + 0.7*v^3','v(0)=30')
v =
30/(1260*t+1)^(1/2)
>> s = dsolve('Ds - 30/(1260*t+1)^(1/2)','s(0)=0')
s =
1/21*(1260*t+1)^(1/2)-1/21
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 188
>> grid
>> xlabel('Thoi gian (s)');
>> ylabel('Van toc (m/s)');
>>figure(2);
>>plot(t,st);
>>grid
>> xlabel('Thoi gian (s)');
>> ylabel('Quang duong(m)');
ọ|i .
ỡị trí c a m t ẫ tẫ đ c biểu di n b i h|m theo th i gian nh sau
s 5t 3t 2 , vẽ đồ thị biểu di n vị trí, v n t c v| gia t c c a ẫ tẫ trong kho ng th i
gian 0 t 10 (s).
Đáp án:
>> s=sym('5*t - 3*t^2');
>> v=diff(s,'t');
>> a=diff(v);
>> st=inline(s)
st =
Inline function:
st(t) = 5.*t - 3.*t.^2
>> vt=inline(v)
vt =
Inline function:
vt(t) = 5-6.*t
>> at=inline(a)
at =
Inline function:
at(x) = -6
>> t=0:0.5:10;
>> subplot(3,1,1)
>> plot(t,st(t))
>> ylabel('Vi tri (m)');
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 189
>> subplot(3,1,2)
>> plot(t,vt(t))
>> ylabel('Van toc (m/s)');
>> subplot(3,1,3)
>> plot(t,at(t),'*')
>> ylabel('Gia toc (m/s^2)');
>> xlabel('Thoi gian (t)');
ọ|i 8.9
Chuyển đ ng c a m t v t ném xiên đ c biểu di n nh trong hình vẽ.
Trong đó, v n t c ban đầu v| góc nghiêng t o b i v n t c ban đầu v i ph ơng
Đáp án:
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 190
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 191
Fy ma y F mg 0.01v2 mg
dv 0.01v 2 mg
ay
dt m
Ởinh viên có thể gi i b|i to{n theo ph ơng ph{p đã s dụng trong b|i II. .
s dụng l nh dsolve để tìm c{c h|m v(t) v| s(t), sau đó vẽ đồ thị s(t) theo v(t) v i t
l| vector có c{c phần t ch y từ đến tmax (tmax l| th i điểm v t đ t đ cao cực
đ i, v n t c t c th i theo ph ơng thẳng đ ng c a ch t điểm bằng khẫng .
ởrong b|i t p n|y sinh viên có thể s dụng ph ơng ph{p s dùng h|m
ode45 để gi i nh sau
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ớh}n tích đ ng học cơ c u 192
v , a
ds dv
dt dt
ds
ds dv vdv ds v mv
v a a dv a 0.01v 2 mg
Do a l| h|m theo v theo đầu b|i , ta có thể s dụng h|m ode45 để gi i nh
sau:
>> s0=0;
>> v0=50;
>> vspan = [v0 : -1 : 0];
>> ptvs=@(v,s) 10*v/(-0.01*v^2 - 10*9.81);
>> [v,s]=ode45(ptvs,vspan,s0);
>>grid
>>xlabel(‘Do cao (m)’); ylabel(‘Van toc (m/s)’);
50
40
Van toc (m/s)
30
20
10
0
0 20 40 60 80 100 120
Do cao (m)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 193
9.1 ọi n đ i ỗaplace
... K ( s)
B( s ) R(1) R(2) R ( n)
A( s) s P(1) s P(2) s P ( n)
ởrong đó R l| vector h s c a c{c ph}n th c th|nh phần, K l| vector h s
B(s)
c a ph}n th c khi b c c a đa th c B(S) l n hơn hoặc bằng b c c a đa th c
A( s )
A(S), P l| vector ch a nghi m m u s c a c{c ph}n th c th|nh phần.
ởr ng h p tồn t i nghi m lặp P( j ) ... P( j m 1) v i m l| s lần lặp,
khi đó c{c ph}n th c th|nh phần sẽ bao gồm
R( j 1) R( j m 1)
... ... ...
R( j )
s P( j ) ( s P( j )) 2
( s P(n)) m
ỗ nh residue cễng đ c s dụng để biến đ i t ng c a c{c ph}n th c th|nh
phần biểu di n b i c{c vector R, P, K th|nh ph}n th c c a đa th c ‛ v| ‚.
>>[B, A] = residue(R, P, K)
c c a h|m L( f (t ))( s) 2
1
s 1
Ví dụ: ởìm biến đ i ng
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 194
>>[R, P, K] = residue(B, A)
R =
-0.5000
0.5000
P =
-1
1
K =
[ ]
Ỗết qu tr về cho th y Ỗ l| m t m ng r ng, ph}n th c đã cho t ơng
đ ơng v i:
0.5000
1 0.5000
s 1 s (1.0000) s 1.0000
2
et e t
Qua đó ta suy ra đ c biến đ i ng c c a h|m ỗaplace đã cho l|
2
‛ên c nh vi c s dụng l nh residue, biến đ i ỗaplace cễng có thể đ c tính
to{n trong M‚ởỗ‚‛ s dụng b cẫng cụ biến ký hi u v i hai l nh laplace v|
ilaplace.
Ví dụ:
ởìm biến đ i ỗaplace c a h|m f(t) sau đ}y
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 195
s - 5
----------
2
s (s + 2)
Ỗhi cần tìm biến đ i ng c c a h|m F(s) ta có thể s dụng l nh ilaplace.
>> Ft=ilaplace(F)
Ft =
-5/4+1/4*exp(-2*t)*(14*t+5)
>> simplify(Ft)
ans =
-5/4+7/2*t*exp(-2*t)+5/4*exp(-2*t)
>> pretty(ans)
- 5/4 + 7/2 t exp(-2 t) + 5/4 exp(-2
t)
ng dụng biến đổi Laplace để giải phương trình vi phân.
Cho h th ng cơ khí nh hình d i
K
b
m y(t)
r(t)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 196
m 2 y (t ) b y (t ) ky (t ) r (t )
d2 d
dt dt
Ỗết qu tính: y (t ) e e t
1 3 2t
2 2
9.2 ọi n đ i z
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 197
x ( n)
1
u ( n)
4n
Ỗhai b{o biến ký hi u n:
>>syms n
Ỗhai b{o h|m f:
>>f = (1/4^n)*heaviside(n);
ởìm biến đ i z c a f:
>>Fz=ztrans(f)
Fz=
4*z/(4*z-1)
Ví dụ: Tìm tín hi u x(n) biết
X ( z)
2z
2z 1
C{c b c gi i b|i to{n trong M‚ởỗ‚‛ nh sau
>>syms z;
>>Xz = (2*z)/(2*z-1);
>>xn = iztrans(Xz)
xn =
(1/2)^n
ớhép biến đ i Z ng c cễng có thể đ c thực hi n trong M‚ởỗ‚‛ v i h|m
residuez cho phép khai triển ph}n th c c a đa th c t s B(z) v| đa th c m u s
A(z) th|nh c{c ph}n th c sơ c p, cú ph{p t ơng tự l nh residue.
B( z ) b0 b1z 1 b2 z 2 ... bm z m
A( z ) a0 a1z 1 a2 z 2 ... an z n
Ví dụ: Tìm biến đ i Z ng c c a tín hi u sau:
X ( z)
1
(1 z )(1 0.5 z 1)
1
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 198
X ( z)
z2
( z 1)( z 0.5)
C{c b c gi i b|i to{n trong M‚ởỗ‚‛ nh sau
Ỗhai b{o biến ký hi u z:
>>syms z;
Ỗhai b{o đa th c t s v| m u s d i d ng vector ch a c{c h s :
>>B = 1;
>>A = [1 -1.5 0.5];
>>[R, P, K] = residuez(B, A)
R =
2
-1
P =
1.0000
0.5000
K =
[ ]
ộh v y X(z)có thể đ c khai triển th|nh t ng c a c{c ph}n th c sơ c p
nh sau
X ( z)
2 1
1 z 1
1 0.5 z 1
Ỗh lễy thừa }m trong biểu th c:
X ( z)
2z z
z 1 z 0.5
ởra b ng để suy ra tín hi u cần tìm:
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 199
z 1 z 2
1
H ( z) 2
1 z 1 z 2
3 2
5 25
C{c b c gi i trong M‚ởỗ‚‛ nh sau
Ỗhai b{o đa th c t s ‛ v| đa th c m u s ‚.
>>B = [1 1/2];
>>A = [2 3/5 2/25];
Ở dụng l nh zplane để vẽ đồ thị điểm cực – điểm khẫng
>>zplane(B, A)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 200
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 201
s^2 + 2 s + 2
---------------------
s^3 + 2 s^2 + 2 s + 1
>>s2 = tf(B2, A2,’variable’,’p’)
Transfer function:
p - 1
---------------------
p^3 + 3 p^2 + 2 p + 1
>>s3 = tf(B3, A3, 1)
Transfer function:
z
-----------------
z^2 - 1.5 z + 0.5
Sampling time: 1
ỡí dụ: Định nghĩa h|m truyền d i d ng h|m h u tỉ c a s hoặc z.
>>s = tf(‘s’)
Transfer function:
s
>> hs=(s^2+2*s+2)/(s^3+2*s^2+2*s+1)
Transfer function:
s^2 + 2 s + 2
---------------------
s^3 + 2 s^2 + 2 s + 1
>>z = tf(‘z’, 1)
Transfer function:
z
Sampling time: 1
>> hz=z/(z^2-1.5*z+0.5)
Transfer function:
z
-----------------
z^2 - 1.5 z + 0.5
Sampling time: 1
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 202
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 203
s
#2: -----
s + 1
Transfer function from input 2 to output...
s + 0.5
#1: -------------
2 s^2 + s + 2
2
#2: -------------
s^2 + 2 s + 1
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 204
Zero/pole/gain:
2
-------------------
(s+1) (s+0.5) (s+2)
>> Z2 = [-0.5];
>> P2 = [-1+i -1-i -0.5];
>> K2 = 10;
>> sz2 = zpk(Z2, P2, K2)
Zero/pole/gain:
10 (s+0.5)
----------------------
(s+0.5) (s^2 + 2s + 2)
ở ơng tự nhu đ i v i mẫ hình h|m truyền, ta có thể s dụng l nh zpkdata
để tr về c{c gi{ trị điểm khẫng, điểm cực v| h s khuếch đ i c a mẫ hình theo
cú ph{p sau
>>[Z, P, K] = zpkdata(sys, ‘v’)
Ví dụ:
>> [Z2n, P2n, K2n] = zpkdata(sz2, 'v')
Z2n =
-0.5000
P2n =
-1.0000 + 1.0000i
-1.0000 - 1.0000i
-0.5000
K2n =
10
b. H có nhiều đầu v|o v| nhiều đầu ra
Cú ph{p t ơng tự nh đ i v i h có m t đầu v|o v| m t đầu ra, l u ý
đ}y Z v| P l| hai tr ng có kích c Ny × Nu trong đó Z{i, j} v| P{i, j} biểu di n c{c
điểm khẫng v| điểm cực c a h|m truyền từ đầu v|o j t i đầu ra i; K l| ma tr n hai
chiều ch a c{c h s khuếch đ i cho m i kênh v|o/ra.
ỡí dụ: Xét mẫ hình ZPK có hai đầu ra v| m t đầu v|o.
>>H = zpk({[ ]; [2 3]}, {1; [0 -1]}, [-5; 1])
Zero/pole/gain from input to output...
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 205
-5
#1: -----
(s-1)
(s-2) (s-3)
#2: -----------
s (s+1)
x Ax Bu
d
dt
y Cx Du
ỗ nh ss trong M‚ởỗ‚‛ cho phép biểu di n h th ng theo mẫ hình khẫng
gian tr ng th{i s dụng cú ph{p sau
>>sys = ss(A, B, C, D)
>>sys = ss(M, N, C, D, Ts)
ởrong đó A, M l| ma tr n tr ng th{i c a h liên tục v| r i r c
B, N l| ma tr n đầu v|o c a h liên tục v| r i r c
C l| ma tr n đầu ra
D l| ma tr n liên thẫng c a mẫ hình tr ng th{i
Ts l| th i gian quét m u
ỡí dụ ợét h ph ơng trình vi ph}n tuyến tính v i c{c biến tr ng th{i h1, h2,
biến đầu v|o u v| biến đầu ra q.
2h1 3h2 2v
dh1
dt
4h1 h2 v
dh2
dt
q h1 2h2 v
1
2
H có thể đ c viết l i d i d ng ma tr n
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 206
x Ax Bu
d
dt
y Cx Du
v i c{c vector đầu v|o u, vector đầu ra y v| vector tr ng th{i x
u v y q
h
x 1
h2
C 1 2
2 3 2
A B D
1
4 1 1 2
ởrong M‚ởỗ‚‛ ta có thể thiết l p mẫ hình khẫng gian tr ng th{i nh sau
>>A = [-2 3; 4 -1];
>>B = [2; -1];
>>C = [1 -2];
>>D = [1/2];
>>ht_ss = ss(A, B, C, D)
a =
x1 x2
x1 -2 3
x2 4 -1
b =
u1
x1 2
x2 -1
c =
x1 x2
y1 1 -2
d =
u1
y1 0.5
Continuous-time model.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 207
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 208
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 209
Transfer function:
s + 2
--------------------------
20 s^3 + 32 s^2 + 23 s + 2
‛ên c nh đó M‚ởỗ‚‛ cễng cho phép ng i dùng s dụng m t s phép
to{n cơ b n để thực hi n vi c ghép n i c{c mẫ hình nh phép c ng l nh + , phép
trừ l nh - , phép nh}n l nh * , phép đ o l nh inv).
ỡí dụ: So s{nh kết qu phép nh}n ghép n i G , G v i l nh series.
>>G3m = G1*G2
Transfer function:
s + 2
--------------------------
20 s^3 + 32 s^2 + 23 s + 2
ỡí dụ: So s{nh kết qu tính hồi tiếp }m khi s dụng phép nh}n, phép đ o,
phép c ng v| khi s dụng l nh feedback.
>> G4=G1*inv(1+G1*G2)
Transfer function:
20 s^3 + 32 s^2 + 23 s + 2
--------------------------------------
200 s^4 + 340 s^3 + 272 s^2 + 64 s + 4
%Dua ve dang rut gon
>> G4 = zpk(G4)
Zero/pole/gain:
0.1 (s+0.1) (s^2 + 1.5s + 1)
------------------------------------------
(s+0.2244) (s+0.1) (s^2 + 1.376s + 0.8913)
% Su dung lenh feedback
>> G4m=zpk(feedback(G1, G2))
Zero/pole/gain:
0.1 (s^2 + 1.5s + 1)
----------------------------------
(s+0.2244) (s^2 + 1.376s + 0.8913)
Có thể th y l| khi s dụng feedback thì M‚ởỗ‚‛ tự đ ng rút gọn (s + 0.1) c đa
th c t s v| đa th c m u s .
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 210
400
300
200
100
Imaginary Axis 0
-100
-200
-300
-400
-500
-200 0 200 400 600 800 1000
Real Axis
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 211
Bode Diagram
60
40
Magnitude (dB)
20
0
0
-90
-4 -2 0 2
10 10 10 10
Frequency (rad/sec)
0.6
0.5
Amplitude 0.4
0.3
0.2
0.1
0
0 2 4 6 8 10 12
Time (sec)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 212
Transfer function:
1
---------------------
s^3 + 4 s^2 + 4 s + 2
>>step(PROCESS)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 213
ọ|i 9.1
ớh}n tích đa th c h u tỉ th|nh t ng c{c đa th c th|nh phần, tìm biến đ i
ỗaplace ng c c a
F1 ( s)
1
s 4 5s 3 7 s 2
Đáp án:
>>b = [0 0 0 0 1];
>>a = [1 5 7 0 0];
>>[r, p, k] = residue(b,a)
r =
0.0510 - 0.0648i
0.0510 + 0.0648i
-0.1020
0.1429
p =
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 214
-2.5000 + 0.8660i
-2.5000 - 0.8660i
0
0
k =
[ ]
ởừ kết qu tính trong M‚ởỗ‚‛ ta có thể biểu di n l i F1(s) nh sau
F1 ( s) 2 3 4
r1 r r r
s p1 s p2 s p3 s p4
0.0510 0.0648i 0.0510 0.0648i 0.1020 0.1429
F1( s)
s (2.5000 0.8660i) s (2.5000 0.8660i ) s0 s0
d. f 4 (t ) t sin(7t )
e. f5 (t ) 5e2t cos(5t )
Đáp án:
a.
>>syms t
>>f1t = 7*t^3*cos(5*t + (pi/3));
>>f1s = laplace(f1t)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 215
f1s =
21*(s^4+625-150*s^2-
20*3^(1/2)*s^3+500*3^(1/2)*s)/(s^2+25)^4
b.
>>f2t = -7*t*exp(-5*t);
>>f2s = laplace(f2t)
f2s =
-7/(s+5)^2
c.
>>f3t = -3*cos(5*t);
>>f3s = laplace(f3t)
f3s =
-3*s/(s^2+25)
d.
>>f4t = t*sin(7*t);
>>f4s = laplace(f4t)
f4s =
14*s/(s^2+49)^2
e.
>>f5t = 5*exp(-2*t)*cos(5*t);
>>f5s = laplace(f5t)
f5s =
5*(s+2)/(s^2+4*s+29)
ọ|i 9.3
ởìm biến đ i Z c a c{c h|m sau:
1
a. x1 (n)
n
2
b. x2 (n) e
2n
c. x3 (n) n
Đáp án:
a.
>>syms n
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 216
>>x1n = (1/2)^n;
>>X1Z = ztrans(x1n)
X1Z =
2*z/(2*z-1)
b.
>>x2n = exp(2*n);
>>X2Z = ztrans(x2n)
X2Z =
z/exp(2)/(z/exp(2)-1)
c.
>>x3n = n;
>>X3Z = ztrans(x3n)
X3Z =
z/(z-1)^2
ọ|i 9.4
a. Cho: X1 ( Z )
5z 2z
( z 1) ( z 0.5)2
2
tìm biến đ i Z ng c.
b. Cho: X 2 ( Z ) 2
10 z
z z 1
tìm biến đ i Z ng c.
c. X 3 ( Z )
z2
( z 1)( z 0.5)2
s dụng l nh residuez ph}n tích X3(Z) th|nh c{c
( z 1)( z 2 z 0.5)
s dụng l nh residuez ph}n tích X4(Z) th|nh
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 217
5*n-4*(1/2)^n*n
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 218
R(s) + 1 Y(s)
s ( s 1)
K
-
b.
R(s) + 10 Y(s)
- s( s 1) 20
K1 K 2 s
s
Hình 9. 7. Hình bài 9.5b
c.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 219
R(s) + s 1 Y(s)
s s2
3
-
Đáp án:
G(s) K
1 K
s( s 1) s( s 1)
a. Gọi
s( s 1)
K
2
Y ( s) G( s) K K
R( s) 1 G ( s ) 1 K s ( s 1) K s s K
s( s 1)
C{c b c gi i trong M‚ởỗ‚‛ nh sau
>>syms s
>>Gs = tf(10, sym2poly(s*(s+1)));
>>Hs = feedback(Gs, 1)
Transfer function:
10
------------
s^2 + s + 10
b. H|m truyền h
>>Gs = tf(10, sym2poly(s*(s+1)+20));
H|m truyền hồi tiếp
>>Ms = tf([150, 100], [1, 0]);
H|m truyền c a h
>>Hs = feedback(Gs, Ms)
Transfer function:
10 s
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 220
-------------------------
s^3 + s^2 + 1520 s + 1000
c. H|m truyền h
>>Gs = tf([1, 1], [1, 1, 0, 0]);
H|m truyền c a h
>>Hs = feedback(Gs, 1)
Transfer function:
s + 1
-----------------
s^3 + s^2 + s + 1
ọ|i 9.6
ợ{c định vị trí c{c điểm cực c a h có h|m truyền nh sau
s3 6s 2 7 s 15
H ( s)
s5 s 4 5s3 9s 2 11s 12
Đáp án:
C{c điểm cực l| nghi m c a đa th c m u s
>>den = [1 1 -5 -9 11 -12];
>>A = roots(den)
A =
-2.1586 + 1.2396i
-2.1586 - 1.2396i
2.3339
0.4917 + 0.7669i
0.4917 - 0.7669i
ọ|i 9.7
ợ{c định vị trí c{c điểm cực c a h|m truyền đơn vị có h|m truyền h
G( s)
150
( s 5)( s 7)( s 9)( s 11)
Đáp án:
Ỗhai b{o h|m truyền h
>>syms s
>>Gs = tf(150, sym2poly((s+5)*(s+7)*(s+9)*(s+11)))
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 221
Transfer function:
150
--------------------------------------
s^4 + 32 s^3 + 374 s^2 + 1888 s + 3465
H|m truyền c a h
>>Hs = feedback(Gs, 1)
Transfer function:
150
--------------------------------------
s^4 + 32 s^3 + 374 s^2 + 1888 s + 3615
ợ{c định c{c điểm cực
>>pole(Hs)
ans =
-10.9673 + 1.9506i
-10.9673 - 1.9506i
-5.0327 + 1.9506i
-5.0327 - 1.9506i
ọ|i .
ởìm đ{p ng đ i v i h|m b c đơn vị c a h sau
s 1
R(s) + 10 Y(s)
- s2
Đáp án:
>>syms s t
>>G1 = tf([1, 1], [1]);
>>G2 = tf([10], [1, 0, 0]);
H|m truyền vòng h
>>Gs = series(G1, G2);
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 222
H|m truyền c a h
>>Hs = feedback(Gs, 1)
Transfer function:
10 s + 10
---------------
s^2 + 10 s + 10
Đ{p ng c a h
>>step(Hs)
Ởinh viên có thể tự kiểm tra bằng c{ch tìm h|m ỗaplace c a h|m b c đơn vị
để suy ra gi{ trị c a đầu v|o R(s).
>>Rs = laplace(heaviside(t))
Rs =
1/s
ởính Y s theo H s v| ờ s đã biết:
Y (s) R(s) H (s)
Step Response
1.4
1.2
1
Amplitude
0.8
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3 3.5
Time (sec)
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 223
ọ|i 9.9
ỏùng M‚ởỗ‚‛ vẽ biểu đồ ‛ode c a c{c h cho b i h|m truyền nh sau
a. G ( s )
1
2s 1
b. G ( s) 2
4
s s4
Đáp án:
a.
Ỗhai b{o h|m truyền c a h
>>syms s
>>G = tf([1], [2 1])
Transfer function:
1
-------
2 s + 1
ỡẽ đồ thị ‛ode
>>bode(G)
Bode Diagram
0
Magnitude (dB)
-10
-20
-30
0
Phase (deg)
-45
-90
-2 -1 0 1
10 10 10 10
Frequency (rad/sec)
b.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 224
Bode Diagram
20
Magnitude (dB)
-20
-40
-60
-80
0
-45
Phase (deg)
-90
-135
-180
-1 0 1 2
10 10 10 10
Frequency (rad/sec)
Transfer function:
4
-----------
s^2 + s + 4
>>bode(G)
ọ|i 9.10
ỏùng M‚ởỗ‚‛ vẽ đồ thị ộyquist v| ộichols c a h cho b i h|m truyền sau
k ( s 1)( s 3 7i)( s 3 7i)
G(s)
( s 1)( s 3)( s 5)( s 3 7i)( s 3 7i)
(k = 30)
Đáp án:
ỗ uýh đ}y cễng có thể đ c khai b{o theo vector điểm khẫng, điểm cực
rồi đ a về mẫ hình h|m truyền bằng l nh zp2tf.
Ỗhai b{o theo mẫ hình h|m truyền v i c{c đa th c t s v| đa th c m u s
>>syms s
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 225
>>nG = sym2poly(30*(s+1)*(s+3+7i)*(s+3-7i));
>>dG = sym2poly((s+1)*(s+3)*(s+5)*(s+3+7i)*(s+3-7i));
>>G = tf(nG, dG)
Nyquist Diagram
1.5
0.5
Imaginary Axis
-0.5
-1
-1.5
-1 -0.5 0 0.5 1 1.5 2
Real Axis
Nichols Chart
40
0 dB
0.25 dB
0.5 dB
20 1 dB -1 dB
3 dB
6 dB -3 dB
Open-Loop Gain (dB)
0 -6 dB
-12 dB
-20 -20 dB
-40 -40 dB
-60 -60 dB
-80 dB
-80
-360 -315 -270 -225 -180 -135 -90 -45 0
Open-Loop Phase (deg)
Ỗhai b{o theo điểm khẫng, điểm cực rồi đ a về mẫ hình h|m truyền, đa th c
t s v| đa th c m u s đ c biểu di n d i d ng c{c vector h s
>>z = [-1 -3-7i -3+7i]’;
>>p = [-1 -3 -5 -3-7i -3+7i]’;
>>k = 30;
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
Ch ơng . ỗý thuyết điều khiển tự đ ng 226
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB 227
1. Simulink
tích kh{c.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB 228
2. SimMechanics
khí ỏ nh robot, h th ng gi m xóc xe, c{c thiết bị x}y dựng cễng nh c{c h
đ i di n cho c{c kh}u, kh p, liên kết, v| c{c lực th|nh phần, phần vi c tiếp theo
C‚ỏ bao gồm c{c yếu t nh kh i l ng, qu{n tính, kh p, liên kết v| thiết kế
ộg i s dụng có thể thiết l p c{c thẫng s đặc tr ng cho mẫ hình v i c{c biến
cễng nh c{c ph ơng ph{p biểu di n trong M‚ởỗ‚‛, đồng th i thiết kế h điều
khiển cho mẫ hình h nhiều v t trong Ởimulink. ‛ên c nh đó, c{c th|nh phần đi n,
th y lực, khí nén cễng có thể đ c đ a v|o mẫ hình cơ khí bằng Ởimscape v|
kiểm tra t t c c{c th|nh phần trong m t mẫ hình mẫ ph ng riêng. Để triển khai
c{c mẫ hình thiết kế trong c{c mẫi tr ng mẫ ph ng kh{c, bao gồm c kỹ thu t
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB 229
3. SimElectronics
ph{t triển c{c h cơ đi n ch p h|nh cễng nh x}y dựng c{c mẫ hình h|nh vi để
C{c mẫ hình ỞimỐlectronics có thể đ c s dụng để ph{t triển c{c thu t to{n điều
tùy đ ng m{y bay, h th ng khuếch đ i. C{c mẫ hình b{n d n bao gồm c{c nh
h ng phi tuyến v| nhi t đ ng lực, cho phép ng i s dụng lựa chọn c{c yếu t
trong vi c đ a v|o c{c th|nh phần bên ngo|i nh đi n, th y lực, khí nén v|
triển khai c{c mẫ hình thiết kế trong c{c mẫi tr ng mẫ ph ng kh{c v i Ởimscape
v| ỞimulinkCoder.
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB 230
học biểu t ng v| c{c phép to{n s học. ộg i dùng có thể thực hi n c{c phép
MuPAD trong c{c lĩnh vực to{n học thẫng dụng nh gi i tích v| đ i s tuyến tính
v| trong c{c lĩnh vực chuyên ng|nh nh lý thuyết s v| t h p. Ta cễng có thể viết
dụng MuPAD Notebook cho phép ng i dùng thiết l p c{c văn b n to{n học c{c
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB 231
‛ cẫng cụ h th ng điều khiển cung c p c{c thu t to{n tiêu chuẩn cẫng nghi p v|
c{c ng dụng cho h th ng ph}n tích, thiết kế, v| điều chỉnh c{c h th ng điều
truyền, khẫng gian tr ng th{i, mẫ hình điểm khẫng – điểm cực, hoặc mẫ hình đ{p
cẫng cụ cễng cho phép điều chỉnh c{c thẫng s bù s dụng b điều chỉnh PID,
quỹ tích nghi m s , thiết kế LQR/LQG, c{c kỹ thu t t ơng t{c v| tự đ ng kh{c.
ộg i dùng có thể kiểm th thiết kế c a mình bằng c{ch kiểm tra th i gian qu{
cầu kh{c.
tiêu chuẩn, h|m v| c{c ng dụng phục vụ x lý nh, ph}n tích, trực quan, v| ph{t
triển thu t to{n. ộg is dụng có thể thực hi n c{c b c tăng c ng nh, xóa
m , ph{t hi n c{c đặc điểm, gi m nhi u, ph}n vùng nh, biến đ i hình học v| kết
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ớhụ lục. M t s b cẫng cụ ng dụng chuyên s}u trong MATLAB 232
cắt l p Ch c năng trực quan cho phép ng i dùng quan s{t hình nh, kiểm tra
c{c vùng c a c{c điểm nh, điều chỉnh đ t ơng ph n, t o đ ng nét hoặc biểu
đồ, thao t{c trên c{c vùng quan t}m Region of Interests ROIs . ỡ i c{c thu t to{n
l ng c{c thu c tính, ph}n tích hình d ng v| kết c u cễng nh điều chỉnh c}n
Hình P. 6. ng dụng Image Processing Toolbox trong việc xác định ô tô từ video giao thông
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ở|i li u tham kh o 233
TủI ỗI U TồỌỘ Ỗồ Ớ
Patrick Marchand, O. Thomas Holland. Graphics and GUIs with MATLAB. CRC
R. V. Dukkipat. Analysis & Design of Control Systems Using MATLAB. New Age
Technology, ồ| ỗan.
Giáo trình M“TL“”: Sample Problems from Solving Statics Problems in M“TL“”
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ỏanh mục h|m 234
ỏỌộồ Ộ C ồủỘ
conj(x), 61
A cross, 34, 167, 169
abs(x), 5, 61
D
angle(x), 61
area, 108, 109, 110, 115, 147, 151, 152 diag, 28, 38, 41
axis, 134, 138, 139, 145, 147, 150, 156, diff, 58, 59, 61, 65, 66, 75, 76, 77, 79,
157, 161, 162, 164, 165, 168, 171 81, 82, 83, 84, 178, 182
dot, 33
bar, 147, 155, 157
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ỏanh mục h|m 235
fscanf, 8, 9, 13, 17
L
legend, 147
grid, 135, 147, 153, 182, 186
length, 30, 31, 90, 91, 92, 97, 100, 120,
gtext, 139, 147
130
I M
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ỏanh mục h|m 236
real(x), 61
O
repmat, 96, 103
ode23, 59, 61, 66
residue, 187, 188, 191, 206, 207
ode45, 59, 60, 61, 66, 186
residuez, 191, 192, 206, 210, 211, 212
ones, 27, 38, 41, 43, 45
rref, 37, 38, 41, 42, 43, 45
otherwise, 118, 124
S
P
series, 202, 203, 207, 216
parallel, 202, 207
shading, 145, 146, 148, 154, 155
Pi, 13
size, 30, 31, 90, 127
plot, 129, 130, 131, 132, 134, 135, 136,
ss, 199, 200, 201, 206
138, 139, 140, 141, 147, 149, 161, 162,
ss2tf, 201, 206
163, 164, 168, 171, 175, 176, 177, 182,
ss2zp, 206
183
ssdata, 201, 206
plot3, 140, 141, 142, 143, 148, 153
stairs, 147, 155, 156
plotyy, 137, 147, 150
step, 190, 204, 206, 207, 216
polar, 147, 149
struct, 93, 96, 99, 101, 102, 103, 105
poly2sym, 71, 78
subplot, 145, 147, 183
polyder, 58, 61
sum, 74, 98, 100, 120
prod, 120
surf, 145, 146, 148, 152, 154, 155
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t
ỏanh mục h|m 237
T
xlabel, 135, 140, 142, 143, 145, 147,
text, 7, 135, 139, 147, 161, 162 149, 152, 161, 162, 164, 168, 171, 175,
tf, 194, 195, 196, 201, 202, 205, 206, 176, 177, 182, 183, 186
tf2ss, 206 Y
tf2zp, 207
ylabel, 135, 140, 142, 143, 145, 147,
tfdata, 196, 206
149, 150, 152, 161, 162, 164, 168, 171,
title, 135, 142, 143, 147, 149, 161, 162,
175, 176, 177, 182, 183, 186
164, 168, 171
Z
V
zeros, 27, 38, 39, 41, 42, 104
view, 141, 142, 143, 148
zp2ss, 207
Ỗhoa Cơ học kỹ thu t & ởự đ ng hóa – Đ i học Cẫng ngh M‚ởỗ‚‛ v| ng dụng trong Cơ kỹ thu t