MATLAB习题及参考答案(28页).doc
-习题:1, 计算与的数组乘积。2, 对于,如果,求解X。3, 已知:,分别计算a的数组平方和矩阵平方,并观察其结果。 4, 角度,求x的正弦、余弦、正切和余切。(应用sin,cos,tan.cot)5, 将矩阵、和组合成两个新矩阵:(1)组合成一个4´3的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即 (2)按照a、b、c的列顺序组合成一个行矢量,即 6, 将(x-6)(x-3)(x-8)展开为系数多项式的形式。(应用poly,polyvalm)7, 求解多项式x3-7x2+2x+40的根。(应用roots) 8, 求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值。(应用poly,polyvalm) 9, 计算多项式的微分和积分。(应用polyder,polyint,poly2sym) 10, 解方程组。(应用x=ab) 11, 求欠定方程组的最小范数解。(应用pinv)12, 矩阵,计算a的行列式和逆矩阵。(应用det,inv)13, y=sin(x),x从0到2p,Dx=0.02p,求y的最大值、最小值、均值和标准差。(应用max,min,mean,std)14, 参照课件中例题的方法,计算表达式的梯度并绘图。(应用meshgrid, gradient, contour, hold on, quiver)15, 用符号函数法求解方程at2+b*t+c=0。(应用solve)16, 用符号计算验证三角等式:(应用syms,simple)17, 求矩阵的行列式值、逆和特征根。(应用syms,det,inv,eig)18, 因式分解: (应用syms, factor)19, ,用符号微分求df/dx。(应用syms,diff)20, 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为0,2p。(应用syms,ezplot)21, 绘制曲线,x的取值范围为-5,5。(应用plot)22, 有一组测量数据满足,t的变化范围为010,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,在图中添加标题,并用箭头线标识出各曲线a的取值,并添加标题和图例框。(应用plot,title,text,legend)23,表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。第1次第2次第3次第4次第5次第6次观测点1367428观测点2673247观测点3972584观测点464327424, x= 66 49 71 56 38,绘制饼图,并将第五个切块分离出来。 25, 用sphere函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。(应用sphere, mesh, hidden off, surf, NaN)26, 编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。27, 有传递函数如下的控制系统,用Simulink建立系统模型,并对系统的阶跃响应进行仿真。 27, 建立一个简单模型,用信号发生器产生一个幅度为2V、频率为0.5Hz的正弦波,并叠加一个0.1V的噪声信号,将叠加后的信号显示在示波器上并传送到工作空间。28 建立一个模拟系统,将摄氏温度转换为华氏温度(Tf = 9/5Tc+32)。答案:1, 计算与的数组乘积。>> a=6 9 3;2 7 5;>> b=2 4 1;4 6 8;>> a.*bans = 12 36 3 8 42 402, 对于,如果,求解X。>> A=4 9 2;7 6 4;3 5 7;>> B=37 26 28;>> X=ABX = -0.5118 4.0427 1.33183, 已知:,分别计算a的数组平方和矩阵平方,并观察其结果。>> a=1 2 3;4 5 6;7 8 9;>> a.2ans = 1 4 9 16 25 36 49 64 81>> a2ans = 30 36 42 66 81 96 102 126 1504, 角度,求x的正弦、余弦、正切和余切。>> x=30 45 60;>> x1=x/180*pi;>> sin(x1)ans = 0.5000 0.7071 0.8660>> cos(x1)ans = 0.8660 0.7071 0.5000>> tan(x1)ans = 0.5774 1.0000 1.7321>> cot(x1)ans = 1.7321 1.0000 0.57745, 将矩阵、和组合成两个新矩阵:(1)组合成一个4´3的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即 (2)按照a、b、c的列顺序组合成一个行矢量,即 >> a=4 2;5 7; >> b=7 1;8 3; >> c=5 9;6 2;% (1) >> d=a(:) b(:) c(:) d = 4 7 5 5 8 6 2 1 9 7 3 2% (2) >> e=a(:);b(:);c(:) e = 4 5 2 7 7 8 1 3 5 6 9 2 或利用(1)中产生的d >> e=reshape(d,1,12) ans = 4 5 2 7 7 8 1 3 5 6 9 26, 将(x-6)(x-3)(x-8)展开为系数多项式的形式。 >> a=6 3 8; >> pa=poly(a); 也可以用pa=poly(6 3 8)来替换1,2两行 >> ppa=poly2sym(pa) ppa = x3-17*x2+90*x-1447, 求解多项式x3-7x2+2x+40的根。 >> r=1 -7 2 40; >> p=roots(r) p = 5.0000 4.0000 -2.00008, 求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值。 >> p=poly(1 2 3 4); >> polyvalm(p,8) ans = 840 9, 计算多项式的微分和积分。 clear>>f=sym('4*x4-12*x3-14*x2+5*x+9')>>diff(f)>>int(f) ans = 16*x3-36*x2-28*x+5 ans = 4/5*x5-3*x4-14/3*x3+5/2*x2+9*x10, 解方程组。 >> a=2 9 0;3 4 11;2 2 6; >> b=13 6 6' >> x=ab x = 7.4000 -0.2000 -1.400011, 求欠定方程组的最小范数解。 >> a=2 4 7 4;9 3 5 6; >> b=8 5' >> x=pinv(a)*b x = -0.2151 0.4459 0.7949 0.270712, 矩阵,计算a的行列式和逆矩阵。 >> a=4 2 -6;7 5 4 ;3 4 9; >> ad=det(a) >> ai=inv(a) ad = -64 ai = -0.4531 0.6562 -0.5937 0.7969 -0.8437 0.9062 -0.2031 0.1562 -0.093713 y=sin(x),x从0到2p,Dx=0.02p,求y的最大值、最小值、均值和标准差。 >> x=0:0.02*pi:2*pi; >> y=sin(x); >> ymax=max(y) >> ymin=min(y) >> ymean=mean(y) >> ystd=std(y) ymax = 1 ymin = -1 ymean = 2.2995e-017 ystd = 0.707114, 参照课件中例题的方法,计算表达式的梯度并绘图。 >> v = -2:0.2:2; >> x,y = meshgrid(v); >> z=10*(x.3-y.5).*exp(-x.2-y.2); >> px,py = gradient(z,.2,.2); >> contour(x,y,z) >> hold on >> quiver(x,y,px,py) >> hold off15, 下面三种表示方法有什么不同的含义?(1)f=3*x2+5*x+2(2)f='3*x2+5*x+2'(3)x=sym('x') f=3*x2+5*x+2(1)f=3*x2+5*x+2表示在给定x时,将3*x2+5*x+2的数值运算结果赋值给变量f,如果没有给定x则指示错误信息。(2)f='3*x2+5*x+2'表示将字符串'3*x2+5*x+2'赋值给字符变量f,没有任何计算含义,因此也不对字符串中的内容做任何分析。(3)x=sym('x') f=3*x2+5*x+2表示x是一个符号变量,因此算式f=3*x2+5*x+2就具有了符号函数的意义,f也自然成为符号变量了。16, 用符号函数法求解方程at2+b*t+c=0。 >> r=solve('a*t2+b*t+c=0','t') r = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)17, 用符号计算验证三角等式:(应用syms,simple) sin(j1)cos(j2)-cos(j1)sin(j2) =sin(j1-j2) >> syms phi1 phi2; >> y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2) y = sin(phi1-phi2)18, 求矩阵的行列式值、逆和特征根。 >> syms a11 a12 a21 a22; >> A=a11,a12;a21,a22 >> AD=det(A) % 行列式 >> AI=inv(A) % 逆 >> AE=eig(A) % 特征值 A = a11, a12 a21, a22 AD = a11*a22-a12*a21 AI = -a22/(-a11*a22+a12*a21), a12/(-a11*a22+a12*a21) a21/(-a11*a22+a12*a21), -a11/(-a11*a22+a12*a21) AE = 1/2*a11+1/2*a22+1/2*(a112-2*a11*a22+a222+4*a12*a21)(1/2) 1/2*a11+1/2*a22-1/2*(a112-2*a11*a22+a222+4*a12*a21)(1/2)19, 因式分解: >> syms x; >> f=x4-5*x3+5*x2+5*x-6; >> factor(f) ans = (x-1)*(x-2)*(x-3)*(x+1)20, ,用符号微分求df/dx。(应用syms,diff) >> syms a x; >> f=a, x2, 1/x; exp(a*x), log(x), sin(x); >> df=diff(f) df = 0, 2*x, -1/x2 a*exp(a*x), 1/x, cos(x)21, 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为0,2p。 >> syms t >> ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),0,pi) 22, 绘制曲线,x的取值范围为-5,5。 >> x=-5:0.2:5; >> y=x.3+x+1; >> plot(x,y)23, 有一组测量数据满足,t的变化范围为010,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,在图中添加标题,并用箭头线标识出各曲线a的取值,并添加标题和图例框。 >> t=0:0.5:10; >> y1=exp(-0.1*t); >> y2=exp(-0.2*t); >> y3=exp(-0.5*t); >> plot(t,y1,'-ob',t,y2,':*r',t,y3,'-.g') >> title('ityrm=e-itat') >> title('ityrm=e-itat','FontSize',12) >> text(t(6),y1(6),'leftarrowitarm=0.1','FontSize',11) >> text(t(6),y2(6),'leftarrowitarm=0.2','FontSize',11) >> text(t(6),y3(6),'leftarrowitarm=0.5','FontSize',11) >> title('ityrm=e-itat','FontSize',12) >> legend('a=0.1','a=0.2','a=0.5')25,表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。第1次第2次第3次第4次第5次第6次观测点1367428观测点2673247观测点3972584观测点4643274>> y=3 6 9 6;6 7 7 4;7 3 2 3;4 2 5 2;2 4 8 7;8 7 4 4;>> bar(y)26, x= 66 49 71 56 38,绘制饼图,并将第五个切块分离出来。 >> x=66 49 71 56 38; >> L=0 0 0 0 1; >> pie(x,L)27, 用sphere函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。 >> x,y,z=sphere(30); >> mesh(x,y,z) >> mesh(x,y,z),hidden off >> surf(x,y,z) >> z(18:30,1:5)=NaN*ones(13,5); >> surf(x,y,z)28, 有一周期为4p的正弦波上叠加了方差为0.1的正态分布的随机噪声的信号,用循环结构编制一个三点线性滑动平均的程序。(提示:用0.1*randn(1,n)产生方差为0.1的正态分布的随机噪声;三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据,如x1(2)=(x(1)+x(2)+x(3)/3,x1(3)=( x(2)+x(3)+x(4)/3) t=0:pi/50:4*pi; n=length(t); y=sin(t)+0.1*randn(1,n); ya(1)=y(1); for i=2:n-1 ya(i)=sum(y(i-1:i+1)/3; end ya(n)=y(n); plot(t,y,'c',t,ya,'r','linewidth',2)29, 编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。 function c=collatz(n) % collatz % Classic “3n+1” Ploblem from number theory c=n; while n>1 if rem(n,2)=0 n=n/2; else n=3*n+1; end c=c n; end30, 有传递函数如下的控制系统,用Simulink建立系统模型,并对系统的阶跃响应进行仿真。 31, 建立一个简单模型,用信号发生器产生一个幅度为2V、频率为0.5Hz的正弦波,并叠加一个0.1V的噪声信号,将叠加后的信号显示在示波器上并传送到工作空间。 32, 建立一个模拟系统,将摄氏温度转换为华氏温度(Tf = 9/5Tc+32)。 第 28 页-