matlab作业习题集.docx

上传人:b****6 文档编号:6968657 上传时间:2023-01-13 格式:DOCX 页数:29 大小:386.78KB
下载 相关 举报
matlab作业习题集.docx_第1页
第1页 / 共29页
matlab作业习题集.docx_第2页
第2页 / 共29页
matlab作业习题集.docx_第3页
第3页 / 共29页
matlab作业习题集.docx_第4页
第4页 / 共29页
matlab作业习题集.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

matlab作业习题集.docx

《matlab作业习题集.docx》由会员分享,可在线阅读,更多相关《matlab作业习题集.docx(29页珍藏版)》请在冰豆网上搜索。

matlab作业习题集.docx

matlab作业习题集

习题一

1、试个MATLAB的工作空间中建立以下2个矩阵:

A=[12]

,求出矩阵A和B的乘积,并将结果赋给变量C。

>>A=[12];B=[12;34];

>>C=A*B

C=

710

2、利用MATLAB提供的帮助信息,了解inv命令的调用格式。

>>helpinv

3、使用help命令查询函数plot的功能以及调用方法,然后利用plot命令绘制函数y=sin(x)的图形,其中

.

>>helpplot

>>x=0:

pi/1000:

pi;

>>y=sin(x);

>>plot(x,y)

>>xlabel('x');

>>ylabel('y=sin(x)');

>>title('正弦函数');

4、试用不同的方法建立数组A=[1],了解怎样访问数组A的第二个元素,然后将其更换为。

建立数组①:

>>A=[1]

②>>A=1:

:

访问元素:

>>A

(2)

ans=

更换元素:

>>A

(2)=

A=

5、已知矩阵

,试用MATLAB提供的关系运算命令将B中所有大于2的元素全改为0。

第一种:

>>B=[12;34];

>>B(find(B>2))=0

B=

12

00

第二种:

>>B=[12;34];

>>form=1:

2

forn=1:

2

ifB(m,n)>2

B(m,n)=0;

end

end

end

>>B

B=

12

00

6、已知矩阵

,试求矩阵A的左右翻转矩阵,上下翻转矩阵,然后在工作空间中利用size命令查看矩阵A的大小。

(1)生成矩阵A

>>A=[1:

9];

>>A=reshape(A,3,3)

A=

147

258

369

(2)左右翻转:

>>fliplr(A)

ans=

741

852

963

(3)上下翻转:

>>flipud(A)

ans=

369

258

147

(4)查看矩阵A的大小:

>>size(A)

ans=

33

7、已知矩阵

,试求其转置、逆、迹、特征值、特征向量和B对应的行列式的值。

>>B=[1:

4];

B=reshape(B,2,2)%生成矩阵B

B=

13

24

>>B'%矩阵转置

ans=

12

34

>>inv(B)%矩阵的逆运算

ans=

=trace(B)%矩阵的迹

a=

5

>>[x,y]=eig(B)%矩阵的特征值y,特征向量x

x=

 

y=

0

0

>>V=det(B)%矩阵的行列式

V=

-2

8、分别建立一个

阶的单位阵、随机阵和魔方阵。

>>A=eye(3)%生成3*3阶的单位矩阵A

A=

100

010

001

>>B=rand(3)%生成3*3阶的随机矩阵B

B=

>>C=magic(3)%生成3*3阶的魔方矩阵C

C=

816

357

492

9、已知多项式

试求两个多项式的和与乘积。

>>A=[12-2];B=[11-31];

>>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.复数

表达,及计算>>

>>z1=3+4*i;z2=1+2*i;z3=2*exp(pi/6*i);

>>z=z1*z2/z3

z=

+

11、产生1×5的均布随机数组,进行如下操作:

1)寻访数组的第三个元素;2)寻访数组的第一、二、五个元素组成的子数组;3)寻访前三个元素组成的子数组;

4)寻访除前2个元素外的全部其他元素。

>>rand('state',0)%产生的随机数都与第一次运行产生的相同

>>A=rand(1,5)%产生1×5的均布随机数组

A=

>>A(3)%寻访数组x的第三个元素

ans=

>>A([125])%寻访数组x的第一、二、五个元素组成的子数组

ans=

>>A(1:

3)%寻访前三个元素组成的子数组

ans=

>>A(3:

end)%寻访除前2个元素外的全部其他元素

ans=

12、试用两种方法用MATLAB计算

第一种:

>>nthroot(-8,3)

ans=

-2

第二种:

>>symsx

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

13、求

的“商”及“余”多项式。

>>a=[102];b=[14];c=[11];d=[1011];e=conv(a,b);f=conv(e,c);

>>a=[102];b=[14];c=[11];d=[1011];

>>e=conv(a,b);f=conv(e,c);

>>[k,r]=deconv(f,d)%k是商,r是余式

k=

15

r=

00543

14、求方程x^4+7x^3+9x-20=0的全部根。

第一种方法:

>>p=[1709-20];

roots(p)

ans=

+

-

第二种方法:

>>compan(p)

ans=

-70-920

1000

0100

0010

>>eig(ans)

ans=

+

-

15、今有多项式P1(x)=x4-2x+1,P2(x)=x2+,要求先求得P(x)=P1(x)+P2(x),然后计算xi=*i各点上的P(xi)(i=0,1,2,…,5)值。

>>a=[100-21];b=[14];

>>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=*i;

>>polyval(P,xi)

ans=

16、已知一线性方程组如下所示:

,试求其结果。

>>A=[31-1;124;-145];

B=[];

B/A

ans=

 

习题二

1、编制一个函数,使得该函数能对输入的两个数值进行比较,并返回其中的最小值。

functiony=min(m,n)

ifm

y=m;

elsey=n;

end

2、试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。

如N=5,原来x为:

x=[13579]而经过颠倒处理后x中数据的次序应该为:

x=[97531]

functiontemp(x)

if(nargin==0)

error('没有参数');

elseif(nargin>1)

error('参数太多');

end

len=length(x);

fori=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

functiony=jiecheng(N)

ifN<0

error('Nshouldbepositiveorzero');

end

ifN==0|N==1

y=1;

else

y=N*jiecheng(N-1);

end

4.利用循环语句进行程序设计:

假设定义m×n的矩阵A。

判断矩阵A的第1列元素是否为0,若全为0,则从矩阵A中删除第1列

functionB=liu(A)

[m,n]=size(A);

b=0;

a=1;

whilea<=m

ifA(a,1)==0

b=b+1;

end

a=a+1;

end

ifb==m

A(:

1)=[];

B=A;

else

B=A;

end

5、利用循环语句进行程序设计:

在区间[-2,-]内,步长为,对函数y=f(x)=1+1/x求值,并列表。

将所得x值和y值分别存入向量r和s中。

function[r,s]=fun

a=0;

x=-2;

whilex<=

y=1+1/x;

a=a+1;

r(a)=x;

s(a)=y;

x=x+;

end

运行结果:

>>[r,s]=fun

r=

 

s=

0

 

6、编程计算

编制m程序:

functionk=fun1(x)

k=0;

fori=0:

x

k=k+2^i;

end

计算:

>>fun(63)

ans=

+019

7.写一个MATLAB小程序,求出最小的n值,使得n!

>realmax。

请问n的值是多少?

此时(n-1)!

的值又是多少?

functiony=findN01(realmax)

maxN=1000;

forn=1:

maxN

value=prod(1:

n);

ifvalue>realmax

break;

end

end

fprintf('n=%d\n',n);

fprintf('(n-1)!

=%d\n',prod(1:

n-1));

习题三

1、用subplot命令在同一图形输出窗口中绘制以下4个函数的图形:

>>clear

>>subplot(2,2,1);

>>x=1:

:

3;

>>plot(x,x,'-r*');

>>subplot(2,2,2);

>>x=-1:

:

1;

>>plot(x,x.*sin(x),'-r*');

>>subplot(2,2,3);

>>x=0:

:

;

>>plot(x,x.^2,'-r*');

>>subplot(2,2,4);

>>x=0:

:

;

>>plot(x,tan(x),'-r*');

 

2、绘制曲线

区间上的阶梯图。

>>x=0:

*pi:

5*pi;

y=exp*x).*sin(x);

plot(x,y);axis([0,*pi,0,*pi]);

holdon

stairs(x,y,'r');

3、试绘制以极坐标形式表示的图形:

,其中

的范围为

>>x=0:

*pi:

8*pi;

>>p=cos(5*x/4)+1/3;

>>polar(x,p,'-r')

4、画出衰减振荡曲线

及其它的包络线

的取值范围是

>>t=0:

*pi:

4*pi;

y0=exp(-t/3);

>>y=y0.*sin(3*t);

>>plot(t,y0,'-r',t,y,'-b');

>>legend('包络线','衰减振荡曲线');

5、画出

所表示的三维曲面。

的取值范围是

>>x=-8:

:

8;

>>y=-8:

:

8;

>>m=sqrt(x.^2+y.^2);

>>z=sin(m)./m;

>>plot3(x,y,z,'-r');

6、在[02π]范围内绘制二维曲线图y=sin(x)*cos(5x)。

>>x=0:

*pi:

2*pi;

>>y=sin(x).*cos(5*x);

>>plot(x,y,'-rx')

7、在[02π]范围内绘制以Y轴为对数的二维曲线图。

y=|1000sin(4x)|+1

>>x=0:

*pi:

2*pi;

>>y=abs(1000*sin(4*x))+1;

>>semilogy(x,y,'-*r')

8、绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为[02π]。

>>x=[0:

:

2*pi];

>>y=[0:

:

2*pi];

>>z=sin(y')*cos(x);

>>mesh(x,y,z);

>>xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label');

>>x=0:

:

2*pi;

>>y=0:

:

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');

9、用简短的MATLAB命令在一个图上绘制在0≤x≤7范围内的sin(2x)、

三条曲线,并将其一一标明。

>>clear

>>x=0:

*pi:

7;

>>y=sin(2*x);

>>z=sin(x.^2);

>>m=cos(x.^2);

>>plot(x,y,'-r*')

>>holdon

>>plot(x,z,'')

>>plot(x,m,'--')

>>legend('sin(2x)','sin(x^2)','cos(x^2)')

>>holdoff

 

10、在极坐标系中绘制曲线

>>t=0:

*pi:

8*pi;

>>r=exp(cos(t))-2*cos(4*t)+sin(t/12).^5;

>>polar(t,r,'-r')

习题四

1、求矩阵

的行列式值、逆和特征根

>>symsa11a12a21a22;

>>A=[a11a12;a21a22];

>>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、验证积分

用matlab计算左边的:

>>symsAwtm;

>>Y=int('A*exp(-w*t*i)',t,-1*m/2,m/2)%

不知道在matlab中如何输入在这里就用m表示

Y=

(2*A*sin((m*w)/2))/w

右边化简即得证。

3、求

>>symstk;

>>s=symsum([t,k^3],t,0,t-1)

s=

[(t*(t-1))/2,k^3*t]

>>symk;

>>s=symsum([1/(2*k-1)^2(-1)^k/k],k,1,inf)

s=

[pi^2/8,-log

(2)]

4、求

>>symsaxt;

>>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]

5.求

>>symsabx;

>>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、求

>>symsx

>>y=int(1/log(t)','t',1,x)

>>diff(y,x)

7、求

线性方程组的解。

>>A=[1,1/2,1/2,-1;11-11;1-1/4-11;-8-111];

>>B=[01001]';

>>A\B

ans=

8、求

的解。

>>symsx;

y=(x+2).^x-2;

S=solve(y,x)

S=

matrix([[]])

9、求方程组

关于

的解。

>>symsuyvzw;

>>m=u*y^2+v*z+w;

>>n=y+z+w;

>>q=solve(m,n,'y','z')

q=

y:

[2x1sym]

z:

[2x1sym]

>>

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

>>

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)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1