MATLAB程序設計與應用(劉衛(wèi)國編)課后實驗答案_第1頁
MATLAB程序設計與應用(劉衛(wèi)國編)課后實驗答案_第2頁
MATLAB程序設計與應用(劉衛(wèi)國編)課后實驗答案_第3頁
MATLAB程序設計與應用(劉衛(wèi)國編)課后實驗答案_第4頁
MATLAB程序設計與應用(劉衛(wèi)國編)課后實驗答案_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.實驗一 MATLAB運算基礎1. 先求下列表達式的值,然后顯示MATLAB工作空間的使用情況并保存全部變量。(1) (2) ,其中(3) (4) ,其中t=0:0.5:2.5解:M文件:z1=2*sin(85*pi/180)/(1+exp(2)x=2 1+2*i;-.45 5;z2=1/2*log(x+sqrt(1+x2) a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a)./2.*sin(a+0.3)+log(0.3+a)./2)t=0:0.5:2.5;z4=(t=0&t=1&t=2&t=0&t=1&t=2&t=A&chTp,所以pascal矩陣性能更好

2、。3. 建立一個55矩陣,求它的行列式值、跡、秩和范數。解: M文件如下:輸出結果為:A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9d = 5070000t = 65c1 = 6.8500c2 = 5.4618cinf = 6.85004. 已知求A的特征值及特征向量,并分析其數學意義。解:M文件如圖:輸出結果為:V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050D = -25.3169 0 0 0 -10.5182

3、0 0 0 16.8351數學意義:V的3個列向量是A的特征向量,D的主對角線上3個是A的特征值,特別的,V的3個列向量分別是D的3個特征值的特征向量。5. 下面是一個線性方程組:(1) 求方程的解。(2) 將方程右邊向量元素b3改為0.53再求解,并比較b3的變化和解的相對變化。(3) 計算系數矩陣A的條件數并分析結論。解: M文件如下:輸出結果:X = 1.2000 0.6000 0.6000X2 = 1.2000 0.6000 0.6000C = 1.3533e+003由結果,X和X2的值一樣,這表示b的微小變化對方程解也影響較小,而A的條件數算得較小,所以數值穩(wěn)定性較好,A是較好的矩陣

4、。6. 建立A矩陣,試比較sqrtm(A)和sqrt(A),分析它們的區(qū)別。解:M文件如下:運行結果有:A = 16 6 18 20 5 12 9 8 5b1 = 3.8891 -0.1102 3.2103 3.2917 2.1436 0.3698 0.3855 2.0760 1.7305b2 = 4.0000 2.4495 4.2426 4.4721 2.2361 3.4641 3.0000 2.8284 2.2361b = 16.0000 6.0000 18.0000 20.0000 5.0000 12.0000 9.0000 8.0000 5.0000分析結果知:sqrtm(A)是類似A

5、的數值平方根(這可由b1*b1=A的結果看出),而sqrt(A)則是對A中的每個元素開根號,兩則區(qū)別就在于此。實驗三 選擇結構程序設計一、實驗目的1. 掌握建立和執(zhí)行M文件的方法。2. 掌握利用if語句實現選擇結構的方法。3. 掌握利用switch語句實現多分支選擇結構的方法。4. 掌握try語句的使用。二、實驗內容1. 求分段函數的值。用if語句實現,分別輸出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0時的y值。解:M文件如下:運算結果有:f(-5)y = 14 f(-3)y = 11 f(1)y = 2 f(2)y = 1 f(2.5)y = -0.2500 f(3)y

6、= 5 f(5)y = 192. 輸入一個百分制成績,要求輸出成績等級A、B、C、D、E。其中90分100分為A,80分89分為B,79分79分為C,60分69分為D,60分以下為E。要求:(1) 分別用if語句和switch語句實現。(2) 輸入百分制成績后要判斷該成績的合理性,對不合理的成績應輸出出錯信息。解:M文件如下試算結果:score=88grade =Bscore=123錯誤:輸入的成績不是百分制成績3. 硅谷公司員工的工資計算方法如下:(1) 工作時數超過120小時者,超過部分加發(fā)15%。(2) 工作時數低于60小時者,扣發(fā)700元。(3) 其余按每小時84元計發(fā)。試編程按輸入的

7、工號和該號員工的工時數,計算應發(fā)工資。解:M文件下4. 設計程序,完成兩位數的加、減、乘、除四則運算,即產生兩個兩位隨機整數,再輸入一個運算符號,做相應的運算,并顯示相應的結果。解:M文件如下;運算結果例:a = 38b = 33輸入一個運算符:c =falsea = 92b = 40輸入一個運算符:+c = 1325. 建立56矩陣,要求輸出矩陣第n行元素。當n值超過矩陣的行數時,自動轉為輸出矩陣最后一行元素,并給出出錯信息。解:M文件如下:運算結果如下:輸入一個5行6列矩陣A=1 2 3 4 5 5;2 3 4 5 7 6;2 2 2 2 2 3;11 2 3 9 7 3;2 3 4 5

8、6 7輸入一正整數n=4 11 2 3 9 7 3輸入一個5行6列矩陣A=1 2 3 4 5 5;2 3 4 5 7 6;2 2 2 2 2 3;11 2 3 9 7 3;2 3 4 5 6 7輸入一正整數n=6 2 3 4 5 6 7ans =Error using = dispToo many input arguments.實驗四 循環(huán)結構程序設計一、實驗目的1. 掌握利用for語句實現循環(huán)結構的方法。2. 掌握利用while語句實現循環(huán)結構的方法。3. 熟悉利用向量運算來代替循環(huán)操作的方法。二、實驗內容1. 根據,求的近似值。當n分別取100、1000、10000時,結果是多少?要求:

9、分別用循環(huán)結構和向量運算(使用sum函數)來實現。解:M文件如下:運行結果如下:K %循環(huán)結構計算pi值y=0;n=input(n=);for i=1:n y=y+1/i/i;endpi=sqrt(6*y)n=100pi = 3.1321n=1000pi = 3.1406n=10000pi =3.1415%向量方法計算Pi值n=input(n=);i=1./(1:n).2;s=sum(i);pi=sqrt(6*s)n=100pi = 3.1321n=1000pi = 3.1406n=10000pi =3.14152. 根據,求:(1) y y=0;n=0;while y3 n=n-1;endn

10、y = 3.0033n = 57n = 563. 考慮以下迭代公式:其中a、b為正的學數。(1) 編寫程序求迭代的結果,迭代的終止條件為|xn+1-xn|10-5,迭代初值x0=1.0,迭代次數不超過500次。(2) 如果迭代過程收斂于r,那么r的準確值是,當(a,b)的值取(1,1)、(8,3)、(10,0.1)時,分別對迭代結果和準確值進行比較。解:M文件如下:運算結果如下;請輸入正數a=1請輸入正數b=1x = 0.6180r = 0.6180 -4.7016r = 0.6180 -1.6180s = -0.0000 -2.2361請輸入正數a=8請輸入正數b=3x = 1.7016r

11、= 1.7016 -1.6180r = 1.7016 -4.7016s =0.0 -6.4031請輸入正數a=10請輸入正數b=0.1x = 3.1127r = 3.1127 -4.7016r = 3.1127 -3.2127s = -0.0000 -6.32544. 已知求f1f100中:(1) 最大值、最小值、各數之和。(2) 正數、零、負數的個數。解:M文件以下是運算結果:max(f)=437763282635min(f)=-899412113528sum(f)=-742745601951c1=49c2=2c3=495. 若兩個連續(xù)自然數的乘積減1是素數,則稱這兩個邊疆自然數是親密數對,

12、該素數是親密素數。例如,23-1=5,由于5是素數,所以2和3是親密數,5是親密素數。求2,50區(qū)間內:(1) 親密數對的對數。(2) 與上述親密數對對應的所有親密素數之和。解:M文件:運算結果為:j = 29s = 23615實驗五 函數文件一、實驗目的1. 理解函數文件的概念。2. 掌握定義和調用MATLAB函數的方法。二、實驗內容1. 定義一個函數文件,求給定復數的指數、對數、正弦和余弦,并在命令文件中調用該函數文件。解:M文件如下:函數fushu.M文件:function e,l,s,c = fushu(z)%fushu 復數的指數,對數,正弦,余弦的計算%e 復數的指數函數值%l 復

13、數的對數函數值%s 復數的正弦函數值%c 復數的余弦函數值e=exp(z);l=log(z);s=sin(z);c=cos(z);命令文件M:z=input(請輸入一個復數z=);a,b,c,d=fushu(z)運算結果如下:z=input(請輸入一個復數z=);a,b,c,d=fushu(z)請輸入一個復數z=1+ia = 1.4687 + 2.2874ib = 0.3466 + 0.7854ic = 1.2985 + 0.6350id = 0.8337 - 0.9889i2. 一物理系統(tǒng)可用下列方程組來表示:從鍵盤輸入m1、m2和的值,求a1、a2、N1和N2的值。其中g取9.8,輸入時以

14、角度為單位。要求:定義一個求解線性方程組AX=B的函數文件,然后在命令文件中調用該函數文件。解: M文件函數fc.M文件:function X= fc(A,B)%fc fc是求解線性方程的函數%A A是未知矩陣的系數矩陣X=AB; 命令M文件:clc;m1=input(輸入m1=);m2=input(輸入m2=);theta=input(輸入theta=);x=theta*pi/180;g=9.8;A=m1*cos(x) -m1 -sin(x) 0 m1*sin(x) 0 cos(x) 0 0 m2 -sin(x) 0 0 0 -cos(x) 1;B=0;m1*g;0;m2*g;X=fc(A,

15、B) 運算結果:輸入m1=1輸入m2=1輸入theta=30X = 7.8400 3.3948 6.7896 15.6800 3. 一個自然數是素數,且它的數字位置經過任意對換后仍為素數。例如13是絕對素數。試求所有兩位絕對素數。要求:定義一個判斷素數的函數文件。解:M文件:函數prime.m文件function p = prime(p)% 輸入p的范圍,找出其中的素數m=p(length(p);for i=2:sqrt(m) n=find(rem(p,i)=0&p=i); p(n)=; %將p中能被i整除,而卻不等于i的元素,即下標為n的元素剔除,其余的即為素數endp;命令文件:clc;p

16、=10:99;p=prime(p); %找出10到99內的所有素數p=10*rem(p,10)+(p-rem(p,10)/10; %將p素數矩陣每個元素個位十位調換順序p=prime(p) %再對對換后的素數矩陣找出所有的素數運算結果:p = 11 31 71 13 73 17 37 97 794. 設,編寫一個MATLAB函數文件fx.m,使得調用f(x)時,x可用矩陣代入,得出的f(x)為同階矩陣。解:函數fx.m文件:function f= fx(x)%fx fx求算x矩陣下的f(x)的函數值A=0.1+(x-2).2;B=0.01+(x-3).4;f=1./A+1./B;命令文件:cl

17、c;x=input(輸入矩陣x=);f=fx(x)運算結果: x=input(輸入矩陣x=);f=fx(x)輸入矩陣x=7 2;12 5f = 0.0437 10.9901 0.0101 0.17245. 已知(1) 當f(n)=n+10ln(n2+5)時,求y的值。(2) 當f(n)=12+23+34+.+n(n+1)時,求y的值。解:(1)函數f.m文件:function f=f(x)f=x+10*log(x2+5);命令文件:clc;n1=input(n1=);n2=input(n2=);n3=input(n3=);y1=f(n1);y2=f(n2);y3=f(n3);y=y1/(y2+

18、y3)運算結果如下:n1=40n2=30n3=20y = 0.6390(2).函數g.m文件function s= g(n)for i=1:ng(i)=i*(i+1);ends=sum(g);命令文件:clc;n1=input(n1=);n2=input(n2=);n3=input(n3=);y1=g(n1);y2=g(n2);y3=g(n3);y=y1/(y2+y3)運算結果如下:n1=40n2=30n3=20y = 1.7662實驗六 高層繪圖操作一、實驗目的1. 掌握繪制二維圖形的常用函數。2. 掌握繪制三維圖形的常用函數。3. 掌握繪制圖形的輔助操作。二、實驗內容1. 設,在x=02區(qū)

19、間取101點,繪制函數的曲線。解:M文件如下:clc;x=linspace(0,2*pi,101);y=(0.5+3*sin(x)./(1+x.2);plot(x,y)運行結果有:2. 已知y1=x2,y2=cos(2x),y3=y1y2,完成下列操作:(1) 在同一坐標系下用不同的顏色和線型繪制三條曲線。(2) 以子圖形式繪制三條曲線。(3) 分別用條形圖、階梯圖、桿圖和填充圖繪制三條曲線。解:(1) M文件:clc;x=-pi:pi/100:pi;y1=x.2;y2=cos(2*x);y3=y1.*y2;plot(x,y1,b-,x,y2,r:,x,y3,k-)運行結果:(2)M文件:cl

20、c;x=-pi:pi/100:pi;y1=x.2;y2=cos(2*x);y3=y1.*y2;subplot(1,3,1);plot(x,y1,b-);title(y1=x2);subplot(1,3,2);plot(x,y2,r:);title(y2=cos(2x);subplot(1,3,3);plot(x,y3,k-);title(y3=y1*y2);.運行結果:(3)M文件:clc;x=-pi:pi/100:pi;y1=x.2;y2=cos(2*x);y3=y1.*y2;subplot(2,2,1);plot(x,y1,b-,x,y2,r:,x,y3,k-);subplot(2,2,2

21、);bar(x,y1,b);title(y1=x2);subplot(2,2,3);bar(x,y2,r); title(y2=cos(2x);subplot(2,2,4);bar(x,y3,k);title(y3=y1*y2);由上面的M文件,只要依次將“bar”改為“stairs”、“stem”、“fill”,再適當更改區(qū)間取的點數,運行程序即可,即有下面的結果:3. 已知在-5x5區(qū)間繪制函數曲線。解:M文件:clc;x=-5:0.01:5;y=(x+sqrt(pi)/(exp(2).*(x0);plot(x,y)運行結果:由圖可看出,函數在零點不連續(xù)。4. 繪制極坐標曲線=asin(b

22、+n),并分析參數a、b、n對曲線形狀的影響。解:M文件如下:clc;theta=0:pi/100:2*pi;a=input(輸入a=);b=input(輸入b=);n=input(輸入n=);rho=a*sin(b+n*theta);polar(theta,rho,m)采用控制變量法的辦法,固定兩個參數,變動第三個參數觀察輸出圖象的變化。分析結果:由這8個圖知道, 當a,n固定時,圖形的形狀也就固定了,b只影響圖形的旋轉的角度;當a,b固定時,n只影響圖形的扇形數,特別地,當n是奇數時,扇葉數就是n,當是偶數時,扇葉數則是2n個;當b,n固定時,a影響的是圖形大小,特別地,當a是整數時,圖形

23、半徑大小就是a。5. 繪制函數的曲線圖和等高線。其中x的21個值均勻分布-5,5范圍,y的31個值均勻分布在0,10,要求使用subplot(2,1,1)和subplot(2,1,2)將產生的曲面圖和等高線圖畫在同一個窗口上。解:M文件:clc;x=linspace(-5,5,21);y=linspace(0,10,31);x,y=meshgrid(x,y);z=cos(x).*cos(y).*exp(-sqrt(x.2+y.2)/4);subplot(2,1,1);surf(x,y,z);title(曲面圖);subplot(2,1,2);surfc(x,y,z);title(等高線圖);運

24、行結果:6. 繪制曲面圖形,并進行插值著色處理。解:M文件:clc;s=0:pi/100:pi/2;t=0:pi/100:3*pi/2;s,t=meshgrid(s,t);x=cos(s).*cos(t);y=cos(s).*sin(t);z=sin(s);subplot(2,2,1);mesh(x,y,z);title(未著色的圖形);subplot(2,2,2);surf(x,y,z);title(shading faceted(缺?。?;subplot(2,2,3);surf(x,y,z);shading flat;title(shading flat);subplot(2,2,4);s

25、urf(x,y,z);shading interp;title(shading interp); 運行結果有:實驗七 低層繪圖操作二、實驗內容1. 建立一個圖形窗口,使之背景顏色為紅色,并在窗口上保留原有的菜單項,而且在按下鼠標器的左鍵之后顯示出Left Button Pressed字樣。解:M文件如下:clc;hf=figure(color,1 0 0,. WindowButtonDownFcn,disp(Left Button Pressed.); 運行結果:左擊鼠標后:2. 先利用默認屬性繪制曲線y=x2e2x,然后通過圖形句柄操作來改變曲線的顏色、線型和線寬,并利用文件對象給曲線添加文

26、字標注。解:M文件:clc;x=-2:0.01:2;y=x.2.*exp(2*x);h=plot(x,y);set(h,color,0.4,0.2,0.5,linestyle,-,. linewidth,2);text(1.5,1.52*exp(2*1.5),leftarrow x2exp(2x),fontsize,9);運行結果:3. 利用曲面對象繪制曲面v(x,t)=10e-0.01xsin(2000t-0.2x+)。解:M文件:clc;x=0:0.1:2*pi;x,t=meshgrid(x);v=10*exp(-0.01*x).*sin(2000*pi*t-0.2*x+pi);axes(

27、view,-37,30);hs=surface(x,t,v,facecolor,. 0.2,0.3,0.3,edgecolor,flat);grid on;xlabel(x-axis); ylabel(y-axis);zlabel(z-axis);title(mesh-surf);pause %按任意鍵繼續(xù)set(hs,FaceColor,flat);text(0,0,0,曲面);運行結果:按任意鍵繼續(xù):4. 以任意位置子圖形式繪制出正弦、余弦、正切和余切函數曲線。5. 生成一個圓柱體,并進行光照和材質處理。 解:M文件:x,y,z=cylinder(3,500); %cylinder是生成柱

28、體的函數surf(x,y,z);title(圓柱體的光照和材料處理);Xlabel(X-axis);Ylabel(Y-axis);Zlabel(Z-axis);axis(-5,5,-5,5,0,1)grid off;light(Color,r,Position,-4,0,0,style,infinite);shading interp;material shiny;view(0,10);lighting phong;axis off; 運行結果:實驗八 數據處理與多項式計算一、實驗目的1. 掌握數據統(tǒng)計和分析的方法。2. 掌握數值插值與曲線擬合的方法及其應用。3. 掌握多項式的常用運算。二、實

29、驗內容1. 利用MATLAB提供的rand函數生成30000個符合均勻分布的隨機數,然后檢驗隨機數的性質:(1) 均值和標準方差。(2) 最大元素和最小元素。(3) 大于0.5的隨機數個數占總數的百分比。解:M文件:clc;x=rand(1,30000);mu=mean(x) %求這30000個均勻分布隨機數的平均值sig=std(x) %求其標準差1y=length(find(x0.5); %找出大于0.5數的個數p=y/30000 %大于0.5的所占百分比運行結果:mu = 0.499488553231043sig = 0.288599933559786p = 0.499400000000

30、0002. 將100個學生5門功課的成績存入矩陣P中,進行如下處理:(1) 分別求每門課的最高分、最低分及相應學生序號。(2) 分別求每門課的平均分和標準方差。(3) 5門課總分的最高分、最低分及相應學生序號。(4) 將5門課總分按從大到小順序存入zcj中,相應學生序號存入xsxh。提示:上機調試時,為避免輸入學生成績的麻煩,可用取值范圍在45,95之間的隨機矩陣來表示學生成績。解:M文件:clc;t=45+50*rand(100,5);P=fix(t); %生成100個學生5門功課成績x,l=max(P) %x為每門課最高分行向量,l為相應學生序號y,k=min(P)%y為每門課最低分行向列

31、,k為相應學生序號mu=mean(P) %每門課的平均值行向量sig=std(P) %每門課的標準差行向量s=sum(P,2) %5門課總分的列向量X,m=max(s)%5門課總分的最高分X與相應學生序號mY,n=min(s)%5門課總分的最低分Y與相應學生序號nzcj,xsxh=sort(s) %zcj為5門課總分從大到小排序,相應學生序號xsxh 運行結果:3. 某氣象觀測得某日6:0018:00之間每隔2h的室內外溫度(0C)如實驗表1所示。實驗表1 室內外溫度觀測結果(0C)時間h 6 8 10 12 14 16 18室內溫度t1 18.0 20.0 22.0 25.0 30.0 28

32、.0 24.0室外溫度t2 15.0 19.0 24.0 28.0 34.0 32.0 30.0試用三次樣條插值分別求出該日室內外6:3018:30之間每隔2h各點的近似溫度(0C)。解:M文件:clc;h=6:2:18;t1=18.0 20.0 22.0 25.0 30.0 28.0 24.0;t2=15.0 19.0 24.0 28.0 34.0 32.0 30.0;T1=interp1(h,t1,spline)%室內的3次樣條插值溫度T2=interp1(h,t2,spline)%室外的3次樣條插值溫度 運行結果:T1 = Columns 1 through 3 40.000000000000703 44.000000000001130 48.000000000001705 Columns 4 through 6 54.000000000002885 64.000000000005883 60.000000000004512 Column 7 52.000000000002444T2 = Columns 1 through 3 34.000000000000284 42.000000000000902 52.000000000002444

溫馨提示

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

評論

0/150

提交評論