第一篇:MATLAB實驗指導書
MATLAB及其應用
實驗指導書
物理與信息工程系
目錄
實驗一 MATLAB編程環境..............................................3 實驗二 矩陣基本運算
(一)..........................................5 實驗三 矩陣基本運算
(二)..........................................7 實驗四 矩陣分析...................................................9 實驗五 分支結構程序設計..........................................11 實驗六 循環結構程序設計..........................................13 實驗七 文件操作..................................................15 實驗八 二維曲線的繪制............................................17 實驗九 三維曲線和曲面的繪制......................................19 實驗十 MATLAB數據統計處理........................................21 實驗十一 多項式四則運算..........................................23 實驗十二 線性方程組求解及函數求極值.............................25 實驗一 MATLAB編程環境
一、實驗目的
1.熟悉MATLAB編程環境
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.首先應熟悉MATLAB7.0運行環境,正確操作 2.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)命令窗口的使用。(2)工作空間窗口的使用。(3)工作目錄、搜索路徑的設置。(4)命令歷史記錄窗口的使用。(5)幫助系統的使用。(6)了解各菜單的功能。2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗二 矩陣基本運算
(一)一、實驗目的
1.通過實驗,進一步熟悉MATLAB編程環境 2.通過實驗掌握建立矩陣的幾種方法 3.通過實驗理解常用的矩陣運算
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.首先應熟悉MATLAB7.0運行環境,正確操作 2.自主編寫程序,必要時參考相關資料 3.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)設A和B是兩個同維同大小的矩陣,問:
1)A*B和A.*B的值是否相等? 2)A./B和B.A的值是否相等?
3)A/B和BA的值是否相等?操作過程參照教材中除法的矩陣生成。4)A/B和BA所代表的數學含義是什么?(2)寫出完成下列操作的命令。
1)將矩陣A第2—5行中第1,3,5列元素賦給矩陣B。2)刪除矩陣A的第7號元素。3)將矩陣A的每個元素值加30。4)求矩陣A的大小和維數。(3)下列命令執行后,L1、L2、L3、L4的值分別是多少/ A=1:9;B=10-A;L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗三 矩陣基本運算
(二)一、實驗目的
1.熟悉矩陣的建立方式 2.理解矩陣拆分的方法
3.通過實驗進一步掌握矩陣的基本運算
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
??15?4??83?1??,B??253? 078(1)已知A??????????320???3617??求下列表達式的值:
1)A+6B和A2-B+I(I為單位矩陣,matlab中使用eye來生成)2)A*B,A.*B和B*A 3)A/B和BA
4)[A,B]和 [A([1,3],:);B^2](2)已知
?0.7780??2310?41?45?655?,取出其前三行構成矩陣B,其前兩列構成矩A???325032???543.14??6?9.54陣C,其右下角3×2子矩陣構成矩陣D,B與C的乘積構成矩陣E,分別求E
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗四
矩陣分析
一、實驗目的
1.學會求矩陣的對角線元素、對角陣和逆矩陣 2.學會求矩陣的行列式的值、秩 3.學會求矩陣的特征值和特征向量 4.通過練習熟悉矩陣分析方法
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)使用函數,實現方陣左旋90°或右旋90°的功能。例如,原矩陣為A,A左旋后得到B,右旋后得到C。使用函數rot90(A,k)來實現;
?101112??32?14710??789??65?,???A??25811??B??456?,C??98?????36912??123???12111?4?? 7??10?(2)建立一個方陣A,求A的逆矩陣和A的行列式的值,并驗證A與A-1是互逆的。A的逆(inv(A));A的行列式(det(A))(3)求下列矩陣的主對角線元素、上三角陣、下三角陣、秩和跡。參考教材
?1?12?51?41)A???305??111503?0.43432?2??
2)B????8.9421? 2????9?(4)求矩陣A的特征值。參考教材
10.5??1? A??110.25????0.50.252??2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗五
分支結構程序設計
一、實驗目的
1.理解MATLAB的編程方法
2.掌握if語句和switch語句的使用 3.掌握分支結構程序設計方法
4.通過練習理解MATLAB編程方法和分支結構程序設計方法。
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)從鍵盤輸入一個數,將它反向輸出,例如輸入693,輸出為396(2)輸入一個百分制成績,要求輸出成績等級A,B,C,D,E其中90-100位A,80-89為B,70-79為C,60-69為D,60以下為E 1)分別用if語句和switch語句實現
2)輸入百分制成績后要判斷成績的合理性,對不合理的成績應輸出出錯信息
2.實驗步驟(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗六
循環結構程序設計
一、實驗目的
1、理解循環控制結構的執行過程
2、掌握for語句和while語句的使用
3、掌握循環結構程序設計方法
4、通過練習進一步理解MATLAB的編程方法和循環結構程序設計方法
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)編寫程序實現求兩矩陣A.*B.(2)編寫程序實現求矩陣的轉置。2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗七
文件操作
一、實驗目的
1、掌握文件的建立、打開與關閉和文件的讀寫操作
2、理解文件定位操作
3、通過練習理解文件的基本操作
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 4.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)以讀寫方式打開二進制格式數據文件,將浮點數X添加到文件末尾,將文件內容以浮點數格式讀入變量Z,將文本文件的第二行讀入變量H,向文件尾部移動文件指針6個字節。
sin(x?1.7)ln??x,當x取-3.0、-2.9、-2.8、…、2.8、2.9、3.0時,(2)已知y?21?cos(x?1.7)求各點的函數值。要求:將函數值輸出到一個數據文件中;從數據文件中讀出數據,求各點函數值的平均值;將平均值添加到數據文件末尾。(3)編寫程序,該程序能讀取一個文本文件,并能將文本文件中的小寫字母轉換為相應的大寫字母而生成一個新的文本文件。2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗八
二維曲線的繪制
一、實驗目的
1、理解MATLAB繪圖方法
2、掌握繪制二維數據曲線圖的方法
3、掌握用plot函數和fplot函數繪制曲線的方法
4、通過練習掌握繪制二維數據曲線圖的方法和plot函數和fplot函數的使用
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 4.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)繪制下列曲線:
x1①y?x?
②y?e32?3x22?x?rsint
③x?2y?6④?
y?rcost?22(2)通過用plot和fplot函數繪制y?sin1的曲線,并分析其區別。x解釋:fplot函數的調用格式為: fplot(fname,lims,tol,選項)
其中fname為函數名,以字符串形式出現,lims為x,y的取值范圍,tol為相對允許誤差,其系統默認值為2e-3。選項定義與plot函數相同。2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗九
三維曲線和曲面的繪制
一、實驗目的
1、理解三維曲線的繪制
2、理解曲面圖的繪制
3、通過練習熟悉三維曲線和曲面圖的繪制方法
二、實驗器材
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.自主編寫程序,必要時參考相關資料 2.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)繪制下列三維曲線
?x?e?t/20cost??t/201)?y?esint,0?t?2?
2)?z?t?(2)繪制下列曲面圖
1)z=5,|x|≤5,|y|≤5
2)f(x,y)???x?t?2?y?t,0?t?1 ?z?t3?51?x?y22,x?3,y?3
2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(4)編輯程序并進行保存。
(5)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(6)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗十
MATLAB數據統計處理
一、實驗目的
1、掌握MATLAB求最大最小值的方法
2、掌握MATLAB求均值與方差的方法
3、通過練習以下內容熟悉數據統計處理的幾種方法
二、實驗器材
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.自主編寫程序,必要時參考相關資料 2.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
利用MATLAB提供的rand函數生成30000個符合均勻分布的隨機數,然后檢驗隨機數的性質:均值mean和標準方差std;最大元素max和最小元素min;大于0.5的隨機數個數占總數的百分比 2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(4)編輯程序并進行保存。
(5)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。(6)檢查程序輸出結果。
五、實驗報告要求
1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗十一
多項式四則運算
一、實驗目的
1、掌握多項式求值、求根的方法
2、理解多項式四則運算
3、通過練習熟悉多項式四則運算和多項式求值、求根的方法
二、實驗器材
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.自主編寫程序,必要時參考相關資料 2.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
4322有3個多項式P1(x)?x?2x?4x?5,P2(x)?x?2,P3(x)?x?2x?3,1)求P(x)= P1(x)+ P2(x)P3(x)2)求P(x)的根
3)當x取矩陣A的每一元素時,求P(x)的值,其中
??11.2?1.4?? A??0.7523.5???52.5??0?4)當以矩陣A為自變量時,求P(x)的值 2.實驗步驟(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(4)編輯程序并進行保存。
(5)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(6)檢查程序輸出結果。
五、實驗報告要求
1.整理實驗結果,填入相應表格中 2.小結實驗心得體會 實驗十二
線性方程組求解及函數求極值
一、實驗目的
1、理解線性方程組求解方法
2、理解函數求極值方法
3、通過練習以下內容熟悉求解線性方程組的方法和函數求極值的方法
二、實驗器材
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.自主編寫程序,必要時參考相關資料 2.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)求下列方程組的解
?2x?3y?5z?10?1)?3x?7y?4z?2)
?x?7y?z?5??6x1?5x2?2x3?5x4??4?9x?x?4x?x?13?1234 ?3x?4x?2x?2x?1234?1??3x1?9x2?2x4?11(2)求下列函數在指定區間的最大值
1?x2,x?(0,2)
2)f(x)?sinx?cosx2,x?(0,?)1)f(x)?41?x2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(4)編輯程序并進行保存。
(5)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(6)檢查程序輸出結果。
五、實驗報告要求
1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
第二篇:《MATLAB應用技術》實驗指導書
M A T L A B 實 驗 指 導 書
電子信息工程學院
2012.02
目錄
實驗一
MATLAB安裝與界面............................................................................................1 實驗二
MATLAB符號計算與應用.....................................................................................2 實驗三
MATLAB數值數組與向量化運算..........................................................................4 實驗四
MATLAB數值計算................................................................................................7 實驗五
MATLAB可視化.................................................................................................10 實驗六
M文件及MATLAB綜合應用..............................................................................16
實驗一
Matlab安裝與界面
【實驗目的】 【實驗原理】
1.安裝MATALB軟件,并按理論教學內容逐一熟悉軟件界面及軟件特點。
【實驗儀器】
1.配置在PIV2.0GHZ/512MB以上的PC機; 2.MATALB7.0以上版本軟件。
【實驗內容及步驟】
1.完成MATLAB軟件安裝; 2.熟悉MATLAB運行環境。(1)命令窗口的使用。
(2)工作空間窗口的使用。
(3)工作目錄、搜索路徑的設置。(4)命令歷史記錄窗口的使用。(5)了解各菜單的功能。
3.圖示復數z1?4?3i,z2?1?2i的和展示MATLAB的可視化能力;
4.畫出衰減振蕩曲線y?esin3t,t的取值范圍是[0,4?];展示數組運算的優點及MATLAB的可視化能力。
5.創建一個M文件,輸入步驟4的相關程序,運行程序并變換名稱保存,將工作空間中的y變量的MAT文件變換路徑輸出保存,然后再向內存裝載MAT文件。
6.以命令窗口中輸入help Laplace、help瀏覽器中搜索兩種方式體會MATLAB幫助系統的特點和功能。
?t3
【實驗報告要求】
1.整理實驗結果。2.總結實驗心得體會
/ 17
實驗二
Matlab符號計算與應用
【實驗目的】
1.掌握MATLAB符號計算的基本語法規則
2.掌握MATLAB符號計算求解微積分、線性代數問題 3.熟悉MATLAB符號計算在信號處理領域的應用
【實驗原理】
1.以MATALB與MuPAD庫函數間符號計算機理和基本的微積分運算原理為基礎,研究常見的工程定解問題以及連續信號處理問題。
【實驗儀器】
1.配置在PIV2.0GHZ/512MB以上的PC機; 2.MATALB7.0以上版本軟件。
【實驗內容及步驟】
1.運行下列代碼比較符號(類)數字與數值(類)數字之間的差異。a=pi+sqrt(5)
sa=sym('pi+sqrt(5)')
Ca=class(a)
Csa=class(sa)
vpa(sa-a)
2.熟悉simple命令并簡化f?
31612???8。x3x2x?ab?3.對符號矩陣??進行特征向量分解,并嘗試置換操作。
cd??
4.用簡單算例演示subs的常見置換規則。
5.試用符號計算求lim?1? ?x???1??x2?kx2。
/ 17
??f1??x??x1ex2?1????f2x26.試用符號計算求f(x1,x2)??的Jacobian矩陣???x1?cos(x1)sin(x2)???f???3??x1??1(?1)k?,7.試用符號計算求?[t,k],??。?2k?k?1?(2k?1)t?0t?13??f1??x2???f2?。??x2?f3???x2??
8.試用符號計算求積分
9.根據Fourier變換定義,用積分指令求方波脈沖y??換,并作圖顯示。
10.試用符號計算求d?線性方程組的解。
??? 1 2 x2 x2y x xy(x2?y2?z2)dzdydx。
?2?0?3/2?t?3/2的Fourier變
elsenpn??q,n?d?q?p?10,q?d??p,q?p?n?8d?1224【實驗報告要求】
1.整理實驗結果。
2.總結實驗心得體會
/ 17
實驗三
Matlab數值數組與向量化運算
【實驗目的】
1.掌握MATLAB二維數值數組的創建和尋訪 2.掌握MATLAB數組運算和向量化編程
3.掌握常用標準數組生成函數和數組構作技法 4.數NaN、“空”數組概念和應用;關系和邏輯操作及應用
【實驗原理】
1.在MATALB中,幾乎所有運算對象均被視為一種廣義的矩陣,而在進行大規模數值計算時,將循環運算轉化為矩陣運算可節約代碼量、提高程序運行效率。
【實驗儀器】
1.配置在PIV2.0GHZ/512MB以上的PC機; 2.MATALB7.0以上版本軟件。
【實驗內容及步驟】
1.已知f(t)?tcost,分別用符號計算和數值計算求s(x)?2.一維數組的常用創建方法舉例。(1)a1=1:6
a2=0:pi/4:pi a3=1:-0.1:0
2? x 0f(t)dt,比較二者區別。
(2)b1=linspace(0,pi,4)b2=logspace(0,3,4)(3)c1=[2 pi/2 sqrt(3)3+5i]
(4)rand('state',0)
c2=rand(1,5)a=2.7358;b=33/79;
3.在MATLAB環境下,用下面三條指令創建二維數組C。
C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i]
4.根據現有數據在數組編輯器中創建一個(3?8)的數組。
5.標準數組產生的演示
/ 17
ones(2,4)
randn('state',0)randn(2,3)
D=eye(3)
diag(D)
diag(diag(D))
randsrc(3,20,[-3,-1,1,3],1)
6.熟悉數組元素及子數組的各種標識和尋訪格式;冒號的使用;end的作用。A=zeros(2,6)
A(:)=1:12
A(2,4)
A(8)
A(:,[1,3])
A([1,2,5,6]')
A(:,4:end)
A(2,1:2:5)=[-1,-3,-5]
B=A([1,2,2,2],[1,3,5])
L=A<3
A(L)=NaN
7.數組操作函數reshape, diag, repmat的用法;空陣 [ ] 刪除子數組的用法。
a=1:8
A=reshape(a,4,2)A=reshape(A,2,4)
b=diag(A)
B=diag(b)
D1=repmat(B,2,4)D1([1,3],:)=[ ]
8.歐姆定律:r?
u,其中r, u, i分別是電阻(歐姆)、電壓(伏特)、電流(安培)。驗證i 5 / 17
實驗:據電阻兩端施加的電壓,測量電阻中流過的電流,然后據測得的電壓、電流計算平均電阻值。(測得的電壓電流具體數據見下列程序)。比較向量化運算的優勢一:代碼量少;優勢二:通過加外層循環,用tic toc命令計算時間,體現運算速度快的優勢。(1)非向量化程序
clear vr=[0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41];ir=[0.028, 0.040, 0.100, 0.145, 0.118, 0.258, 0.299, 0.257, 0.308, 0.345];
%--------------------L=length(vr);
for k=1:L r(k)=vr(k)/ir(k);end
%---------------------------sr=0;for k=1:L sr=sr+r(k);
end rm=sr/L
(2)向量化程序
clear vr=[0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41];ir=[0.028, 0.040, 0.100, 0.145, 0.118, 0.258, 0.299, 0.257, 0.308, 0.345];
r=vr./ir rm=mean(r)
9.用“空”數組進行子數組的刪除和大數組的大小收縮 A=reshape(-4:5,2,5)
A(:,[2,4])=[]
10.運行下列程序,體會關系運算的應用。
t=-3*pi:pi/10:3*pi;y=sin(t)./t;
tt=t+(t==0)*eps;yy=sin(tt)./tt;
subplot(1,2,1),plot(t,y),axis([-9,9,-0.5,1.2]), xlabel('t'),ylabel('y'),title('殘缺圖形')subplot(1,2,2),plot(tt,yy),axis([-9,9,-0.5,1.2])xlabel('tt'),ylabel('yy'),title('正確圖形')【實驗報告要求】
1.整理實驗結果。2.總結實驗心得體會
/ 17
實驗四
Matlab數值計算
【實驗目的】
1.掌握MATLAB數值微積分的計算方法 2.掌握MATLAB矩陣和代數方程運算規律 3.熟悉MTALAB處理概率和統計分布問題 4.掌握MTALAB的多項式運算和卷積運算
【實驗原理】
1.數值計算作為MATALB的最主要功能,在工程中有著廣泛的應用,本節將在已有的數學基礎和數字信號處理基礎上,開展一些工程中常用的數值計算,并著重基于MTALAB的內部函數進行編程。
【實驗儀器】
1.配置在PIV2.0GHZ/512MB以上的PC機; 2.MATALB7.0以上版本軟件。
【實驗內容及步驟】
1.已知x?sin(t),求該函數在區間 [0, 2?]中的近似導函數,分析下列程序產生誤差的原因。
d=pi/100;t=0:d:2*pi;x=sin(t);dt=5*eps;
x_eps=sin(t+dt);dxdt_eps=(x_eps-x)/dt;plot(t,x,'LineWidth',5)hold on plot(t,dxdt_eps)hold off legend('x(t)','dx/dt')xlabel('t')
提出的解決方案(供參考):
x_d=sin(t+d);dxdt_d=(x_d-x)/d;hold on plot(t,dxdt_d)hold off legend('x(t)','dx/dt')
/ 17
plot(t,x,'LineWidth',5)xlabel('t')2.已知x?sin(t),采用diff和gradient計算該函數在區間 [0, 2?]中的近似導函數,比較二者區別。
3.分別用梯形積分公式和矩形積分計算積分s(x)???/20y(t)dt,其中y?0.2?sin(t),并以符號計算結果為參考解,通過誤差分析比較上述方法的精度。
4.采用匿名函數方法求s?
5.應用fminseach
函數求著名的Rosenbrock's “Banana” 測試函數
?? 1 2 1 0xydxdy。
f(x,y)?100(y?x2)2?(1?x)2的極小值點。
6.已知矩陣A2?4,B4?3,采用三種不同的編程求這兩個矩陣的乘積C2?3?A2?4B4?3。并用tic、toc計時方法,在重復1000次運算的情況下比較運行時間。
7.隨機產生一個5?5的矩陣,并計算出其行列式、跡、秩、條件數、逆以及特征分解。
8.畫出N=100, p=0.5情況下的二項分布概率特性曲線。
9.運行以下程序,并觀察正態分布標準差的幾何表示。
mu=3;sigma=0.5;
x=mu+sigma*[-3:-1,1:3];yf=normcdf(x,mu,sigma);P=[yf(4)-yf(3),yf(5)-yf(2),yf(6)-yf(1)];xd=1:0.1:5;yd=normpdf(xd,mu,sigma);clf for k=1:3
% xx=x(4-k):sigma/10:x(3+k);yy=normpdf(xx,mu,sigma);
%-subplot(3,1,k),plot(xd,yd,'b');hold on fill([x(4-k),xx,x(3+k)],[0,yy,0],'g');hold off if k<2
/ 17
text(3.8,0.6,'[{mu}-{sigma},{mu}+{sigma}]')kk=int2str(k);text(3.8,0.6,['[{mu}-',kk,'{sigma},{mu}+',kk,'{sigma}]'])else end text(2.8,0.3,num2str(P(k)));shg end xlabel('x');
10.調試下列程序,實現給定數據組x0 , y0,求擬合三階多項式,并圖示擬合情況。改變多項式階數再次圖示并觀察結果變化。
x0=0:0.1:1;y0=[-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22];n=3;P=polyfit(x0,y0,n)
xx=0:0.01:1;yy=polyval(P,xx);plot(xx,yy,'-b',x0,y0,'.r','MarkerSize',20)legend('擬合曲線','原始數據','Location','SouthEast')xlabel('x')
【實驗報告要求】
1.整理實驗結果。2.總結實驗心得體會
/ 17
實驗五
MATLAB可視化
【實驗目的】
1.掌握MATLAB連續函數(信號)的可視化 2.掌握MATLAB二維離散作圖的基本格式
3.熟悉MTALAB三維作圖的基本格式和高級作圖修飾 4.熟悉MTALAB動畫的制作過程
【實驗原理】
1.MATLAB的主要功能和優點之一為可視化,基于plot命令而展開的一系列作圖命令格式為學習本節的基礎
【實驗儀器】
1.配置在PIV2.0GHZ/512MB以上的PC機; 2.MATALB7.0以上版本軟件。
【實驗內容及步驟】
1.用圖形表示連續調制波形y?sin(t)sin(9t)。
t1=(0:11)/11*pi;t2=(0:400)/400*pi;t3=(0:50)/50*pi;y1=sin(t1).*sin(9*t1);y2=sin(t2).*sin(9*t2);y3=sin(t3).*sin(9*t3);subplot(2,2,1),plot(t1,y1,'r.')
%<7> axis([0,pi,-1,1]),title('(1)點過少的離散圖形')subplot(2,2,2),plot(t1,y1,t1,y1,'r.')%<9> axis([0,pi,-1,1]),title('(2)點過少的連續圖形')subplot(2,2,3),plot(t2,y2,'r.')
%<11> axis([0,pi,-1,1]),title('(3)點密集的離散圖形')subplot(2,2,4),plot(t3,y3)
%<13> axis([0,pi,-1,1]),title('(4)點足夠的連續圖形')
2.調試運行二維曲線繪圖指令。
clf
t=(0:pi/50:2*pi)';k=0.4:0.1:1;Y=cos(t)*k;
subplot(1,2,1),plot(t,Y,'LineWidth',1.5)
/ 17
title('By plot(t,Y)'),xlabel('t')subplot(1,2,2),plot(Y,'LineWidth',1.5)title('By plot(Y)'),xlabel('row subscript of Y')
3.用圖形表示連續調制波形y?sin(t)sin(9t)及其包絡線。(圖5.2-2)
t=(0:pi/100:pi)';y1=sin(t)*[1,-1];t3=pi*(0:9)/9;
%<1> %<2> %<3>
% <4>
% <5> y2=sin(t).*sin(9*t);y3=sin(t3).*sin(9*t3);hold on
plot(t,y1,'r:',t,y2,'-bo')% <6> plot(t3,y3,'s','MarkerSize',10,'MarkerEdgeColor',[0,1,0],'MarkerFaceColor',[1,0.8,0])axis([0,pi,-1,1])
% <8> %<9> hold off %<10> %以下指令供讀者比較用。使用時,指令前的 % 號要去除。
%屬性影響該指令中的所有線對象中的離散點。
%plot(t,y1,'r:',t,y2,'-bo',t3,y3,'s','MarkerSize',10,'MarkerEdgeColor',[0,1,0],'MarkerFaceColor',[1,0.8,0])
4.觀察各種軸控制指令的影響。演示采用長軸為3.25,短軸為1.15的橢圓。
t=0:2*pi/99:2*pi;x=1.15*cos(t);y=3.25*sin(t);title('Normal and Grid on')subplot(2,3,2),plot(x,y),axis equal,grid on,title('Equal')subplot(2,3,3),plot(x,y),axis square,grid on,title('Square')subplot(2,3,4),plot(x,y),axis image,box off,title('Image and Box off')subplot(2,3,5),plot(x,y),axis image fill,box off title('Image and Fill')subplot(2,3,6),plot(x,y),axis tight,box off,title('Tight')
subplot(2,3,1),plot(x,y),axis normal,grid on, 5.通過調試下列程序,繪制二階系統階躍響應,綜合演示圖形標識。
clf;t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t);plot(t,y,'r-','LineWidth',3)hold on tt=t(find(abs(y-1)>0.05));ts=max(tt);plot(ts,0.95,'bo','MarkerSize',10)hold off axis([-inf,6*pi,0.6,inf])
set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)])%<9>
/ 17
%<3>
%<5> %<6>
set(gca,'XtickLabel',{'2*pi';'4*pi';'6*pi'})grid on text(13.5,1.2,'fontsize{12}{alpha}=0.3')text(13.5,1.1,'fontsize{12}{omega}=0.7')
cell_string{1}='fontsize{12}uparrow';%<15>
%<10> %<11> set(gca,'YtickLabel',{'0.95';'1';'1.05';'max(y)'})
%<13>
%<14>
cell_string{2}='fontsize{16} fontname{隸書}鎮定時間';cell_string{3}='fontsize{6} ';
%<18>
cell_string{4}=['fontsize{14}rmt_{s} = ' num2str(ts)];text(ts,0.85,cell_string,'Color','b','HorizontalAlignment','Center')
title('fontsize{14}it y = 1-e^{-alpha t}cos{omegat}')xlabel('fontsize{14} bft rightarrow')ylabel('fontsize{14} bfy rightarrow')
6.利用hold繪制離散信號通過零階保持器后產生的波形,驗證疊繪命令
t=2*pi*(0:20)/20;y=cos(t).*exp(-0.4*t);stem(t,y,'g','Color','k');hold on stairs(t,y,':r','LineWidth',3)hold off legend('fontsize{14}it stem','fontsize{14}it stairs')box on
7.運行下列命令,畫出函數y?xsinx和積分驗證雙縱坐標。
clf;dx=0.1;x=0:dx:4;y=x.*sin(x);s=cumtrapz(y)*dx;
%<3>
%<5> %<6> %<4>
%<2> a=plotyy(x,y,x,s,'stem','plot');
s??(xsinx)dx0x在區間[0,4]上的曲線,text(0.5,1.5,'fontsize{14}ity=xsinx')sint='{fontsize{16}int_{fontsize{8}0}^{ x}}';text(2.5,3.5,ss)%<7>
ss=['fontsize{14}its=',sint,'fontsize{14}itxsinxdx'];
set(get(a(1),'Ylabel'),'String','被積函數 ity=xsinx')%<8>
/ 17
set(get(a(2),'Ylabel'),'String',ss)%<9> xlabel('x')
8.運行下列命令,演示subplot指令對圖形窗的分割。
clf;t=(pi*(0:1000)/1000)';y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);subplot(2,2,1),plot(t,y1);axis([0,pi,-1,1])subplot(2,2,2),plot(t,y2);axis([0,pi,-1,1])subplot('position',[0.2,0.1,0.6,0.40])plot(t,y12,'b-',t,[y1,-y1],'r:')axis([0,pi,-1,1])
9.運行下列程序,實現三維曲線繪圖。演示:三維曲線的參數方程;線型、點形和圖例。(圖5.3-1)
t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,'b-',x,y,z,'bd')view([-82,58]),box on xlabel('x'),ylabel('y'),zlabel('z')legend('鏈','寶石')
10.運行下列程序,體會不同燈光、照明、材質指令所表現的圖形。
clf;[X,Y,Z]=sphere(40);colormap(jet)
%<3>
%<8> %<4>
%<5>
%<6> %<7>
%<10>
subplot(1,2,1),surf(X,Y,Z),axis equal off,shading interp light('position',[0-10 1.5],'style','infinite')lighting phong material shiny subplot(1,2,2),surf(X,Y,Z,-Z),axis equal off,shading flat light;lighting flat %<9> light('position',[-1,-1,-2],'color','y')%<11> light('position',[-1,0.5,1],'style','local','color','w')set(gcf,'Color','w')
11.透視圖。
/ 17
[X0,Y0,Z0]=sphere(30);X=2*X0;Y=2*Y0;Z=2*Z0;surf(X0,Y0,Z0);shading interp hold off hidden off
hold on,mesh(X,Y,Z),colormap(hot)
axis equal,axis off
title('No.2 surf(X,Y,Z,abs(dz2))')
12.實時動畫:制作紅色小球沿一條帶封閉路徑的下旋螺線運動的實時動畫(圖5.4-5)。(1)anim_zzy1.m
function f=anim_zzy1(K,ki)% anim_zzy1.m 演示紅色小球沿一條封閉螺線運動的實時動畫
% 僅演示實時動畫的調用格式為
anim_zzy1(K)
% 既演示實時動畫又拍攝照片的調用格式為
f=anim_zzy1(K,ki)
% K
紅球運動的循環數(不小于1)
% ki
指定拍攝照片的瞬間,取 1 到 1034 間的任意整數。
% f
存儲拍攝的照片數據,可用image(f.cdata)觀察照片。
%
t1=(0:1000)/1000*10*pi;x1=cos(t1);y1=sin(t1);z1=-t1;t2=(0:10)/10;x2=x1(end)*(1-t2);y2=y1(end)*(1-t2);z2=z1(end)*ones(size(x2));t3=t2;z3=(1-t3)*z1(end);x3=zeros(size(z3));y3=x3;t4=t2;x4=t4;y4=zeros(size(x4));z4=y4;x=[x1 x2 x3 x4];y=[y1 y2 y3 y4];z=[z1 z2 z3 z4];plot3(x,y,z,'Color',[1,0.6,0.4],'LineWidth',2.5)axis off %
h=line('xdata',x(1),'ydata',y(1),'zdata',z(1),'Color',[1 0 0],'Marker', '.', 'MarkerSize',40,'EraseMode','xor');> %
n=length(x);i=2;j=1;while 1
set(h,'xdata',x(i),'ydata',y(i),'zdata',z(i));
drawnow;
% <22>
pause(0.0005)
% <23>
i=i+1;
if nargin==2 & nargout==1
if(i==ki&j==1);f=getframe(gcf);end
% <26>
end
if i>n
/ 17
i=1;j=j+1;
if j>K;break;end
end end
(2)
f=anim_zzy1(2,450);(3)
image(f.cdata),axis off
【實驗報告要求】
1.整理實驗結果。2.總結實驗心得體會
/ 17
實驗六
M文件及MATLAB綜合應用
【實驗目的】
1.掌握MATLABM文件的編寫 2.掌握MATLAB控制流的使用
3.熟悉MTALAB仿真工具箱的使用
4.了解MTALAB notebook的功能
【實驗原理】
1.應用MATLAB的M文件編寫中、大型程序是學習該門課程的重要目的,其他如SIMULINK仿真工具箱的應用也是分析工程問題的重要手段。
【實驗儀器】
1.配置在PIV2.0GHZ/512MB以上的PC機; 2.MATALB7.0以上版本軟件。
【實驗內容及步驟】
?x?31.已知函數y??x?e?x?1?x??1?1?x?1,編寫能對任意一組輸入x值求相應y值的程序。1?x2.已知學生的名字和百分制分數。要求根據學生的百分制分數,分別采用“滿分”、“優秀”、“良好”、“及格”和“不及格”等表示學生的學習成績。創建Hilbert矩陣。3.Hilbert矩陣a(i,j)?1。
i?j?1??N??1?1?4.編寫計算S??n,其中N?argmin?N???,?是預先給定的控制精度。n?1??k?k???k?1?k?1?通過本程序掌握MATLAB編程的基本規范。
5.創建n階魔方矩陣,限定條件是n為能被4整除的偶數。所謂魔方矩陣(Magic matrix),是指那矩陣由1到n的正整數按照一定規則排列而成,并且每列、每行、每條對角線元素2n(n2?1)的和都等于。就生成規則而言,魔方矩陣可分成三類:一,n為奇數;二,n為2不能被4整除的偶數;三,n為能被4整除的偶數。
/ 17
6.編寫一個M函數文件。它具有以下功能:(A)根據指定的半徑,畫出藍色圓周線;(B)可以通過輸入字符串,改變圓周線的顏色、線型;(C)假若需要輸出圓面積,則繪出圓。
7.編寫一個內含子函數的M函數繪圖文件。
8.在下圖所示的系統中,已知質量m?1kg,阻尼b?2N.sec/m,彈簧系數k?100N/m,且質量塊的初始位移x(0)?0.05m,其初始速度x?(0)?0m/sec,要求創建該系統的SIMULINK模型,并進行仿真運行。
9.創建一個notebook文件,簡單調試一個作圖程序,體會notebook功能。
【實驗報告要求】
1.整理實驗結果。2.總結實驗心得體會
/ 17
第三篇:MATLAB實驗指導書
MATLAB 實驗指導書
皖西學院信息工程學院 實驗一 MATLAB編程環境及簡單命令的執行
一、實驗目的
1.熟悉MATLAB編程環境
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.首先應熟悉MATLAB7.0運行環境,正確操作 2.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)命令窗口的使用。(2)工作空間窗口的使用。(3)工作目錄、搜索路徑的設置。(4)命令歷史記錄窗口的使用。(5)幫助系統的使用。(6)了解各菜單的功能。2.實驗步驟
(1)啟動MATLAB,熟悉MATLAB的桌面。(2)進入MATLAB7.0集成環境。
(3)在命令窗口執行命令完成以下運算,觀察workspace的變化,記錄運算結果。
1)(365-52?2-70)?3 2)>>area=pi*2.5^2 3)已知x=3,y=4,在MATLAB中求z:
x2y3 z?2?x?y?4)將下面的矩陣賦值給變量m1,在workspace中察看m1在內存中占用的字節數。
?162313??511108?? m1=??97612???414151??執行以下命令 >>m1(2 , 3)>>m1(11)>>m1(: , 3)>>m1(2 : 3 , 1 : 3)>>m1(1 ,4)+ m1(2 ,3)+ m1(3 ,2)+ m1(4 ,1)5)執行命令>>help abs 查看函數abs的用法及用途,計算abs(3 + 4i)6)執行命令
>>x=0:0.1:6*pi;>>y=5*sin(x);>>plot(x,y)7)運行MATLAB的演示程序,>>demo,以便對MATLAB有一個總體了解。
五、思考題
1、以下變量名是否合法?為什么?(1)x2(2)3col(3)_row(4)for
2、求以下變量的值,并在MATLAB中驗證。(1)a = 1 : 2 : 5;(2)b = [ a' a' a' ];(3)c = a + b(2 , :)。
六、實驗報告要求1.整理實驗結果,按順序填寫實驗結果 2.小結實驗心得體會
實驗二 矩陣基本運算
(一)一、實驗目的
1.通過實驗,進一步熟悉MATLAB編程環境 2.通過實驗掌握建立矩陣的幾種方法 3.通過實驗理解常用的矩陣運算
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.首先應熟悉MATLAB7.0運行環境,正確操作 2.自主編寫程序,必要時參考相關資料 3.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)設A和B是兩個同維同大小的矩陣,問:
1)A*B和A.*B的值是否相等? 2)A./B和B.A的值是否相等? 3)A/B和BA的值是否相等?
4)A/B和BA所代表的數學含義是什么?(2)寫出完成下列操作的命令。
1)將矩陣A第2—5行中第1,3,5列元素賦給矩陣B。2)刪除矩陣A的第7號元素。3)將矩陣A的每個元素值加30。4)求矩陣A的大小和維數。
5)將含有12個元素的向量x轉換成3*4矩陣。6)求一個字符串的ASCII碼。7)求一個ASCII碼所對應的字符。
(3)下列命令執行后,L1、L2、L3、L4的值分別是多少?
A=1:9;B=10-A;L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、思考題
用MATLAB求下面的的方程組。
21?2??x1??4??7?9153?2??x??7????2???? 1)???2?2115??x3???1???????13213???x4??0??x?y?z?1?x?2y?z?w?8?2)?
?2x?y?3w?3??3x?3y?5z?6w?5
六、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗三 矩陣基本運算
(二)一、實驗目的
1.熟悉矩陣和向量的建立方式 2.理解矩陣拆分的方法
3.通過實驗進一步掌握矩陣的基本運算
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
??15?4??83?1??,B??253? 078(1)已知A??????????320???3617??求下列表達式的值:
1)A+6B和A2-B+I(I為單位矩陣)2)A*B,A.*B和B*A 3)A/B和BA
4)[A,B]和 [A([1,3],:);B^2](2)已知 ?0.7780??2310?41?45?655?,取出其前三行構成矩陣B,其前兩列構成矩A???325032???6?9.54543.14??陣C,其右下角3×2子矩陣構成矩陣D,B與C的乘積構成矩陣E,分別求E
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、思考題
n?10?99102?2?2???2?2?,求y=?(循環語句做)10y? n??10
六、實驗報告要求
1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗四
矩陣分析
一、實驗目的
1.學會求矩陣的對角線元素、對角陣和逆矩陣 2.學會求矩陣的行列式的值、秩 3.學會求矩陣的特征值和特征向量 4.通過練習熟悉矩陣分析方法
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)使用函數,實現方陣左旋90°或右旋90°的功能。例如,原矩陣為A,A左旋后得到B,右旋后得到C。
?101112??32?14710??789??65???,C??A??25811?,B???456??98??????36912??123??12111?4?? 7??10?(2)建立一個方陣A,求A的逆矩陣和A的行列式的值,并驗證A與A-1是互逆的。
(3)求下列矩陣的主對角線元素、上三角陣、下三角陣、秩和跡(矩陣對角線元素之和,也等于矩陣的特征值之和)。
?1?12?51?41)A???305??111503?0.43432?2??
2)B?? ???2??8.9421??9?(4)求矩陣A的特征值其中V是特征向量,D為特征值)和相應的特征向量。
10.5??1? A??110.25????0.50.252??2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗五
分支結構程序設計
一、實驗目的
1.理解MATLAB的編程方法
2.掌握if語句和switch語句的使用 3.掌握分支結構程序設計方法
4.通過練習理解MATLAB編程方法和分支結構程序設計方法。
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)從鍵盤輸入1到5000之內的一個數,例如輸入693,輸出為396,如果數據超出范圍,請輸出提示“輸入數據有誤,請輸入1~5000之內的數”將它反向輸出,如果數據是個位數,則直接輸出。(2)輸入一個百分制成績,要求輸出成績等級A,B,C,D,E其中90-100位A,80-89為B,70-79為C,60-69為D,60以下為E 1)分別用if語句和switch語句實現
2)輸入百分制成績后要判斷成績的合理性,對不合理的成績應輸出出錯信息
(3)某商場對顧客所購買的商品實行打折銷售,標準如下(商品價格用price 來表示):
price<200 沒有折扣;200≤price<500 3%折扣;500≤price<1000 5%折扣; 1000≤price<2500 8%折扣;2500≤price<5000 10%折扣;5000≤price 14%折扣,輸入所售商品的價格,求其實際銷售價 2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、思考題
1、一個三位整數各位數字的立方和等于該數本身,則稱該數為水仙花數。試編寫程序找到并輸出全部水仙花數
六、實驗報告要求
1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗六
循環結構程序設計
一、實驗目的
1、理解循環控制結構的執行過程
2、掌握for語句和while語句的使用
3、掌握循環結構程序設計方法
4、通過練習進一步理解MATLAB的編程方法和循環結構程序設計方法
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)隨機產生二個相同維數的方陣A、B,其元素全為整數,且在0~10之間,試編寫程序實現求兩矩陣A*B,A.*B。
(2)隨機產生一個4X4的矩陣A,編寫程序實現求矩陣的轉置。(3)若一個數等于它的各個真因子之和,則稱該數為完數,如6=1+2+3,所以6 是完數。求[1 500]之間的全部完數(4)寫一程序求1!+2!+?+10!
(5)鍵盤上輸隨便輸入一個矩陣,試編程找出矩陣A 中最大元素和最小元素所在的行列號 2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗七
曲線、曲面圖的繪制
一、實驗目的
1、理解MATLAB繪圖方法
2、掌握繪制二、三維數據曲線圖的方法
3、掌握用plot函數和fplot函數繪制曲線的方法
4、通過練習掌握繪制二維數據曲線圖的方法和plot函數和fplot函數的使用
5、通過練習熟悉三維曲線和曲面圖的繪制方法
二、實驗環境
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.熟練操作MATLAB7.0運行環境 2.自主編寫程序,必要時參考相關資料 3.實驗前應寫出程序大致框架或完整的程序代碼 4.實驗學時:2學時
四、實驗內容和步驟
1.實驗內容
(1)繪制下列曲線:
x?x?rsintx312①y?x?
②y? e
③x2?2y2?6④?32??y?rcost2(2)通過用plot和fplot函數繪制y?sin(3)繪制下列三維曲線
1的曲線,并分析其區別。
x?x?e?t/20cost?1)?y?e?t/20sint,0?t?2?
?z?t??x?t?2)?y?t2,0?t?1
?z?t3?2.實驗步驟
(1)分析實驗內容,寫出程序大致框架或完整的程序代碼。(2)進入MATLAB7.0集成環境。(3)編輯程序并進行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復進行到不顯示出錯為止。
(5)檢查程序輸出結果。
五、思考題
繪制曲面圖f(x,y)??51?x?y22,x?3,y?3
六、實驗報告要求
1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
實驗八
Simulink建模仿真
一、實驗目的
學會SIMULINK仿真基本操作
二、實驗器材
1.計算機
2.MATLAB7.0集成環境
三、實驗說明
1.自主編寫程序,必要時參考相關資料 2.實驗前應寫出程序大致框架或完整的程序代碼 5.實驗學時:2學時
四、實驗內容和步驟
1. 實驗內容
(1)在MATLAB命令窗口中輸入simulink 結果是在桌面上出現一個稱為Simulink Library Browser的窗口,在這個窗口中列出了按功能分類的各種模塊的名稱。
也可以通過MATLAB主窗口的快捷按鈕來打開Simulink Library Browser窗口。
(2)SIMILINK模塊庫按功能進行分為以下8類子庫:
? Continuous(連續模塊)? Discrete(離散模塊)
? Function&Tables(函數和平臺模塊)? Math(數學模塊)? Nonlinear(非線性模塊)? Signals&Systems(信號和系統模塊)? Sinks(接收器模塊)? Sources(輸入源模塊)
(3)簡單模型的建立
1)建立模型窗口
2)將功能模塊由模塊庫窗口復制到模型窗口 3)對模塊進行連接,從而構成需要的系統模型
(4)功能模塊的基本操作,包括模塊的移動、復制、刪除、轉向、改變大小、模塊命名、顏色設定、參數設定、屬性設定、模塊輸入輸出信號等。
? 模塊庫中的模塊可以直接用鼠標進行拖曳(選中模塊,按住鼠標左鍵不放)而放到模型窗口中進行處理。
? 在模型窗口中,選中模塊,則其4個角會出現黑色標記。此時可以對模塊進行以下的基本操作。
1)移動:選中模塊,按住鼠標左鍵將其拖曳到所需的位置即可。若要脫離線而移動,可按住shift鍵,再進行拖曳。
2)復制:選中模塊,然后按住鼠標右鍵進行拖曳即可復制同樣的一個功能模塊。
3)刪除:選中模塊,按Delete鍵即可。
4)轉向:為了能夠順序連接功能模塊的輸入和輸出端,功能模塊有時需要轉向。在菜單Format中選擇Flip Block旋轉180度,選擇Rotate Block順時針旋轉90度。
5)改變大小:選中模塊,對模塊出現的4個黑色標記進行拖曳即可。6)模塊命名:先用鼠標在需要更改的名稱上單擊一下,然后直接更改即可。7)顏色設定: Format菜單中的Foreground Color可以改變模塊的前景顏色,Background Color可以改變模塊的背景顏色;而模型窗口的顏色可以通過Screen Color來改變。
8)參數設定:用鼠標雙擊模塊,就可以進入模塊的參數設定窗口,從而對模塊進行參數設定。
9)屬性設定:選中模塊,打開Edit菜單的Block Properties可以對模塊進行屬性設定。10)模塊的輸入輸出信號:模塊處理的信號包括標量信號和向量信號;標量信號是一種單一信號,而向量信號為一種復合信號,是多個信號的集合,它對應著系統中幾條連線的合成。
(5)仿真:構建好一個系統的模型之后,接下來的事情就是運行模型,得出仿真結果。運行一個仿真的完整過程分成三個步驟:設置仿真參數,啟動仿真和仿真結果分析 2.實驗步驟
(1)打開Simulink Library Browser窗口,練習功能模塊的基本操作。
(2)用MATLAB對一階慣性環節的動態特性進行仿真研究。
G(S)?1S?1
仿真系統模型圖
(3)用MATLAB對下列控制系統的動態特性進行仿真研究。
G(S)?G(S)?1
S2?4S?82 322S?3S?S?8
(4)已知系統的狀態方程為
其中
y 1(0)=
0.25,y2(0)=0.25,請構建該系統的仿真模型,并用XYGraph模型觀察y1,y2軌跡。
(5)利用 SIMULINK 及其標準模塊設計一個低通濾波器,從受噪聲干擾的多頻率混合信號x(t)中獲取10Hz 的信號。其中x(t)= sin(2p ×10 × t)+ cos(2p ×100 × t)+ n(t),而n(t)~ N(0,0.2)
五、實驗報告要求1.整理實驗結果,填入相應表格中 2.小結實驗心得體會
第四篇:MATLAB實驗4
學 生 實 驗 報 告
課程名稱:
學生學號:
所屬院部:
(理工類)
專業班級:
學生姓名:
指導教師: ——20 學年 第 學期
實驗項目名稱: MATLAB綜合運用 實驗學時: 同組學生姓名: 實驗地點: 實驗日期: 實驗成績: 批改教師: 批改時間:
一、實驗目的和要求
1、會用MATLAB求電阻電路。(節點電壓法、戴維南定理等)
2、會用MATLAB求正弦穩態電路。
3、掌握自動控制系統中模型的轉換方法。
4、會用MATLAB求自動控制系統的傳遞函數。
二、實驗儀器和設備
計算機一臺
三、實驗過程
1、已知條件如下圖所示。求:RL為何值時,能獲得最大功率.U1 U2
RL
R1=6Ω R2=1Ω R3=3Ω
經過R1的電流為I1,經過R2的電流為I2,把RL用電流源代替(Ia方向從上到下),經過電路化簡得:Ia=4/3+I2 列出節點方程:(1/6+1+1/3)U1-U2=I1(其中I1=12/6=2A,I2=2A)(節點電流的流入和流出)
-U1+U2=I2-Ia(等效的U1,U2)
運用MATLAB計算出U1,U2的值,U2即是戴維南等效電路中的Uoc,令電壓源短路,電流源斷路,求得ab左邊等效電阻Req,當Req=RL時,PMAX=Uoc^2/4Req
2、已知Us=100V,I1=100mA,電路吸收功率P=6W,XL1=1250?,XC2=750?,電路呈感性,求R3及XL3。
設電源的總阻抗為Z?R?jX,由圖可知Z?Z1?UZ2*Z3,總阻抗的模為Z?s
IZ2?Z3由于Z1,Z2為純阻抗元件,它們不吸收有功功率,故
R?P I22Z?R2?X2?X??Z?R2 得知電感電路呈感性,取“+”,即有Z?R?jX Z2,Z3的并聯阻抗為Z23?Z?Z1?Z?jXL1 而Z3?Z2*Z23
Z2?Z23有R3?real(Z3),XL3=imag(Z3)
3、求圖示系統的傳遞函數,其中K1=10,K2=20。
4、已知系統狀態空間模型為:
求其零極點模型。
5、系統的零極點增益模型如下:
求系統的傳遞函數模型和狀態空間模型。
四、實驗結果與分析
在本次實驗中,初步了解了MATLAB在自動控制系統中的運用,通過從實驗中得到的鍛煉,提高了動手能力和自我學習能力。
第五篇:matlab實驗心得體會
matlab實驗心得體會
]這個就是我自己做出來的,發現用soundsc聽出來還行,但是用wavwrite就變的很難聽。后來發現PB寫的很好,而且還能夠把前面一段沒有噪音的部分給保存下來,我就看了他的代碼,有幾點體會:
1.將代碼寫在.m文件里,這樣只需要該文件里的就可以而不必每次都去敲命令;
2.PB對于vector使用的比較熟,我一開始也想到能不能只將后面一段由噪聲的給濾掉而保留以前的,但是沒想到什么方法,看了PB的代碼發現,他對于vector了解的比較深刻,我上面的想法最后只使用一句代碼就搞定了
3.對于噪聲頻率,一定要選準確,PB對每一段噪聲只使用的一個頻率,就將噪聲濾干凈了,我用了每段噪聲附近的幾個波形還沒有得到理想波形,最后我發現我選的中心頻率和PB的只相差10~25赫茲,所以一定要精確,后來WH又試了一下,只發現改變5HZ的頻率都不行
4.加入團隊以來,尤其是加入種子班之后就一直告誡自己要時刻抱著一個學習的心態,對于任務不要只是敷衍,完成就好,而是自己一定要從中學到東西,而且在這個過程中一定要逐步掌握自己的學習方法,但是就是這個Matlab,我就是在敷衍了事,所以沒有什么事情是可以敷衍的,學習發生在每時每刻,不能因為這是必上的課程而自己沒有興趣就蒙混過關,應該利用這個機會鍛煉自己,積極起來,改變自己懶惰的弱點。
PS:附上修改后的代碼
%get the samples rate and vector of the wave [xx, fs] = wavread('SunshineSquare');xx = xx';specgram(xx, [], fs);
%^get the A from the frequencies of the noises fnoise = [0 1575 3150 4725];ww = 2*pi*fnoise/fs;A =-2*cos(ww);
%seperate the wave based on the tone “du” leng = length(xx);du = floor((7.749/10.791)*leng);
%determine the h[n] of correspond noise hh = [1 A(1)1];for i = 2:4 hh1 = [1 A(i)1];hh = conv(hh, hh1);end
%filter the noise yy = filter(hh, 1, xx);%delete the tone “du” yy(du100 : du + 80)= 0;figure(2);specgram(yy, [], fs);wavwrite(yy,fs,32,'filter1');
%replace the wave which has been filtered with the good part du = floor((7.749/10.791)*leng);yy(1:du)=xx(1:du);%delete the tone “du” yy(du100 : du + 80)= 0;
%paint the picture and play it figure(3);specgram(yy, [], fs);soundsc(yy,fs);wavwrite(yy,fs,32,'filter2');