Giáo trình mathlab toàn tập - Chương 14
lượt xem 25
download
ĐA THứC 14.1 Các nghiệm của đa thức Tìm nghiệm của đa thức là giá trị để đa thức bằng không, là một bài toán th-ờng gặp trong thực tế. MATLAB giải quyết những bài toán này và đồng thời cung cấp những công cụ để tính toán đa 91 thức. Trong MATLAB một đa thức đ-ợc biểu diễn bằng một vector hàng các hệ số với bậc giảm dần. Ví dụ đa thức x4-12x3+25x+116 đ-ợc nhập vào nh- sau: p = [1 p= 1 -12 0 25 116] 0 25 116 -12 Nhớ rằng mục dành cho hệ số 0...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình mathlab toàn tập - Chương 14
- 90 C¸c hµm ph©n tÝch d÷ liÖu cplxpair(x) X¾p xÕp cÆp phøc liªn hîp cross(x,y) TÝch chÐo vector cumprod(x) TÝch tÝch luü theo cét cumprod(x,n) TÝch tÝch luü theo chiÒu n cumsum(x) Tæng tÝch luü theo cét cumsum(x,n) Tæng tÝch luü theo chiÒu n cumtrapz(x,y) TÝch chÐo tÝch luü cumtrapz(x,y,n) TÝch chÐo tÝch luü theo chiÒu n del2(A) To¸n tö rêi r¹c Laplacian 5 ®iÓm diff(x) TÝnh ®é chªnh lÖch gi÷a c¸c phÇn tö diff(x,m) TÝnh sè ra cÊp m cña c¸c phÇn tö diff(x,m,n) TÝnh sè ra cÊp m cña c¸c phÇn tö theo chiÒu n dot(x,y) TÝch v« h−íng cña hai vector gradient(Z,dx,dy) Gradient vi ph©n histogram(x) BiÓu ®å h×nh cét max(x), max(x,y) PhÇn tö lín nhÊt max(x,n) PhÇn tö lín nhÊt theo chiÒu n mean(x) Gi¸ trÞ trung b×nh cña cét mean(x,n) Gi¸ trÞ trung b×nh theo chiÒu n median(x) Gi¸ trÞ cña phÇn tö gi÷a cña cét median(x,n) Gi¸ trÞ cña phÇn tö gi÷a theo chiÒu n min(x), min(x,y) PhÇn tö nhá nhÊt min(x,n) PhÇn tö nhá nhÊt theo chiÒu n prod(x) TÝch c¸c phÇn tö trong cét prod(x,n) TÝch c¸c phÇn tö theo chiÒu n rand(x) Sè ngÉu nhiªn ph©n bè ®Òu randn(x) Sè ngÉu nhiªn ph©n bè b×nh thêng sort(x) X¾p xÕp c¸c cét theo thø tù t¨ng dÇn sort(x,n) X¾p xÕp theo chiÒu n sortrows(A) X¾p xÕp c¸c hµng theo thø tù t¨ng dÇn std(x), std(0) §é lÖch chuÈn cña cét chuÈn ho¸ theoN-1 std(x,1) §é lÖch chuÈn cña cét chuÈn ho¸ theoN std(x, flag, n) §é lÖch chuÈn theo chiÒu n subspace(A,B) Gãc gi÷a hai ®iÓm sum(x) Tæng c¸c phÇn tö trong mçi cét sum(x,n) Tæng c¸c phÇn tö theo chiÒu n trapz(x,y) TÝch chÐo cña y=f(x) trapz(x,y,n) TÝch chÐo theo chiÒu n ---------------------oOo------------------- ch−¬ng 14 §A THøC 14.1 C¸c nghiÖm cña ®a thøc T×m nghiÖm cña ®a thøc lµ gi¸ trÞ ®Ó ®a thøc b»ng kh«ng, lµ mét bµi to¸n th−êng gÆp trong thùc tÕ. MATLAB gi¶i quyÕt nh÷ng bµi to¸n nµy vµ ®ång thêi cung cÊp nh÷ng c«ng cô ®Ó tÝnh to¸n ®a
- 91 thøc. Trong MATLAB mét ®a thøc ®−îc biÓu diÔn b»ng mét vector hµng c¸c hÖ sè víi bËc gi¶m dÇn. VÝ dô ®a thøc x4-12x3+25x+116 ®−îc nhËp vµo nh− sau: >> p = [1 -12 0 25 116] p= 1 -12 0 25 116 Nhí r»ng môc dµnh cho hÖ sè 0 còng ph¶i ®−îc gâ vµo nÕu kh«ng MATLAB sÏ kh«ng hiÓu ®−îc hÖ sè cña biªñ thøc bËc mÊy lµ kh«ng. Sö dông d¹ng nµy th× nghiÖm cña mét ®a thøc cã thÓ t×m ®−îc b»ng c¸ch dïng hµm roots: >> r = roots(p) r= 11.7374 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i Bëi v× trong MATLAB c¶ ®a thøc vµ c¸c nghiÖm cña nã ®Òu lµ vector nªn MATLAB ngÇm quy −íc r»ng ®a thøc lµ vector hµng, cßn c¸c nghiÖm lµ c¸c vector cét. NÕu biÕt tr−íc nghiÖm cña mét ®a thøc th× ta dÔ dµng biÕt ®−îc ®a thøc ®ã. Trong MATLAB lÖnh poly sÏ thùc hiÖn c«ng viÖc nµy: >> pp = poly(r) pp= 1 -12 -1.7764e-14 25 116 % G¸n nh÷ng phÇn tö qu¸ nhá b»ng kh«ng >> pp(abs(pp)< 1e-12 = 0 1 -12 0 25 116 Bëi v× trong tÝnh to¸n thêng gÆp nh÷ng sai sè nªn ®«i khi kÕt qu¶ cña lÖnh poly cho ra c¸c ®a thøc cã c¸c hÖ sè gÇn b»ng kh«ng vµ c¸c ®a thøc cã phÇn ¶o rÊt nhá nh− ®−îc chØ ra ë trªn, c¸c gi¸ trÞ b»ng kh«ng cã thÓ ®−îc lµm trßn b»ng c¸c c«ng cô vÒ m¶ng. T−¬ng tù nh− vËy, ta cã thÓ lµm trßn mét sè phøc ®Ó trë thµnh mét sè thùc b»ng hµm real. 14.2 Nh©n ®a thøc Hµm conv thùc hiÖn nh©n hai ®a thøc (thùc ra lµ hai ma trËn), xÐt tÝch cña hai ®a thøc sau: a(x) = x3+2x2+3x+4 vµ b(x) = x3+4x2+9x+16 >> a = [1 2 3 4]; b = [1 4 9 16]; >> c = conv(a,b) c= 1 6 20 50 75 84 64 KÕt qu¶ lµ c(x) = x6 +6x5 +20x4 +50x3+75x2+84x+64 khi ta nh©n nhiÒu ®a thøc víi nhau th× ta ph¶i sö dông lÖnh conv nhiÒu lÇn. 14.3 PhÐp céng ®a thøc
- 92 MATLAB kh«ng cung cÊp c¸c hµm trùc tiÕp thùc hiÖn phÐp céng hai ®a thøc, dïng phÐp céng ma trËn chØ cã t¸c dông khi hai ®a thøc lµ hai vector cã cïng kÝch th−íc. VÝ dô nh− céng hai ®a thøc a(x) vµ b(x) ë trªn: >> d = a + b d= 2 6 12 20 3 2 KÕt qu¶ lµ d(x)=2x +6x +12x+20. Khi hai ®a thøc cã bËc kh¸c nhau th× ®a thøc cã bËc thÊp h¬n ph¶i ®−îc thªm vµo c¸c hÖ sè 0 ®Ó cho bËc cña nã cã cïng bËc víi ®a thøc cã bËc cao h¬n. XÐt phÐp céng hai ®a thøc c vµ d ë trªn: >> e = c + [0 0 0 d] e= 1 6 20 52 81 96 84 KÕt qu¶ lµ e(x)=x6+6x5+20x4+52x3+81x2+84. C¸c gi¸ trÞ 0 cÇn ph¶i ®−îc thªm vµo ë phÝa ®Çu cña vector chø kh«ng ph¶i phÝa ®u«i, bëi v× c¸c hÖ sè ®ã ph¶i t−¬ng øng víi c¸c hÖ sè bËc cao cña x. NÕu b¹n muèn, b¹n cã thÓ t¹o mét hµm M_file ®Ó thùc hiÖn phÐp c«ng ®a thøc tæng qu¸t: function p=polyadd(a,b) %POLYADD Polynomial addition %POLYADD(A,B) adds the polynomials A and B if nargin> f = polyadd(c,d) f= 1 6 20 52 81 96 84 KÕt qu¶ còng gièng nh− ®a thøc e ë trªn. TÊt nhiªn polyadd còng cã thÓ dïng ®Ó thùc hiÖn phÐp trõ. >> g = polyadd(c,-d) g= 1 6 20 48 69 72 44 14.4 Chia hai ®a thøc Trong mét sè tr−êng hîp ta ph¶i chia ®a thøc nµy cho mét ®a thøc kh¸c, trong MATLAB c«ng viÖc nµy ®−îc thùc hiÖn bëi hµm deconv, sö dông c¸c ®a thøc b vµ c ë trªn ta cã: >> [q,r] = deconv(c,b) q= 1 2 3 4 r= 0 0 0 0 0 0 0
- 93 KÕt qu¶ nµy chØ ra r»ng c ®em chia cho b th× ®−îc ®a thøc lµ q vµ ®a thøc d lµ r trong tr−êng hîp nµy ®a thøc d lµ ®a thøc 0 bëi v× c lµ ®a thøc chia hÕt cho q (nhí r»ng trªn ®©y ta ®· nhËn ®−îc ®a thøc c b»ng c¸ch ®em nh©n ®a thøc a víi ®a thøc b) 14.5 §¹o hµm Bëi v× dÔ dµng tÝnh ®−îc vi ph©n cña mét ®a thøc nªn MATLAB ®a ra hµm polyder ®Ó tÝnh vi ph©n ®a thøc: >> h = polyder(g) h= 6 30 80 144 138 72 14.6 TÝnh gi¸ trÞ cña mét ®a thøc Râ rµng r»ng b¹n cã thÓ céng, trõ, nh©n, chia, ®¹o hµm mét ®a thøc bÊt kú dùa trªn c¸c hÖ sè cña nã, b¹n còng cã thÓ dÔ dµng tÝnh ®−îc gi¸ trÞ c¸c ®a thøc nµy. Trong MATLAB hµm polyval sÏ thùc hiÖn c«ng viÖc nµy: >> x = linspace(-1,3); SÏ chän 100 ®iÓm d÷ liÖu gi÷a -1 vµ 3 >> p = [1 4 -7 -10]; Dïng ®a thøc p(x) = x3+4x2-7x-10 >> v = polyval(p,x); TÝnh gi¸ trÞ cña p(x) t¹i c¸c gi¸ trÞ cña x vµ l−u tr÷ kÕt qu¶ vµo trong m¶ng v. Sau ®ã kÕt qu¶ sÏ ®−îc vÏ ra b»ng lÖnh plot >> plot(x, v), title(‘x^3+4x^2-7x-10’), xlabel(‘x’)
- 94 H×nh 14.1 14.7 Ph©n thøc h÷u tØ §«i khi b¹n gÆp nh÷ng bµi to¸n liªn quan ®Õn tØ sè cña hai ®a thøc hay cßn gäi lµ ph©n thøc h÷u tØ, vÝ dô nh− c¸c hµm truyÒn hay c¸c hµm xÊp xØ pade cã d¹ng nh− sau: Trong MATLAB ph©n thøc còng ®−îc m« pháng b»ng hai ®a thøc riªng rÏ. VÝ dô nh−: >> n=[1 -10 100] % a numerator n= 1 -10 100 >> d=[1 10 100 0] % a dimominator d= 1 10 100 0 >> z=roots(n) % the zeros of n(x)/d(x) z= 5.0000 + 8.6603i 5.0000 - 8.6603i >> p=roots(d) % the poles of n(x)/d(x) p= 0 -5.0000 + 8.6603i -5.0000 - 8.6603i §¹o hµm cña ph©n thøc nµy theo biÕn x ®−îc tÝnh dùa trªn hµm polyder: >> [nd,dd]=polyder(n,d)
- 95 nd = -1 20 -100 -2000 -10000 dd = Columns 1 through 6 1 20 300 2000 10000 0 Column 7 0 ë ®©y nd vµ dd lµ tö thøc vµ mÉu thøc cña ®¹o hµm. Mét thao t¸c th«ng th−êng kh¸c lµ t×m phÇn d cña ph©n thøc. >> [r,p,k]=residue(n,d) r= 0.0000 + 1.1547i 0.0000 - 1.1547i 1.0000 p= -5.0000 + 8.6603i -5.0000 - 8.6603i 0 k= [] Trong tr−êng hîp nµy hµm residue tr¶ vÒ c¸c hÖ sè më réng ph©n thøc tõng phÇn r, c¸c nghiÖm cña ph©n thøc lµ p vµ phÇn th−¬ng chia hÕt cña ph©n thøc lµ k. NÕu bËc cña tö sè nhá h¬n bËc cña mÉu sè th× ph©n thøc chia hÕt sÏ b»ng kh«ng. Trong vÝ dô trªn th× më réng ph©n thøc tõng phÇn cña ph©n thøc ®· cho lµ: NÕu cho tr−íc c¸c ®a thøc nµy th× ph©n thøc ban ®Çu sÏ t×m ®−îc b»ng c¸ch sö dông hµm residue: >> [nn,dd]=residue(r,p,k) nn = 1.0000 -10.0000 100.0000 dd = 1.0000 10.0000 100.0000 0 V× vËy trong tr−êng hîp nµy, hµm residue cã thÓ thùc hiÖn ®−îc viÖc chuyÓn ®æi hai chiÒu tuú thuéc vµo sè l−îng c¸c tham sè vµo vµ ra truyÒn cho nã. --------------------oOo------------------
CÓ THỂ BẠN MUỐN DOWNLOAD
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