intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình mathlab toàn tập - Chương 7

Chia sẻ: Nguyễn Nhi | Ngày: | Loại File: PDF | Số trang:8

91
lượt xem
28
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

các phép tính với mảng 46 7.1 Tạo ph-ơng trình tuyến tính. Về cơ bản, MATLAB đ-ợc viết đối với những ma trận và thực hiện phép toán số học tuyến tính đơn giản mà xuất hiện trong nhiều ứng dụng. Một vấn đề chung nhất của số học tuyến tính là việc giải ph-ơng trình. Ví dụ tạo ph-ơng trình: . = A.x = b Biểu t-ợng phép nhân toán học (.) đ-ợc định nghĩa trong phép toán trên, khác với kí hiệu ta dùng đối với mảng tr-ớc kia. Trong MATLAB phép nhân ma trận này đ-ợc định...

Chủ đề:
Lưu

Nội dung Text: Giáo trình mathlab toàn tập - Chương 7

  1. 45 title('Acid-Water Bath Dipping Example') Ch¹y ch−¬ng tr×nh trªn ta ®−îc kÕt qu¶ nh− sau: lost = 1 2 3 4 5 6 7 8 9 10 n= 59 29 19 14 12 10 8 7 6 6 H×nh 6.2 Chó ý ë ®©y yªu cÇu ph−¬ng ph¸p chia chÊm v× log(1 + lost/ 100) lµ mét vector --------------------oOo------------------ ch−¬ng 7 c¸c phÐp tÝnh víi m¶ng
  2. 46 7.1 T¹o ph−¬ng tr×nh tuyÕn tÝnh. VÒ c¬ b¶n, MATLAB ®−îc viÕt ®èi víi nh÷ng ma trËn vµ thùc hiÖn phÐp to¸n sè häc tuyÕn tÝnh ®¬n gi¶n mµ xuÊt hiÖn trong nhiÒu øng dông. Mét vÊn ®Ò chung nhÊt cña sè häc tuyÕn tÝnh lµ viÖc gi¶i ph−¬ng tr×nh. VÝ dô t¹o ph−¬ng tr×nh: .= A.x = b BiÓu t−îng phÐp nh©n to¸n häc (.) ®−îc ®Þnh nghÜa trong phÐp to¸n trªn, kh¸c víi kÝ hiÖu ta dïng ®èi víi m¶ng tr−íc kia. Trong MATLAB phÐp nh©n ma trËn nµy ®−îc ®Þnh nghÜa b»ng dÊu sao (*). TiÕp theo ®Þnh nghÜa dÊu b»ng, ma trËn t¹o ra tõ ma trËn A vµ vector x b»ng víi vector b. Gi¶i ph¸p tån t¹i cho sù c©n b»ng ®Ò cËp ë trªn lµ nh÷ng vÊn ®Ò c¬ b¶n cña sè häc tuyÕn tÝnh. Thªm n÷a, khi lêi gi¶i kh«ng tån t¹i, cã rÊt nhiÒu c¸ch gÇn ®óng ®Ó t×m kiÕm gi¶i ph¸p, nh− phÐp lo¹i trõ Gaussian, sù t×m thõa sè LU, hoÆc tÝnh trùc tiÕp A-1 .b. D−íi ®©y chóng ta sÏ ®Ò cËp ®Õn mét sè c¸ch gi¶i quyÕt nh− trªn: Tr−íc tiªn nhËp vµo ma trËn A vµ b: >> A = [1 2 3; 4 5 6; 7 8 0] A= 1 2 3 4 5 6 7 8 0 >> b = [366; 804; 315] b= 366 804 351 NÕu b¹n cã kiÕn thøc vÒ sè häc tuyÕn tÝnh, nã rÊt dÔ ®Ó b¹n kiÓm tra xem ®Þnh thøc cña ma trËn trªn cã kh¸c kh«ng hay kh«ng: >> det(A) ans= 27 NÕu nã ®óng, MATLAB cã thÓ gi¶i ph−¬ng tr×nh theo hai c¸ch, mét c¸ch hay ®−îc dïng h¬n, mét c¸ch Ýt sö dông, nh−ng trùc tiÕp h¬n, ph−¬ng ph¸p nµy lµ chuyÓn thµnh d¹ng x=A-1.b. >> x = inv(A)*b x= 25.0000 22.0000 99.0000 ë ®©y inv(A) lµ hµm cña MAYLAB dïng ®Ó tÝnh A-1; vµ to¸n tö nh©n ( * ), kh«ng cã dÊu chÊm phÝa tr−íc, ®©y lµ phÐp nh©n ma trËn. Ph−¬ng ph¸p ®−îc dïng nhiÒu h¬n lµ dïng to¸n tö chia ma trËn tr¸i: >> x = A\b x= 25.0000 22.0000 99.0000
  3. 47 Ph−¬ng tr×nh nµy sö dông ph−¬ng ph¸p t×m thõa sè LU gÇn ®óng vµ ®a ra c©u tr¶ lêi nh− lµ phÐp chia tr¸i A cho b. To¸n tö chia tr¸i ( \ ) kh«ng cã dÊu chÊm phÝa tr−íc lµ mét phÐp to¸n cña ma trËn, nã kh«ng ph¶i lµ c¸c phÐp to¸n gi÷a c¸c phÇn tö cña m¶ng. Ph−¬ng ph¸p thø hai nµy ®−îc sö dông nhiÒu h¬n do nhiÒu nguyªn nh©n, mét trong nh÷ng nguyªn ®¬n gi¶n nhÊt lµ ph−¬ng ph¸p nµy dïng Ýt phÐp to¸n h¬n vµ tèc ®é nhanh h¬n. Thªm vµo ®ã, nh×n chung ph−¬ng ph¸p nµy chÝnh x¸c h¬n cho nh÷ng bµi to¸n lín. Trong tr−êng hîp kh¸c, nÕu MATLAB kh«ng t×m thÊy ph−¬ng ph¸p gi¶i hoÆc kh«ng t×m thÊy ph−¬ng ph¸p chinh x¸c, nã sÏ hiÖn th«ng b¸o lçi. NÕu b¹n nghiªn cøu sè häc tuyÕn tÝnh, b¹n biÕt r»ng khi sè ph−¬ng tr×nh vµ sè biÕn kh¸c nhau, th× kh«ng thÓ cã mét ph−¬ng ph¸p duy nhÊt ®Ó gi¶i. Trong MATLAB khi gÆp nh÷ng hÖ ph−¬ng tr×nh cã sè ph−¬ng tr×nh lín h¬n sè biÕn nã dïng to¸n tö chia tr¸i hoÆc chia ph¶i, tù ®éng gi¶m thÊp nhÊt nh÷ng phÇn tö thõa A.x - b. C¸ch nµy gäi lµ ph−¬ng ph¸p vu«ng nhá nhÊt. VÝ dô: % Bèn ph−¬ng tr×nh, ba biÕn. >> A = [1 2 3; 4 5 6; 7 8 0; 2 5 8] A= 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]’ b= 366 804 351 514 % Ph−¬ng ph¸p vu«ng nhá nhÊt. >> x = A\b x= 247.9818 -173.1091 114.9273 >> res = A*x - b res= -119.4545 11.9455 0.0000 35.8364 MÆt kh¸c khi sè ph−¬ng tr×nh Ýt h¬n sè biÕn t−¬ng tù nh− tr−êng hîp kh«ng x¸c ®Þnh, th× sè nghiÖm ph−¬ng tr×nh lµ v« tËn. §èi víi nh÷ng nghiÖm nµy MATLAB tÝnh theo hai c¸ch. Dïng to¸n tö chia ®a ra ph−¬ng ph¸p mµ cã sè phÇn tö 0 cña x lµ cùc ®¹i. Nh− mét sù lùa chän, tÝnh x=pinv(A)*b ®a ra ph−¬ng ph¸p chiÒu dµi hoÆc tiªu chuÈn cña x nhá h¬n c¸c ph−¬ng ph¸p kh¸c. Ph−¬ng ph¸p nµy gäi lµ ph−¬ng ph¸p tiªu chuÈn cùc tiÓu. VÝ dô: % T¹o ba ph−¬ng tr×nh, bèn biÕn. >> A = A’ A= 1 4 7 2 2 5 8 5 3 6 0 8 >> b = b(1:3) b= 366
  4. 48 804 351 % ph−¬ng ph¸p víi sè phÇn tö 0 cùc ®¹i. >> x = A\b x= 0 -165.9000 99.0000 168.3000 % T×m kiÕm gi¶i ph¸p tiªu chuÈn nhá nhÊt. >> xn = pinv(A)*b xn= 30.8182 -168.9818 99.0000 159.0545 % Tiªu chuÈn O_clit víi c¸c phÇn tö 0. >> norm(x) ans= 256.2200 >> norm(xn) % Gi¶i ph¸p tiªu chuÈn nhá nhÊt ans= 254.1731 7.2 C¸c hµm ma trËn . §Ó gi¶i ph−¬ng tr×nh tuyÕn tÝnh, MATLAB cung cÊp c¸c hµm trî gióp sau: C¸c hµm ma trËn balance(A) C©n b»ng ®Ó t¨ng ®é chÝnh x¸c cdf2rdf(A) ChuyÓn tõ d¹ng sè phøc chÐo sang d¹ng sè thùc chÐo chol(A) T×m thõa sè Cholesky cholinc(A, droptol) Thõa sè Cholesky kh«ng ®Çy ®ñ cond(A) Sè ®iÒu kiÖn ma trËn condest(A) ¦íc l−îng sè ®iÒu kiÖn ma trËn theo tiªu det(A) §Þnh thøc ma trËn expm(A) Ma trËn theo luËt mò expm1(A) Bæ sung M_file cña expm expm2(A) Ma trËn theo luËt hµm mò, dïng thø tù Taylor funm(A, ‘fun’) TÝnh to¸n hµm ma trËn chung hess(A) MÉu Hessenberg inv(A) Ma trËn chuyÓn vÞ logm(A) Ma trËn logarithm lu(A) T×m thõa sè víi phÐp khö Gaussian luinc(A, droptol) Thõa sè LU kh«ng ®Çy ®ñ norm(A) Ma trËn vµ vector tiªu chuÈn norm(A,1) Tiªu chuÈn 1 norm(A, 2) Tiªu chuÈn 2 norm(A, inf) V« cïng norm(A, p) Tiªu chuÈn P (chØ ®èi víi vector) norm(A, ‘fro’) Tiªu chuÈn F normest(A) Tiªu chuÈn 2 −íc l−îng cho ma trËn lín null(A) Kho¶ng rçng orth(A) TÝnh trùc giao
  5. 49 poly(A) §a thøc ®Æc tr−ng polyvalm(A) TÝnh gi¸ trÞ cña ma trËn qr(A) X¸c ®Þnh trùc giao tam gi¸c qrdelet(Q, R, j) Xo¸ cét tõ thõa sè QR qrinsert(Q, R, j, x) ChÌn cét trong thõa sè QR rank(A) Sè cña hµng hoÆc cét ®éc lËp rcond(A) ¦íc l−îng ®iÒu kiÖn thuËn nghÞch sqrtm(A) Ma trËn gèc b×nh ph−¬ng subspace(A, B) Gãc gi÷a hai ®iÓm svd(A) Ph©n tÝch gi¸ trÞ ®¬n svds(A, K) Mét sè c¸c gi¸ trÞ ®¬n trace(A) Tæng c¸c phÇn tö chÐo 7.3 Ma trËn ®Æc biÖt MATLAB ®a ra mét sè c¸c ma trËn ®Æc biÖt, trong ®ã mét sè chóng cã nh÷ng øng dông réng r·i trong c¸c phÐp to¸n. Nh×n chung nh÷ng ma trËn ®ã lµ: >> a = [1 2 3; 4 5 6]; >> b = find(a>10) b= [] ë ®©y b lµ ma trËn rçng. MATLAB tr¶ l¹i ma trËn rçng khi phÐp to¸n kh«ng cã kÕt qu¶. Trong vÝ dô trªn kh«ng cã phÇn tö nµo cña a lín h¬n 10. Ma trËn rçng kh«ng cã kÝch cì, nh−ng tªn biÕn cña chóng vÉn tån t¹i trong kh«ng gian lµm viÖc. % Ma trËn kh«ng 3 hµng, 3 cét (3x3). >> zeros(3) ans= 0 0 0 0 0 0 0 0 0 % Ma trËn mét 2 hµng, 4 cét (2x4). >> ones(2,4) ans= 1 1 1 1 1 1 1 1 >> zeros(3) + pi ans= 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 VÝ dô trªn vÒ t¹o ma trËn 3x3 víi c¸c phÇn tö ®Òu lµ . >> rand(3,1) ans= 0.2190 0.0470 0.6789 ma trËn 3x1 gåm c¸c phÇn tö lµ sè cung cÊp bëi hµm random gi÷a 0 vµ 1. >> randn(2)
  6. 50 ans= 1.1650 0.0751 0.6268 0.3516 ma trËn 2x2 cña c¸c sè cung cÊp bëi hµm random víi gi¸ trÞ trung b×nh lµ 0. ThuËt to¸n cho hµm rand vµ randn cã thÓ t×m thÊy trong S.K>Park and K.W.Miller,”Random Number Generator: Good Ones Are Hard to Find,” Comm. ACM, 32, 10, Oct. 1988-1201. >> eye(3) ans= 1 0 0 0 1 0 0 0 1 Ma trËn ®ång nhÊt 3x3 >> eye(3,2) ans= 1 0 0 1 0 0 Ma trËn ®ång nhÊt 3x2 Ngoµi ra ®Ó chØ kÝch cì cña mét ma trËn, b¹n cã thÓ dïng hµm size ®Ó t¹o mét ma trËn cã kÝch cì gièng nh− ma trËn kh¸c: >> A = [1 2 3; 4 5 6]; >> ones(size(A)) ans= 1 1 1 1 1 1 ma trËn mét cã cïng kÝch cì víi ma trËn A. C¸c ma trËn trªn vµ c¸c ma trËn ®Æc biÖt kh¸c ®−îc giíi thiÖu trong b¶ng sau: C¸c ma trËn ®Æc biÖt [] Ma trËn rçng compan T¹o ma trËn rçng eye Ma trËn ®ång nhÊt gallery Ma trËn kiÓm tra nhá vµi phÇn tö hadamard Ma trËn Hadamard hankel Ma trËn Hankel hilb Ma trËn Hilbert invhilb ChuyÓn thµnh ma trËn Hilbert magic Ma trËn vu«ng, gi¸ trÞ c¸c phÇn tö b»ng tõ 1 ®Õn gi¸ trÞ sè phÇn tö ones Ma trËn 1 pascal Ma trËn tam gi¸c Pascal rand Ma trËn víi c¸c phÇn tö ngÉu nhiªn tõ 0 ®Õn 1. randn Ma trËn ngÉu nhiªn th«ng th−êng víi gi¸ trÞ trung b×nh b»ng 0 rosser Ma trËn kiÓm tra ®èi xøng trôc chÝnh toeplitz Ma trËn Toeplitz vander Ma trËn Vandermond wilkinson Ma trËn kiÓm tra Wilkinson
  7. 51 zeros Ma trËn kh«ng VÝ dô VÊn ®Ò: Ta cã m¹ch ®iÖn nh− trong h×nh 7.1 ®−îc m« t¶ b»ng ph−¬ng tr×nh ®iÖn ¸p nót khi nguån ®a vµo lµ sãng h×nh sin. H×nh 7.1 E = 10o; R1 = 2; L = 10j; C = ; R2 = 10. ë ®©y vi lµ ®iÖn ¸p gi÷a nót thø i vµ ®Êt. Hái ®iÖn ¸p t¹i mçi nót lµ bao nhiªu? Gi¶i ph¸p: §©y lµ vÊn ®Ò vÒ ph©n tÝch pha. Ph−¬ng ph¸p gi¶i bµi nµy lµ gi¶i ph¬−ng tr×nh trªn, vµ chuyÓn c¸c kÕt qu¶ vÒ d¹ng thêi gian. Trong MATLAB gi¶i ph¸p sÏ lµ: function circuit % circuit.m script file to solve circuit proplem A(1,1)=1/2; % poke in nonzero values as needed A(1,2)=-1/2; A(2,1)=-1/2; A(2,2)=1/2 + 0.2j + 1/10j; A(2,3)= -1/10j; A(3,2)=-1/10j; A(3,3)=1/10 + 1/10j; y=[-1 0 0]'; % right hand side vector v=A\y % complex solution vmag=abs(v) % solution magnitudes vphase=angle(v)*180/pi % solution phase in degrees theta=linspace(0,2*pi); % plot results in time v1=vmag(1)*cos(theta-vphase(1)); v2=vmag(2)*cos(theta-vphase(2)); v3=vmag(3)*cos(theta-vphase(3)); thd=theta*180/pi; plot(thd,v1,thd,v2,thd,v3) Sau khi ch¹y ch−¬ng tr×nh trªn, kÕt qu¶ sÏ lµ: v= -4.0000 + 6.0000i -2.0000 + 6.0000i 2.0000 + 4.0000i vmag = 7.2111
  8. 52 6.3246 4.4721 vphase = 123.6901 108.4349 63.4349 H×nh 7.2 ---------------------oOo--------------------- ch−¬ng 8 c¸c phÐp tÝnh LOGIC Vµ QUAN HÖ Thªm vµo nh÷ng to¸n tö ‘truyÒn thèng’, MATLAB cung cÊp to¸n tö logic vµ quan hÖ. B¹n cã thÓ quen thuéc víi nh÷ng phÐp to¸n nµy, nÕu b¹n ®· lµm quen víi c¸c ng«n ng÷ lËp tr×nh kh¸c. Môc ®Ých cña nh÷ng to¸n tö vµ hµm nµy lµ ®Ó tr¶ lêi c©u hái True_False (®óng_sai). §èi víi c¸c sè th× trong to¸n tö logic vµ quan hÖ quy ®Þnh c¸c sè kh¸c kh«ng lµ True cßn sè kh«ng lµ False. KÕt qu¶ cña phÐp to¸n logic vµ quan hÖ ®a ra lµ 1 cho True, 0 cho False.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2