您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > MATLAB教程2012a第3章习题解答-张志涌
1第3章数值阵列及其运算习题3及解答1在MATLAB中,先运行指令A=magic(3),B=[1,2,1;3,4,3;5,6,7]生成阵列33A,33B,然后根据运行结果回答以下问题:〖目的〗体验矩阵乘法次序不可交换;体验矩阵左除、右除的不同;体验数组乘法次序可交换;体验数组左除、右除的相同性;体验矩阵乘法与数组乘法的根本性差别体验矩阵求逆的两种方法;体验数组“逆”概念〖解答〗A=magic(3),B=[1,2,1;3,4,3;5,6,7]%创建阵列A=816357492B=121343567(1)C1amb=A*B%相乘矩阵的次序不可交换C1bma=B*AC1amb=415653536867415645C1bma=182022485052869886(2)C2adb=A\B%矩阵左除和右除根本不同C2bda=B/AC2adb=0.03330.10000.16110.53330.60000.74440.03330.1000-0.1722C2bda=0.00560.08890.17220.13890.22220.305620.23330.73330.2333(3)C3amb=A.*B%数组乘法不分左、右乘,因为是“元素对元素的运算”C3bma=B.*AC3amb=82692021205414C3bma=82692021205414(4)C4adb=A.\B%数组除法不分左、右除,因为是“元素对元素的运算”C4bda=B./AC4adb=0.12502.00000.16671.00000.80000.42861.25000.66673.5000C4bda=0.12502.00000.16671.00000.80000.42861.25000.66673.5000(5)C5ada=A\A%相当于inv(A)*A,所以得到“单位阵”C5adda=A.\A%相当于“数组逆”乘数组,得到“单位数组”C5ada=100010001C5adda=111111111(6)C6ade=A\eye(3)%矩阵求逆的代数方程法C6inv=inv(A)%直接利用求逆指令。两者结果相同C6ade=0.1472-0.14440.0639-0.06110.02220.1056-0.01940.1889-0.1028C6inv=0.1472-0.14440.0639-0.06110.02220.1056-0.01940.1889-0.1028(7)AC7add1=A.\1%求“数组逆”C7ade=A\eye(3)%求“矩阵逆”A=816357492C7add1=0.12501.00000.16670.33330.20000.14290.25000.11110.50003C7ade=0.1472-0.14440.0639-0.06110.02220.1056-0.01940.1889-0.10282在MATLAB中,先运行A=[1,2;3,4],b=0.5,C=[4,2;1,0.5],然后根据计算结果回答以下问题:(提示:根据对计算结果的目测回答问题)〖目的〗数组运算和矩阵运算的不同。如何判断两个双精度数组是否相等。norm指令的应用。〖解答〗A=[1,2;3,4],b=0.5,C=[4,2;1,0.5]%创建数据A=1234b=0.5C=4210.5(1)F1=A^b%平方根矩阵,可用F1*F1验算F1a=A.^b%平方根数组,可用F1a.*F1a验算F1=0.55369+0.46439i0.80696-0.21243i1.2104-0.31864i1.7641+0.14575iF1a=11.41421.73212(2)F2=b^A%标量底矩阵指数的求幂F2a=b.^A%标量底数组指数的求幂F2=0.99095-0.44225-0.663370.32759F2a=0.50.250.1250.0625(3)F3a=A.^C%数组底数组指数的求幂F3a=1432F3=A^C%矩阵底矩阵指数的求幂运算不存在???Errorusing^Inputsmustbeascalarandasquarematrix.TocomputeelementwisePOWER,usePOWER(.^)instead.43在MATLAB中,先运行rngdefault,A=randn(3,3)+1j*randn(3,3)生成)33(的复数矩阵A,然后根据计算结果回答以下问题:(提示:判断本题计算结果是否相同,用目测法即可)〖目的〗体验共轭转置、非共轭转置、共轭运算的产别;建立起MATLAB数据的基本处理单元是“复数阵列(包括矩阵、数组)”的概念。〖解答〗rngdefault%为保证计算结果可重复A=randn(3,3)+1j*randn(3,3)%创建(3*3)复数数组A=0.53767+2.7694i0.86217+0.7254i-0.43359-0.20497i1.8339-1.3499i0.31877-0.063055i0.34262-0.12414i-2.2588+3.0349i-1.3077+0.71474i3.5784+1.4897i(1)C11=A'%复数矩阵的共轭转置C12=A.'%复数数组的非共轭转置C13=conj(A)%复数数组的共轭运算C14=conj(A.')%复数矩阵共轭转置的另一种指令形式。结果与C11相同C11=0.53767-2.7694i1.8339+1.3499i-2.2588-3.0349i0.86217-0.7254i0.31877+0.063055i-1.3077-0.71474i-0.43359+0.20497i0.34262+0.12414i3.5784-1.4897iC12=0.53767+2.7694i1.8339-1.3499i-2.2588+3.0349i0.86217+0.7254i0.31877-0.063055i-1.3077+0.71474i-0.43359-0.20497i0.34262-0.12414i3.5784+1.4897iC13=0.53767-2.7694i0.86217-0.7254i-0.43359+0.20497i1.8339+1.3499i0.31877+0.063055i0.34262+0.12414i-2.2588-3.0349i-1.3077-0.71474i3.5784-1.4897iC14=0.53767-2.7694i1.8339+1.3499i-2.2588-3.0349i0.86217-0.7254i0.31877+0.063055i-1.3077-0.71474i-0.43359+0.20497i0.34262+0.12414i3.5784-1.4897i(2)C21=A*A'%生成埃米特矩阵(复数共轭对称阵),其对角元一定为正实数C22=A*A.'%对称的复数数组,非共轭,对角元不保证是正实数C23=A.*conj(A)%正实数数组,每个元素是原因子数组对应元素的模平方C21=9.4584-2.6464+5.9662i4.7246-9.5399i-2.6464-5.9662i5.4237-7.6601-3.6165i4.7246+9.5399i-7.6601+3.6165i31.558C22=-7.0176+4.4067i4.871+4.5135i-12.512-6.3357i4.871+4.5135i1.7406-5.0763i0.99354+8.9913i-12.512-6.3357i0.99354+8.9913i7.6765-4.9187iC23=7.95891.26960.230015.18530.105590.132814.3132.220915.0244在时间区间[0,10]中,绘制teyt2cos15.0曲线。要求分别采取“标5量循环运算法”和“数组运算法”编写两段程序绘图。(注意:体验数组运算的简捷。)〖目的〗加强理解数组运算的机理和应用。初步使用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));endsubplot(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'),gridon051000.511.5ty1051000.511.5ty25要求在闭区间]2,0[上产生具有10个等距采样点的一维数组。试用两种不同的指令实现。〖目的〗数值计算中产生自变量采样点的两个常用指令的异同。〖解答〗%方法一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.49074.1888Columns8through104.88695.58516.283266由指令rng('default'),A=rand(3,5)生成二维数组A,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单序号”。〖目的〗数组下标的不同描述:全下标和单序号。sub2ind,int2str,disp的使用。随机发生器的状态控制:保证随机数的可复现性。〖解答〗rng('default')A=rand(3,5)[ri,cj]=find(A0.5);id=sub2ind(size(A),ri,cj);ri=ri';cj=cj';disp('')disp('大于0.5的元素的全下标')disp(['行号',int2str(ri)])disp(['列号',int2str(cj)])disp('')disp('大于0.5的元素的单下标')disp(id')A=0.81470.91340.27850.96490.95720.90580.63240.54690.15760.48540.12700.09750.95750.97060.8003大于0.5的元素的全下标行号1212231313列号1122334455大于0.5的元素的单下标124589101213157采用默认全局随机流,写出产生长度为1000的“等概率双位(即取-1,+1)取值的随机码”程序指令,并给出-1码的数目。〖目的〗两种基本随机发生器的使用。关系运算产生逻辑数组——可用于数组的元素的标识和寻访。逻辑数组的应用。如何判断两个整数数组是否相等。〖解答〗(1)运用均匀随机数解题法——解法1rngdefault%为以下结果重现而设;产生默认随机流。详见第4.3.2节A=rand(1,1000);a=2*(A0.5)-1;Na=sum(a==-1)Na=512(2)运用正态随机数解题法——解法2randn('state',123)B=randn(1,1000);b=2*(B0)-1;7Nb=sum(b==-1)Nb=462(3)直接发生法——解法3c=randsrc(1,1000,[-1,1]);Nc=sum(c==-1)Nc=4828先运行clear,formatlong,rng('default'),A=rand(3,3),然后根据A写出两个矩阵:一个对角阵B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全为0,而其余元素与对应的A阵元素相同。〖目的〗常用指令diag的使用场合。〖解
本文标题:MATLAB教程2012a第3章习题解答-张志涌
链接地址:https://www.777doc.com/doc-1867775 .html