廣州大學學生實驗報告2matlab程序設計.doc
《廣州大學學生實驗報告2matlab程序設計.doc》由會員分享,可在線閱讀,更多相關《廣州大學學生實驗報告2matlab程序設計.doc(12頁珍藏版)》請在裝配圖網上搜索。
廣州大學學生實驗報告 開課學院及實驗室:機械與電氣工程學院 計算機樓 301室 2014 年 10 月 30 日 學 院 機械與電氣工程學院 年級、專業(yè)、班 姓名 學號 實驗課程名稱 MATLAB程序設計 成績 實驗項目名稱 實驗一 基礎準備及入門 指 導 教 師 一、實驗目的 1、掌握一維數(shù)組的創(chuàng)建方法;掌握一維數(shù)組子數(shù)組的尋訪和賦值方法; 2、掌握二維數(shù)組的創(chuàng)建方法;掌握二維數(shù)組子數(shù)組的尋訪和賦值方法; 3、掌握數(shù)組的各種運算,理解數(shù)組運算和矩陣運算的區(qū)別。 二、實驗原理 1、數(shù)組的創(chuàng)建和尋訪 數(shù)值數(shù)組(Numeric Array)和數(shù)組運算(Array Operations)始終是MATLAB的核心內容。自MATLAB5.x版起,由于其“面向對象”的特征,這種數(shù)值數(shù)組(以下簡稱為數(shù)組)成為了MATALB最重要的一種內建數(shù)據(jù)類型(Built-in Data Type),而數(shù)組運算就是定義在這種數(shù)據(jù)結構上的方法(Method)。 數(shù)組是指實數(shù)或復數(shù)組成的長方陣列(Array),可以是一維、二維、三維或更高的維數(shù)。不同維數(shù)的數(shù)組創(chuàng)建和訪問的方法有相同之處,也有不同之處。 一維數(shù)組的創(chuàng)建方法有:(1)逐個輸入法;(2)冒號生成法;(3)定數(shù)線性采樣法;(4)定數(shù)對數(shù)生成法。對于一維數(shù)組的尋訪,常用的有以下幾種類型:(1)x(3); (2)x([1 2 5]) ;(3)x(1:3) ;(4)x(3:end) ;(5)x(3:-1:1) ;(6)x(find(x>0.5)) ;(7)x([1 2 3 4 4 3 2 1]) 。在這里假設x是長度為5的一維數(shù)組。 二維數(shù)組則是由實數(shù)或復數(shù)排列稱矩形而成。二維數(shù)組和矩陣在數(shù)據(jù)結構上相同;一個矩形陣列是二維數(shù)組或矩陣取決于所使用的運算符號。二維數(shù)組的創(chuàng)建方法有:(1)直接輸入法,用于生成較小數(shù)組;(2)利用M文件創(chuàng)建和保存數(shù)組,用于經常要調用的數(shù)組,尤其是較大而且復雜的數(shù)組。對于二維數(shù)組的尋訪,常用的有以下幾種類型:(1)全下標標識法,如A(2,3);(2)單下標標識法,如A(10),這種方法比較少用;(3)單下標全元素標識,如A(:),指的是A的各列按先左后右的次序、首尾相接排成“一維長列”后,得到的一維數(shù)組的全部元素,其結果是一個一維列數(shù)組;類似地,也需注意A(r,:)、A(:,c)的含義。(4)“邏輯1”標識。 在MATLAB中,提供了相關的函數(shù)用作常用的標準數(shù)組的生成,如全0數(shù)組、全1數(shù)組、單位矩陣、對角陣、均勻分布的隨機數(shù)組、正態(tài)分布的隨機數(shù)組等,都有相關的生成函數(shù)。 對于一些數(shù)組的特殊操作,MATLAB也提供了相應的操作函數(shù)。如提取對角元素或生成對角陣、逆時針旋轉二維數(shù)組90度、提取數(shù)組下三角部分、提取數(shù)組上三角部分等,都有相應的函數(shù)。在應用中注意利用這些函數(shù),可以事半功倍。 2、數(shù)組運算 數(shù)組運算是指無論在數(shù)組上施加什么運算(加減乘除或函數(shù)),總認定那種運算對被運算數(shù)組中的每個元素平等地實施同樣的操作。數(shù)組運算包括加、減、乘、除、乘方等,除加減外,數(shù)組之間進行乘、除、乘方都必須在運算符號前加“.”,否則視為矩陣運算。此外,數(shù)組運算還包括轉置、關系運算和邏輯運算。 除了以運算符號執(zhí)行數(shù)組運算外,也可以對數(shù)組施加函數(shù),以函數(shù)形式進行數(shù)組運算。如對數(shù)組X執(zhí)行函數(shù)f的運算:,其中X為m行n列的數(shù)組。執(zhí)行數(shù)組運算的常用函數(shù)有三角函數(shù)和雙曲函數(shù)、指數(shù)函數(shù)、復數(shù)函數(shù)、圓整函數(shù)和求余函數(shù)、坐標變換函數(shù)等。 三、實驗內容 1、一維數(shù)組的創(chuàng)建 (1)、利用逐個輸入法、冒號生成法以及定數(shù)線性采樣法創(chuàng)建以下一維數(shù)組: X1=[1,2,3,4,5,6,7,8,9,10] (2)、利用冒號生成法創(chuàng)建以下數(shù)組: X2=(1,2,3,4,9,8,7,6,5) (3)、利用定數(shù)對數(shù)生成法創(chuàng)建一個第一個元素為10,最后一個元素為100,元素個數(shù)為51的一維數(shù)組X3。 2、 一維數(shù)組子數(shù)組的尋訪和賦值 以冒號生成法創(chuàng)建一個第一個元素為0,步長為0.1,最后一個元素為2的一維數(shù)組X4,并寫出尋訪或賦值的以下指令: a、 尋訪X4的第6個元素; b、 同時尋訪X4的第2、5、7個元素; c、 尋訪前3個元素組成的子數(shù)組; d、 尋訪除前3個元素外的全部的其他元素; e、 由后三個元素倒排構成的子數(shù)組; f、 由大于0.5的元素構成的子數(shù)組; g、 把第三個元素重新賦值為0; 把當前x數(shù)組的第一、四個元素都賦值為1。 3、二維數(shù)組的創(chuàng)建,子數(shù)組的尋訪和賦值 創(chuàng)建一個M文件(文件名為myMatrix.m),定義一個二維數(shù)組A,第一行為11至15、30至26共10個元素,第二行為1~10共10個元素。然后運行改M文件,生成數(shù)組AM,并按以下方式尋訪該數(shù)組: (1) 尋訪A的第一行; (2) 尋訪A的第三列; (3) 同時尋訪A的第三列和第五列; (4) 把A的各列按自左至右的次序,首尾相接生成一個“一維長列”; (5) 把A的第1行第1列、第2行第2列以及第1行第5列的元素重新賦值為10、20、30; (6) 把A的第二行賦值為11~20。 4、標準數(shù)組的生成和數(shù)組操作函數(shù) 生成以下數(shù)組或矩陣: (1)長度為4的全1行數(shù)組和44的全1行數(shù)組; (2)5階單位陣; (3)生成一矩陣A,第一行為1、2,第二行為3、4;并使用diag函數(shù)生成A的對角線元素所組成的對角陣。 (4)生成一維數(shù)組A,其值為1~10,并使用reshape函數(shù)把其重排成25的數(shù)組B; (5)使用flipdim和fliplr函數(shù)對B進行翻轉操作,從返回結果觀察和總結各個函數(shù)的作用。 注:flipdim的調用方式為:flipdim(B,1)和flipdim(B,2);其他均為function(B). 5、數(shù)組運算和矩陣運算 生成以下矩陣,,并進行以下計算: (1) B的第二列乘以A的第一列; (2) 使用MATLAB幫助系統(tǒng)查閱max函數(shù)的使用方法,并使用它求解B中的第二列與A中的第一列逐行元素相乘所得矢量中的最大值。 提示:ln函數(shù)在matlab中為log 6、多項式的表達方式及其操作 (1) 求根為5,2+i,2-i,2,3的對應線性方程表達式。 (2) 求以下有理分式部分分式展開式,寫出求解代碼,并根據(jù)返回結果寫出展開式的數(shù)學表達式 (3) 使用roots函數(shù)求方程3x7+2x-1=0的根。 四、實驗過程、結果(程序和運行結果截屏)和分析 1、一維數(shù)組的創(chuàng)建 (1)、利用逐個輸入法、冒號生成法以及定數(shù)線性采樣法創(chuàng)建以下一維數(shù)組: X1=[1,2,3,4,5,6,7,8,9,10] (2)、利用冒號生成法創(chuàng)建以下數(shù)組: X2=(1,2,3,4,9,8,7,6,5) (3)、利用定數(shù)對數(shù)生成法創(chuàng)建一個第一個元素為10,最后一個元素為100,元素個數(shù)為51的一維數(shù)組X3。 >> X1=[1,2,3,4,5,6,7,8,9,10] X1 = 1 2 3 4 5 6 7 8 9 10 >> X2=[1:4,9:-1:5] X2 = 1 2 3 4 9 8 7 6 5 >> X3=logspace(1,2,51) X3 = Columns 1 through 7 10.0000 10.4713 10.9648 11.4815 12.0226 12.5893 13.1826 Columns 8 through 14 13.8038 14.4544 15.1356 15.8489 16.5959 17.3780 18.1970 Columns 15 through 21 19.0546 19.9526 20.8930 21.8776 22.9087 23.9883 25.1189 Columns 22 through 28 26.3027 27.5423 28.8403 30.1995 31.6228 33.1131 34.6737 Columns 29 through 35 36.3078 38.0189 39.8107 41.6869 43.6516 45.7088 47.8630 Columns 36 through 42 50.1187 52.4807 54.9541 57.5440 60.2560 63.0957 66.0693 Columns 43 through 49 69.1831 72.4436 75.8578 79.4328 83.1764 87.0964 91.2011 Columns 50 through 51 95.4993 100.0000 >> 2.一維數(shù)組子數(shù)組的尋訪和賦值 以冒號生成法創(chuàng)建一個第一個元素為0,步長為0.1,最后一個元素為2的一維數(shù)組X4,并寫出尋訪或賦值的以下指令: a.尋訪X4的第6個元素; b.同時尋訪X4的第2、5、7個元素; c.尋訪前3個元素組成的子數(shù)組; d.尋訪除前3個元素外的全部的其他元素; e.由后三個元素倒排構成的子數(shù)組; f.由大于0.5的元素構成的子數(shù)組; g.把第三個元素重新賦值為0; h.把當前x數(shù)組的第一、四個元素都賦值為1。 >> X4=0:0.1:2 X4 = Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 14 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000 Columns 15 through 21 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000 >> X4(6) ans = 0.5000 >> X4([2 5 7]) ans = 0.1000 0.4000 0.6000 >>X4(1:3) ans = 0 0.1000 0.2000 >> X4(4:end) ans = Columns 1 through 6 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 Columns 7 through 12 0.9000 1.0000 1.1000 1.2000 1.3000 1.4000 Columns 13 through 18 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000 >> X4(end:-1:end-2) ans = 2.0000 1.9000 1.8000 >> X4(find(X4>0.5)) ans = Columns 1 through 8 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000 Columns 9 through 15 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000 >> X4(3)=[0] X4 = Columns 1 through 6 0 0.1000 0 0.3000 0.4000 0.5000 Columns 7 through 12 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 Columns 13 through 18 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 Columns 19 through 21 1.8000 1.9000 2.0000 >> X4([1 4])=([1,1]) X4 = Columns 1 through 8 1.0000 0.1000 0.2000 1.0000 0.4000 0.5000 0.6000 0.7000 Columns 9 through 16 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 Columns 17 through 21 1.6000 1.7000 1.8000 1.9000 2.0000 3、二維數(shù)組的創(chuàng)建,子數(shù)組的尋訪和賦值 創(chuàng)建一個M文件(文件名為myMatrix.m),定義一個二維數(shù)組A,第一行為11至15、30至26共10個元素,第二行為1~10共10個元素。然后運行改M文件,生成數(shù)組AM,并按以下方式尋訪該數(shù)組: (7) 尋訪A的第一行; (8) 尋訪A的第三列; (9) 同時尋訪A的第三列和第五列; (10) 把A的各列按自左至右的次序,首尾相接生成一個“一維長列”; (11) 把A的第1行第1列、第2行第2列以及第1行第5列的元素重新賦值為10、20、30; (12) 把A的第二行賦值為11~20。 A=[11:15,30:-1:26;1:10] A(1,:) A(:,3) A(:,[3,5]) reshape(A,1,[]) A([1 12 5])=([10 20 30]) A(2,:)=11:20 A = 11 12 13 14 15 30 29 28 27 26 1 2 3 4 5 6 7 8 9 10 ans = 11 12 13 14 15 30 29 28 27 26 ans = 13 3ans = 13 15 3 5 ans = Columns 1 through 13 11 12 13 14 15 30 29 28 27 26 1 2 3 Columns 14 through 20 4 5 6 7 8 9 10 A = 10 12 30 14 15 30 29 28 27 26 1 2 3 4 5 20 7 8 9 10 A = 10 12 30 14 15 30 29 28 27 26 11 12 13 14 15 16 17 18 19 20 4、標準數(shù)組的生成和數(shù)組操作函數(shù) 生成以下數(shù)組或矩陣: (1)長度為4的全1行數(shù)組和44的全1行數(shù)組; (2)5階單位陣; (3)生成一矩陣A,第一行為1、2,第二行為3、4;并使用diag函數(shù)生成A的對角線元素所組成的對角陣。 (4)生成一維數(shù)組A,其值為1~10,并使用reshape函數(shù)把其重排成25的數(shù)組B; (5)使用flipdim和fliplr函數(shù)對B進行翻轉操作,從返回結果觀察和總結各個函數(shù)的作用。 注:flipdim的調用方式為:flipdim(B,1)和flipdim(B,2);其他均為function(B). >> ones(1,4) ans = 1 1 1 1 >> ones(4) ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> eye(5) ans = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 >> A=[1,2;3,4] A = 1 2 3 4 >> B=diag(A) B = 1 4 >> A=[1:10] A = 1 2 3 4 5 6 7 8 9 10 >> B=reshape(A,2,5) B = 1 3 5 7 9 2 4 6 8 10 >> flipdim(B,1) ans = 2 4 6 8 10 1 3 5 7 9 >> flipdim(B,2) ans = 9 7 5 3 1 10 8 6 4 2 >> fliplr(B) ans = 9 7 5 3 1 10 8 6 4 2 5、數(shù)組運算和矩陣運算 生成以下矩陣,,并進行以下計算: (3) B的第二列乘以A的第一列; (4) 使用MATLAB幫助系統(tǒng)查閱max函數(shù)的使用方法,并使用它求解B中的第二列與A中的第一列逐行元素相乘所得矢量中的最大值。 提示:ln函數(shù)在matlab中為log A=[1 4 2;2 4 100;7 9 7;3 pi 42] A = 1.0000 4.0000 2.0000 2.0000 4.0000 100.0000 7.0000 9.0000 7.0000 3.0000 3.1416 42.0000 >> B=log(A) B = 0 1.3863 0.6931 0.6931 1.3863 4.6052 1.9459 2.1972 1.9459 1.0986 1.1447 3.7377 >> C=B(:,2).*A(:,1) C = 1.3863 2.7726 15.3806 3.4342 >> y=max(C) y = 15.3806 A=[1 4 2;2 4 100;7 9 7;3 pi 42] A = 1.0000 4.0000 2.0000 2.0000 4.0000 100.0000 7.0000 9.0000 7.0000 3.0000 3.1416 42.0000 >> B=log(A) B = 0 1.3863 0.6931 0.6931 1.3863 4.6052 1.9459 2.1972 1.9459 1.0986 1.1447 3.7377 >> C=B(:,2).*A(:,1) C = 1.3863 2.7726 15.3806 3.4342 >> y=max(C) y = 15.3806 6、多項式的表達方式及其操作 (4) 求根為5,2+i,2-i,2,3的對應線性方程表達式。 (5) 求以下有理分式部分分式展開式,寫出求解代碼,并根據(jù)返回結果寫出展開式的數(shù)學表達式 (6) 使用roots函數(shù)求方程3x7+2x-1=0的根。 (1) >> x=[5,2+i,2-i,2,3]; >> A=poly(x) A =. 1 -14 76 -204 275 -150 (2) >> A=[1,0,1,0,1,1]; >> B=[1,1,-2,1]; >> [P,r]=deconv(A,B) P = 1 -1 4 r = 0 0 0 -7 10 -3 >> fx=poly2str(P,x) fx = x^2 - 1 x + 4 (3) >> P=[3,0,0,0,0,0,2,-1]; >> x=roots(P) x = -0.8756 + 0.4740i -0.8756 - 0.4740i -0.0740 + 0.9556i -0.0740 - 0.9556i 0.7046 + 0.5007i 0.7046 - 0.5007i 0.4898 + 0.0000i 五、實驗心得 本次實驗中初步接觸了數(shù)組與矩陣的創(chuàng)建和操作。在實驗過程中,由于對公式不熟悉,花費了很多時間,但比第一次做感覺輕松很多。我總結出做該課程需要十分細心,特別要注意標點符號的大小寫,稍微弄錯就無法得出正確結果。同時,做題過程我發(fā)現(xiàn)matlab與C語言相比有相同點,也有很大不同,比如分號的使用,因此不能完全用C語言的思想做該課程。通過這次做報告,我對這門課程的興趣更加濃烈了,但也發(fā)現(xiàn)對這門課程了解太少,以后需要多花時間學習,多動手操作以取得更大進步。- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 廣州大學 學生 實驗 報告 matlab 程序設計
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://kudomayuko.com/p-8063614.html