Giáo trình cơ sở Matlab v5.3-1 - Phần 1 Cơ sở matlab - Chương 4
lượt xem 17
download
Tài liệu tham khảo Giáo trình cơ sở Matlab v5.3-1 - Phần 1 Cơ sở matlab - Chương 4 Đồ họa hai chiều trong Matlab
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình cơ sở Matlab v5.3-1 - Phần 1 Cơ sở matlab - Chương 4
- Ch−¬ng 4 - §å ho¹ hai chiÒu Ch−¬ng 4 §å ho¹ 2 chiÒu trong Matlab 4.1. C¸c phÐp biÕn ®æi ®å ho¹ NghÞch ®¶o ma trËn vμ ®Þnh thøc ®−îc giíi thiÖu trong phÇn nμy ®−îc h×nh dung nh− c¸c phÐp biÕn ®æi t¹o nªn c¸c phÐp chuyÓn vÞ cña c¸c thùc thÓ h×nh häc hay c¸c vector trong cöa sæ ®å ho¹ cña Matlab. Néi dung cña c¸c phÐp biÕn ®æi ®ã nh»m m« t¶ c¸c ph−¬ng ph¸p ®−îc sö dông trong hÇu hÕt c¸c lÜnh vùc kü thuËt kh¸c nhau nh− ®å ho¹ m¸y tÝnh hay robotic. Ngoμi ra ®Ó cã thÓ khai th¸c tiÒm n¨ng vÒ ®å ho¹ cña Matlab chóng t«i còng xin liÖt kª c¸c hμm t−¬ng t¸c trªn cöa sæ ®å ho¹ cña Matlab mét c¸ch chi tiÕt nh»m ®em ®Õn cho b¹n mét th− viÖn c¸c hμm, hiÖu øng cña c¸c hμm còng nh− ph−¬ng ph¸p tiÕp cËn c¸c hμm ®ã. 4.1.1. Quay hÖ trôc to¹ ®é trªn mÆt ph¼ng. y y1 P x1 α α x H×nh 4.1. Quay hÖ trôc trªn mÆt ph¼ng. PhÇn 1 - C¬ së 50
- Ch−¬ng 4 - §å ho¹ hai chiÒu H×nh 4.1. hÖ to¹ ®é cña ®iÓm P ®−îc biÓu diÔn bëi c¸c ®−êng liÒn nÐt x, y vμ ®iÓm P trªn hÖ trôc biÓu diÔn bëi c¸c ®−êng ®øt nÐt x1 vμ y1. x1 vμ y1 quay 1 gãc α ng−îc chiÒu kim ®ång hå so víi 2 trôc x, y. Quan hÖ gi÷a hai cÆp hÖ trôc to¹ ®é ®−îc biÓu diÔn bëi c«ng thøc sau: x1 = x . cosα + y . sinα (4.1) y1 = - x sinα + y cosα (4.2) ⎡ x1 ⎤ cos α sinα ⎡x⎤ P = ⎢ ⎥ vμ P1 = ⎢ ⎥ ; A = víi -sinα cosα ⎣ y⎦ ⎣ y1 ⎦ ta cã thÓ viÕt 4.1 vμ 4.2 d−íi d¹n sau: P1 = A P (4.3) Quan hÖ nghÞch ®¶o cña h×nh 4.1 ®−îc thÓ hiÖn nh− sau: x = x1 . cosα + y1 . sinα (4.4) y = - x1 . sinα + y1 . cosα (4.5) §iÒu ®ã cã nghÜa ma trËn biÓu diÔn phÐp quay 1 gãc -α tõ hÖ to¹ ®é x1, y1 ®Õn hÖ to¹ ®é x, y lμ: cos α − sin α B= sin α cos α Lóc ®ã 4.4 vμ 4.5 ®−îc viÕt thμnh P = B . B1 (4.6) 4.1.2. NghÞch ®¶o ma trËn. VËy quan hÖ gi÷a A vμ B ®−îc hiÓu ra sao? Tõ ph−¬ng tr×nh (4.5), (4.6) ta thÊy r»ng víi 1 ®iÓm P bÊt kú, sau hai phÐp chuyÓn ta ®Òu thu ®−îc chÝnh nã. P=BAP nÕu lo¹i bá biÕn P ta cã thÓ viÕt nh− sau: cosα − sinα sinα cosα 1 0 B. A = = sinα cosα − sinα cosα 0 0 t−¬ng tù ta cã: P1 = ABP1 Mét lÇn n÷a ta thÊy r»ng AB chÝnh b»ng ma trËn ®¬n vÞ vμ chóng ta cã thÓ ph¸t triÓn ma trËn B lμ ma trËn nghÞch ®¶o cña A vμ chóng ta th−êng biÓu diÔn A-1. §Þnh nghÜa ®−îc ph¸t triÓn nh− sau: PhÇn 1 - C¬ së 51
- Ch−¬ng 4 - §å ho¹ hai chiÒu Cho mét ma trËn vu«ng A, ma trËn nghÞch ®¶o A-1 cña A lμ ma trËn sao cho khi nh©n ph¶i hay tr¸i víi A ®Òu cho ta kÕt qu¶ lμ ma trËn ®¬n vÞ I. A . A-1 = A-1 . A = I nghÞch ®¶o ma trËn 2 x 2 cã thÓ dÔ dμng t×m ®−îc theo c¸ch sau. VÝ dô a lμ c¸c phÇn tö cña ma trËn nghÞch ®¶o tõ A, viÖc nh©n A . B cho kÕt qu¶ nh− sau: ⎡a11 a12 ⎤ ⎡b11 b12 ⎤ 10 ⎢a a ⎥ ⎢b b ⎥ = (4.8) ⎣ 21 22 ⎦ ⎣ 21 22 ⎦ 01 Tõ ph−¬ng tr×nh (4.8) cho kÕt qu¶ sau: a 22 b11 = (4.9) a11a 22 − a 21a 22 − a12 b12 = (4.10) a11a 22 − a 21a12 − a 21 b 21 = (4.11) a11a 22 − a 21a12 a11 b 22 = (4.12) a11a 22 − a 21a12 Tõ ®©y chóng ta dÔ dμng thu ®−î ma trËn nghÞch ®¶o B tõ A. Tuy Matlab hμm nghÞch ®¶o ®−îc viÕt s½n trong th− viÖc vμ ®−îc gäi ra th«ng qua lÖnh inv. Víi lÖnh inv (A) cho ra ma trËn nghÞch ®¶o cña A. VÝ dô: - Quay hÖ trôc to¹ ®é ®i mét gãc 300 sÏ ®−îc viÕt nh− sau: >> alpha = 30 >> A=[cos(pi*alpha/180) sin(pi*alpha/180) -sin(pi*alpha/180) cos(pi*alpha/180)] A= 0.866 0.500 -0.500 0.866 - Ma trËn nghÞch ®¶o B t¹o thμnh tõ A >> B = inv(A) B = 0.866 -0.500 0.500 0.866 - Nh©n 2 ma trËn A vμ, kÕt qu¶ thu ®−îc nh− sau >> A * B ans = 1.000 0.000 PhÇn 1 - C¬ së 52
- Ch−¬ng 4 - §å ho¹ hai chiÒu 0.000 1.000 - Quay trôc qua ®iÓm x = 3 , y = 7 >>P1 = A*[3 ; 7] P1 = 6.0981 4.5622 - NghÞch ®¶o l¹i ma trËn hoμn tr¶ l¹i to¹ ®é cho ®iÓm >> P = B * P 1 P= 3 7 4.1.3. Gãc Euler. Gãc Euler lμ thao sè quy −íc ®Ó m« t¶ viÖc quay trong hÖ kh«ng gian 3 chiÒu hay hÖ to¹ ®é trùc gi¸c. Nh÷ng tham sè trªn cã rÊt nhiÒu øng dông trong lÜnh vùc c¬ khÝ. Cã mét vμi c¸ch ®Þnh nghÜa kh¸c nhau vÒ gãc Euler ®−îc biÕt ®Õn nh−: Meitrovitch (1970), Guggenheimer (1977) vμ Czichos (1989). ë bμi to¸n cña chóng ta to¹ ®é cña ®iÓm P ®−îc x¸c ®Þnh bëi hÖ 3 gi¸ trÞ x, y, z vμ chóng ta ph¶i x¸c ®Þnh ra ®iÓm t−¬ng øng x1, y1, z1 sau khi quay hÖ to¹ ®é ®i 1 gãc. ViÖc x¸c ®Þnh chiÒu quay ©m/ d−¬ng cña hÖ trôc to¹ ®é th«ng qua quy t¾c bμn tay ph¶i. Theo h×nh 4.2 víi c«ng thøc ®−îc häc trong phÇn ®å ho¹. Khi ta qua hÖ to¹ ®é xung quanh trôc z víi mét gãc ψ. §iÓm x*, y*, z* ®−îc t¹o thμnh sÏ ®−îc m« t¶ theo c«ng thøc sau: cos ψ s in ψ 0 x* x y * = X * = − sin ψ cos ψ 0 y = A.X (4.13) z* z 0 0 1 TiÕp theo quay hÖ trôc quanh trôc x víi mét gãc θ. HÖ gi¸ trÞ to¹ ®é míi cña ®iÓm thu ®−îc ®−îc viÕt d−íi c«ng thøc: x ** 1 0 0 x* y * * = X * * = 0 cosθ sinθ y * = B. X * (4.14) 0 - sinθ cosθ z ** z* B−íc 3 quay hÖ trôc quanh trôc z h−íng ng−îc l¹i 1 gãc φ. Gi¸ trÞ to¹ ®é cuèi cïng thu ®−îc sÏ lμ: PhÇn 1 - C¬ së 53
- Ch−¬ng 4 - §å ho¹ hai chiÒu cosφ sinφ 0 x * * x1 y1 = P1 = -sinφ cosφ 0 y * * = CX * * (4.15) 1 z ** 0 0 z1 KÕt qu¶ 3 tiÕn tr×nh quay: P1 = A B C X = DX (4.16) % §o¹n ch−¬ng tr×nh vÝ dô cho viÖc quay ma trËn d−íi c¸c gãc si, theta, fi function R = Elrotate (si, theta, fi) A = [cos(si) sin(si) 0 -sin(si) cos(si) 0 0 0 1]; B = [1 0 0 0 cos(theta) sin(theta) 0 -sin(theta) cos(theta)]; C = [cos(fi) sin(fi) 0 -sin(fi) cos(fi) 0 0 0 1]; R = C * B * A; PhÐp biÕn ®æi Czichos (1989) ®−îc biÓu diÔn d−íi c«ng thøc sau: Gi¶ sö Cθ = cos (θ), Sθ = sin(θ)... ta cã ma trËn quay CφCψ − SφCθSψ CφCψ + SφCθSψ SφSθ R = − SφCψ − CφCθSψ − SφSψ + CφCθCψ CφSθ 4.17) SθSψ − S θ Cψ Cθ VÝ dô: Khi cho ®iÓm P víi c¸c gi¸ trÞ to¹ ®é [2. 5. 3] cho c¸c gãc quay lμ 30, 45, 200. ViÖc biÓu diÔn b»ng Matlab ®−îc viÕt nh− sau: >> R = Elrotate( 30*pi/180 , 45*pi/180 , 20*pi/180 ) R= 0.6929 0.6793 0.2418 -0.6284 0.4044 0.6645 0.3536 -0.6124 0.7071 >> X1 = R*[ 2 ; 5 ; 3 ] X1 = PhÇn 1 - C¬ së 54
- Ch−¬ng 4 - §å ho¹ hai chiÒu 5.5077 2.7587 -0.2334 >> X = inv( R ) * X1 X= 2.0000 5.0000 3.0000 Trong hμm Elrotate t¹o ra c¸c biÕn trong A, B, C tuy nhiªn khi kiÓm tra b»ng >> A hay dïng lÖnh >>Who C¸c biÕn A, B, C cïng kh«ng xuÊt hiÖn v× A, B, C lμ c¸c tham biÕn trong cña hμm Elrotate vμ chØ cã t¸c dông trong hμm. 4.2. PhÐp biÕn ®æi Affine trong kh«ng gian 2D C¸c ®èi t−îng h×nh ho¹ ®−îc m« t¶ trong ch−¬ng nμy cã mét ý nghÜa hÕt søc quan träng trong c¸c øng dông cña c¸c lÜnh vùc kü thuËt hiÖn ®¹i nh− ®å häa mμy tÝnh hay robotics. Mét nhãm c¸c lÖnh ®−îc sö dông th−êng xuyªn gäi lμ Affine transformation. Chóng bao gåm: translation, rotation, scaling... ë ®©y chóng ta sÏ cïng xem xÐt viÖc thùc hiÖn chóng trong Matlab. 4.2.1 Täa ®é thuÇn nhÊt Trong thùc tÕ ®Ó biÓu diÔn c¸c phÐp biÕn ®æi Affine ng−êi ta th−êng sö dông phÐp biÕn ®æi ma trËn. Th−êng ®å ho¹ m¸y tÝnh vμ kü thuËt robotics ®ßi hái concatenation cña vμi phÐp biÕn ®æi. §iÒu ®ã ®−îc thùc hiÖn bëi 1 lo¹i c¸c phÐp nh©n ma trËn. ViÖc nh©n c¸c ma trËn chuyÓn ®æi ®−îc thùc hiÖn cïng víi viÖc sö dông hÖ to¹ ®é thuÇn nhÊt. §Ó giíi thiÖu hÖ to¹ ®é thuÇn nhÊt chóng ta gi¶ sö cã 1 ®iÓm P trong hÖ to¹ ®é §Ò c¸c víi 2 gi¸ trÞ to¹ ®é x, y. ViÖc biÓu diÔn P d−íi d¹ng hÖ to¹ ®é thuÇn nhÊt sÏ ®−îc viÕt nh− sau: x1 x = x1 / W P = y1 y = y1 / W z1 Nguyªn nh©n quan träng trong viÖc biÓu diÔn theo hÖ to¹ ®é thuÇn nhÊt lμ chóng cho phÐp biÓu diÔn c¸c ®iÓm ë xa v« cïng. PhÇn 1 - C¬ së 55
- Ch−¬ng 4 - §å ho¹ hai chiÒu ψ ψ ψ ψ ψ ψ ψ ψ ψ ψ H×nh 4.2 Quay thùc thÓ quanh trôc x3 Trong hÖ to¹ ®é kh«ng gian th−êng (x, y) ®Ó biÓu diÔn ®iÎm ë v« cïng Ýt nhÊt trong hai gi¸ trÞ cña ®iÓm = α. Nh−ng trong hÖ to¹ ®é thuÇn nhÊt, viÖc biÓu diÔn chØ th«ng qua b»ng c¸ch cho gi¸ trÞ W = 0 víi x1, y1 lμ nh÷ng sè h÷u h¹n bÊt kú. Tuy nhiªn chóng ta kh«ng ®i s©u vμo ®iÓm nμy, b¹n ®äc cã thÓ tham kh¶o c¸c tμi liÖu vÒ ®å ho¹ m¸y tÝnh vμ c¸c bμi to¸n chiÕu phèi c¶nh, ë ®©y chóng ta chØ nãi vÒ ph−¬ng ph¸p t¹o ra c¸c phÐp biÕn ®æi trong kh«ng gian ®å ho¹. Víi H×nh 4.3 c¸c ®iÓm t¹o nªn h×nh vu«ng ®−îc cho c¸c gi¸ trÞ nh− sau: −0.5 −0.5 0.5 0.5 P1 = 0 , P2 = 1 , P3 = 1 , P4 = 1 1 1 1 1 Nh− chóng ta ®· biÕt gi¸ trÞ to¹ ®é thø ba - W ®−îc cho b»ng 1, ë ®©y chóng ta ®· sö dông ®Õn kü thuËt phæ biÕn trong c¸c bμi to¸n ®å ho¹ vμ víi Matlab chóng ta dÔ dμng thÓ hiÖn b»ng c¸c c©u lÖnh sau: >> P1 = [-0.5; 0; 1]; P2 = [-0.5; 1; 1]; >> P3 = [0.5; 1; 1]; P4 = [0.5; 0; 1]; (Chó ý r»ng ma trËn P chøa 2 vector P1 dïng cho viÖc ®ãng h×nh vu«ng) ViÖc t¹o ta h×nh vu«ng trªn mμn ®å ho¹ th«ng qua biÕn square >> square = [ P1 P2 P3 P4 P1 ] ; >> plot ( square( 1,: ), square( 2,: ) ) >> axis([-4 4 -1 5]); >> title ('h×nh vu«ng víi tØ lÖ trôc [ -4 4 -1 5 ]'); PhÇn 1 - C¬ së 56
- Ch−¬ng 4 - §å ho¹ hai chiÒu hinh vuong voi ti le truc [ -4 4 -1 5 ] 1 5 4 0.8 3 0.6 2 0.4 1 0.2 0 0 -1 -0.5 0 0.5 -4 -2 0 2 4 H×nh 4.3 a. H×nh vu«ng chuÈn b. H×nh vu«ng sau khi thay ®æi tØ lÖ trôc to¹ ®é viÖc t¹o ta h×nh vu«ng trªn mμn ®å ho¹ th«ng qua biÕn square >> square = [ P1 P2 P3 P4 P1 ] ; >> plot ( square( 1,: ), square( 2,: ) ) >> axis([-4 4 -1 5]); >> title ('h×nh vu«ng víi tØ lÖ trôc [ -4 4 -1 5 ]') 4.2.2 PhÐp chuyÓn dÞch Hμm biÕn ®æi chuyÓn vÞ víi c¸c kho¶ng dx vμ dy song song trªn 2 trôc x vμ y. function T = Translate ( dx , dy ) T = [1 0 dx; 0 1 dy; 0 0 1]; % ma trËn dÞch chuyÓn trong hÖ to¹ ®é ®ång nhÊt 0 0 dx = %T 0 1 dy 0 0 1 ViÖc dÞch chuyÓn h×nh vu«ng 1 kho¶ng ®¬n vÞ theo x vμ 2 kho¶ng ®¬n vÞ theo y ®uîc thÓ hiÖn b»ng c¸c dßng lÖnh: >> P = translate ( 1 , 2) * square >> plot ( P( 1 , : ), P ( 2 , : ) ); >> axis ( [-3 3 -1 3] ) >> title (' H×nh vu«ng thay ®æi vÞ trÝ theo dx vμ dy ') PhÇn 1 - C¬ së 57
- Ch−¬ng 4 - §å ho¹ hai chiÒu hinh vuong dich theo dx= 1, dy= 2 5 4 3 2 1 0 -1 -4 -2 0 2 4 H×nh 4.4 H×nh vu«ng dÞch chuyÓn theo ®é dμi dx vμ dy 4.2.3. PhÐp quay Hμm quay quanh gèc to¹ ®é víi mét gãc φ bÊt kú ng−îc chiÒu kim ®ång hå ®−îc viÕt. Function R = rotate (fi) c o s φ − s in φ 0 %R = s i n φ cosφ 0 0 0 1 R= [cos(fi) -sin(fi) 0 sin(fi) cos(fi) 0 0 0 1] H×nh vu«ng quay theo goc 45 4 3 2 1 H×nh 4.5 H×nh vu«ng quay 1 gãc 45 theo gèc to¹ ®é PhÇn 1 - C¬ së 58
- Ch−¬ng 4 - §å ho¹ hai chiÒu H×nh 4.5 thu ®−îc th«ng qua dßng lÖnh d−íi Matlab nh− sau, víi gãc quay θ = 450. >> P = rotate (45*pi/180)*square >> plot (P( 1 , : ), P ( 2 , : ) ), axis ([-3 3 -1 3]) >> title ('H×nh vu«ng quay theo goc 45 ') Quay theo goc 60 dich chuyen tren doan dx=1, dy=2 5 4 3 2 1 0 -1 -4 -2 0 2 4 H×nh 4.6 Tæ hîp cña hai phÐp biÓn ®æi Hay h×nh 4.6 thu ®−îc 1 c¸ch dÔ dμng trªn c¬ së kÕt hîp cña 2 ph−¬ng ph¸p chuyÓn ®æi. >> P = rotate (30*Pi/180)*translate(1,2)*square >> plot (P( 1 , : ), P ( 2 , : ) ), axis ([-4 4 -1 5]) >> title ('H×nh vu«ng quay vμ dÞch chuyÓn ') 4.2.4 PhÐp tØ lÖ (Scaling) Hμm d−íi ®©y cho phÐp biÕn ®æi tû lÖ cña h×nh theo 1 tû lÖ nhÊt ®Þnh. ViÖc biÕn ®æi tû lÖ ®−îc thùc hiÖn qua phÐp nh©n ma trËn S v¬ Sx, Sy lμ 2 hÖ sè biÕn ®æi. Sx 0 0 %S = 0 Sy 0 0 0 1 function S = scale (Sx, Sy) S = [ Sx 0 0; 0 Sy 0; 0 0 1 ] VÝ dô viÖc biÕn ®æi h×nh vu«ng 2 lÇn theo x vμ 3 lÇn theo y ®−îc thùc hiÖn nhê c¸c lÖnh sau. >> P = scale (2,3)*square >> plot (P( 1 , : ), P ( 2 , : ) ) >> title ('H×nh vu«ng thay ®æi tØ lÖ theo x = 2 theo y = 3’) PhÇn 1 - C¬ së 59
- Ch−¬ng 4 - §å ho¹ hai chiÒu Hinh vuong bien doi ti le 5 4 3 2 1 0 -1 -4 -2 0 2 4 H×nh 4.7 PhÐp biÕn ®æi tØ lÖ H×nh 4.7 cho thÊy sù biÕn ®æi cña h×nh vu«ng qua hμm scale. ViÖc thay ®æi ®ã thùc hiÖn qua gèc to¹ ®é. PhÐp chuyÓn vÞ, phÐp quay hay scale ®Òu cã thÓ hÕt hîp lÉn víi nhau 1 c¸ch dÔ dμng. ViÖc chuyÓn ®æi vÞ trÝ cña c¸c phÐp biÕn ®æi sÏ ®em ®Õn c¸c h×nh ¶nh kh¸c nhau. >> P = Scale(2,2)*roate(30*Pi/180)translate(1,1)*square >> plot (P( 1 , : ), P ( 2 , : ) ), axis ([-4 4 -1 5]) >> title ('H×nh vu«ng quay') 5 5 4 4 3 3 2 2 1 1 0 0 -1 -1 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 H×nh 4.8 H×nh 4.9 ¶nh 4.8 kh¸c víi ¶nh 4.9 víi phÐp ®¶o vÞ trÝ phÐp to¸n >> P = translate(1,1) *rotate(30*Pi/180)*Scale(2,2) *square >> plot (P( 1 , : ), P ( 2 , : ) ), axis ([-4 4 -1 5]) >> title ('H×nh vu«ng quay') PhÇn 1 - C¬ së 60
- Ch−¬ng 4 - §å ho¹ hai chiÒu 4.3. C¸c hμm chuÈn ®Ó biÓu diÔn ®å ho¹ 2 chiÒu Nh− ®· giíi thiÖu qua víi b¹n ®äc ë phÇn trªn, Matlab lμ c«ng cô rÊt m¹nh cho viÖc xö lý vμ thÓ hiÖn d−íi d¹ng ®å ho¹. Hμm Plot trong Matlab th−êng ®−îc sö dông liªn tôc cho viÖc vÏ vμ t¹o lËp c¸c d¹ng ®å thÞ 2 chiÒu. D¹ng ®¬n gi¶n nhÊt ®Ó thÓ hiÖn d÷ liÖu lμ Plot nh−ng kiÓu ®−êng hay mÇu cña ®−êng ®−îc x¸c ®Þnh trªn biÕn str cña hμm. B¶ng d−íi ®©y sÏ cho phÐp chóng ta n¾m ®Çy ®ñ mäi th«ng tin vÒ hμm. 4.3.1 C¸c bé lÖnh vÏ a. LÖnh PLOT VÏ theo vector y vμ x (y trôc tung cña hÖ, x trôc plot ( x,y ) hoμnh). §å thÞ thu ®−îc sÏ lμ tËp cña c¸c ®iÓm (xi,yi). VÏ ra tËp c¸c ®iÓm (i,yi) víi y lμ c¸c ®iÓm trªn trôc plot ( y ) tung vμ i lμ c¸c ®iÓm trªn trôc hoμnh. VÏ theo tËp c¸c sè ¶o ( real( z ), image( z ) ). Trôc plot ( z ) hoμnh lμ tËp c¸c sè thùc vμ trôc tung lμ tËp c¸c sè ¶o. VÏ ra theo c¸c cét cña A theo chØ sè t−¬ng øng x¸c plot ( A) ®Þnh bëi tù ch−¬ng tr×nh. VÏ ra theo c¸c cét cña A theo chØ sè t−¬ng øng x¸c plot ( x,A ) ®Þnh bëi vector x. VÏ x theo A. NÕu A lμ ma trËn m hμng n cét, vector x plot ( A,x ) cã thÓ theo chØ sè t−¬ng øng trªn m hoÆc n nÕu chiÒu dμi cña x = m hay b»ng n. Vector x cã thÓ lμ ma trËn hμng hay cét. VÏ c¸c cét cña A theo c¸c cét cña B. NÕu A vμ B lμ 2 plot ( A,B ) ma trËn cã cïng ®é lín mxn th× chóng ta sÏ thu ®−îc m ®å thÞ n ®iÓm . VÏ hμm cã c¸c biÕn sè x¸c ®Þnh nh− trªn vμ c¸c chØ sè plot ( ..., str ) vÒ mÇu s¾c vμ kiÓu ®−êng theo biÕn str VÏ hμm vector y1, y2, ..., yn theo vector x1, x2, ..., xn plot( x1, y1, str1, ( y trôc tung cña hÖ, x trôc hoμnh ). §å thÞ thu ®−îc sÏ lÊy x2, y2, str2, ... ) gi¸ trÞ vÒ mÇu s¾c vμ kiÓu ®−êng t−¬ng øng trong str1, str2, ..., str n C¸c gi¸ trÞ cña biÕn str trong hμm Plot vÇ mÇu s¾c hay kiÓu d¸ng cña ®−êng ®−îc liÖt kª theo b¶ng d−íi ®©y. KiÓu ®−êng KiÓu ®−êng MÇu s¾c MÇu s¾c PhÇn 1 - C¬ së 61
- Ch−¬ng 4 - §å ho¹ hai chiÒu . ®iÓm - ®−êng liÒn nÐt Y vμng C xanh l¸ m¹ * sao -- ®−êng ®øt nÐt G xanh l¸ c©y W tr¾ng X ch÷ c¸i x -. ®−êng chÊm g¹ch M ®á t−¬i R ®á O ch÷ c¸i o : ®−êng chÊm B xanh lam K ®en + dÊu céng KiÓu ®−êng th¼ng cã thÓ lμ tæ hîp cña 2 hay nhiÒu yÕu tè. VÝ dô 'y- -' lμ ký hiÖu cho ®−êng vμng liÒn nÐt hay ' b+' lμ ®−êng xanh c¸c dÊu céng. §é réng cña ®−êng hay kÝch th−íc c¸c ký hiÖu cã thÓ thay ®æi tuú ý. C¸c trôc to¹ ®é sÏ tù ®éng thay ®æi phï hîp víi ®¬n vÞ cña ®å thÞ nÕu kh«ng cã sù t¸c ®éng nμo kh¸c cña ng−êi sö dông. VÝ dô: Vμo d÷ liÖu cho c¸c biÕn sè x,y >> x = [ -4 -2 0 1 3 7 ] >> y = [ 15 4 0 1 9 20 ] >> plot( x,y,’w’); hold on >> plot( x,y/2 ); 20 15 10 5 H×nh 4.10 §å thÞ hμm y vμ y/2 theo x b. §å thÞ hμm sin(x) vμ x/2 + 1/2 >>x = 0 : 0 1 : 2; PhÇn 1 - C¬ së 62
- Ch−¬ng 4 - §å ho¹ hai chiÒu >>A = [sin (pi*x); 0.5 + 0.5*x]; >>plot (x,A) * Trôc cña ®å thÞ xoay khi ta giao ho¸n vÞ trÝ cua A vμ A >>x = 0 : 0 1 : 2; >>A = [sin (pi*x); 0.5 + 0.5*x]; >>plot (A,x) 2 1.5 1 1.5 0.5 1 0 0.5 -0.5 0 -1 -1 -0.5 0 0.5 1 1.5 0 0.5 1 1.5 2 H×nh 4.11 §å thÞ cña ma trËn A trªn trôc x vμ x trªn A c) Hμm y = sin(x). cos(x) víi c¸c ®iÓm lμ c¸c vßng trßn nhá >> x = - pi0 : 0.05 : pi; >> A = sin(x).*cos(x) ; >> plot( x,A ); 0.5 0 H×nh 4.12 PhÇn 1 - C¬ së 63
- Ch−¬ng 4 - §å ho¹ hai chiÒu d) Hμm plot víi tham sè phøc. 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2 -1 0 1 2 H×nh 4.13 Sè phøc ®−îc biÓu diÔn d−íi d¹ng xo¾n èc. >> R = linespace (0,2); % t¹o vector >> tt = linespace (0,10*pi); % t¹o vector cña gãc >> [x,y] = plot2cart(tt,r); % chuyÓn to¹ ®é >> z = x + i*y ; %t¹o vector sè phøc >> plot(z) ; % in ra mμn ®å ho¹ e) T¹o mét file *.m thùc hiÖn chuçi lÖnh sau n = input ( ‘ Sè ®iÓm n = ‘); a = input (‘ Kho¶ng x¸c ®Þnh trªn a = ‘); b = input (‘ Kho¶ng x¸c ®Þnh d−íi b = ‘); y = [ ]; e1 = [ ]; e2 = [ ]; e3 = [ ]; e4 = [ ]; % xo¸ e1 - e4 for i = 1 : n xx = a + ( b - a ) * (i - 1) / (n - 1); x(i) = xx; e1(i) = exp( -(xx^2) ); e2(i) = xx^2 * exp ( -(xx^2) ); e3(i) = xx*exp ( -(xx^2) ); e4(i) = exp (-xx); end Script file trªn sau khi thùc hiÖn víi tham sè: Sè ®iÓm n = 50 PhÇn 1 - C¬ së 64
- Ch−¬ng 4 - §å ho¹ hai chiÒu Kho¶ng x¸c ®Þnh trªn a = 0 Kho¶ng x¸c ®Þnh d−íi b = 5 1 0.8 0.6 0.4 0.2 0 0 1 2 3 4 H×nh 4.14 a §å thÞ cña c¸c hμm lÊy tõ vÝ dô trªn plot(x,e1,'w',x,e2,'w',x,e3,'w',x,e4,'w') C¸c lÖnh trªn t−¬ng ®−¬ng víi chuçi c¸c lÖnh d−íi ®©y. Tuy nhiªn víi c¸c bé lÖnh d−íi cho phÐp chóng ta dÔ dμng trong khi ®äc còng nh− vμo d÷ liÖu. >> x = linespace (a,b,u) >> e1 = exp (-x^2); >> e2 = (X^2) * exp (-x ^ 2); >> e3 = x . * exp (-x^2); >> e4 = exp (-x) víi u = 50 a=0 b = 30 >> plot (x, e1, 't', x, e2, 't', x, e3, x, 't', x, e3, '0', x, eu, 'x') PhÇn 1 - C¬ së 65
- Ch−¬ng 4 - §å ho¹ hai chiÒu 1 0.8 0.6 0.4 0.2 0 0 1 2 3 4 b. VÏ ®å thÞ cïng víi kho¶ng sai sè. VÏ vector y theo x cïng víi c¸c thanh sai sè cã ®é Errorbar (x, y, e, str) dμi ei trªn d−íi yi. VÏ ®å thÞ vector y theo x víi ei vμ u lμ ®o¹n sai sè Errorbar (x, y, l, u) cña yi t−¬ng øng víi phÇn d−íi vμ trªn. VÝ dô: T¹o ®å thÞ cã kho¶ng sai sè lμ 15% >> x = linspace (0, 10, 50); >> y = exp (sin (x)); >> delta = 0.15 *y; >> errorbar ( x, y, delta) 3.5 3 2.5 2 1.5 H×nh 4.15 §å thÞ cïng ®−êng sai sè 15% PhÇn 1 - C¬ së 66
- Ch−¬ng 4 - §å ho¹ hai chiÒu c. VÏ ho¹t h×nh ( comet ) LÖnh comet plot cho phÐp ng−êi sö dông vÏ theo tõng ®iÓm trªn mμn h×nh g©y hiÖu øng ho¹t ho¹ khi vÏ. D−íi ®©y lμ mét sè trong bé lÖnh comet. VÏ vector y trªn trôc x. NÕu tham sè vμo kh«ng cã hay Comet (x, y) thiÕu th× ch−¬ng tr×nh tù ®Þnh ra chØ sè Comet (x, y, l) VÏ theo hμm comet víi phÇn kÐo dμi l khi kh«ng khai b¸o chØ sè l th× ch−¬ng tr×nh tù lÊy gi¸ trÞ = 0.1 d.Hμm ®å ho¹. Dïng ®Ó vÏ mét hμm to¸n häc bÊt kú ®−îc khai b¸o fplot (fku,lim,str) bëi m¶ng ký tù. M¶ng ký tù cã thÓ lμ c¸c hμm chuÈn hay ®−îc ®Þnh nghÜa bëi ng−êi sö dông trong file M fku.m. Vector lim = [Xmin Xmax] dïng ®Ó giíi h¹n kho¶ng x¸c ®Þnh cña ®å ho¹. Nã cã thÓ bao gåm 4 thμnh phÇn trong ®ã thμnh phÇn thø 3 vμ 4 lμ kho¶ng x¸c ®Þnh trªn trôc y. NÕu biÕn str kh«ng khai b¸o trong hμm th× ch−¬ng tr×nh sÏ tù lÊy c¸c gi¸ trÞ mÆc ®Þnh vÒ kiÓu ®−êng hay mÇu cho phÇn ®å ho¹. VÏ ®å thÞ nh− trªn víi sai sè liªn quan nhá h¬n gi¸ trÞ fplot tol ( fcu, lim, str, tol ) VÝ dô: Dïng hμm fplot vÏ ph−¬ng tr×nh sin x2 >> fplot(‘ sin(x^2)’,[ 0 , 10 ] ); 1 0.5 0 -0.5 H×nh 4.16 Ph−¬ng tr×nh sin x2 qua hμm fplot() 4.3.2.C¸c hÖ to¹ ®é trong mÆt ph¼ng PhÇn 1 - C¬ së 67
- Ch−¬ng 4 - §å ho¹ hai chiÒu Hμm plot cho phÐp ng−êi sö dông vÎtªn to¹ ®å §Ò c¸c. Tuy nhiªn 1 sè bμi to¸n trong kü thuËt l¹i yªu cÇu c¸c hÖ to¹ ®é kh¸c. §Ó ®¸p øng nhu cÇu ®ã Matlab cung cÊp 1 lo¹t c¸c hμm cho phÐp t¹o dùng ®å häa trªn c¸c lo¹i hÖ to¹ ®é. - VÏ trªn hÖ täa ®é cùc. C¸c phÇn tõ cña vector theta lμ polar ( thet, r ) c¸c biÕn ®o b»ng radian vμ c¸c phÇn tö cña vector r lμ kho¶ng c¸ch ®Õn ®iÓm gèc. - Cho phÐp vÏ trªn hÖ to¹ ®é nöa trôc loga, thay log10 semilogx ( x, y ) ®−îc sö dông cho trôc x. §iÒu ®ã còng t−¬ng ®−¬ng víi viÖc chóng ta viÕt plot (log10(x,y) nh−ng sÏ kh«ng cã lçi víi c¶ trong tr−êng hîp log10(0). - VÏ trªn hÖ to¹ ®é cña trôc loga. Thang ®o log10 ®−îc semilogy ( x,y ) sö dông cho trôc y. §iÒu ®ã t−¬ng ®−¬ng plot (x,log10(y) vμ còng sÏ kh«ng b¸o lçi khi viÕt log10(0). - Hμm cho phÐp vÏ trªn hÖ to¹ ®é loga 2 trôc cña hÖ loglog ( x,y ) to¹ ®é ®Òu dùa trªn thang ®o log10. §iÒu ®ã t−¬ng ®−¬ng víi viÖc plot(log10(x), log10(y)) vμ còng kh«ng b¸o lçi nÕu ta sö dông log10(0). VÝ dô: a) >> x = linespace (0,7); % t¹o gi¸ trÞ x >> y = exp(x) % t¹o y theo x >> subplot (x,1,1); plot( x,y ); % vÏ hμm chuÈn >> subplot(2,1,2); semilogy( x,y ); % vÏ hμm loga 4 1200 10 1000 3 10 800 2 600 10 400 1 10 H×nh 4.16 b)VÏ hμm sau trªn hª to¹ ®é cùc theo c«ng thøc sau: PhÇn 1 - C¬ së 68
- Ch−¬ng 4 - §å ho¹ hai chiÒu ⎛ t5 ⎞ R = ecost - 2cos4 + ⎜ sin ⎟ ⎝ 12 ⎠ >> t = linspace (0,22*pi,1100); >> r = exp ( cos( t ) ) - 2*cos (u*t)+sin ( t./12) ).^5; >> subplot (2,1,1); >> p = polar(t,r); % vÏ trªn hÖ to¹ ®é cùc >> subplot (2,1,2) >> [ x , y ] = pol2cart(t,r) % gi¸ trÞ tõ hÖ to¹ ®é cùc sang hÖ §Ò c¸c >> plot(x,y); % polar_to_carttesian 4 3 90 6 120 60 2 4 150 30 2 1 0 180 0 -1 210 330 -2 240 300 270 -3 -4 -5 0 5 H×nh 4.17 trªn hÖ to¹ ®é cùc 4.3.3. MÆt ph¼ng ®å ho¹ cho sè phøc. VÏ mòi tªn cho mçi cÆp cña hÖ to¹ ®é cho bëi xij vμ yij quiver ( x , y ) cïng biÕn sè vμ ®é lín lμ dxi vμ dyi. VÏ 1 mòi tªn víi täa ®é xi yi cïng biÕn sè vμ ®é lín lμ quiver tËp dxij vμ dyij. ( x , y , dx , dy ) VÏ mòi tªn nh− trªn nh−ng hÖ sè tû lÖ ®−îc cho bëi gi¸ quiver PhÇn 1 - C¬ së 69
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình cơ sở Matlab v5.2-1 - Phần 1 Cơ sở matlab - Chương 1
23 p | 261 | 81
-
Giáo trình cơ sở Matlab v5.2-1 - Phần 1 Cơ sở matlab - Chương 2
17 p | 132 | 27
-
Giáo trình cơ sở Matlab v5.3-1 - Phần 1 Cơ sở matlab - Chương 3
19 p | 105 | 26
-
Giáo trình cơ sở Matlab v5.3-1 - Phần 1 Cơ sở matlab - Chương 5
38 p | 121 | 19
-
Cơ sở Matlab v5.3-1 - Phần 2 - Chương 1
24 p | 96 | 17
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn