matlab實習試驗報告_第1頁
matlab實習試驗報告_第2頁
matlab實習試驗報告_第3頁
matlab實習試驗報告_第4頁
matlab實習試驗報告_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯——matlab實習試驗報告

試驗報告:分支語句一、試驗目的:

1.把握使用分支語句;

2.把握自上而下程序設計技術方法.二、試驗內容及要求:

1.試驗內容:

1).編寫MATLAB語句計算y(t)的值

??3t2?5t?0y(t)??2

?3t?5t?0已知t從-5到5每隔0.5取一次值。運用循環和選擇語句進行計算。2).用向量算法解決練習1,比較這兩個方案的耗時。三、設計思路:

1.用循環和選擇語句進行計算:1).定義自變量t:t=-5:0.5:5;2).用循環語句實現對自變量的遍歷。

3).用選擇語句實現對自變量的判斷,選擇。

4).將選擇語句置入循環語句中,則實現在遍歷中對數據的選擇,從而實現程序的功能。2.用向量法實現:

1).定義自變量t:t=-5:0.5:5;

2).用b=t>=0語句,將t>=0得數據選擇出,再通過向量運算y(b)=-3*t(b).^2+5;得出結果。

3).用取反運算,選擇出剩下的數據,在進行向量運算,得出結果。四、試驗程序和結果1.試驗程序clear%clc

tic;t=-5:0.5:5;

forii=1:size(t,2)columns.

if(t(ii)=0;

y(b)=-3*t(b).^2+5;

%b=t>clear>>y_t

Elapsedtimeis0.998095seconds.Elapsedtimeis0.338708seconds.>>

2

五、試驗總結:

本次試驗分支語句的使用和自上而下的程序設計技術。通過本試驗我們學會的利用matlab來編寫和設計程序語句。循環、分支語句語句的作用是允許我們來控制語句的執行順序:選擇結構,用選擇執行特定的語句;循環結構,用于重復執行特定部分的代碼。

3試驗報告:循環語句

一、試驗目的:

1.把握循環語句的使用方法;

2.把握自上而下的程序設計方法.二、試驗內容:

1.編寫在給定的數內一個程序計算奇數之和.2.計算斐波那契數的第幾個斐波那契數

f(1)?1f(2)?2

f(3)?f(n?1)?f(n?2)…三、設計思路:

1.試驗一:編寫一個程序計算出在給定數量的奇數之和。1).用mod(x,2)判斷用戶輸入的是奇數還偶數,mod(x,2)表示,x除以2的余數。2).當mod(x,2)~=0時,表示該數是奇數,相加。3).當mod(x,2)==0時,表示該數是偶數,應舍棄。

2.試驗二:計算斐波那契數列的第n個斐波那契數

1)根據Fibnacci數列的定義,該數列可以分成3種狀況,應用分支語句,根據狀況作出選擇。

2)根據Fibnacci數列的定義,當n>3時,f(n)=f(n-1)+f(n-2)是一個遞歸調用,可以用遞歸調用實現。四、試驗程序和結果

1.試驗一:編寫一個程序計算出在給定數量的奇數之和。sum=0;

x=input('請輸入一個奇數(輸入0表示輸入終止)');whilex~=0

ifmod(x,2)~=0%取余,是奇數,則相加sum=sum+x;end

ifmod(x,2)==0%排除偶數disp('該書不是奇數');end

x=input('請輸入一個奇數(輸入0表示輸入終止)');end

fprintf('所有奇數的和為%f',sum);

試驗結果:

4

>>clear>>odd

函數功能:計算用戶輸入奇數的和

請輸入一個奇數(輸入0表示輸入終止)1請輸入一個奇數(輸入0表示輸入終止)3請輸入一個奇數(輸入0表示輸入終止)5請輸入一個奇數(輸入0表示輸入終止)7請輸入一個奇數(輸入0表示輸入終止)9請輸入一個奇數(輸入0表示輸入終止)4該數不是奇數

請輸入一個奇數(輸入0表示輸入終止)6該數不是奇數

請輸入一個奇數(輸入0表示輸入終止)0所有奇數的和為25.000000>>

2.試驗二:計算斐波那契數列的第n個斐波那契數方法一:

試驗程序:創立m文件:Fib.mfunctiony=Fib(n);

switch(n)case{1},y=1;case{2},y=2;otherwise,

y=Fib(n-1)+Fib(n-2);end

試驗結果:>>clear>>Fib(3)ans=3>>Fib(4)ans=5>>Fib(5)ans=8>>

五、試驗總結:

本試驗是在matlab上編寫的設計循環語句的算法,需要確定程序所需地輸入量和程序所產生的輸出量,將算法轉化為MATLAB語句,最終調試MATLAB程序。讓我們又學到一種新的語句的在matlab上的運用。

5

試驗報告:用戶自定義函數

一、試驗目的:

(1)把握函數文件結構.(2)把握按值傳遞方案.

(3)把握計劃的不同數量的輸入和輸出.二、試驗內容:

(1)寫三個MATLAB函數來計算雙曲正弦、余弦和正切函數.

ex?e?xex?e?xex?e?xsinh(x)?,cosh(x)?,tanh(x)?x

22e?e?x用你的函數來繪制形狀正弦、余弦和正切函數。

(2)最小值和最大值的一個函數。寫一個函數,試圖找到最大值與最小值的任意函數f(x)在一定范圍內。函數的評估應當傳遞給函數作為調用參數。這個函數應當有下面的輸入參數.

first_value第一個x的值來探尋last_value最終的x值來探尋

num_steps這個數量的步驟包括在探尋

func函數的名稱來探尋功能應當有下面的輸出參數.xmin找x的最大值min_value找到f(x)最小值xmax找x的最大值max_value找到f(x)最小值三、設計思路:

1.試驗一:計算數x的雙曲正弦,雙曲余弦和雙曲正切,并畫出它們所對應的圖象。1).定義向量x=-pi:pi/200:pi;

2).x的雙曲正弦,雙曲余弦和雙曲正切的表達式:sinh=(exp(x)-exp(-x))/2;cosh=(exp(x)+exp(-x))/2;

tanh=(exp(x)-exp(-x))/(exp(x)+exp(-x));

3).用plot函數將圖像輸出。

2.試驗二:計算函數的最大值和最小值1).需要用戶輸入的數據:

first_value--x的第一個值last_value--x的最終一個值num_steps--x取值的步長func--所要求的值的函數名

2).可以得到自變量的向量為ss=first:numstep:last;

由tt=feval(func,ss);得到函數值的向量。

3).調用min,max函數,可以得到函數的最小值和最大值。

4).通過循環,分支語句,找到當函數取得最小值和最大值時的自變量的值。四、試驗程序和結果

1.試驗一:計算數x的雙曲正弦,雙曲余弦和雙曲正切,并畫出它們所對應的圖象。

1).試驗程序:

6

functiony=hyp()clearclc

x=-pi:pi/200:pi;x=-pi:pi/200:pi;

sinh=(exp(x)-exp(-x))/2;cosh=(exp(x)+exp(-x))/2;

tanh=(exp(x)-exp(-x))/(exp(x)+exp(-x));figure(1);

%subplot(3,1,1)plot(x,sinh);xlabel('\\bfx');ylabel('\\bfy');

title('雙曲正弦的函數圖像');legend('sinh');figure(2);

%subplot(3,1,2)plot(x,cosh);xlabel('\\bfx');ylabel('\\bfy');

title('雙曲余弦的函數圖像');legend('cosh');figure(3);

%subplot(3,1,3)plot(x,tanh);xlabel('\\bfx');ylabel('\\bfy');

title('雙曲正切的函數圖像');legend('tanh');figure(4);

plot(x,sinh,'r',x,cosh,'k',x,tanh,'b');xlabel('\\bfx');ylabel('\\bfy');

title('雙曲正弦,余弦和正切函數的圖像');legend('sinh','cosh','tanh');

2).試驗結果

7

2.試驗二:計算函數的最大值和最小值1).試驗程序:Function

[xmin,minvalue,xmax,maxvalue]=maxminfun(first,numstep,last,func)ss=first:numstep:last;tt=feval(func,ss);xmin=ss(1);%求最小值xmax=ss(1);%求最大值minvalue=tt(1);

8

maxvalue=tt(1);

forii=1:size(tt,2)

if(tt(ii)>maxvalue)xmax=ss(ii);

maxvalue=tt(ii);end

if(tt(ii)>[xmin,minvalue,xmax,maxvalue]=maxminfun(-1,0.1,6,'func')xmin=-1minvalue=1xmax=6

maxvalue=218>>

五,試驗總結:

本次試驗是用戶自定義函數,把握函數文件結構和按值傳遞方案和計劃的不同數量的輸入和輸出。入參數列表接受輸入數據,它通過輸出參數列表返回結果給輸出參數列表。當函數被調用時,它們只是從調用者得來實際變量的占位符而已。相像地,輸出參數列表也形參組成,當函數終止運行時,這些形參是返回到調用者的值的占位符。在一個表達式中,調用一個函數需要用到實參列表。在命令窗口直接另一個函數中)鍵入函數的名字就可以調用這個函數了。當調用一個函數時,

9試驗報告:Matlab繪圖

一、試驗目的:1.把握Matlab繪圖.2.了解網、表面輪廓的命令.二、試驗內容:

1.繪制函數v(t)?2sin3tfor???t??使用函數圖(t,v),什么是顯示在圖嗎?

2.繪制函數v(t)?2sin3tfor???t??使用函數圖(v)。3.嘗試使用更繁雜的函數三、設計思路:

1.本程序用以繪圖的相關操作,無需用戶輸入數據,但要輸出圖形。2.自變量范圍:t=-pi:pi/300:pi;3.函數為:v=2*sin(3*t);

4.根據要求,調用plot函數,輸出圖像。

四、試驗程序和結果

1.試驗程序:創立m文件:plot2.m

clear%clc

t=-pi:pi/300:pi;v=2*sin(3*t);subplot(2,1,1);plot(t,v,'k');xlabel('\\bft');ylabel('\\bfv');

title('v(t)=2sin(3t)plot(t,v)');

subplot(2,1,2);plot(v);

xlabel('\\bfn');ylabel('\\bfv');

title('v(t)=2sin(3t)plot(v)');

2.試驗結果:

10

五、試驗總結

MATLAB的擴展性和機制獨立的畫圖功能是一個極其重要的功能.這個功能使數據畫圖變得十分簡單.畫一個數據圖,首先要創立兩個向量,由x,y構成,然后使用plot函數.給圖增加標題和坐標軸標簽將會用到title,xlabel,ylable函數。調用每個函數時將會有一個字符串,這個字符串包含了圖象標題和坐標軸標簽的信息。用grid命令可使網格線出現或消失在圖象中,gridon代表在圖象中出現網格線,gridoff代表去除網格線。MATLAB具有強大的畫圖功能,這也是其特點之一。

11

試驗報告:輸入/輸出功能一、試驗目的:

二、把握輸入/輸出功能。三、試驗內容:

1.創立一個*。dat文件在編輯窗口,觀測該文件。2.讀這個文件通過“加載〞和打印在命令窗口。

3.寫一個系列的數據到一個文件寫入文件(格式)和觀測文件。

4.閱讀這個系列的數據從文件從文件中讀(格式)并打印在命令窗口來測試.

fid=fopen

count=fwrite(fid,array,precision)[array,count]=fread(fid,size,precision)status=fclose(fid)四、設計思路:

1.創立文件:fopen('myfile1.dat','w');'w'刪除一個已存在文件內容或建立一個新文件),并以只寫格式開啟。

2向文件中寫入數據:“fwrite〞以二進制形式,向文件寫入數據.。1.讀出文件內容:“fread〞以二進制形式,從文件讀出數據。2.關閉文件fclose。

五、試驗程序和結果:

試驗程序:在命令窗口中寫入

fid=fopen('myfile1.dat','w');if(fid==-1)

disp('文件開啟失敗');end

status=fclose(fid);

試驗結果:

運行后在當前工作目錄下產生一個myfile1.dat文件

12

試驗程序:向文件中寫入數據

fid=fopen('myfile1.dat','w+');if(fid==-1)

disp('文件開啟失敗');end

fprintf(fid,'%d',1:9)status=fclose(fid);

試驗結果:

向myfile1.dat文件中寫入了“123456789〞.

試驗程序:讀出文件內容

fid=fopen('myfile1.dat','r');x=fscanf(fid,'%d');disp(x);

status=fclose(fid)試驗結果:123456789>>

試驗程序:刪除文件

delete('myfile1.dat');%刪除文件x=exist('myfile1.dat','file');if(x==0)

disp('文件已經刪除');end

試驗結果:

文件myfile1.dat被刪除。

六、試驗總結:

本次試驗室在matlab中實現輸入輸出功能。在文件中讀取或寫入數據的方法有兩種方法:像二進制數據或像格式化字符數據。由實際位樣式組成的二進制數據常用于存儲于計算機內

13

存中。讀取和編寫二進制數據是十分高效的,但是用戶不能讀取存在于文件中的數據。在格式化文件中的可以轉化為符串的數據可以由用戶直接讀取。格式化I/O操作比二進制I/O操作要慢得多,效率要低得多。

14

試驗報告:稀疏矩陣,結構數組和單元陣列

一:試驗目的:

把握稀疏矩陣,結構數組和單元陣列二:試驗內容:

1.定義一個數組,該數組的非零元素遠比它的零元素多,然后將它轉換為稀疏陣列。比較結果。

2.定義一個2*2單元陣列三:設計思路:

1.試驗一:編寫一個程序創立一個稀疏矩陣。

1).可以通過函數speye,sprand和sprandn直接產生稀疏矩陣2).可以通過sparse函數把一個全矩陣轉化為一個稀疏矩陣,2.試驗二:編寫一個程序創立一個2X2的單元陣列。創立單元陣列有兩種方法1).用賦值語句2).用函數cell創立

3.試驗三:編寫一個程序創立結構數組。創立結構有兩種方法1).用賦值語句創立

2).用函數struct函數進行創立、

四:試驗程序和結果

1.試驗一:編寫一個程序創立一個稀疏矩陣。試驗程序:創立m文件:sparse_arrays.mclear%clc

%a=speye(4)%創立一個單位稀疏矩陣a=[000200050000000]

b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論