完整word版matlab练习题.docx

上传人:b****5 文档编号:7363128 上传时间:2023-01-23 格式:DOCX 页数:25 大小:44.47KB
下载 相关 举报
完整word版matlab练习题.docx_第1页
第1页 / 共25页
完整word版matlab练习题.docx_第2页
第2页 / 共25页
完整word版matlab练习题.docx_第3页
第3页 / 共25页
完整word版matlab练习题.docx_第4页
第4页 / 共25页
完整word版matlab练习题.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

完整word版matlab练习题.docx

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

完整word版matlab练习题.docx

完整word版matlab练习题

1.在命令窗口输入语句:

a=[1,2,3;4,5,6;7,8,9],

(1)按回车键,命令就被执行,在MATLAB命令窗中显示的结果。

(2)如果在上述输入语句末尾加上分号,则在命令窗口显示的结果

解:

a=

123

456

789

不显示结果

2.在命令窗口输入语句:

x=[-1.31+2+3sqrt(5)],按回车键,命令就被执行,在MATLAB命令窗中显示的结果。

解:

x=

-1.30006.00002.2361

3.在命令窗口输入下述语句,建立复数数组:

b=[1+2*i,2+3*i;2-i,3-2*i],在MATLAB命令窗中显示的结果。

解:

b=

1.0000+2.0000i2.0000+3.0000i

2.0000-1.0000i3.0000-2.0000i

4.产生2阶和3阶魔方阵。

解:

m1=magic

(2)%产生2阶魔方阵

5.求多项式的x3-7x+6的伴随矩阵,可使用语句:

解:

p=[1,0,-7,6];c=compan(p)

6.求(x+y)4的展开式。

解:

p1=pascal(4)

p1=

1111

1234

13610

141020

由执行结果可知,矩阵次对角线上的元素1,4,6,4,1即为展开式的系数。

7.建立3×4的矩阵并取子数组的方法

解:

a=[1234;5678;9101112];

a(1,:

a(:

end)

a24=a(2,4)%取a的第二行、第四列的元素

a(1:

2:

4,:

a(:

1:

2:

end)

a1=a([1,2],[2,3,4])

a2=a([1,2],[2,3,1])

a3=a([3,1],:

a([1,3],[2,4])=zeros

(2)%对a([1,3],[2,4])赋值

8.3×3的数组,删除第三列元素,删除第二行元素,删除一个元素,删除所有元素为空矩阵。

解:

a=[120;340;569];

a(:

3)=[]%删除第三列元素

a(2,:

)=[]%删除第二行元素

a

(1)=[]%删除一个元素,则矩阵变为行向量

a=[]%删除所有元素为空矩阵

9.设

求A-2B。

解:

方法1:

A=[4-31;205];B=[120;-103];

A-2*B

方法2:

A=[4-31;205];B=[120;-103];

b=uminus(2*B)%,返回2*B的相反数A+b

10.求30。

、60。

和90。

的正弦、余弦、正切和余切函数值。

解:

x=30:

30:

90;

sind(x),cosd(x),tand(x),cotd(x)

11.求0.1,0.2,0.3,0.4,0.5,0.6的反正弦、反余弦和反正切值。

解:

x=0.1:

0.1:

0.6;

asin(x),acos(x),atan(x)%返回值为弧度

asind(x),acosd(x),atand(x)%返回值为角度

12.求1到10的自然对数和常用对数。

解:

x=1:

10;

log(x)%返回值为自然对数

log10(x)%返回值为常用对数

13.建立任意的两个字符串,并查看字符串占用的字节信息。

解:

s1='NortheastForestUiversity'%赋值方式建立字符串s1

s2='HaerbinHeilongjiang‘%赋值方式建立字符串s2

whos%查看字符串占用的字节信息

14.使用赋值语句依次为各个域赋值的方法建立构架数组,存储两名学生的名字、学号、性别、班级信息。

解:

s.name='WangMing';

s.sex='man';

s.class='199901';

s

(2).name='ZhangLe';

s

(2).sex='man';

s

(2).class='199902';

15.已知A=[4,-65,-54,0,6;56,0,67,-45,0],分析下列语句的功能。

(1)find(A>4);

(2)[ij]=find(A,1);(3)[ij]=find(A,1,'first');(4)[ij]=find(A,1,'last')

解:

(1)找出大于4的元素的序号。

(2)找出一个不为零的元素的行号、列号。

(3)找出第一个不为零的元素的行号、列号。

(4)找出最后一个不为零的元素的行号、列号

16.建立任意的3×3的矩阵,并求出能被3整除的元素。

解:

A=[103;29-1;-3-90];%生成3×3的矩阵A

P=rem(A,3)==0%判断A的元素是否可以被3整除

A(P)%求出被3整除的元素

17.已知

(1)      n为任意给定的整数,求y的值。

(2)      y≥1.5时,求n的值

解:

%

(1)

y=0;i=1;

n=input('n=?

');

whilei<=n

f=1/i/i;y=y+f;i=i+1;

end

y

%

(2)

y=0;i=1;

while1

f=1/i/i;y=y+f;

ify>=1.5

break;

end

i=i+1;

end

i,y

18.设

,求:

解:

a=0;b=2*pi;n=1000;h=(b-a)/n;

x=a:

h:

b;y=0;

f=cos(x-pi/6).*sin(x+pi/6);

fori=1:

n

s(i)=(f(i)+f(i+1))*h/2;

y=y+s(i);

end

y

19.求[100,200]之间第一个能被13整除的整数。

解:

forn=100:

200

ifrem(n,13)~=0

continue

end

break

end

n

20.使用for循环语句逐一显示构架数组的域值。

解:

forii=1:

length(s)

disp(s(ii).name)

disp(s(ii).number)

disp(s(ii).class)

disp(s(ii).sex)

end

21.输出全部三位的水仙花数。

解:

form=100:

999

m1=fix(m/100);%求m的百位数字

m2=rem(fix(m/10),10);%求m的十位数字

m3=rem(m,10);%求m的个位数字

ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3

disp(m)

end

end

22.编程求出Fibonacci数列中第一个大于10000的元素及序号。

解:

%1

a

(1)=1;a

(2)=1;i=2;

whilea(i)<=10000

a(i+1)=a(i-1)+a(i);i=i+1;

end

i,a(i)

%2

n=100;a=ones(1,n);

fori=3:

n

a(i)=a(i-1)+a(i-2);

ifa(i)>=10000

a(i),

break;

end;

end

i

23.求某正整数范围内的全部素数。

解:

1

m=input('m=');

p=1:

m;p

(1)=0;

fori=2:

sqrt(m)

forj=2*i:

i:

m

p(j)=0;

end

end

n=find(p~=0);

p(n)

%2

m=input('m=');

p=2:

m;

fori=2:

sqrt(m)

n=find(rem(p,i)==0&p~=i);

p(n)=[];

end

p

24.求1-100的平方、平方根和立方根

解:

%方法1:

square=zeros(1,100);square_root=zeros(1,100);cube_root=zeros(1,100);

forii=1:

100

square(ii)=ii^2;square_root(ii)=ii^(1/2);cube_root(ii)=ii^(1/3);

end

%方法2:

ii=1:

100;square(ii)=ii.^2;square_root(ii)=ii.^(1/2);cube_root(ii)=ii.^(1/3);

25.编程求3阶魔方矩阵大于5的元素的平方根。

解:

%方法1:

a=magic(3);

forii=1:

size(a,1)

forjj=1:

size(a,2)

ifa(ii,jj)>5

a(ii,jj)=sqrt(a(ii,jj));

end

end

end

a

%方法2:

a=magic(3);b=a>5;%b是逻辑数组

a(b)=sqrt(a(b))

%如果要求同时对小于等于5的元素求平方呢?

修改的程序如下:

%方法1:

a=magic(3);

forii=1:

size(a,1)

forjj=1:

size(a,2)

ifa(ii,jj)>5

a(ii,jj)=sqrt(a(ii,jj));

else

a(ii,jj)=a(ii,jj)^2;

end

end

end

a

%方法2:

a=magic(3);

b=a>5;a(b)=sqrt(a(b));a(~b)=a(~b).^2;a

26.求n!

n=1,2,…,10。

解:

%定义函数文件factor:

functionf=factor(n)

ifn<=1

f=1;

else

f=factor(n-1)*n;

end

return;%返回

%编写下述的命令文件中调用函数文件factor.m:

%fori=1:

10

%fac(i)=factor(i);

%end

%fac

27.求函数f(x)=sin(x)+3在区间[25]的极小值。

解:

%方法1:

f=inline('sin(x)+3');x=fminbnd(f,2,5);

%方法2:

x=fminbnd('sin(x)+3',2,5);

sin(x)+3%f(x)在区间[25]的极小值

28.建立一数据文件,用于存放若干名学生的姓名和成绩。

解:

n=input('Pleaseinputthenumberofstudent?

');

fid=fopen('ss.txt','w');

fori=1:

n

n=input('name=?

','s');

s=input('score=?

');

fprintf(fid,'%8s%6.1f\n',n,s);

end

fclose(fid);

29.已知x=[-43,72,9,16,23,47],求向量x的最大值和最小值。

解:

x=[-43,72,9,16,23,47]

y=max(x)%求向量x中的最大值

[y,l]=max(x)%求向量x中的最大值及其该元素的位置

z=min(x)%求向量x中的最小值

[z,m]=min(x)%求向量x中的最小值及其该元素的位置

30.分别求三阶魔方矩阵中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。

解:

x=magic(3)

max(x)%矩阵x中各列元素中的最大值

max(x,[],2)%矩阵x中各行元素中的最大值

min(x)%矩阵x中各列元素中的最小值

min(x,[],2)%矩阵x中各行元素中的最小值

max(max(x))%整个矩阵的最大值

min(min(x))%整个矩阵的最小值

31.分析下列程序的功能。

x=[456;148];

y=[175;457];

p=max(x,y);

P

解:

取两个2×3的二维数组x和y同一位置上的元素值大者构成一个新矩阵p。

32.已知x=[1842;9625;3671],从不同维方向求出其平均值和中值。

解:

x=[1842;9625;3671];

median(x)

median(x,1)%按列方向,求数组的中值

median(x,2)%按行方向,求数组的中值

mean(x)

mean(x,1)%按列方向,求数组的平均值

mean(x,2)%按行方向,求数组的平均值

33.已知x=[456;148],分析矩阵x的每行、每列元素的乘积和全部元素的乘积。

解:

x=[456;148];

sum(x)

sum(x,1)%求数组各列元素的和

sum(x,2)%求数组各行元素的和

sum(sum(x))%求数组所有元素的和

prod(x)

prod(x,1)%求数组各列元素的乘积

prod(x,2)%求数组各行元素的乘积

prod(prod(x))%求数组所有元素的乘积

34.已知a=[123;396;4108;407],从不同维方向求出其标准方差。

解:

a=[123;396;4108;407];

std(a)

std(a,0,1)%按公式1按列方向求矩阵a的标准方差

std(a,1,1)%按公式2按列方向求矩阵a的标准方差

std(a,0,2)%按公式1按行方向求矩阵a的标准方差

std(a,1,2)%按公式2按列方向求矩阵a的标准方差

35.已知a=[123;396;4108;407],对矩阵排序。

解:

a=[123;396;4108;407];

sort(a,1)

sort(a,1,'ascend')%对矩阵a的各列进行升序排列

sort(a,2)%对矩阵a的各行进行排列

sort(a,2,'ascend')%对矩阵a的各行进行升序排列

sort(a,1,'descend')%对矩阵a的各列进行降序排列

sort(a,2,'descend')%对矩阵a的各行进行降序排列

36.分析下列语句的功能。

a=[1234;5678;9101112;13141516];

(1)flipud(a);

(2)fliplr(a);(3)a=[1;2;6;7;8];flipud(a)(4)a=[12678];flipud(a)。

解:

(1)上下方向翻转矩阵。

(2)水平方向翻转矩阵。

(3)列向量的上下方向翻转。

(4)行向量的上下方向翻转。

37.求矩阵a=[-211;020;-413]的特征值和特征向量

解:

a=[-211;020;-413];[X,D]=eig(a)

38.求多项式

的根。

解:

A=[1,8,0,0,-10];x=roots(A)

39.求正弦、余弦函数在区间[01]内间隔为0.25的各点的值。

解:

x=0:

1;y1=sin(x);y2=cos(x);xi=0:

.25:

1;

yi1=interp1(x,y1,xi),yi2=interp1(x,y2,xi)%线性插值方法

yi1=interp1(x,y1,xi,'nearest'),yi2=interp1(x,y2,xi,'nearest')%最邻近插值

40.已知

在[1,3]区间10个采样点的函数值,求

的4次拟合多项式p(x)。

解:

x=linspace(1,3,10);

y=exp(x);

p=polyfit(x,y,4)

41.求

解:

(1)建立被积函数文件fesin.m

functionf=fesin(x)

f=exp(-0.5*x).*sin(x+pi/6);

(2)调用数值积分函数quad求定积分

[S,n]=quad('fesin',0,3*pi)

42.求

解:

(1)被积函数文件fx.m。

functionf=fx(x)

f=x.*sin(x)./(1+cos(x).*cos(x));

(2)调用函数quad8求定积分。

I=quad8('fx',0,pi)

43.在区间

内,绘制曲线

解:

x=0:

pi/100:

2*pi;y1=2*sin(2*x);y2=3*sin(3*x);

plot(x,y1,x,y2)%在同一个坐标系分别绘制二维图形

title('Thisisfigureofthethirdexample.');%给图形加上标题

xlabel('x');%给x轴加标注

ylabel('y');

legend('2*sin(2*x)','3*sin(3*x)');%在当前图形上输出图例

44.绘制函数y=sinxcos2x的图形。

解:

x=linspace(0,2*pi,30);y=sin(x).*cos(2*x);plot(x,y,'r--')%红色虚线

title('y=sin(x)*cos(2*x)');xlabel('x');ylabel('y=sinxcos2x');grid

text(5.5,0,'y=sinxcos2x')%在点(5.5,0)处放置文本y=sinxcos2x

45.绘制正弦、余弦、双曲正弦和双曲余弦三角函数的图形。

解:

subplot(2,2,1);ezplot('sin(x)');title('sin(x)');

subplot(2,2,2);ezplot('cos(x)');title('cos(x)');

subplot(2,2,3);ezplot('sinh(x)');title('sinh(x)');

subplot(2,2,4);ezplot('cosh(x)');title('cosh(x)');

46.绘制向量(268785)的直方图

解:

x=[123456];y=[268785];bar(x,y,0.5);

title('ExampleofaBarPlot');xlabel('x');ylabel('y');axis([07010]);

47.绘制向量(1037566)的饼图。

解:

data=[1037566];explode=[01000];pie(data,explode);

title('ExampleofaPiePlot');legend('One','Two','Three','Four','Five');

48.绘制向量(268785)的离散杆状图。

解:

x=[123456];y=[268785];stem(x,y,'filled');

title('ExampleofaStemPlot');xlabel('x');ylabel('y');axis([07010]);

49.绘制三维网面

的图形。

解:

%方法1:

x=-1:

0.05:

1;y=x;[x,y]=meshgrid(x,y);z=x.^2+2*y.^2;surf(x,y,z)

%方法2:

symsxy;f=x^2+y^2;ezsurf(f)%-2≤x≤2,-2≤y≤2

%方法3:

ezsurf('x','y','x^2+y^2',[-1,1,-1,1])%-1≤x≤1,-1≤y≤1

50.绘制z=sinxcosx的三维网格曲面图。

解:

x=0:

0.15:

2*pi;y=0:

0.15:

2*pi;z=sin(y')*cos(x);

mesh(x,y,z);

xlabel('x-axis'),ylabel('y-axis'),zlabel('z-label');title('3-Dmesh');

51.求下列极限。

解:

极限1:

symsamx;

f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(x+a);

limit(f,x,a)

ans=

(1/2*a*exp(sin(a))+1/2*a-exp(tan(a))+1)/a

极限2:

symsxt;

limit((1+2*t/x)^(3*x),x,inf)

ans=

exp(6*t)

极限3:

symsx;

f=x*(sqrt(x^2+1)-x);

limit(f,x,inf,'left')

ans=

1/2

极限4:

symsx;

f=(sqrt(x)-sqrt

(2)-sqrt(x-2))/sqrt(x*x-4);

limit(f,x,2,'right')

ans=

-1/2

52.生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。

解:

X=randn(10000,5);

M=mean(X)

D=std(X)

R=corrcoef(X)

53.某观测站测得某日6:

00时至18:

00时之间每隔2小时的室内外温度(℃),用3次样条插值分别求得该日室内外6:

30至17:

30时之间每隔2小时各点的近似温度(℃)。

解:

设时间变量h为一行向量,温度变量t为一个两列矩阵,其中第一列存放室内温度,第二列储存室外温度。

命令如下:

h=6:

2:

18;

t=[18,20,22,25,30,28,24;15,19,24,28,34,32,30]';

XI=6.5:

2:

17.5

YI=interp1(h,t,XI,'spline')%用3次样条插值计算

54.某实验对一根长10米的钢轨进行热源的温度传播测试。

用x表示测量点0:

2.5:

10(米),用h表示测量时间0:

30:

60(秒),用T表示测试所得各点的温度(℃)。

试用线性插值求出在一分钟内每隔20秒、钢轨每隔1米处的温度TI。

解:

命令如下:

x=0:

2.5:

10;

h=[0:

30:

60]';

T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];

xi=[0:

10];

hi=[0:

20:

60]';

TI=interp2(x,h,T,xi,hi)

55.函数x(t)=12sin(2π×10t+π/4)+5cos(2π×40t),取N=128,试对t从0~1秒采样,用fft作快速傅立叶变换,绘制相应的振幅-频率图。

解:

N=128;%采样点数

T=1;%采样时间终点

t=linspace(0,T,N);%给出N个采样时间ti(I=1:

N)

x=12*sin(2*pi*10*t+pi/4)+5*cos(2*pi*40*t);%求各采样点样本值x

dt=t

(2)-t

(1);%采样周期

f=1/dt;%采样频率(Hz)

X=fft(x);%计算x的快速傅立叶变换X

F=X(1:

N/2+1);%F(k)=X(k)(k=1:

N/2+1)

f=f*(0:

N/2)/N;%使频率轴f从零开始

plot(f,abs(F),'-*')%绘制振幅-频率图

xlabel('Frequency');

ylabel('|F(k)|')

56.分别用Jacobi迭代和Gauss-Serdel迭代法求解下列线性方程组,看是否收敛。

解:

a=[1,2,-2;1,1,1;2,

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

当前位置:首页 > 农林牧渔 > 林学

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

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