Professional Documents
Culture Documents
PhÇn 1 - C¬ së Matlab
Ch¬ng 1 – Kh¸i niÖm chung
1
Gi¸o tr×nh Matlab vµ øng dông
- Ng«n ng÷ Matlab: lµ mét ng«n ng÷ ma trËn/ m¶ng cÊp cao víi c¸c c©u lÖnh, hµm,
cÊu tróc d÷ liÖu, vµo/ ra, c¸c tÝnh n¨ng lËp tr×nh híng ®èi tîng. Nã cho phÐp lËp tr×nh
c¸c øng dông tõ nhá ®Õn c¸c øng dông lín vµ phøc t¹p.
- M«i trêng lµm viÖc Matlab: §©y lµ mét bé c¸c c«ng cô vµ ph¬ng tiÖn mµ b¹n sö
dông víi t c¸ch lµ ngêi dïng hoÆc ngêi lËp tr×nh Matlab. Nã bao gåm c¸c ph¬ng tiÖn
cho viÖc qu¶n lý c¸c biÕn trong kh«ng gian lµm viÖc Workspace còng nh xuÊt nhËp khÈu
d÷ liÖu. Nã còng bao gåm c¸c c«ng cô ph¸t triÓn, qu¶n lý, gì rèi vµ ®Þnh h×nh M-file, øng
dông cña Matlab.
- Xö lý ®å ho¹: §©y lµ hÖ thèng ®å ho¹ cña Matlab. Nã bao gåm c¸c lÖnh cao cÊp
cho trùc quan ho¸ d÷ liÖu hai chiÒu vµ ba chiÒu, xö lý ¶nh, ¶nh ®éng,... Nã còng cung cÊp
c¸c lÖnh cÊp thÊp cho phÐp b¹n tuú biÕn giao diÖn ®å ho¹ còng nh x©y dùng mét giao
diÖn ®å ho¹ hoµn chØnh cho øng dông Matlab cña m×nh.
- Th viÖn to¸n häc Matlab: §©y lµ tËp hîp khæng lå c¸c thuËt to¸n tÝnh to¸n tõ c¸c
hµm c¬ b¶n nh céng, sin, cos, sè häc phøc,... tíi c¸c hµm phøc t¹p h¬n nh nghÞch ®¶o
ma trËn, t×m trÞ riªng cña ma trËn, phÐp biÕn ®æi Fourier nhanh.
- Giao diÖn ch¬ng tr×nh øng dông Matlab API (Application Program Interface):
§©y lµ mét th viÖn cho phÐp b¹n viÕt c¸c ch¬ng tr×nh C vµ Fortran t¬ng thÝch víi
Matlab.
Simulink, mét ch¬ng tr×nh ®i kÌm víi Matlab, lµ mét hÖ thèng t¬ng t¸c víi viÖc
m« pháng c¸c hÖ thèng ®éng häc phi tuyÕn. Nã lµ mét ch¬ng tr×nh ®å ho¹ sö dông chuét
®Ó thao t¸c cho phÐp m« h×nh ho¸ mét hÖ thèng b»ng c¸ch vÏ mét s¬ ®å khèi trªn mµn
h×nh. Nã cã thÓ lµm viÖc víi c¸c hÖ thèng tuyÕn tÝnh, phi tuyÕn, hÖ thèng liªn tôc theo
thêi gian, hÖ gi¸n ®o¹n theo thêi gian, hÖ ®a biÕn,...
2
Gi¸o tr×nh Matlab vµ øng dông
Do ch¬ng tr×nh ®îc cÊu h×nh theo chÕ ®é Autorun (tù ch¹y) nªn khi ®a ®Üa CD
vµo æ ®Üa th× tr×nh Setup tù ®éng ®îc kÝch ho¹t. Trêng hîp chÕ ®é Autorun kh«ng ®îc
kÝch ho¹t (do tËp tin Autorun bÞ lçi), dïng. HoÆc ta cã thÓ kÝch chuét vµo nót Start trªn
thanh t¸c vô (Task bar) cña windows, chän lÖnh run, gâ vµo ®êng dÉn cña file, nhÊn
Enter hoÆc kÝch vµo nót lÖnh Run. Sau ®ã lµm theo c¸c híng dÉn cña tr×nh cµi ®Æt cña
Windows.
- Trêng hîp cµi ®Æt Matlab tõ ®Üa cøng:
H×nh 1.2. Cöa sæ Software License Agreement vµ cöa sæ th«ng tin vÒ kh¸ch hµng
3
Gi¸o tr×nh Matlab vµ øng dông
1.2.3- NhËp th«ng tin cña ngêi dïng vµ Personal License Password.
Cöa sæ thø hai thÓ hiÖn c¸c th«ng tin vÒ b¶n quyÒn cña ch¬ng tr×nh. KÝch Yes ®Ó
sang cöa sæ cµi ®Æt kÕ tiÕp. Trong cöa sæ th«ng tin vÒ kh¸ch hµng Customer Information
(h×nh 1.2), nhËp hä tªn vµo khung Name, ®Þa chØ hoÆc tªn c«ng ty vµo khung Company.
NhËp m· kho¸ (Serial Key) cña ch¬ng tr×nh vµo khung Personal License Password. KÝch
chuét vµo Next ®Ó tiÕp tôc qu¸ tr×nh cµi ®Æt.
1.2.4. Lùa chän c¸c thµnh phÇn sÏ cµi ®Æt:
Trong cöa sæ Select
Matlab Components (h×nh
1.3), bá ®¸nh dÊu nh÷ng
thµnh phÇn kh«ng cÇn thiÕt
trong ch¬ng tr×nh ®Ó tiÕt
kiÖm dung lîng ®Üa cøng.
Muèn kiÓm tra dung lîng
cña ch¬ng tr×nh, kÝch vµo
Disk Space ®Ó quan s¸t.
Muèn thay ®æi th
môc cµi ®Æt Matlab, kÝch
chuét vµo nót Browse vµ t¹o H×nh 1.3. Lùa chän c¸c thµnh phÇn cña Matlab sÏ ®îc cµi ®Æt
®êng dÉn tíi ®Þa chØ cÇn
®Æt th môc Matlab. Th
môc mÆc ®Þnh lµ
C:\MATLABR11.
§Ó tiÕp tôc kÝch
Next, mµn h×nh hiÖn khung
th«ng tin Setup vµ tr×nh
setup b¾t ®Çu copy c¸c tËp
tin vµo th môc cµi ®Æt.
4
Gi¸o tr×nh Matlab vµ øng dông
qu¸ tr×nh Copy c¸c file cña ch¬ng tr×nh vµo th môc cµi ®Æt, mµn h×nh hiÖn khung tho¹i
Setup Complete. Bá ®¸nh dÊu ë « “Yes, launch the Help Desk to view the Release Note”
nÕu kh«ng muèn tr×nh setup khëi ®éng Help Desk (phÇn trî gióp). Bá ®¸nh dÊu ë « “Yes,
launch Matlab” nÕu cha muèn khëi ®éng Matlab ngay. KÝch Finish ®Ó kÕt thóc qóa tr×nh
cµi ®Æt.
Sau khi kÕt thóc cµi ®Æt cöa sæ kÕ tiÕp lµ Internet Explorer (nÕu kh«ng bá ®¸nh dÊu ë
« “Yes, launch the Help Desk to view the Release Note”). KÝch Close ®Ó trë vÒ cöa
sæ nÒn Desktop cña windows, biÓu tîng cña Matlab sÏ ®îc tù ®éng ®a ra Desktop cña
windows.
5
Gi¸o tr×nh Matlab vµ øng dông
Dßng thø hai lµ thanh menu (Menu bar – thanh thùc ®¬n) cña ch¬ng tr×nh gåm
c¸c menu chÝnh chøa c¸c lÖnh liªn quan ®Õn viÖc t¹o, xö lý, g¸n thuéc tÝnh,... cho
c¸c ®èi tîng, thiÕt lËp cÊu h×nh phÇn mÒm,...
Dßng thø ba lµ thanh c«ng cô (Tool bar – thanh c«ng cô) chøa biÓu tîng ®êng
t¾t (Shortcut) cña c¸c lÖnh thêng sö dông, gióp ngêi sö dông truy cËp nhanh vµo
c¸c lÖnh cña Matlab.
PhÇn chiÕm gÇn chän mµn h×nh lµ cöa sæ lÖnh, lµ n¬i nhËp c¸c lÖnh vµ hiÓn thÞ kÕt
qu¶ còng nh c¸c th«ng tin kh¸c.
Cuèi cïng lµ thanh t¸c vô hay thanh tr¹ng th¸i (status bar) hiÖn th«ng tin vÒ t×nh
tr¹ng ®ang xö lý, thùc hiÖn ®èi víi ®èi tîng.
6
Gi¸o tr×nh Matlab vµ øng dông
7
Gi¸o tr×nh Matlab vµ øng dông
8
Gi¸o tr×nh Matlab vµ øng dông
1.3.2.5- Ng¨n kh«ng cho hiÓn thÞ kÕt qu¶ tÝnh to¸n ra mµn h×nh
NÕu b¹n chØ ®¬n gi¶n lµ gâ vµo mét c©u lÖnh (phÐp tÝnh) vµ nhÊn , Matlab sÏ tù
®éng hiÓn thÞ kÕt qu¶ cña c©u lÖnh (phÐp tÝnh) ®ã ra mµn h×nh. Tuy nhiªn nÕu b¹n kÕt
thóc dßng lÖnh víi mét dÊu (;) th× Matlab sÏ thùc hiÖn viÖc tÝnh to¸n nhng kh«ng hiÓn
thÞ kÕt qu¶ ra mµn h×nh. §iÒu nµy ®Æc biÖt cã Ých khi thùc hiÖn tÝnh to¸n víi c¸c vÐc t¬
hoÆc Matlab trËn cã sè phÇn tõ rÊt lín.
1.3.2.6- Dßng lÖnh dµi
NÕu mét c©u lÖnh qu¸ dµi, kh«ng võa trªn mét dßng, ta sö dông mét to¸n tö ba chÊm
(…) sau ®ã nhÊn ®Ó biÓu thÞ r»ng c©u lÖnh cßn tiÕp tôc ë dßng kÕ tiÕp. VÝ dô:
s = 1 – 1/2 + 1/3 – 1/4 + 1/5 – 1/6 + 1/7 ...
– 1/8 + 1/9 – 1/10 + 1/11 – 1/12;
Sè ký tù tèi ®a cho phÐp trªn mét dßng lµ 4096 ký tù. C¸c kho¶ng tr¾ng (dÊu c¸ch)
xung quanh c¸c dÊu =, +, -, *, /,… lµ tuú ý (kh«ng nhÊt thiÕt ph¶i cã) nhng chóng gióp ta
dÔ ®äc h¬n.
9
Gi¸o tr×nh Matlab vµ øng dông
Matlab cã c¸c lÖnh cho phÐp ngêi sö dông lu néi dung cña Workspace ë bÊt kú
thêi ®iÓm nµo trong phiªn lµm viÖc vµ sau ®ã cã thÓ n¹p d÷ liÖu trë l¹i Matlab trong phiªn
lµm viÖc ®ã hoÆc phiªn lµm viÖc sau ®ã. Lu vµ n¹p d÷ liÖu còng cã thÓ xuÊt nhËp c¸c file
d÷ liÖu kiÓu text.
1.3.3.1- Lu kh«ng gian lµm viÖc (Saving the Workspace)
§Ó lu Workspace, chän lÖnh Save Workspace as tõ menu File hoÆc gâ lÖnh trùc
tiÕp tõ cöa sæ lÖnh. LÖnh lu d÷ liÖu sÏ lu néi dung cña Workspace thµnh mét file nhÞ
ph©n cã phÇn më réng lµ .mat. VÝ dô:
>>save data
lu toµn bé néi dung Workspace vµo file data.mat. NÕu muèn cã thÓ chØ lu mét sè
biÕn nhÊt ®Þnh b»ng c¸ch ®a thªm tªn c¸c biÕn vµo sau tªn file:
>>save data x, y, z
chØ lu c¸c biÕn x, y, z vµo file data.mat.
1.3.3.2- N¹p kh«ng gian lµm viÖc (Loading the Workspace)
LÖnh n¹p sÏ n¹p mét MAT-file ®· ®îc t¹o ra tríc ®ã b»ng lÖnh save. VÝ dô:
>>load data
n¹p néi dung file data.mat vµo kh«ng gian lµm viÖc. NÕu file data.mat chø© c¸c biÕn
a, b, c th× c¸c biÕn nµy sÏ ®îc ®a trë l¹ vµo Workspace. NÕu c¸c biÕn nµy ®· tån t¹i
trong Workspace th× chóng sÏ bÞ ghi ®Ì.
Trong Windows, n¹p l¹i Workspace cã thÓ thùc hiÖn b»ng c¸ch chän lÖnh Load
Workspace tõ menu File.
10
Gi¸o tr×nh Matlab vµ øng dông
H×nh 2.2. Cöa sæ MATLAB Editor/Debuger H×nh 2.3. Cöa sæ ®å ho¹ cña MATLAB
11
Gi¸o tr×nh Matlab vµ øng dông
Model (h×nh 2.4): Gäi tr×nh Simulink (më cöa sæ th viÖn khèi Simulink) phôc vô
cho viÖc thiÕt kÕ m« h×nh m« pháng hÖ thèng.
2.1.2- Open (h×nh 2.5): Më tËp tin ®å thÞ hoÆc h×nh ¶nh trong cöa sæ Figure ®Ó xö lý.
Trong cöa sæ Matlab Command
windows kÝch: File/Open. XuÊt hiÖn
khung tho¹i Open.
Tõ khung tho¹i, gâ ®Þa chØ cña file vµo
« file name, nhÊn open hoÆc kÝch chän
tªn tËp tin cïng kiÓu tËp tin (file type)
muèn më vµ kÝch Open.
H×nh 2.7. Cöa sæ Open files
2.1.3- Open Selection:
Cã chøc n¨ng më nh÷ng ®èi tîng ®· chän riªng vµ lu thµnh mét tËp tin riªng.
2.1.4- Run Script :
Ch¹y mét ch¬ng tr×nh ®· lu thµnh mét tËp tin.
12
Gi¸o tr×nh Matlab vµ øng dông
Trong cöa sæ Matlab Command window kÝch: File/Run Script. Trªn mµn h×nh
Lu c¸c néi dung trong cöa sæ lÖnh cña MATLAB theo Workspace.
NhËp c¸c lÖnh trong cöa sæ lÖnh cña MATLAB nh b×nh thêng.
Tõ menu File, chän Save Workspace as. Mµn h×nh hiÖn khung tho¹i Save
Workspace as (h×nh 2.11).
Tõ khung tho¹i, ®¸nh tªn tËp tin muèn lu (nÕu cÇn thiÕt chän nguån chøa víi Save
in). KÝch Save. Nªn nhí lµ tËp tin nµy
®îc lu theo d¹ng *.mat vµ còng lµ tËp
tin ch¬ng tr×nh gèc.
14
Gi¸o tr×nh Matlab vµ øng dông
15
Gi¸o tr×nh Matlab vµ øng dông
vµ kÝch OK.
Command Windows Font: HiÖn khung danh môc font cïng thuéc tÝnh ®Ó ngêi
sö dông thay ®æi font mÆc ®Þnh thµnh font quen thuéc.
Copy Options : HiÖn khung th«ng tin ®Ó ngêi sö dông tuú chän ®Þnh d¹ng ®èi
tîng muèn sao chÐp.
H×nh 2.17. T¸p Command Windows Font vµ thÎ Copy Options cña cöa sæ Preferences
2.2.1- Undo: Huû lÖnh hoÆc thao t¸c ®· thùc hiÖn tríc ®ã. Sau
khi chän lÖnh Undo ®Ó huû lÖnh, lÖnh sÏ ®æi thµnh Redo ®Ó ngêi sö
dông kh«i phôc nh÷ng g× ®· huû tríc ®ã víi lÖnh Undo.
H×nh 2.19. Menu Edit
16
Gi¸o tr×nh Matlab vµ øng dông
17
Gi¸o tr×nh Matlab vµ øng dông
18
Gi¸o tr×nh Matlab vµ øng dông
- Tªn biÕn bao gåm mét ch÷ c¸i sau mét sè bÊt kú c¸c ch÷ c¸i, ch÷ sè vµ dÊu g¹ch
díi. Matlab ph©n biÖt ch÷ in hoa vµ ch÷ in thêng, v× vËy X vµ x lµ hai biÕn ph©n biÖt.
19
Gi¸o tr×nh Matlab vµ øng dông
- eps: §é chÝnh x¸c t¬ng ®èi cña dÊu phÈy ®éng. §©y lµ dung sai Matlab sö
dông trong c¸c tÝnh to¸n cña nã.
20
Gi¸o tr×nh Matlab vµ øng dông
Nh©n. * Nh©n. .*
Chia ph¶i / Chia ph¶i ./
Chia tr¸i \ Chia tr¸i .\
Luü thõa. ^ Luü thõa. .^
PhÐp g¸n. = PhÐp g¸n. =
21
Gi¸o tr×nh Matlab vµ øng dông
1 2 3 1 1 1
2 3 4 0 0 0
10 11 12 0 0 0
Deleted: ¶
VÝ dô 2: >>12.2>12¶
ans =¶
Cho mét qu¶ cÇu nÆng cã khèi lîng lµ 1¶
v >>1~=1¶
ans =¶
m=2kg ®îc buéc vµo mét sîi d©y cã chiÒu dµi 0¶
>> A=[ 1:3;4:6;7:9]¶
l=1.5m (h×nh 3.5). Mét ngêi n¾m vµo ®Çu d©y vµ A =¶
1 2 3¶
4 5 6¶
quay trßn qu¶ cÇu theo ph¬ng th¼ng ®øng.VËn tèc 7 8 9¶
dµi cña qu¶ cÇu ë vÞ trÝ cao nhÊt lµ v =6m/s. lùc kÐo
T trªn sîi d©y thay ®æi theo gãc nghiªng cña d©y
víi ph¬ng n»m ngang x¸c ®Þnh theo c«ng thøc sau:
H×nh 3.5. Minh ho¹ vÝ dô 2
mv 2
T= + mg(2 3 sin )
l
Cho biÕt khi lùc kÐo T > 145N th× s¬i d©y bÞ ®øt. H·y x¸c ®Þnh nh÷ng vÞ trÝ d©y bÞ
®øt.
Ch¬ng tr×nh nh sau:
function y = tinhluc(theta,T)
m=2;l=1.5;Tmax=145;v=6;g=9.8;
theta=0:10:360;
rad=pi*theta/180;
T=m*(v^2/l+g*(2-3*sin(rad)));
bang=[theta;T>Tmax]
plot(theta,T);
grid on
>>Tinhluc
bang =
Columns 1 through 12
0 10 20 30 40 50 60 70 80 90 100 110
0 0 0 0 0 0 0 0 0 0 0 0
Columns 13 through 24
120 130 140 150 160 170 180 190 200 210 220 230
0 0 0 0 0 0 0 0 0 0 0 0
22
Gi¸o tr×nh Matlab vµ øng dông
Columns 25 through 36
240 250 260 270 280 290 300 310 320 330 340 350
0 0 1 1 1 0 0 0 0 0 0 0
Column 37
360
0
Deleted: ,
Tõ kÕt qu¶ trªn ta thÊy t¹i c¸c vÞ trÝ øng víi c¸c gãc 2600,, 2700, , 2800, th× biÓu thøc
logic T>Tmax cã gi¸ trÞ lµ 1, tøc t¹i ®ã d©y cã thÓ sÏ bÞ ®øt.
3.3.3.2- C¸c phÐp to¸n logic
C¸c phÐp to¸n logic vµ, hoÆc, ®¶o ®îc thùc hiÖn bëi c¸c to¸n tö sau:
- PhÐp vµ( and): Ký hiÖu lµ &
VD: phÐp & 2 ma trËn cïng cì A, B lµ mét ma trËn cã c¸c phÇn tö b»ng 1 nÕu c¸c
phÇn tö t¬ng øng cña c¶ 2 ma trËn ®Çu ®Òu kh¸c 0 vµ b»ng 0 nÕu 1 trong 2 phÇn tö
t¬ng øng cña 2 ma trËn b»ng 0.
>>A=[1 2 7; 0 4 9;1 3 5]; B=[0 2 4; 2 4 6; 3 0 7]; C=A&B
C=
0 1 1
0 1 1
1 0 1
- PhÐp hoÆc (or) : Ký hiÖulµ |
VD : phÐp or 2 ma trËn cïng cì A,B lµ mét ma trËn cã c¸c phÇn tö b»ng 0 nÕu c¸c
phÇn tö t¬ng øng cña c¶ 2 ma trËn ®Çu ®Òu b»ng 0 vµ b»ng 1 nÕu 1 trong 2 phÇn tö
t¬ng øng cña 2 ma trËn kh¸c 0.
>>A=[0 2 7; 0 4 9;1 3 0];
>> B=[0 2 4; 2 4 6; 3 0 0];
>> C=A | B
C=
0 1 1
1 1 1
1 1 0
- PhÐp ®¶o( not): Ký hiÖu lµ ~
23
Gi¸o tr×nh Matlab vµ øng dông
VÝ Dô : phÐp ®¶o cña mét ma trËn lµ mét ma trËn cã cïng cì víi c¸c phÇn tö cã gi¸
trÞ b»ng 1 nÕu c¸c phÇn tö cña ma trËn ®Çu cã gi¸ trÞ b»ng 0 vµ b»ng 0 nÕu c¸c phÇn tö cña
ma trËn ®Çu cã gi¸ trÞ kh¸c 0.
>>A=[0 2 7; 0 4 9;1 3 0]
>> B=~A
B=
1 0 0
1 0 0
0 0 1
24
Gi¸o tr×nh Matlab vµ øng dông
>>x=3;
>> w = a/b
w=
0.1765
25
Gi¸o tr×nh Matlab vµ øng dông
>> lienhop=conj(a);
>> dolon=abs(a);
>> goc =angle(a);
26
Gi¸o tr×nh Matlab vµ øng dông
a=input('nhap a= ');
b=input('nhap b= ');
c=input('nhap c= ');
Deleted:
x1=(-b+sqrt(b^2-
Deleted:
4*a*c))/2*a) Deleted:
Deleted: (
x2=(-b-sqrt(b^2-
Deleted:
4*a*c))/2*a) Deleted: (
Bíc 3: Lu l¹i néi dung tËp tin víi tªn Deleted:
Deleted:
vidu.m
Deleted:
Bíc 4: Quay l¹i cöa sæ Matlab Deleted: (
Deleted:
Command Windows. T¹i cöa sæ lÖnh ta gâ tªn
H×nh 3.2. KÕt qu¶ khi ch¹y tËp tin Vidu Deleted: (
tËp tin.
>>vidu
nhap vao a= 3
nhap vao b= -4
nhap vao c= 1
x1 =
1
x2 =
0.3333
Hai nghiÖm øng víi c¸c gia trÞ a,b,c
võa nhËp vµo vµ lµ nghiÖm thùc. H×nh 3.3
lµ trêng hîp ph¬ng tr×nh cã nghiÖm ¶o.
VD vÒ Script file: Gi¶i bµi tËp m¹ch:
cho m¹ch ®iÖn nh h×nh vÏ
H×nh 3.3. Minh ho¹ trêng hîp nghiÖm ¶o
R L C
27
Gi¸o tr×nh Matlab vµ øng dông
28
Gi¸o tr×nh Matlab vµ øng dông
PhÇn th©n cña ch¬ng tr×nh trong hµm lµ c¸c lÖnh cña Matlab thùc hiÖn viÖc tÝnh
to¸n gi¸ trÞ cña ®¹i lîng ®îc nªu trong phÇn tªn kÕt qu¶ theo c¸c biÕn ®îc nªu tronhg
phÇn danh s¸ch biÕn. C¸c biÕn chØ cã t¸c dông néi trong hµm võa ®îc khai b¸o. Tªn cña
c¸c biÕn dîc c¸ch nhau b»nh dÊu phÈy (,).
VÝ dô ta thµnh lËp hµm ®æi tõ ®é sang radian:
function rad = change(do)
rad = do*pi/180; % doi do sang radian
Trong Matlab c¸c dßng ghi chó sau dÊu % kh«ng cã t¸c dông thùc thi, chóng ®¬n
gi¶n lµ nh÷ng dßng nh¾c ®Ó ngêi ®äc ch¬ng tr×nh dÔ hiÓu mµ th«i. File.m thêng lÊy
tªn lµ tªn cña hµm, ta ®Æt tªn file hµm võa lËp lµ change.m. NÕu muèn ®æi 450 sang
radian, chØ cÇn gâ:
>>rad = change(45)
rad =
0.7854
VÝ du: t¹o hµm gi¶i ph¬ng tr×nh bËc hai, tªn tËp tin ®îc ®Æt lµ bachai.m.
function [x1,x2] = bachai(a,b,c)
delta = b^2-4*a*c;
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b - sqrt(delta))/(2*a);
>>[x1,x2]=bachai1(4,6,-7)
x1 =
0.77707
x2 =
-2.2707
29
H×nh 3.4. KÕt qu¶ cña lÖnh fplot(‘bachai1’, [-6,6])
Gi¸o tr×nh Matlab vµ øng dông
function y = bachai1(x)
a = 4;b = 6; c = -7;
y =a*x^2 + b*x + c;
>>fplot(‘bachai1’, [-6,6])
30
Gi¸o tr×nh Matlab vµ øng dông
NÕu biÓu thøc logic ®óng nhãm lÖnh sÏ ®îc thùc hiÖn. NÕu biÓu thøc logic sai th×
ch¬ng tr×nh chuyÓn ®Õn lÖnh sau end.
VD:
function y=f(a,b,c)
if a<b
disp(' hinh thang nguoc')
end
y=(a+b)*c/2;
Sau ®ã ghi (save) vµo file cã tªn lµ ht.m
Quay l¹i cöa sæ MatLab command Window, gâ vµo dßng lÖnh sau:
>> ht(2,4,2)
hinh thang nguoc
ans =
6
CÊu tróc lÖnh if lång nhau:
Có ph¸p: if <biÓu thøc logic1>
Nhãm lÖnh 1;
if <biÓu thøc logic 2>
Nhãm lÖnh 2;
end
Nhãm lÖnh 3;
end
Nhãm lÖnh 4;
NÕu biÓu thøc logic 1 ®óng th×
- Thùc hiÖn nhãm lÖnh 1.
- KiÓm tra biÓu thøc logic 2.
- NÕu ®óng thùc hiÖn nhãm lÖnh 2
- NÕu sai bá qua nhãm lÖnh 2
- Thùc hiÖn nhãm lÖnh 3.
NÕu biÓu thøc logic 1 sai th×
- Thùc hiÖn nhãm lÖnh 4.
LÖnh else:
31
Gi¸o tr×nh Matlab vµ øng dông
32
Gi¸o tr×nh Matlab vµ øng dông
NÕu BT logic 1 ®óng nhãm lÖnh A sÏ ®îc thùc hiÖn. NÕu sai kiÓm tra Btlogic 2,
nÕu ®óng thùc hiÖn nhãm lÖnh B. NÕu sai kiÓm tra BT logic3, nÕu ®óng thùc hiÖn nhãm
lÖnh C…NÕu kh«ng cã biÓu thøc logic nµo ®óng th× nhãm lÖnh n ®îc thùc hiÖn.
a=input(' vao a=')
b=input(' vao b=')
c=input(' vao c=')
d=b^2-4*a*c
if d < 0
disp(' pt vo nghiem')
elseif d==0
disp (' pt co nghiem kep')
x12=-b/2*a
else
disp (' pt co 2 nghiem phan biet')
x1=(-b+sqrt(d))/2*a
x2=(-b-sqrt(d))/2*a
end
C©u ®iÒu kiÖn vµ lÖnh Break
Có ph¸p: if< biÓu thøc logic> break
end
tho¸t khái vßng lÆp nÕu ®iÒu kiÖn logic ®óng. Ngîc l¹i sÏ thùc hiÖn lÖnh tiÕp theo trong
vßng lÆp.
VÝ dô 1: TÝnh tæng cña n sè tù nhiªn liªn tiÕp, n vµo tõ bµn phÝm (viÕt trong Script
file):
33
Gi¸o tr×nh Matlab vµ øng dông
disp(s)
34
Gi¸o tr×nh Matlab vµ øng dông
LÖnh break: kÕt thóc sù thù thi vßng lÆp for hoÆc while
LÖnh return: thêng ®îc sö dông trong c¸c hµm cña Matlab. LÖnh return sÏ cho
phÐp quay trë vÒ thùc thi nh÷ng lÖnh n»m trong t¸c dông cña lÖnh return.
LÖnh error (‘dßng nh¾n’): kÕt thóc thùc thi lÖnh vµ hiÓn thÞ dßng nh¾n trªn mµn
h×nh.
VÝ dô:
Chän mét sè d¬ng bÊt kú. NÕu sè ®ã lµ sè ch½n th× chia hÕt cho hai. NÕu sè ®ã lµ
sè lÎ th× nh©n víi 3 råi céng 1. LÆp l¹i qu¸ tr×nh ®ã cho ®Õn khi kÕt qu¶ lµ 1.
Ch¬ng tr×nh:
while 1
n=input ('Nhap vao mot so : ');
if n<=0
break
end
while n>1
if rem(n,2)== 0% phan du cua n chia cho 2
n=n/2
else
n= 3*n+1
end
end
Khi ch¹y ch¬ng tr×nh ta sÏ thÊy t¸c dông cña lÖnh break (dõng ch¬ng tr×nh khi
nhËp sè ©m hoÆc sè 0)
35
Gi¸o tr×nh Matlab vµ øng dông
36
Gi¸o tr×nh Matlab vµ øng dông
- Tªn ma trËn lµ mét chuçi ký tù dµi tèi ®a 31 ký tù. Tªn ph¶i b¾t ®Çu b»ng ch÷ c¸i sau
®ã cã thÓ lµ sè, ch÷ c¸i, mét sè ký tù ®Æc biÖt trõ c¸c ký tù: +, -, *, /, &... Tªn ®Æt bªn
Deleted: ,
tr¸i dÊu b»ng, bªn ph¶i dÊu b»ng lµ c¸c phÇn tö cña ma trËn.
- Bao quanh c¸c phÇn tö cña ma trËn b»ng dÊu ngoÆc vu«ng [aij].
- C¸c phÇn tö trong mét hµng cña ma trËn ®îc c¸ch nhau bëi ký tù tr¾ng (space) hoÆc
Deleted: ,
dÊu phÈy (,).
37
Gi¸o tr×nh Matlab vµ øng dông
- KÕt thóc mét hµng trong ma trËn bëi dÊu (;). Nãi c¸ch kh¸c dÊu (;) ph©n c¸ch gi÷a c¸c
hµng cña ma trËn
38
Gi¸o tr×nh Matlab vµ øng dông
30 36 42
39 48 57
31 41 51
- C¸c phÇn tö trong ma trËn cã thÓ lµ c¸c sè phøc:
VD: >> a=[1+3i 2+2i;3+i 1+i]
a=
1.0000 + 3.0000i 2.0000 + 2.0000i
3.0000 + 1.0000i 1.0000 + 1.0000i
- C¸c phÇn tö trong ma trËn cã thÓ lµ c¸c ký tù (symbol). Nhng tríc tiªn ta ph¶i
khai b¸o c¸c phÇn tö b»ng lÖnh syms
VD >> syms sinx cosx a %sinx, cosx, a lµ c¸c biÕn Symbolic
>> b = [ sinx cosx; a cosx]
b=
[ sinx, cosx]
[ a, cosx]
>> c=[a sinx; a a]
c=
[ a, sinx]
[ a, a]
39
Gi¸o tr×nh Matlab vµ øng dông
31 41 51
>> disp('hiÓn thÞ lêi th«ng b¸o nµy')
hiÓn thÞ lêi th«ng b¸o nµy
40
Gi¸o tr×nh Matlab vµ øng dông
7 8 9
>> B = A(1,1)
B=
1
>> A(3,3) = A(2,2) + B
A=
1 2 3
4 5 6
7 8 6
Chó ý: Trong trêng hîp ta muèn gäi tÊt c¶ c¸c hµng hoÆc tÊt c¶ c¸c cét ta cã thÓ
dïng to¸n tö hai chÊm ( : )
VD: >> A = [1:3; 4:6; 7:9]
A=
1 2 3
4 5 6
7 8 9
>> B = A(2,:)
B=
4 5 6
>>C = A(:,2)
C=
2
5
8
41
Gi¸o tr×nh Matlab vµ øng dông
B=
4 5
7 8
>> c =[a(1,1) a(3,3); a(2,3) a(3,1)]
c=
1 9
6 7
42
Gi¸o tr×nh Matlab vµ øng dông
1 1 1
43
Gi¸o tr×nh Matlab vµ øng dông
44
Gi¸o tr×nh Matlab vµ øng dông
Deleted: ¶
>> b=[2+i 2+2i;1-4i 3+3i]
b=
2.0000 + 1.0000i 2.0000 + 2.0000i
1.0000 - 4.0000i 3.0000 + 3.0000i
>> c=a.*b
c=
1.0000 + 3.0000i -2.0000 +10.0000i
-13.0000 -16.0000i -6.0000 +12.0000i
45
Gi¸o tr×nh Matlab vµ øng dông
7 8 9
’
>> B = A
B=
1 4 7
2 5 8
3 6 9
Ma trËn B ®îc gäi lµ ma trËn chuyÓn vÞ cña ma trËn A. PhÐp chuyÓn vÞ biÕn ma trËn
hµng (hoÆc vÐc t¬) thµnh ma trËn cét, ma trËn cét thµnh ma trËn hµng (hoÆc vÐc t¬). NÕu
c¶ x vµ y lµ c¸c vÐc t¬ cét c¸c sè thùc, th× tÝch x*y kh«ng ®îc ®Þnh nghÜa nhng hai tÝch
sè x’*y vµ ‘*x th× gièng nh tÝch v« híng.
§«Ýi víi ma trËn hay vÐc t¬ cã c¸c phÇn tö lµ sè phøc z, ®¹i lîng z’ biÓu thÞ chuyÓn
vÞ liªn hîp cña z. PhÐp chuyÓn vÞ kh«ng liªn hîp cña sè phøc biÓu thÞ bëi z.’ t¬ng tù nh
c¸c phÐp to¸n m¶ng kh¸c. VÝ dô:
>>z = [1+2i 3+4i]
>>z’
ans = 1-2i
3-4i
>>z.’
ans = 1+2i
3+4i
§èi víi c¸c vÐc t¬ phøc, hai tÝch v« híng x’*y vµ y’*x lµ liªn hîp phøc cña nhau vµ
tÝch v« híng cña mét vÐc t¬ sè phøc víi chÝnh nã x’*x lµ mét sè thùc.
46
Gi¸o tr×nh Matlab vµ øng dông
Lu ý trong mét sè trêng hîp kÕt qu¶ cña phÐp nghÞch ®¶o cã thÓ kh«ng chÝnh x¸c
do sai sè lµm trßn. NÕu cã c¶nh b¸o (Warning) xuÊt hiÖn ta ph¶i kiÓm tra l¹i b»ng c¸ch
nh©n hai ma trËn tríc vµ sau khi thùc hiÖn phÐp nghÞch ®¶o.
NÕu A vu«ng vµ kh«ng duy nhÊt, kh«ng cã sai sè lµm trßn th× X = inv(A)*B vÒ lý
thuyÕt th× gièng nh X=A\B vµ Y= B*inv(A) gièng nh Y=B/A. Tuy nhiªn, c¸c phÐp to¸n
sö dông c¸c phÐp \ vµ / thêng ®îc sö dông h¬n v× chóng ®ßi hái thêi gian tÝnh to¸n, bé
nhí Ýt h¬n vµ cã ®Æc tÝnh x¸c ®Þnh sai sè tèt h¬n.
Deleted: 2
47
Gi¸o tr×nh Matlab vµ øng dông
thuÇn nhÊt. PhÐp nh©n ma trËn C = A*B ®îc ®Þnh nghÜa khi sè hµng cña A (ma trËn bÞ
nh©n) b»ng sè cét cña ma trËn B (ma trËn nh©n).
C¸c phÇn tö trong ma trËn C ®îc tÝnh nh sau: cij = aikbkj
VD c¸c phÇn tö trong ma trËn lµ c¸c sè thùc.
>> A = [1 2 1; 1 0 1]
A=
1 2 1
1 0 1
>> B = [1 0 2; 2 1 1; 1 1 1]
B=
1 0 2
2 1 1
1 1 1
>> C = A * B
C=
6 3 5
2 1 3
Deleted: ¶
VD c¸c phÇn tö trong ma trËn lµ c¸c sè phøc.
>> a=[1+2i 2+2i;1+3i 2+2i]
a=
1.0000 + 2.0000i 2.0000 + 2.0000i
1.0000 + 3.0000i 2.0000 + 2.0000i
>> b=[1+i 2+i;1+3i 2+i]
b=
1.0000 + 1.0000i 2.0000 + 1.0000i
1.0000 + 3.0000i 2.0000 + 1.0000i
>> c=a*b
c=
-5.0000 +11.0000i 2.0000 +11.0000i
-6.0000 +12.0000i 1.0000 +13.0000i
VD c¸c phÇn tö trong ma trËn lµ c¸c tham sè
>> syms a b c
>>d=[2*a b c; a b c; 0 0 a]
48
Gi¸o tr×nh Matlab vµ øng dông
Deleted: ¶
d=
[ 2*a, b, c]
[ a, b, c]
[ 0, 0, a]
>> e=[a b c; 2*a 2*b^2 c ; a 0 b]
e=
[ a, b, c]
[ 2*a, 2*b^2, c]
[ a, 0, b]
>> f=d*e
f=
[ 2*a^2+2*b*a+c*a, 2*b*a+2*b^3, 2*c*a+2*c*b]
[ a^2+2*b*a+c*a, b*a+2*b^3, c*a+2*c*b]
[ a^2, 0, b*a]
PhÐp chia ma trËn thùc chÊt lµ phÐp nh©n víi ma trËn nghÞch ®¶o.
A 1
C A*
B B Deleted: LÊy ma trËn nghÞch ®¶o thùc
>> A = [1 2 1; 1 0 1] hiÖn b»ng hµm inv.¶
¶
A=
1 2 1
1 0 1
>> B = [1 0 2; 2 1 1; 1 1 1]
B=
1 0 2
2 1 1
1 1 1
>> C = inv(B)
C=
0 1.0000 -1.000
-0.5000 -0.5000 1.5000
0.500 -0.5000 0.5000
>> D = A*C
D=
49
Gi¸o tr×nh Matlab vµ øng dông
50
Gi¸o tr×nh Matlab vµ øng dông
HÖ ph¬ng tr×nh vi ph©n thêng tuyÕn tÝnh cã hÖ sè kh«ng ®æi cã thÓ ®îc
viÕt: dx/dt = Ax trong ®ã x = x(t) lµ mét vÐc t¬ cña c¸c hµm theo t vµ A lµ ma trËn
phô thuéc vµo t. Lêi gi¶i cã thÓ ®îc biÓu diÔn díi thuËt ng÷ sè mò ma trËn:
x(t) = etAx(0)
vµ ®îc tÝnh to¸n bëi hµm expm(A). VÝ dô:
>> A = pascal(3);
>>x0 = [1;1;1] ;
>>X = [];
>>for t = 0:.01:1 X = [X expm(A*t)*x0]
end
Deleted: 4
51
Gi¸o tr×nh Matlab vµ øng dông
52
Gi¸o tr×nh Matlab vµ øng dông
Bíc1: LËp 1 ma trËn hµng cã c¸c phÇn tö lµ c¸c hÖ sè tõ an ®Õn a0 gi¶m dÇn theo
bËc cña ph¬ng tr×nh ( NÕu hÖ sè nµo kh«ng cã ghi 0 )
Bíc 2: Dïng lÖnh Roots ®Ó gi¶i ma trËn võa t¹o ®îc.
VD gi¶i ph¬ng tr×nh sau: y = x5 -2x4 + 5x2 -1
>> y = [ 1 -2 0 5 0 -1]
y=
1 -2 0 5 0 -1
>> kq=roots(y)
kq =
1.5862 + 1.1870i
1.5862 - 1.1870i
-1.1606
-0.4744
0.4627
Thùc chÊt hÖ ph¬ng tr×nh trªn cã thÓ ®a vÒ phÐp to¸n ma trËn sau:
2 3 1 x 7
3 6 4 y 19
1 1 1 z 2
Nh vËy viÖc gi¶i hÖ PT tuyÕn tÝnh thùc chÊt lµ thùc hiÖn phÐp to¸n vÒ ma trËn.
53
Gi¸o tr×nh Matlab vµ øng dông
A=
2 3 1
3 6 -4
1 1 1
>> B=[7;19;2]
B=
7
19
2
>> C=inv(A)
C=
-2.5000 0.5000 4.5000
1.7500 -0.2500 -2.7500
0.7500 -0.2500 -0.7500
>> kq=C*B
kq =
1.0000
2.0000
-1.0000
VD2:
>>A=[1+i 2i;3+i 1]
A= 1.0000 + 1.0000i 0 + 2.0000i
3.0000 + 1.0000i 1.0000
>> C=inv(A)
C=
0.0882 + 0.1471i 0.2941 - 0.1765i
-0.1176 - 0.5294i -0.0588 + 0.2353i
>> B=[1; 2+i]
B=
1.0000
2.0000 + 1.0000i
>> KQ=C*B
KQ =
54
Gi¸o tr×nh Matlab vµ øng dông
0.8529 + 0.0882i
-0.4706 - 0.1176i
VD3:
>>syms a1 a2 b1 b2 c1 c2
>>A=[a1 a2;b1 b2]
A=
[ a1, a2]
[ b1, b2]
>> B=[c1;c2]
B=
[ c1]
[ c2]
>> C=inv(A)
C=
[ -b2/(-a1*b2+b1*a2), a2/(-a1*b2+b1*a2)]
[ b1/(-a1*b2+b1*a2), -a1/(-a1*b2+b1*a2)]
>> KQ=C*B
KQ =
[ -b2/(-a1*b2+b1*a2)*c1+a2/(-a1*b2+b1*a2)*c2]
[ b1/(-a1*b2+b1*a2)*c1-a1/(-a1*b2+b1*a2)*c2]
55
Gi¸o tr×nh Matlab vµ øng dông
Deleted: ¶
Symbolic ®Ó biÓu diÔn c¸c biÕn, biÓu thøc vµ Matlab trËn Symbolic.
56
Gi¸o tr×nh Matlab vµ øng dông
57
Gi¸o tr×nh Matlab vµ øng dông
>> findsym(f)
ans =
a, b, t
LuËt findsym: BiÕn ®éc lËp trong mét biÓu thøc symbolic lµ mét ch÷ c¸i gÇn ch÷ x
nhÊt trong b¶ng ch÷ c¸i. NÕu cã hai ch÷ gÇn ch÷ x th× ch÷ sau x trong b¶ng ch÷ c¸i ®îc
chän.
vÝ dô: >>findsym(a+c-v*y,1)
ans=
y
58
Gi¸o tr×nh Matlab vµ øng dông
y2u = 2*v
>> y3u = diff(y,v,3) %dao ham cap 3 theo v
y3u = -6*u
>>Syms x s real
>>f = exp(-(s*x)^2);
>>I = int(f,x,-inf,inf)% inf - Infinity lµ v« cïng lín
I=
Signum(s)/s*pi^(1/2)
59
Gi¸o tr×nh Matlab vµ øng dông
Hµm signum chÝnh lµ hµm sign (hµm dÊu), nghÜa lµ sign(s) cho ta:
sign(s) = 1 khi s>0; sign(s) = 0 khi s =0; sign(s) = -1 khi s<0;
60
Gi¸o tr×nh Matlab vµ øng dông
>>syms k n x
>>symsum(k^2)
ans = 1/3*k^3-1/2*k^2+1/6*k
>>symsum(k)
ans = 1/2*k^2-1/2*k
>>symsum(sin(k*pi)/k,0,n)
ans = -1/2*sin(k*(n+1))/k+1/2*sin(k)/k/(cos(k)-1)*cos(k*(n+1))-
1/2*sin(k)/k/(cos(k)-1)
>>symsum(k^2,0,10)
ans = 385
>>symsum(x^k/sym(‘k!’), k, 0,inf)
ans = exp(x)
Vi dô: Cho tæng cña 2 d·y
1 1
S1 = 1 + ….
2 2 32
S2 = 1 + x + x2 +…..
>>syms x k
>>s1 = symsum(1/k^2,1,inf) %inf lµ v« cïng.
s1 = 1/6*pi^2
>>s2 = symsum(x^k,k,0,inf)
s2 = -1/(x-1)
61
Gi¸o tr×nh Matlab vµ øng dông
Vi dô: Khai triÓn Taylor cña hµm f = exsin(x) quanh ®iÓm x0 = 2 (NÕu x0 = 0 ta cã khai
triÓn Maclaurin).
>>syms x
>> f = exp(x*sin(x));
>>t = taylor(f,4,2)% khai triÓn 4 sè h¹ng ®Çu tiªn kh¸c o vµ xung quanh ®iÓm x0 = 2
KÕt qu¶:
exp(2*sin(2))+exp(2*sin(2))*(2*cos(2)+sin(2))*(x-2)+exp(2*sin(2))*(-
sin(2)+cos(2)+2*cos(2)^2+2*cos(2)*sin(2)+1/2*sin(2)^2)*(x-2)^2+exp(2*sin(2))*(-
1/3*cos(2)-1/2*sin(2)-cos(2)*sin(2)+2*cos(2)^2-
sin(2)^2+4/3*cos(2)^3+2*cos(2)^2*sin(2)+cos(2)*sin(2)^2+1/6*sin(2)^3)*(x-2)^3
B©y giê ta cã thÓ vÏ hµm ®· cho vµ hµm ®· khai triÓn b»ng chuçi Taylor quanh ®iÓm
x0 = 2 vµ cho nhËn xÐt.
>>syms x
>> f = exp(x*sin(x));
>>t = taylor(f,10,2);
>>xd= 1:0.05:3;
>>yd = subs(f,x,xd);% thay thÕ biÔn x b»ng xd
>>ezplot(t,[1,3])% vÏ hµm symbolic
>> hold on
>>plot(xd,yd,'r-')
62
Gi¸o tr×nh Matlab vµ øng dông
KÕt qu¶:
R1 = x^2+(exp(x)+2)*x+2*exp(x)
R2 = y^3+x*y^2+(x^2+1)*y+x*(x^2+1)
R3 = [(y+1)*x+y+1, x+y]
63
Gi¸o tr×nh Matlab vµ øng dông
>>factor(sym('12345678901234567890'))
(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)
>>factor(x^3-6*x^2+11*x-5)
ans =(x^3-6*x^2+11*x-5)
* primes(n): T¹o vÐc t¬ hµng cã c¸c phÇn tö lµ c¸c sè nguyªn tè nhë h¬n hoÆc b»ng
n. Sè nguyªn tè ®îc ®Þnh nghÜa lµ sè chØ chia hÕt cho 1 vµ cho chÝnh nã, ngoµi ra kh«ng
cßn mét thõa sè nµo kh¸c. VÝ dô:
>> primes(5)
ans =
2 3 5
* isprime(x): KiÓm tra xem x cã ph¶i lµ sè nguyªn tè kh«ng nÕu ph¶i th× gi¸ trÞ tr¶
vµ lµ 1, ngîc l¹i th× tr¶ vÒ lµ 0. Trêng hîp x lµ mét ®a thøc hay mét ma trËn thi kiÓm tra
xem c¸c phÇn tö cña x cã ph¶i lµ sè nguyªn tè kh«ng. VÝ dô:
>> isprime(3)
ans =
1
>> isprime(4)
ans =
0
* Ph©n tÝch ®a thøc ra d¹ng thõa sè horner:
horner(f) BiÓu diÔn ®a thøc symbolic f díi d¹ng horner (lång vµo nhau)
VÝ dô:
>>syms x y
>>horner(x^3-6*x^2+11*x-6)
ans = -6+(11+(-6+x)*x)*x
>>horner([x^2+x;y^3-2*y])
ans = [ (1+x)*x]
[(-2+y^2)*y]
* T¸ch tö sè vµ mÉu sè cña mét biÓu thøc symbolic
[n,d] = numden(A): biÕn ®æi mçi phÇn tö cña A thµnh d¹ng h÷u tû trong ®ã tö sè vµ
mÉu sè lµ c¸c ®a thøc (t¬ng ®èi) nguyªn tè víi c¸c hÖ sè nguyªn (integer).
VÝ dô:
>>syms x y a b
64
Gi¸o tr×nh Matlab vµ øng dông
>>A= (4-x)/5;
>>[n,d] = numden(A)
n = 4-x
d= 5
>>[n,d] = numden(x/y + y/x)
n = x^2+y^2
d = y*x
>>A = [a, 1/b]
>>[n,d] = numden(A)
n = [a, 1]
d = [1, b]
65
Gi¸o tr×nh Matlab vµ øng dông
gi¶n ho¸ kh¸c vµo mét biÓu thøc vµ theo dâi chiÒu dµi cña c¸c kÕt qu¶. Sau ®ã hµm simple
tr¶ vÒ kÕt qu¶ ng¾n nhÊt.
Hµm simple cã rÊt nhiÒu d¹ng kh¸c nhau, mçi d¹ng l¹i tr¶ vÒ mét kÕt qu¶ kh¸c
nhau. LÖnh [r,h] = simple(S) kh«ng tr¶ vÒ biÓu thøc ®¬n gi¶n ho¸ ngay mµ tr¶ vÒ biÓu
thøc ®¬n gi¶n nhÊt mµ nã t×m thÊy ®ång thêi víi mét s©u ký tù m« t¶ phÐp ®¬n gi¶n ho¸.
B¶ng sau minh ho¹ kÕt qu¶ tr¶ vÒ ®èi víi c¸c biÓu thøc S kh¸c nhau
S R How
cos(x)^2+sin(x)^2 1 combine(trig)
2*cos(x)^2-sin(x)^2 3*cos(x)^2-1 simplify
cos(x)^2-sin(x)^2 cos(2*x) combine(trig)
cos(x)+(-sin(x)^2)^(1/2) cos(x)+i*sin(x) radsimp
cos(x)+i*sin(x) exp(i*x) convert(exp)
(x+1)*x*(x-1) x^3-x collect(x)
x^3+3*x^2+3*x+1 (x+1)^3 factor
cos(3*acos(x)) 4*x^3-3*x expand
66
Gi¸o tr×nh Matlab vµ øng dông
ans = 3*exp(-980*t)
Ta cã thÓ thay thÕ nhiÒu biÕn mét lóc b»ng c¸ch sö dông có ph¸p sau:
+ subs(S, {old1, old2, …,oldn}, {new1, new2,…, newn})
vÝ dô: >> subs(cos(a)+sin(b),{a,b},{sym('x'),2})
ans = cos(x)+sin(2)
Hµm (S) viÕt l¹i biÓu thøc S theo c¸c biÓu thøc con chung:
[Y,SIGMA] = subexpr(X,SIGMA) hoÆc [Y,SIGMA] = subexpr(X,'SIGMA') viÕt l¹i
biÓu thøc X theo biÓu thøc con chung cña nã.
5.3.6- BiÓu diÔn biÓu thøc symbolic díi d¹ng to¸n häc
Sö dông hµm pretty(S) ®Ó hiÓn thÞ S díi d¹ng dÔ ®äc h¬n nh trong quy íc to¸n
häc th«ng thêng. VÝ dô:
>>s=2*cos(x)^2-sin(x)^2
s=
2*cos(x)^2-sin(x)^2
>>pretty(s)
2 2
2 cos(x) - sin(x)
>>syms x a
>>s=solve(x^3+a*x+1);
>>pretty(s)
67
Gi¸o tr×nh Matlab vµ øng dông
VÝ dô 2:
sin(x)+y^2+log(z)=7
3*x+2^y+z^3=4
x+y+z=2
>>[x,y,z]=solve('sin(x)+y^2+log(z)=7','3*x+2^y+z^3=4','x+y+z=2')
x = -2.3495756224572032187410536400368
y = 2.6835269194785219427270239079010
z = 1.666048702978681276014029732135
68
Gi¸o tr×nh Matlab vµ øng dông
VÝ dô:
x^2 + x*y + y = 3
x^2 - 4*x + 3 = 0
>>[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')
x=
[ 1]
[ 3]
y=
[ 1]
[ -3/2]
Lu ý: NÕu lµ hÖ nhiÒu ph¬ng tr×nh ch¼ng h¹n 10 ph¬ng tr×nh, viÖc gâ
[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10]= solve(…) th× rÊt bÊt tiÖn vµ tèn thêi gian.
§Ó ph¸ vì khã kh¨n ®ã, solve tr¶ vÒ mét cÊu tróc mµ c¸c trêng cña nã lµ c¸c lêi gi¶i
(nghiÖm). VÝ dô:
>>S = solve('u^2–v^2 = a^2','u + v = 1','a^2–2*a = 3')
S=
a: [2x1 sym]
u: [2x1 sym]
v: [2x1 sym]
>> S.a
ans =
[ -1]
[ 3]
69
Gi¸o tr×nh Matlab vµ øng dông
VÝ dô:
>>y = dsolve('(D2y) =1','y(0) = 1')
y = 1/2*t^2+C1*t+1
>>[x,y] = dsolve('Dx = y', 'Dy = -x')
x= cos(t)*C1+sin(t)*C2
y = -sin(t)*C1+cos(t)*C2
1
F -1 [f](x) f (w)e iwx dw
2
PhÐp biÕn ®æi tÝch ph©n fourier:
+ F = fourier(f): BiÕn ®æi fourier cña hµm v« híng f víi biÕn ®éc lËp mÆc ®Þnh lµ x.
KÕt qu¶ tr¶ vÒ mÆc ®Þnh lµ hµm cña w. NÕu f = f(w), th× fourier tr¶ vÒ mét hµm cña t:
F=F(t). Theo ®Þnh nghÜa, F(w) = int(f(x)*exp(-i*w*x),x,-inf,inf), phÐp tÝch ph©n ë trªn
®îc thùc hiÖn theo x (do kÕt qu¶ cña hµm findsym).
+ F = fourier(f,v): KÕt qu¶ tr¶ vÒ F lµ hµm cña biÕn v thay cho biÕn mÆc ®Þnh w:
F(v) = int(f(x)*exp(-i*v*x),x,-inf,inf).
F = fourier(f,u,v): f lµ hµm cña u vµ F lµ hµm cña v, chóng thay thÕ c¸c biÕn mÆc
®Þnh x vµ w: F(v) = int(f(u)*exp(-i*v*u),u,-inf,inf).
VÝ dô:
>>syms x w u
>>f=exp(-x^2)
>>fourier(f)
ans = pi^(1/2)*exp(-1/4*w^2)
>>g = exp(-abs(w))
>>fourier(g)
70
Gi¸o tr×nh Matlab vµ øng dông
ans=2/(1+t^2)
>>f=x*exp(-abs(x))
>>fourier(f,u)
ans = -4*i/(1+u^2)^2*u
>>syms x v u real
>>f= exp(-x^2*abs(v))*sin(v)/v
>>fourier(f,v,u)
ans = -atan((u-1)/x^2)+atan((u+1)/x^2)
PhÐp biÕn ®æi fourier ngîc:
+ f = ifourier(F): lµ phÐp biÕn ®æi fourier ngîc cña hµm v« híng F víi biÕn ®éc
lËp mÆc ®Þnh w. KÕt qu¶ tr¶ vÒ mÆc ®Þnh cña phÐp biÕn ®æi ngîc nµy lµ mét hµm cña x.
PhÐp biÕn ®æi fourier ngîc ®îc ¸p dông cho mét hµm cña w vµ tr¶ vÒ mét hµm cña x:
F=F(w) =>f=f(x). NÕu F = F(x) th× IFOURIER tr¶ vÒ mét hµm cña t: t: f = f(t). Theo ®Þnh
nghÜa, f(x)=1/(2*pi)*int(F(w)*exp(i*w*x),w,-inf,inf) vµ phÐp tÝch ph©n ®îc thùc hiÖn
víi w.
+ f =: f lµ hµm cña biÕn u thay thÕ biÕn mÆc ®Þnh x.
ifourier(F,u) <=> f(u) = 1/(2*pi) * int(F(w)*exp(i*w*u,w,-inf,inf).
+ f = ifourier(F,v,u): F lµ hµm cña v vµ f lµ hµm cña u, chóng thay thÕ c¸c biÕn mÆc
®Þnh w vµ x t¬ng øng. ifourier(F,v,u) <=>f(u) =1/(2*pi)*int(F(v)*exp(i*v*u,v,-inf,inf),
phÐp tÝch ph©n ®îc thùc hiÖn theo v.
VÝ dô:
>>syms a w x t v real
>>f = exp(-w^2/(4*a^2))
>>F = ifourier(f);
>>F = simple(F)
F = a*exp(-x^2*a^2)/pi^(1/2)
>>g=exp(-abs(x))
>>ifourier(g)
ans = 1/(1+t^2)/pi
>>f=2*exp(-abs(w))-1
>>simplify(ifourier(f,t))
ans = (2-pi*Dirac(t)-pi*Dirac(t)*t^2)/(pi+pi*t^2)
>>f=exp(-w^2*abs(v))*sin(v)/v;
71
Gi¸o tr×nh Matlab vµ øng dông
>>ifourier(f,v,t)
ans = 1/2*(atan((t+1)/w^2) - atan((-1+t)/w^2))/pi
1 c i
L-1 [f](t) f (s)e st ds
2 j
+ L = laplace(F): BiÕn ®æi Laplace cña hµm F víi biÕn ®éc lËp mÆc ®Þnh lµ t. KÕt
qu¶ tr¶ vÒ lµ mét hµm cña s. NÕu F = F(s) th× Laplace tr¶ vÒ mét hµm cña t: L = L(t). Theo
®Þnh nghÜa, L(s) = int(F(t)*exp(-s*t),0,inf) vµ phÐp tÝch ph©n ®îc thùc hiÖn víi t.
+ L = laplace(F,t): L lµ mét hµm cña t thay thÕ biÕn mÆc ®Þnh s.
L = laplace(F,t) <=> L(t) = int(F(x)*exp(-t*x),0,inf)
+ L = laplace(F,w,z): L lµ hµm cña z vµ F lµ hµm cña w, nã thay thÕ c¸c biÕn
symbolic mÆc ®Þnh s vµ t t¬ng øng.
L = laplace(F,w,z) <=> L(z) = int(F(w)*exp(-z*w),0,inf)
VÝ dô:
>>syms t v x a
>>f = t^4
>>laplace(f)
ans = 24/s^5
>>g=1/sqrt(s)
>>laplace(g)
ans = 1/s^(1/2)*pi^(1/2)
>>f=exp(-a*t)
>>laplace(f,x)
ans= 1/(x + a)
>>f=1- cos(t*v)
>>laplace(f,x)
ans = 1/x-x/(x^2+v^2)
BiÕn ®æi laplace ngîc
72
Gi¸o tr×nh Matlab vµ øng dông
+ F = ilaplace(L): lµ phÐp biÕn ®æi laplace ngîc cña hµm v« híng L víi biÕn ®éc
lËp mÆc ®Þnh s. KÕt qu¶ tr¶ vÒ mÆc ®Þnh cña phÐp biÕn ®æi ngîc nµy lµ mét hµm cña t.
PhÐp biÕn ®æi laplace ngîc ®îc ¸p dông cho mét hµm cña s vµ tr¶ vÒ mét hµm cña t:
L=L(t) =>F=F(s). NÕu L=L(s) th× ilaplace(L) tr¶ vÒ mét hµm cña x: F = F(x). Theo ®Þnh
nghÜa, F(t) = int(L(s)*exp(s*t),s,c-i*inf,c+i*inf) trong ®ã c lµ mét sè thùc, phÐp tÝch ph©n
®îc thùc hiÖn ®èi víi s.
+ F = ilaplace(L,y): F lµ hµm cña y thay thÕ biÕn mÆc ®Þnh t.
ilaplace(L,y) <=> F(y) = int(L(y)*exp(s*y),s,c-i*inf,c+i*inf).
+ F = ilaplace(L,y,x): F lµ hµm cña x vµ L lµ hµm cña y, nã thay thÕ c¸c biÕn
symbolic mÆc ®Þnh t vµ s.
ilaplace(L,y,x) <=> F(y) = int(L(y)*exp(x*y),y,c-i*inf,c+i*inf),
phÐp tÝch ph©n ®îc thùc hiÖn ®èi víi biÕn y.
VÝ dô :
>>syms s a t
>>f=1/s^2
>>ilaplace(f)
ans = t
>>g=1/(t-a)^2
>>ilaplace(g)
ans = x*exp(a*x)
>>syms u a x
>>f=1/(u^2-a^2)
>>ilaplace(f,x)
ans = 1/(-a^2)^(1/2)*sin((-a^2)^(1/2)*x)
>>syms s v x
>>f=s^3*v/(s^2+v^2)
>>ilaplace(f,v,x)
ans = s^3*cos(s*x)
73
Gi¸o tr×nh Matlab vµ øng dông
ký hiÖu Z[f] ¸m chØ phÐp biÕn ®æi z cña f t¹i z. PhÐp biÕn ®æi z cã c¸c có ph¸p nh
sau:
F = ztrans(f) lµ biÕn ®æi z cña ®¹i lîng v« híng f víi biÕn ®éc lËp n. KÕt qu¶ tr¶ vÒ
mÆc ®Þnh lµ mét hµm cña z: f = f(n) => F = F(z).
BiÕn ®æi z cña f ®îc ®Þnh nghÜa nh sau: F(z) = symsum(f(n)/z^n, n, 0, inf), trong
®ã n lµ biÕn ®éc lËp cña f do hµm findsym quyÕt ®Þnh. NÕu f = f(z), th× ztrans(f) tr¶ vÒ mét
hµm cña w: F = F(w).
+ F = ztrans(f,w) tr¶ vÒ F lµ mét hµm cña biÕn symbolic w thay v× biÕn ®éc lËp mÆc
®Þnh z: ztrans(f,w) <=> F(w) = symsum(f(n)/w^n, n, 0, inf).
+ F = ztrans(f,k,w): f lµ hµm cña biÕn symbolic k thay v× biÕn ®éc lËp mÆc ®Þnh:
ztrans(f,k,w) <=> F(w) = symsum(f(k)/w^k, k, 0, inf).
VÝ dô:
>>syms k n w z
>>ztrans(2^n) kÕt qu¶ lµ: z/(z-2)
>>ztrans(sin(k*n),w) kÕt qu¶ lµ: sin(k)*w/(1-2*w*cos(k)+w^2)
>>ztrans(cos(n*k),k,z) kÕt qu¶ lµ: z*(-cos(n)+z)/(-2*z*cos(n)+z^2+1)
>>ztrans(cos(n*k),n,w) kÕt qu¶ lµ: w*(-cos(k)+w)/(-2*w*cos(k)+w^2+1)
>>ztrans(sym('f(n+1)')) kÕt qu¶ lµ: z*ztrans(f(n),n,z)-f(0)*z
PhÐp biÕn ®æi z ngîc
PhÐp biÕn ®æi z ngîc cña mét hµm g(z) t¹i n ®îc ®Þnh nghÜa nh sau:
1
Z 1 [g]( n ) g(z )z n 1 dz , trong ®ã n = 1,2,… vµ R lµ mét sè nguyªn d¬ng sao
2 i |z| R
cho hµm g(z) gi¶i tÝch trªn vµ bªn ngoµi ®êng trßn |z| = R. Ký hiÖu Z-1[f] cã nghÜa lµ biÕn
®æi z cña f t¹i n. PhÐp biÕn ®ái z ngîc thêng ®îc dïng ®Ó gi¶i ph¬ng tr×nh vi ph©n.
+ f = iztrans(F) lµ biÕn ®æi z cña ®¹i lîng v« híng F theo biÕn ®éc lËp mÆc ®Þnh lµ
z. KÕt qu¶ tr¶ vÒ mÆc ®Þnh lµ mét hµm cña n: F = F(z) => f = f(n). NÕu F = F(n), th×
iztrans(F) tr¶ vÒ mét hµm cña k: f = f(k).
f = iztrans(F,k): f lµ mét hµm cña k thay v× biÕn ®éc lËp mÆc ®Þnh n.
f = iztrans(F,w,k): F lµ mét hµm cña w vµ tr¶ vÒ mét hµm cña k: F=F(w)&f=f(k).
VÝ dô:
>>iztrans(z/(z-2)) kÕt qu¶ lµ 2^n
>>iztrans(exp(x/z),z,k) kÕt qu¶ lµ x^k/k!
74
Gi¸o tr×nh Matlab vµ øng dông
>>poly2sym([1 0 -2 -5])
ans = x^3-2*x-5
>>poly2sym([1 0 -2 -5],'t')
>>t = sym('t')
>>poly2sym([1 0 -2 -5],t)
ans = t^3-2*t-5
>> y = [1 2 3 0 1]
y= 1 2 3 0 1
>> poly2sym(y)
ans = x^4+2*x^3+3*x^2+1
* ChuyÓn tõ ph¬ng tr×nh tham sè sang ph¬ng tr×nh hÖ sè:
Sö dông lÖnh sym2poly ®Ó chuyÓn ®a thøc symbolic thµnh vÐc t¬ c¸c hÖ sè cña ®a
thøc.
LÖnh sym2poly (P) tr¶ vÒ mét vÐc t¬ hµng chøa c¸c hÖ sè cña ®a thøc symbolic P.
VÝ dô:
>>sym2poly(x^3 - 2*x - 5) vµ kÕt qu¶ tr¶ vÒ [1 0 -2 -5].
75
Gi¸o tr×nh Matlab vµ øng dông
ans = atan(1/x)
>>finverse(exp(u-2*v),u)
ans = 2*v+log(u)
>>f = x^2+y;
>>finverse(f,y)
ans = -x^2+y.
>>finverse(f)
Warning: finverse(x^2+y) is not unique.
> In C:\matlabR12\toolbox\symbolic\@sym\finverse.m at line 43
ans =
(-y+x)^(1/2)
LÖnh finverse(x^2+y) mµ kh«ng x¸c ®Þnh biÕn ®éc lËp lµ y th× xuÊt hiÖn mét c¶nh
b¸o (Warning: finverse(x^2+y) is not unique) lµ hµm ngîc cña f theo x lµ kh«ng
duy nhÊt.
76
Gi¸o tr×nh Matlab vµ øng dông
Môc lôc
Néi dung trang
PhÇn 1 - C¬ së Matlab................................ ................................ .......................... 1
Ch¬ng 1 – Kh¸i niÖm chung ................................ ................................ .............. 1
1.1- Giíi thiÖu................................ ................................ ................................ .... 1
1.2- Cµi ®Æt ch¬ng tr×nh:................................ ................................ ................. 2
1.2.1- Khëi ®éng windows................................. ................................ .............. 2
1.2.2- TiÕn hµnh cµi ®Æt ................................ ................................ ................... 2
1.2.3- NhËp th«ng tin cña ngêi dïng vµ Personal License Password............... 4
1.2.5- Hoµn thµnh cµi ®Æt................................ ................................ ................. 4
1.3- M«i trêng lµm viÖc cña Matlab ................................ ............................... 5
1.3.1- Khëi ®éng vµ tho¸t khái Matlab................................ ............................. 5
1.3.2- Cöa sæ lÖnh cña Matlab (Matlab Command Window)............................ 7
1.3.3- Kh«ng gian lµm viÖc cña Matlab (Matlab Workspace)........................... 9
Ch¬ng 2 - C¸c menu cña MATLAB ................................ ................................ 11
2.1- Menu File................................ ................................ ................................ .. 11
2.2- Menu Edits: ................................ ................................ .............................. 16
2.3- Menu View: ................................ ................................ .............................. 17
2.4- Menu Window: ................................ ................................ ........................ 17
Ch¬ng 3 - C¸c kh¸i niÖm c¬ b¶n................................ ................................ ...... 18
3.1-Mét sè phÝm chuyªn dông vµ lÖnh th«ng dông ................................ ...... 18
3.2- BiÕn trong MATLAB................................ ................................ ............... 18
3.2.1- Tªn biÕn:................................ ................................ .............................. 19
3.2.2- Mét sè lÖnh víi biÕn:................................ ................................ ........... 19
3.2.3- Mét sè biÕn ®· ®îc ®Þnh nghÜa tríc:................................ ................. 19
3.2.4- BiÕn toµn côc (global variables)................................ ........................... 20
3.3- C¸c phÐp to¸n trong matlab................................ ................................ .... 20
3.3.1- PhÐp to¸n sè häc:................................ ................................ ................ 20
77
Gi¸o tr×nh Matlab vµ øng dông
78
Gi¸o tr×nh Matlab vµ øng dông
79
Gi¸o tr×nh Matlab vµ øng dông
80