习题一
1、试个MATLAB的工作空间中建立以下2个矩阵:A=[1 2]
1B324,求出矩阵A和B
的乘积,并将结果赋给变量C。
>> A=[1 2];B=[1 2;3 4]; >> C=A*B C =
7 10
2、 利用MATLAB提供的帮助信息,了解inv命令的调用格式。 >> help inv
3、使用help命令查询函数plot的功能以及调用方法,然后利用plot命令绘制函数
. y=sin(x)的图形,其中0x>>help plot
>>x=0:pi/1000:pi; >>y=sin(x); >>plot(x,y) >>xlabel('x');
>>ylabel('y=sin(x)'); >>title('正弦函数');
4、 试用不同的方法建立数组A=[1 1.5 2.0 2.5 3.0],了解怎样访问数组A的第二个元素,然后将其更换为4.0。
建立数组:>>A=[1 1.5 2.0 2.5 3.0] >>A=1:0.5:3.0 访问元素: >> A(2) ans =
1.5000 更换元素: >>A(2)=4.0 A =
1.0000 4.0000 2.0000 2.5000 3.0000 5、 已知矩阵
1B324,试用MATLAB提供的关系运算命令将B中所有大于2的元素全改
为0。
第一种:
>> B=[1 2;3 4]; >> B(find(B>2))=0 B =
1 2 0 0
1文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
第二种:
>> B=[1 2;3 4]; >> for m=1:2 for n=1:2
if B(m,n)>2 B(m,n)=0; end end end >> B B =
1 2 0 0 6、已知矩阵
1A47258369,试求矩阵A的左右翻转矩阵,上下翻转矩阵,然后在工作空
间中利用size命令查看矩阵A的大小。
(1)生成矩阵A >> A=[1:9];
>> A=reshape(A,3,3) A =
1 4 7 2 5 8 3 6 9 (2)左右翻转: >> fliplr(A) ans =
7 4 1 8 5 2 9 6 3 (3)上下翻转: >> flipud(A) ans =
3 6 9 2 5 8 1 4 7 (4)查看矩阵A的大小: >> size(A) ans =
3 3
2文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
7、已知矩阵
1B324,试求其转置、逆、迹、特征值、特征向量和B对应的行列式的
值。
>> B=[1:4];
B=reshape(B,2,2) %生成矩阵B B =
1 3 2 4 >> B' %矩阵转置 ans =
1 2 3 4
>> inv(B) %矩阵的逆运算 ans =
-2.0000 1.5000
1.0000 -0.5000a=trace(B) %矩阵的迹 a = 5
>> [x,y]=eig(B) %矩阵的特征值y,特征向量x x =
-0.9094 -0.5658 0.4160 -0.8246 y =
-0.3723 0 0 5.3723
>> V=det(B) %矩阵的行列式 V = -2
8、分别建立一个33阶的单位阵、随机阵和魔方阵。 >> A=eye(3) %生成3*3阶的单位矩阵A A =
1 0 0 0 1 0 0 0 1
>> B=rand(3) %生成3*3阶的随机矩阵B B =
0.6596 0.90 0.4324 0.5186 0.8003 0.8253
0.9730 0.4538 0.0835
>> C=magic(3) %生成3*3阶的魔方矩阵C C =
3文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
8 1 6 3 5 7 4 9 2
232ax()x2x2b()xxx3x19、已知多项式,。试求两个多项式的和与乘积。
>> A=[1 2 -2];B=[1 1 -3 1];
>> a=poly2sym(A),b=poly2sym(B) a =
x^2 + 2*x - 2 b =
x^3 + x^2 - 3*x + 1 >> c=a+b c =
x^3 + 2*x^2 - x - 1
>> d=conv(A,B);poly2sym(d) ans =
x^5 + 3*x^4 - 3*x^3 - 7*x^2 + 8*x - 2 10.复数
z6z34i,z12i,z2e123表达,及计算>>
iz1zz32。
>> z1=3+4*i;z2=1+2*i;z3=2*exp(pi/6*i); >> z=z1*z2/z3 z =
0.3349 + 5.5801i
11、产生1×5的均布随机数组,进行如下操作:1)寻访数组的第三个元素;2)寻访
数组的第一、二、五个元素组成的子数组;3)寻访前三个元素组成的子数组;4)寻访除前2个元素外的全部其他元素。
>> rand('state',0) %产生的随机数都与第一次运行产生的相同 >> A=rand(1,5) %产生1×5的均布随机数组 A =
0.9501 0.2311 0.6068 0.4860 0.13 >> A(3) %寻访数组 x 的第三个元素 ans =
0.6068
>> A([1 2 5]) %寻访数组 x 的第一、二、五个元素组成的子数组 ans =
0.9501 0.2311 0.13
>> A(1:3) %寻访前三个元素组成的子数组 ans =
4文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
0.9501 0.2311 0.6068
>> A(3:end) %寻访除前 2 个元素外的全部其他元素 ans =
0.6068 0.4860 0.13 12、试用两种方法用MATLAB计算第一种:
>> nthroot(-8,3) ans =
-2 第二种: >> syms x
solve('x^3+8',x) ans =
-2 1 - 3^(1/2)*i 1 + 3^(1/2)*i 第三种: >> x=-8;
sign(x)*abs(x).^(1/3) ans = -2
2(s2)(s4)(s1)3ss113、求的“商”及“余”多项式。
38
>> a=[1 0 2];b=[1 4];c=[1 1];d=[1 0 1 1]; e=conv(a,b);f=conv(e,c);
>> a=[1 0 2];b=[1 4];c=[1 1];d=[1 0 1 1]; >> e=conv(a,b);f=conv(e,c);
>> [k,r]=deconv(f,d) %k是商,r是余式 k =
1 5 r =
0 0 5 4 3
14、求方程 x^4+7x^3 +9x-20=0的全部根。 第一种方法:
>> p=[1 7 0 9 -20]; roots(p) ans =
-7.2254 -0.4286 + 1.5405i -0.4286 - 1.5405i
5文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
1.0826 第二种方法: >> compan(p) ans =
-7 0 -9 20 1 0 0 0 0 1 0 0 0 0 1 0 >> eig(ans) ans =
-7.2254 -0.4286 + 1.5405i -0.4286 - 1.5405i 1.0826
15、今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),
然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。 >> a=[1 0 0 -2 1];b=[1 4 -0.5]; >> p1=poly2sym(a); p2=poly2sym(b); >> p=p1+p2 p =
x^4 + x^2 + 2*x + 1/2 >> P=sym2poly(p); >> i=0:5;xi=0.2*i; >> polyval(P,xi) ans =
0.5000 0.9416 1.4856 2.16 3.1496 4.5000 16、已知一线性方程组如下所示: 3x1x2x33.6x12x24x32.1x14x25x31.4,试求其结果。
>> A=[3 1 -1;1 2 4;-1 4 5]; B=[3.6 2.1 -1.4]; B/A ans =
1.4818 -0.4606 0.3848 习题二
1、编制一个函数,使得该函数能对输入的两个数值进行比较,并返回其中的最小值。 function y=min(m,n) if m 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. else y=n; end 2、试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x 为:x=[ 1 3 5 7 9 ]而经过颠倒处理后x中数据的次序应该为:x=[ 9 7 5 3 1 ] function temp(x) if(nargin==0) error('没有参数'); elseif(nargin>1) error('参数太多'); end len=length(x); for i=1:len/2 tmp=x(i); x(i)=x(len-i+1); x(len-i+1)=tmp; end x 3、编制一个m程序,计算阶乘n!= 1×2×3×…×n function y=jiecheng(N) if N<0 error('N should be positive or zero'); end if N==0|N==1 y=1; else y=N*jiecheng(N-1); end 4.利用循环语句进行程序设计:假设定义m×n的矩阵A。判断矩阵A的第1列元素是否为0,若全为0,则从矩阵A中删除第1列 function B=liu(A) [m,n]=size(A); b=0; a=1; while a<=m if A(a,1)==0 b=b+1; end a=a+1; end if b==m 7文档收集于互联网,如有不妥请联系删除. 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. A(:,1)=[]; B=A; else B=A; end 5、 利用循环语句进行程序设计:在区间[-2,-0.75]内,步长为0.25,对函数y=f(x)=1+1/x求值,并列表。将所得x值和y值分别存入向量r和s中。 function [r,s]=fun a=0; x=-2; while x<=-0.75 y=1+1/x; a=a+1; r(a)=x; s(a)=y; x=x+0.25; end 运行结果: >> [r,s]=fun r = -2.0000 -1.7500 -1.5000 -1.2500 -1.0000 -0.7500 s = 0.5000 0.4286 0.3333 0.2000 0 -0.3333 ki06、 编程计算 编制m程序: function k=fun1(x) k=0; for i=0:x k=k+2^i; end 计算: >> fun(63) ans = 1.8447e+019 7.写一个MATLAB 小程序 findN01.m,求出最小的 n 值,使得 n! > realmax。请问 n 的值是多少?此时 (n-1)! 的值又是多少? function y=findN01(realmax) maxN = 1000; for n=1:maxN 632i8文档收集于互联网,如有不妥请联系删除. 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. value = prod(1:n); if value>realmax break; end end fprintf('n = %d\\n', n); fprintf('(n-1)! = %d\\n', prod(1:n-1)); 习题三 1、用subplot命令在同一图形输出窗口中绘制以下4个函数的图形: 2xsinx,x[1,1],yyxx,[0,3],yx,x[0,1.5], ytanx,x[0,1.3]。 >> clear >> subplot(2,2,1); >> x=1:0.001:3; >> plot(x,x,'-r*'); >> subplot(2, 2,2); >> x=-1:0.001:1; >> plot(x,x.*sin(x),'-r*'); >> subplot(2, 2,3); >> x=0:0.001:1.5; >> plot(x,x.^2,'-r*'); >> subplot(2,2,4); >> x=0:0.001:1.3; >>plot(x,tan(x),'-r*'); 9文档收集于互联网,如有不妥请联系删除. 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 0.2xyesinxx[0,5]区间上的阶梯图。 2、绘制曲线在 >>x=0:0.01*pi:5*pi; y=exp(-0.2*x).*sin(x); plot(x,y);axis([0,0.2*pi,0,0.2*pi]); hold on stairs(x,y,'r'); 3、试绘制以极坐标形式表示的图形:>> x=0:0.001*pi:8*pi; >> p=cos(5*x/4)+1/3; >> polar(x,p,'-r') cos1543,其中 的范围为 [0,8]。 3t及其它的包络线y0e4、画出衰减振荡曲线yesin是[0,4]。 >> t=0:0.001*pi:4*pi; t3t3。t的取值范围 10文档收集于互联网,如有不妥请联系删除. 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. y0=exp(-t/3); >> y=y0.*sin(3*t); >> plot(t,y0,'-r',t,y,'-b'); >> legend('包络线','衰减振荡曲线'); z5、画出 sin(x2y2)x2y2所表示的三维曲面。 x,y的取值范围是[8,8]。 >> x=-8:0.001:8; >> y=-8:0.001:8; >> m=sqrt(x.^2+y.^2); >> z=sin(m)./m; >> plot3(x,y,z,'-r'); 6、在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。 >> x=0:0.01*pi:2*pi; >> y=sin(x).*cos(5*x); >> plot(x,y,'-rx') 。 7、在[0 2π]范围内绘制以Y轴为对数的二维曲线图。 11文档收集于互联网,如有不妥请联系删除. 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. y=|1000sin(4x)|+1 >> x=0:0.001*pi:2*pi; >> y=abs(1000*sin(4*x))+1; >> semilogy(x,y,'-*r') 8、绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为 [0 2π]。 >>x=[0:0.1:2*pi]; >>y=[0:0.1:2*pi]; >>z=sin(y')*cos(x); >>mesh(x,y,z); >>xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label'); >>x=0:0.1:2*pi; >>y=0:0.1:2*pi; >>[x,y]=meshgrid(x,y); >>z=sin(x).*cos(y); >>surf(x,y,z); >>xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label'); 2sinx9、用简短的M AT L A B命令在一个图上绘制在0≤x≤7范围内的sin(2x)、 和 cosx2三条曲线,并将其一一标明。 >> clear >> x=0:0.01*pi:7; >> y=sin(2*x); >> z=sin(x.^2); >> m=cos(x.^2); >> plot(x,y,'-r*') >> hold on >> plot(x,z,'-.bo') >> plot(x,m,'--') >> legend('sin(2x)','sin(x^2)','cos(x^2)') >> hold off 10、在极坐标系中绘制曲线 >>t=0:0.01*pi:8*pi; >>r=exp(cos(t))-2*cos(4*t)+sin(t/12).^5; >>polar(t,r,'-r') 习题四 a11a12Aa21a22的行列式值、逆和特征根 1、求矩阵 >> syms a11 a12 a21 a22; >> A=[a11 a12;a21 a22]; 12文档收集于互联网,如有不妥请联系删除. 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. >> B=det(A) B = a11*a22 - a12*a21 >> inv(A) ans = [ a22/(a11*a22 - a12*a21), -a12/(a11*a22 - a12*a21)] [ -a21/(a11*a22 - a12*a21), a11/(a11*a22 - a12*a21)] >> [x,y]=eig(A) x = [ (a11/2 + a22/2 - (a11^2 - 2*a11*a22 + a22^2 + 4*a12*a21)^(1/2)/2)/a21 - a22/a21, (a11/2 + a22/2 + (a11^2 - 2*a11*a22 + a22^2 + 4*a12*a21)^(1/2)/2)/a21 - a22/a21] [ 1, 1] y = [ a11/2 + a22/2 - (a11^2 - 2*a11*a22 + a22^2 + 4*a12*a21)^(1/2)/2, 0] [ 0, a11/2 + a22/2 + (a11^2 - 2*a11*a22 + a22^2 + 4*a12*a21)^(1/2)/2] 2、验证积分 /2/2AedtAitsin22。 用matlab计算左边的: >> syms A w t m; >> Y=int('A*exp(-w*t*i)',t,-1*m/2,m/2) %这里就用m表示 Y = (2*A*sin((m*w)/2))/w 右边化简即得证。 3、求t0不知道在matlab中如何输入 在 tt1k31(1)kk(2k1)2k1, >> syms t k; >> s=symsum([t,k^3],t,0,t-1) s = [ (t*(t - 1))/2, k^3*t] >> sym k; >>s=symsum([1/(2*k-1)^2 (-1)^k/k],k,1,inf) s = 13文档收集于互联网,如有不妥请联系删除. 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. [ pi^2/8, -log(2)] dadxtcosx4、 求 dtlnx、dt322at3tcosxlnx >> syms a x t; >> A=[a,t^3;t*cos(x),log(x)]; >> diff(A,'x') %微分一次 ans = [ 0, 0] [ -t*sin(x), 1/x] >> diff(A,'x',2) %对表达式A微分2次 ans = [ 0, 0] [ -t*cos(x), -1/x^2] axbx2dx1sinx 5.求x>> syms a b x; >> A=[a*x,b*x.^2;1/x,sin(x)]; >> int(A,x) ans = [ (a*x^2)/2, (b*x^3)/3] [ log(x), -cos(x)] 6、 求 x01dtlnt >>syms x >>y=int(1/log(t)','t',1,x) >>diff(y,x) npndq,ndqpq10,dp,qpn8d12247、求线性方程 组的解。 >> A=[1,1/2,1/2,-1;1 1 -1 1;1 -1/4 -1 1;-8 -1 1 1]; >> B=[0 10 0 1]'; >> A\\B ans = 1.0000 14文档收集于互联网,如有不妥请联系删除. 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 8.0000 8.0000 9.0000 x(x2)2的解。 8、求 >> syms x ; y=(x+2).^x-2; S=solve(y,x) S = matrix([[0.1]]) y^2vzw0zw09、求方程组u,y关于 y,z的解。 >> syms u y v z w; >> m=u*y^2+v*z+w; >> n=y+z+w; >> q=solve(m,n,'y','z') q = y: [2x1 sym] z: [2x1 sym] >> q.y ans = (v + 2*u*w + (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) - w (v + 2*u*w - (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) - w >> q.z ans = -(v + 2*u*w + (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) -(v + 2*u*w - (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) 15文档收集于互联网,如有不妥请联系删除.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务