资源描述:
《matlab r2012a课后习题答案第三章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章数值数组及其运算习题3及解答1要求在闭区间上产生具有10个等距采样点的一维数组。试用两种不同的指令实现。〖目的〗l数值计算中产生自变量采样点的两个常用指令的异同。〖解答〗%方法一t1=linspace(0,2*pi,10)%方法二t2=0:2*pi/9:2*pi%要注意采样间距的选择,如这里的2*pi/9.t1=Columns1through700.69811.39632.09442.79253.49074.1888Columns8through104.88695.58516.2832t2=Columns1through700.69811.39632.09442.79253.4907
2、4.1888Columns8through104.88695.58516.28322由指令rng('default'),A=rand(3,5)生成二维数组A,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。〖目的〗l数组下标的不同描述:全下标和单下标。lsub2ind,int2str,disp的使用。l随机发生器的状态控制:保证随机数的可复现性。〖解答〗rng('default')A=rand(3,5)[ri,cj]=find(A>0.5);id=sub2ind(size(A),ri,cj);ri=ri';cj=cj';disp('')disp('大于0.5的
3、元素的全下标')disp(['行号',int2str(ri)])disp(['列号',int2str(cj)])disp('')disp('大于0.5的元素的单下标')disp(id')5A=0.81470.91340.27850.96490.95720.90580.63240.54690.15760.48540.12700.09750.95750.97060.8003大于0.5的元素的全下标行号1212231313列号1122334455大于0.5的元素的单下标124589101213151采用默认全局随机流,写出产生长度为1000的“等概率双位(即取-1,+1)取值的随机码”程序指令,
4、并给出-1码的数目。〖目的〗l两种基本随机发生器的使用。l关系运算产生逻辑数组——可用于数组的元素的标识和寻访。l逻辑数组的应用。l如何判断两个整数数组是否相等。〖解答〗(1)运用均匀随机数解题法——解法1rngdefault%为以下结果重现而设;产生默认随机流。详见第4.3.2节A=rand(1,1000);a=2*(A>0.5)-1;Na=sum(a==-1)Na=512(2)运用正态随机数解题法——解法2randn('state',123)B=randn(1,1000);b=2*(B>0)-1;Nb=sum(b==-1)Nb=462(3)直接发生法——解法3c=randsrc(1,1
5、000,[-1,1]);Nc=sum(c==-1)Nc=4822已知矩阵,运行指令B1=A.^(0.5),B2=A^(0.5),可以观察到不同运算方法所得结果不同。(1)请分别写出根据B1,B2恢复原矩阵A的程序。(2)用指令检验所得的两个恢复矩阵是否相等。〖目的〗l数组运算和矩阵运算的不同。l如何判断两个双精度数组是否相等。5lnorm指令的应用。〖解答〗A=[1,2;3,4];B1=A.^0.5B2=A^0.5A1=B1.*B1;A2=B2*B2;norm(A1-A2,'fro')%求误差矩阵的F-范数,当接近eps量级时,就认为实际相等B1=1.00001.41421.73212.0
6、000B2=0.5537+0.4644i0.8070-0.2124i1.2104-0.3186i1.7641+0.1458ians=8.4961e-0161在时间区间[0,10]中,绘制曲线。要求分别采取“标量循环运算法”和“数组运算法”编写两段程序绘图。〖目的〗l加强理解数组运算的机理和应用。l初步使用subplot,plot,xlabel,ylabel等指令绘图。〖解答〗%标量循环运算法t=linspace(0,10,200);N=length(t);y1=zeros(size(t));fork=1:Ny1(k)=1-exp(-0.5*t(k))*cos(2*t(k));endsubp
7、lot(1,2,1),plot(t,y1),xlabel('t'),ylabel('y1'),gridon%数组运算法y2=1-exp(-0.5*t).*cos(2*t);subplot(1,2,2),plot(t,y2),xlabel('t'),ylabel('y2'),gridon2先运行clear,formatlong,rng('default'),A=rand(3,3),然后根据A写出两个矩阵:一个对角阵B,其相