matlab課后習題答案1到6章_第1頁
matlab課后習題答案1到6章_第2頁
matlab課后習題答案1到6章_第3頁
matlab課后習題答案1到6章_第4頁
matlab課后習題答案1到6章_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、習題二1. 如何理解“矩陣是MATLAB最基本的數(shù)據(jù)對象”?答:因為向量可以看成是僅有一行或一列的矩陣,單個數(shù)據(jù)(標量)可以看成是僅含一個元素的矩陣,故向量和單個數(shù)據(jù)都可以作為矩陣的特例來處理。因此,矩陣是MATLAB最基本、最重要的數(shù)據(jù)對象。2. 設A和B是兩個同維同大小的矩陣,問:(1) A*B和A.*B的值是否相等?答:不相等。(2) A./B和B.A的值是否相等?答:相等。(3) A/B和BA的值是否相等?答:不相等。(4) A/B和BA所代表的數(shù)學含義是什么?答:A/B等效于B的逆右乘A矩陣,即A*inv(B),而BA等效于B矩陣的逆左乘A矩陣,即inv(B)*A。3. 寫出完成下列

2、操作的命令。(1) 將矩陣A第25行中第1, 3, 5列元素賦給矩陣B。答:B=A(2:5,1:2:5); 或B=A(2:5,1 3 5)(2) 刪除矩陣A的第7號元素。答:A(7)=(3) 將矩陣A的每個元素值加30。答:A=A+30;(4) 求矩陣A的大小和維數(shù)。答:size(A);ndims(A);(5) 將向量 t 的0元素用機器零來代替。答:t(find(t=0)=eps;(6) 將含有12個元素的向量 x 轉(zhuǎn)換成矩陣。答:reshape(x,3,4);(7) 求一個字符串的ASCII碼。答:abs(123); 或double(123);(8) 求一個ASCII碼所對應的字符。答:c

3、har(49);4. 下列命令執(zhí)行后,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);答:L1的值為0, 0, 0, 0, 1, 0, 0, 0, 0L2的值為1, 1, 1, 1, 1, 0, 0, 0, 0L3的值為0, 0, 0, 1, 1, 1, 0, 0, 0L4的值為4, 5, 65. 已知完成下列操作:(1) 取出A的前3行構(gòu)成矩陣B,前兩列構(gòu)成矩陣C,右下角子矩陣構(gòu)成矩陣D,B與C的乘積構(gòu)成矩陣E。答:B=A(1:3,:);C=A

4、(:,1:2);D=A(2:4,3:4);E=B*C;(2) 分別求E<D、E&D、E|D、E|D和find(A>=10&A<25)。答:E<D=,E&D=,E|D=,E|D=find(A>=10&A<25)=1; 5。6. 當A=34, NaN, Inf, -Inf, -pi, eps, 0時,分析下列函數(shù)的執(zhí)行結(jié)果:all(A),any(A),isnan(A),isinf(A),isfinite(A)。答:all(A)的值為0any(A) 的值為1isnan(A) 的值為 0, 1, 0, 0, 0, 0, 0isinf(

5、A) 的值為 0, 0, 1, 1, 0, 0, 0isfinite(A) 的值為1, 0, 0, 0, 1, 1, 17. 用結(jié)構(gòu)體矩陣來存儲5名學生的基本情況數(shù)據(jù),每名學生的數(shù)據(jù)包括學號、姓名、專業(yè)和6門課程的成績。答:student(1).id='0001'student(1).name='Tom'student(1).major='computer'student(1).grade=89,78,67,90,86,85;8. 建立單元矩陣B并回答有關問題。B1,1=1;B1,2='Brenden'B2,1=reshape(1

6、:9,3,3);B2,2=12,34,2;54,21,3;4,23,67;(1) size(B)和ndims(B)的值分別是多少?答:size(B) 的值為2, 2。ndims(B) 的值為2。(2) B(2)和B(4)的值分別是多少?答:B(2)=,B(4)= (3) B(3)=和B3=執(zhí)行后,B的值分別是多少?答:當執(zhí)行B(3)=后,B=1, 1, 4, 7; 2, 5, 8; 3, 6, 9, 12, 34, 2; 54, 21, 3; 4, 23, 67當執(zhí)行B3=后,B=1,; 1, 4, 7; 2, 5, 8; 3, 6, 9, 12, 34, 2; 54, 21, 3; 4, 2

7、3, 67習題三1. 寫出完成下列操作的命令。(1) 建立3階單位矩陣A。答:A=eye(3);(2) 建立5×6隨機矩陣A,其元素為100,200范圍內(nèi)的隨機整數(shù)。答:round(100+(200-100)*rand(5,6);(3) 產(chǎn)生均值為1,方差為0.2的500個正態(tài)分布的隨機數(shù)。答:1+sqrt(0.2)*randn(5,100);(4) 產(chǎn)生和A同樣大小的幺矩陣。答:ones(size(A);(5) 將矩陣A對角線的元素加30。答:A+eye(size(A)*30;(6) 從矩陣A提取主對角線元素,并以這些元素構(gòu)成對角陣B。答:B=diag(diag(A);2. 使用函

8、數(shù),實現(xiàn)方陣左旋90o或右旋90o的功能。例如,原矩陣為A,A左旋后得到B,右旋后得到C。答:B=rot90(A);C=rot90(A,-1);3. 建立一個方陣A,求A的逆矩陣和A的行列式的值,并驗證A與A-1是互逆的。答:A=rand(3)*10;B=inv(A);C=det(A);先計算B*A,再計算A*B,由計算可知B*A=A*B,即A·A-1= A-1·A是互逆。4. 求下面線性方程組的解。答:A=4,2,-1;3,-1,;12,3,0;b=2;10;8;x=inv(A)*b方程組的解為x=5. 求下列矩陣的主對角線元素、上三角陣、下三角陣、秩、范數(shù)、條件數(shù)和跡。

9、(1) (2) 答:(1) 取主對角線元素:diag(A);上三角陣:triu(A);下三角陣:tril(A);秩:rank(A);范數(shù):norm(A,1); 或 norm(A);或 norm(A,inf);條件數(shù):cond(A,1); 或 cond(A,2); 或 cond(A,inf)跡:trace(A);(2)【請參考(1)】。6. 求矩陣A的特征值和相應的特征向量。答:V,D=eig(A);習題四1. 從鍵盤輸入一個4位整數(shù),按如下規(guī)則加密后輸出。加密規(guī)則:每位數(shù)字都加上7,然后用和除以10的余數(shù)取代該數(shù)字;再把第一位與第三位交換,第二位與第四位交換。答:a=input('請輸

10、入4位整數(shù):');A=a/1000,a/100,a/10,a;A=fix(rem(A,10);A=rem(A+7,10);b=A(3)*1000+A(4)*100+A(1)*10+A(2);disp('加密后的值為:',num2str(b);2. 分別用if語句和switch語句實現(xiàn)以下計算,其中a、b、c的值從鍵盤輸入。答:(1) 用if語句實現(xiàn)計算:a=input('請輸入a的值:');b=input('請輸入b的值:');c=input('請輸入c的值:');x=input('請輸入x的值:');if

11、 x>=0.5 & x<1.5y=a*x2+b*x+c;endif x>=1.5 & x<3.5y=a*(sin(b)c)+x;endif x>=3.5 & x<5.5y=log(abs(b+c/x);enddisp('y=',num2str(y);(2) 用switch語句實現(xiàn)計算:a=input('請輸入a的值:');b=input('請輸入b的值:');c=input('請輸入c的值:');x=input('請輸入x的值:');switch fix(

12、x/0.5) case 1,2 y=a*x2+b*x+c; case num2cell(3:6) y=a*(sin(b)c)+x; case num2cell(7:10) y=log(abs(b+c/x); enddisp('y=',num2str(y);3. 產(chǎn)生20個兩位隨機整數(shù),輸出其中小于平均值的偶數(shù)。答:A=fix(10+89*rand(1,20);sum=0;for i=1:20sum=sum+A(i);endB=A(find(A<(sum/20);C=B(find(rem(B,2)=0);disp(C);4. 輸入20個數(shù),求其中最大數(shù)和最小數(shù)。要求分別用循

13、環(huán)結(jié)構(gòu)和調(diào)用MATLAB的max函數(shù)、min函數(shù)來實現(xiàn)。答:(1) 用循環(huán)結(jié)構(gòu)實現(xiàn):v_max=0;v_min=0;for i=1:20x=input('請輸入第', num2str(i), '數(shù):');if x> v_maxv_max=x;end;if x< v_minv_min=x;end;enddisp('最大數(shù)為:', num2str(v_max);disp('最小數(shù)為:', num2str(v_min);(2) 用max函數(shù)、min函數(shù)實現(xiàn):for i=1:5A(i)=input('請輸入第'

14、, num2str(i), '數(shù):');enddisp('最大數(shù)為:', num2str(max(A);disp('最小數(shù)為:', num2str(min(A);5. 已知:,分別用循環(huán)結(jié)構(gòu)和調(diào)用MATLAB的sum函數(shù)求s的值。答:(1) 用循環(huán)結(jié)構(gòu)實現(xiàn):s=0;for i=0:63 s=s+2i;ends(2) 調(diào)用sum函數(shù)實現(xiàn):s=0:63;s=2.s;sum(s)6. 當n分別取100、1000、10000時,求下列各式的值。(1) (2) (3) (4) 要求分別用循環(huán)結(jié)構(gòu)和向量運算(使用sum或prod函數(shù))來實現(xiàn)。答:(1) 用循

15、環(huán)結(jié)構(gòu)實現(xiàn):sum=0;for k=1:100sum=sum+(-1)(k+1)/k;endsum使用sum函數(shù):x=;for k=1:10000x=x, (-1)(k+1)/k;endsum(x)(2) 用循環(huán)結(jié)構(gòu)實現(xiàn):sum=0;for k=1:100sum=sum+(-1)(k+1)/(2*k-1);endsum使用sum函數(shù):x=;for k=1:100x=x, (-1)(k+1)/(2*k-1);endsum(x)(3) 用循環(huán)結(jié)構(gòu)實現(xiàn):sum=0;for k=1:100sum=sum+1/(4k);endsum使用sum函數(shù)實現(xiàn):x=;for k=1:100x=x, 1/(4k);

16、endsum(x)(4) 用循環(huán)結(jié)構(gòu)實現(xiàn):t=1;for k=1:100t=t*(2*k)*(2*k)/(2*k-1)*(2*k+1);endt使用prod函數(shù)實現(xiàn):x=;for k=1:100x=x, (2*k)*(2*k)/(2*k-1)*(2*k+1);endprod(x)7. 編寫一個函數(shù)文件,求小于任意自然數(shù)n的斐波那契(Fibnacci)數(shù)列各項。斐波那契數(shù)列定義如下:答:function x=fibnacci(n)for i=1:n if i<=2 x(i)=1; else x(i)=x(i-1)+x(i-2); endend8. 編寫一個函數(shù)文件,用于求兩個矩陣的乘積和點

17、乘,然后在命令文件中調(diào)用該函數(shù)。答:函數(shù)文件myfnc.m:function x, y= myfnc(A, B)tryx=A*B;catchx=;endy=A.*B;命令文件myexe.m:A=input('請輸入矩陣A:');B=input('請輸入矩陣B:');x, y=myfnc(A, B);if length(x)=0 display('兩矩陣的維數(shù)不匹配,無法進行乘積運算!');else disp('矩陣A和矩陣B的乘積為:'); xenddisp('矩陣A和矩陣B的點乘為:');y9. 先用函數(shù)的遞歸調(diào)

18、用定義一個函數(shù)文件求,然后調(diào)用該函數(shù)文件求。答:函數(shù)文件myfnc.m:function sum=myfnc(n, m)if n<=1sum=1;elsesum= myfnc (n-1, m)+nm;end在命令窗口中調(diào)用myfnc.m文件,計算:sum=myfnc(100, 1)+ myfnc(50, 2)+myfnc(10,-1)10. 寫出下列程序的輸出結(jié)果。 s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;for k=afor j=1:4if rem(k(j),2)=0s=s+k(j);endendend s答:執(zhí)行結(jié)果為s=108 命令文件e

19、xe.m執(zhí)行后的結(jié)果為:x = 41220 y=2 4 6第五章1. (1) x=-10:0.1:10;y=100./(1+x.2);plot(x,y)(2) x=-10:0.1:10;y=1/(2*pi)*exp(-x.2/2);plot(x,y)(3) ezplot('x2+y2=1')(4) t=-10:0.1:10; x=t.2;y=5*t.3; plot(x,y)2.(1)theta=0:0.01:2*pi;rho=5*cos(theta)+4;polar(theta,rho)(2)theta=0.001:0.1:2*pi;rho=12./sqrt(theta);po

20、lar(theta,rho)(3) theta=0.001:0.1:2*pi;rho=5./cos(theta)-7;polar(theta,rho)(4)theta=0.001:0.1:2*pi;rho=pi/3.*theta.2;polar(theta,rho)3.(1)t=0:pi/100:2*pi;x=cos(t);y=sin(t);z=t;plot3(x,y,z)(2)u=0:pi/100:2*pi;v=0:pi/100:2*pi;x=(1+cos(u).*cos(v);y=(1+cos(u).*sin(v);z=sin(u);plot3(x,y,z)(3)(4)5.plot函數(shù):&

21、gt;> x=linspace(-10,10,200);>> y=;>> for x0=xif x0>0y=y,x0.2+(1+x0).(1/4)+5;elseif x0=0y=y,0;elseif x0<0y=y,x0.3+sqrt(1-x0)-5;endend>> plot(x,y)fplot函數(shù):fplot('(x<0).*(x.3+sqrt(1-x)-5)+(x=0).*0+(x>0).*(x.2+(1+x).(1/4)+5)',-10,10)第六章1.A=randn(10,5)(1)mean(A) ;均

22、值 std(A) ;標準方差(2)max(max(A) ;最大元素 min(min(A) ;最小元素(3)B=sum(A,2) ;A每行元素的和 sum(B) ;A全部元素之和(4)sort(A) ;A的每列元素按升序排列 sort(A,2,descend) ;A的每行元素按將序排列2.(1)(2)X=1 4 9 16 25 36 49 64 81 100;Y=1:10;X1=1:100;Y1=interp1(X,Y,X1,'cubic')3.x=165 123 150 123 141;y=187 126 172 125 148;P=polyfit(x,y,3)P = 1.0e

23、+003 * -0.0000 0.0013 -0.1779 8.4330所以它的線性擬合曲線為:p(x)=1.3x2177.9x+84334.(1)P1=0 3 2;P2=5 -1 2;P3=1 0 -0.5;P=conv(conv(P1,P2),P3)P = 0 15.0000 7.0000 -3.5000 0.5000 -2.0000 -2.0000所以P(x)=15x5+7x4-3.5x3+0.5x2-2x-2(2)roots(P)ans = 0.7071 0.1000 + 0.6245i 0.1000 - 0.6245i -0.7071 -0.6667 (3)i=0:10;xi=0.2

24、*i;polyval(P,xi)ans = -2.0000 -2.3920 -2.6112 -1.7024 2.7104 15.0000 42.1120 94.1408 184.9056 332.5264 560.00005.(1)建立函數(shù)文件:function f=fxy(u)x=u(1);y=u(2);f=3.*x.2+2*x.*y+y.2在命令窗口中輸入以下命令:U,fmin=fminsearch('fxy',1,1)結(jié)果:U = 1.0e-004 * -0.0675 0.1715fmin = 1.9920e-010(2)f=inline('-sin(x)-cos

25、(x.2)');fmax=fminbnd(f,0,pi)fmax =0.73106.(1)x=pi/6 pi/4 pi/3;f=inline('sin(x).2+cos(x).2');dx=diff(f(x,5*pi/12)/(pi/12) 可參見第157頁例題6.19dx = 0 0 0x=pi/2時單獨計算:x=pi/2;f=inline('sin(x).2+cos(x).2');diff(f(x,pi)/(pi/2)ans = 0(2)x=1:3;f=inline('sqrt(x.2+1)');dx=diff(f(x,4)結(jié)果:dx

26、 =0.8219 0.9262 0.96087.(1)f=inline('sin(x).5.*sin(5*x)');quad(f,0,pi)ans =0.0982(2)f=inline('(1+x.2)./(1+x.4)');quad(f,-1,1)ans =2.2214(3)f=inline('x.*sin(x)./(1+cos(x).2)');quad(f,0,pi)ans =2.4674(4)f=inline('abs(cos(x+y)');dblquad(f,0,pi,0,pi)ans =6.28328.N=64; %采樣

27、點數(shù)T=5; %采樣時間終點t=linspace(0,T,N); %給出N個采樣時間ti(i=1:N)y=exp(-t); %求各采樣點樣本值ydt=t(2)-t(1); %采樣周期f=1/dt; % 采樣頻率Y=fft(y); %計算y的快速傅里葉變換YF=Y(1:N/2+1); %F(k)=Y(k)f=f*(0:N/2)/N; %使頻率軸f從0開始plot(f,abs(F) %繪制振幅-頻率圖9.(1)矩陣求逆法:A=2 3 5;3 7 4;1 -7 1;b=10;3;5;x=inv(A)*bx = -1.8060 -0.53733.0448矩陣除法法:A=2 3 5;3 7 4;1 -7 1;b=10;3;5;x=Abx = -1.8060 -0.53733.0448矩陣分解法:A=2 3 5;3 7 4;1 -7 1;b=10;3;5;L,U=lu(A);x=U(Lb)x = -1.8060 -0.53733.0448(2)方法同(1)10.函數(shù)文件:line_solution(A,b)function x,y=line_solution(A,b)m,n=size(A);y=;if norm(b)>0if rank(A)=rank(A,b)if rank(A)=ndisp('原方程組有唯一解x');x=Ab;

溫馨提示

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

評論

0/150

提交評論