MATLAB习题.docx

上传人:b****6 文档编号:9189104 上传时间:2023-02-03 格式:DOCX 页数:22 大小:112.89KB
下载 相关 举报
MATLAB习题.docx_第1页
第1页 / 共22页
MATLAB习题.docx_第2页
第2页 / 共22页
MATLAB习题.docx_第3页
第3页 / 共22页
MATLAB习题.docx_第4页
第4页 / 共22页
MATLAB习题.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

MATLAB习题.docx

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

MATLAB习题.docx

MATLAB习题

习题一

1、通常情况下,MATLAB的工作界面主要由有哪几种窗口构成?

答:

指令窗口、历史指令窗口、工作空间浏览器、当前目录浏览器等窗口构成。

2、在MATLAB窗口中,可以键入各种指令、函数,并显示运行结果的窗口为【A】

A、指令窗口B、当前目录浏览器C、工作空间浏览器D、历史指令窗口

3、在MATLAB窗口中,可以对内存变量直接进行操作的窗口为【C】

A、指令窗口B、当前目录浏览器C、工作空间浏览器D、历史指令窗口

4、在MATLAB窗口中,记录在MATLAB命令窗口执行过的指令操作的窗口为【D】

A、指令窗口B、当前目录浏览器C、工作空间浏览器D、历史指令窗口

5、在MATLAB窗口中,用于搜索、查看和改变MATLAB路径和文件的窗口为【B】

A、指令窗口B、当前目录浏览器C、工作空间浏览器D、历史指令窗口

6、在MATLAB语言中,如果一个命令行很长,可以在物理行之后如下续行符【B】

A、“,”B、“…”C、“、、、”D、“,”

7、在MATLAB语言中,提示其后语句为输入指令的行提示符为【D】

A、“;”B、“:

”C、“,”D、“>>”

8、在MATLAB语言中,在指令窗口运行过的指令再次调出运行的按键为【B】

A、“;”B、“↑”或“↓”C、“,”D、“>>”

9、在MATLAB语言中,若希望结果不被显示,可在语句之后加上符号【A】

A、“;”B、“:

”C、“,”D、“>>”

10、在MATLAB语言中,下列常用操作命令解释错误的是【BE】

A、dir为显示当前目录下的文件B、clc为清除工作区中的变量

C、path为显示搜索目录D、clf为清空当前图形窗口

E、clear为清除命令窗口中的内容F、path为显示搜索路径

11、若只知要搜索函数的前两个字母,可用lookfor命令搜索此关键字的帮助信息。

12、在MATLAB语言中,可采用Tab键进行模糊查询。

习题二

1、采用MATLAB语言计算

2、下列MATLAB命令中,求矩阵A的行列式的命令是【B】

A、rank(A)B、det(A)C、trace(A)D、eig(A)

3、下列MATLAB命令中,求矩阵A的特征值的命令是【D】

A、rank(A)B、det(A)C、trace(A)D、eig(A)

4、下列MATLAB命令中,求矩阵A的秩的命令是【A】

A、rank(A)B、det(A)C、trace(A)D、eig(A)

5、在MATLAB语言中,下列哪个命令是求矩阵A的正交分解【B】

A、[L,U]=lu(A)B、[Q,R]=qr(A)C、[V,D]=eig(A)D、[U,S,V]=SVD(A)

6、在MATLAB语言中,下列哪个命令是求矩阵A的三角分解【A】

A、[L,U]=lu(A)B、[Q,R]=qr(A)C、[V,D]=eig(A)D、[U,S,V]=SVD(A)

7、求多项式的根

p=[4,-2,5,-6];roots(p)。

8、求多项式在x=3处的值。

习题三

1、已知三阶魔术矩阵B,写出求矩阵的最大值、平均值、元素排序的程序语言;

2、已知函数y=x3+x2+5,求其一阶导数的程序语言为:

diff(‘y=x^3+x^2+5’,x)

3、已知矩阵F,求其行与列方向的数值梯度的程序语言为:

[fx,fy]=gradient(F)

4、MATLAB语言中,通常用两种方式表示函数表达式:

函数文件、内联函数

5、采用函数绘图命令绘制x2+y2=1:

ezplot(‘x.^2+y.^2=1’)

6、低阶数值积分函数quad求解的命令为:

y=quad('sin(x)',-1,1)

7、求微分方程解析解的常用函数为:

dsolve

习题四

⏹1、Simulink的仿真模型主要由输入模块、状态模块、输出模块三个部分构成。

⏹2、建立仿真模型的过程主要由模型结构分析、模块的复制、模块连接、参数设置(模块参数及仿真参数)、运行仿真五个步骤完成。

实验一

【例1】求

的算术运算结果。

>>(sin(pi/3)+(2+i)*sqrt(9))/exp

(2)

【例2】解线性方程组:

>>a=[2,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6];b=[8;9;-5;0];

>>x=a\b

【例3】计算三重定积分

,其中Ω为三个坐标面及平面

所围成的闭区域。

>>symsxyz

int(int(int(x,x,0,1-2*y-z),y,0,(1-z)/2),z,0,1)

【例4】画出衰减振荡曲线

及其它的包络线

x的取值范围是[0,4π]。

x=linspace(0,4*pi);

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

y1=exp(-x);

y2=-exp(-x);

plot(x,y,x,y1,x,y2)

xlabel('x')

ylabel('y')

title('衰减振荡曲线')

【例5】采用surf函数画出

所表示的三维曲面。

x,y的取值范围是[-8,8]。

x=linspace(-8,8,50);

y=linspace(-8,8,50);

[x,y]=meshgrid(x,y);

z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2);

surf(x,y,z)

【例7】根据课件第一章例7,尝试模拟电流与电容电压之间的关系曲线图。

functionxdot=RLC(t,x)

Vs=10;R=14;L=0.2;C=0.47e-6;

xdot=[x

(2)/C;1/L*(Vs-x

(1)-R*x

(2))];

clear;clc;closeall;

t0=0;tfinal=0.15;x0=[0.5;0];

[t,x]=ode45('RLC',t0,tfinal,x0);

figure

subplot(2,1,1)

plot(t,x(:

1))

title('电容电压')

xlabel('时间')

subplot(2,1,2)

plot(t,x(:

2))

title('电感电流')

xlabel('时间')

【例8】了解GUI图形用户界面的构成,根据所给程序文件,试图运行,并观察仿真结果。

I=imread('linshuhao.bmp');

J=rgb2gray(I);

subplot(1,2,1);

imshow(I)

subplot(1,2,2);

imshow(J)

【例1】采用两种方式生成等差向量,且向量元素范围为-20~20,步长为2、元素个数为21。

>>vec=(-20:

2:

20)

>>vec=linspace(-20,20,21)

【例2】创建一个4阶魔术矩阵A与单位矩阵B,并分别计算两矩阵之和、矩阵相乘、矩阵点乘、A矩阵乘方、A矩阵装置。

>>A=magic(4)>>B=eye(4)>>C=A+B>>D=A*B>>E=A.*B>>F=A^2>>G=A'

【例3】计算下列表达式的值0.33-0.5+0.17、0.33+0.17-0.5、0.17-0.5+0.33、浮点相对误差限eps

>>0.33-0.5+0.17

ans=2.7756e-017

>>eps

ans=2.2204e-016

>>0.33+0.17-0.5

ans=0

>>eps

ans=2.2204e-016

>>0.17-0.5+0.33

ans=5.5511e-017

>>eps

ans=2.2204e-016

【例4】生成下列字符串,并采用double函数查询下列每一个字符的ASCII码。

>>strl='hello2'

strl=

hello2

>>double(strl)

ans=10410110810811150

>>str2='matlab'

str2=matlab

>>double(str2)

ans=109971161089798

【例5】创建一个结构型变量,用于对某学生情况进行统计,包括学生性别、年龄、民族、入学成绩(包括数学、英语、专业)、身高和体重信息。

然后使用该结构型变量对该学生的入学成绩、身高进行查询

>>student.name='shenyang';

>>student.sex='女';

>>student.nation='汉';

>>student.text=[908991];

>>student.height=1.68;

>>student.weight=57;

>>student

student=

name:

'shenyang'sex:

'女'nation:

'汉'text:

[908991]height:

1.6800weight:

57

【例6】判断下面MATLAB7.0语句的结果:

8<98<=98==98>08<=8‘A’<‘b’

>>8<9ans=1

>>8<=9ans=1

>>8==9ans=0

>>'A'<'b'ans=1

【例7】设矩阵a、b、c和d的定义如下,试对它们进行如下操作。

(1)~(a>b)

(2)a>c&(b>c)(3)c<=d

>>a=[2];

>>b=[2,1;1,4]

>>c=[2,11;2,0]

>>d=[1,1;0,9]

~(a>b)

a>c&(b>c)

【例8】设a、b、c和d的定义如下,a=-2,b=-5,c=150,d=0,试分析下面等式的运算步骤并得出最终结果。

(1)a*b^2>a*c

(2)d|b>a(3)(d|b)>a

a=-2;b=-5;c=150;d=0;

>>a*b^2>a*cans=1

>>d|b>aans=0

>>(d|b)>aans=1

【例1】计算

>>sin(pi/6)+exp(-1)*cos(pi/2)+atan

(1)+log10(100)+16^(1/4)+2^4

ans=21.2854

【例2】设A为4阶魔术矩阵,分别对A进行如下操作:

求矩阵A的逆;求矩阵A的行列式;求矩阵A的秩;求矩阵A的迹;

>>A=magic(4)>>B=inv(A)>>C=det(A)>>D=rank(A)>>E=trace(A)

【例3】设对称实矩阵

,求其特征值和特征向量。

>>a=[2,4,9;4,2,4;9,4,18]

>>eig(a)

ans=-3.0645

1.7042

23.3603

【例4】X为3阶随机矩阵,分别对X进行如下操作:

求X的三角分解;求X的正交分解;求X的特征值分解;求X的奇异值分解;

>>X=rand(3)

>>[L,U]=lu(X)

>>[Q,R]=qr(X)

>>[V,D]=eig(X)

>>[U,S,V]=svd(X)

【例5】设方程的根

求它们对应的多项式。

>>A=[-3,-5,-8,-9];

>>B=poly(A)

B=1252238311080

>>poly2str(B,'X')

ans=X^4+25X^3+223X^2+831X+1080

【例6】创建多项式

>>P=[8,2,2,0,6,1,0];

>>poly2sym(P)

ans=8*x^6+2*x^5+2*x^4+6*x^2+x

【例7】求代数方程

的根。

>>P=[3,4,7,2,9,12];

>>r=roots(P)

r=-0.8612+1.4377i

-0.8612-1.4377i

0.6737+1.0159i

0.6737-1.0159i

-0.9583

【例8】求解在x=8时多项式

的值。

>>P=[1,-10,35,-50,24];

>>X=[8];

>>Y=polyvalm(P,X)

Y=840

【例9】求解多项式

对x的微分。

>>P=[1,-10,35,-50,24];

>>k=polyder(P)

k=4-3070-50

【例1】绘制函数

的图形,把区间分为250点,且在x轴上标注“Time”,y轴上标注“Amplitude”,图形的标题为“DecayingOscillatingExponential”。

x=0:

4*pi/250:

4*pi;y=cos(x).*[0.5+(3.*sin(x))./(1+x.^2)];

figure

(1);plot(x,y,'k-');

gridon;

xlabel('Time');

ylabel('Amplitude');

title('DecayingOscillatingExponential')

【例2】分别绘制下列函数图形:

条形图:

y=[3696;6774;7323;4252;2487;8744];分组形式bar(y)和堆叠形式bar(y,’stack’)极坐标图形:

饼图:

x=[6649715638],并将第五个切块分离出来

y=[3696;6774;7323;4252;2487;8744];

bar(y)

bar(y,'stack')

>>t=0:

0.01:

4*pi;

>>r=3*(1-cos(t));

>>polar(t,r)

>>figure

(1);

x=[66,49,71,56,38];

y=[0,0,0,0,1];

pie(x,y)

【例3】在同一绘图窗口中绘制下列两条曲线(

):

要求:

用红色、加号、点划线表示

;用蓝色、菱形、虚线表示

给坐标图加网格;对两图形添加注解,分别为y1、y2;

x=0:

1:

25;

y1=2.*exp(-0.5.*x).*cos(0.5.*x)+1;

plot(x,y1,'r+-.');

holdon;

y2=cos(3.*x)+sin(x);

plot(x,y2,'bd--')

gridon;

legend('y1=2.*exp(-0.5.*x).*cos(0.5.*x)+1','y2=cos(3.*x)+sin(x)')

【例4】设

,要求在

区间内画出x,y,z三维曲线。

z=-45:

45;

x=z.*sin(z);

y=z.*cos(3*z);

plot3(x,y,z)

【例5】设

,当x和y的取值范围均为-2到2时,在同一图形窗口建立4个子窗口,分别绘制三维网格线图、三维表面图、带渲染效果的表面图、部分裁剪的表面图。

x=-2:

0.2:

2;

y=x;

[X,Y]=meshgrid(x,y);

gridon;

Z=X.^2.*exp(-(X.^2+Y.^2));

subplot(2,2,1);

mesh(X,Y,Z);

title('1.三维网格线图');

subplot(2,2,2);

surf(X,Y,Z);

title('2.三维表面图');

subplot(2,2,3);

surf(X,Y,Z);

shadinginterp;

title('3.带渲染效果的表面图');

subplot(2,2,4);

p=find(X<1&Y<0);

Z(p)=NaN;

surf(X,Y,Z);

title('4.部分裁剪的表面图');

实验五【例1】求一元二次方程

的根。

采用input函数提示分别输入方程系数a、b、c的值,令

,则方程的根

采用disp函数显示两根的值。

命令文件:

%求二元一次方程a*x^2+b*x+c=0的根

a=input('a=');

b=input('b=');

c=input('c=');

d=b*b-4*a*c;

x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]

disp(['x1=',num2str(x

(1)),',x2=',num2str(x

(2))])

%num2str表示数字化为字符串。

【例2】将一个三位数分别拆成分别个位,十位,百位。

然后交换顺序输出。

命令文件:

%一个三位数交换顺序输出

a=input('请输入一个三位数字:

');

x=mod(a,10);

y=mod(a,100)-x;

z=a-y-x;

e=100*x+y+z/100;

disp(e)

【例3】定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。

函数文件:

文件名:

convert

程序:

function[z,d,s,c]=convert(a,b)

z=exp(a+b*i);

d=log(a+b*i);

s=sin(a+b*i);

c=cos(a+b*i);

函数调用:

程序:

clear

x=input('请输入复数实部的值');

y=input('请输入复数虚部的值');

[a,b,c,d]=convert(x,y);

disp(['复数',num2str(x),'+',num2str(y),'i的指数为:

',num2str(a),',对数为:

',num2str(b),',正弦为:

',num2str(c),',余弦为:

',num2str(d)])

【例4】利用函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换。

已知极坐标的矢径、极角分别为:

函数文件:

文件名:

transform

程序:

function[r,theta]=transform(x,y)

r=sqrt(x*x+y*y);

theta=atan(y/x);

函数调用:

程序:

x=input('Pleaseinputx=:

');

y=input('Pleaseinputy=:

');

[r,theta]=transform(x,y);

disp(['矢径r为:

',num2str(r),'','极角theta为:

',num2str(theta)])

【例5】if语句有几种表现形式?

(1)if表达式

语句组A

end

(2)if表达式

语句组A

else

语句组B

end

(3)if表达式1

语句组A

elseif表达式2

语句组B

else

语句组C

end【例6】求下列分段函数的值:

要求:

用if语句实现,分别输出x=-5,-3,1,2,2.5,3,10,20时的y值。

程序:

x=input('请输入x的值')

ifx<0&x~=-3

y=x^2+x-6;

elseifx>=0&x<10&x~=2&x~=3

y=x^2-5*x+6;

else

y=x^2-x-1;

end【例7】输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。

其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:

1、采用if语句实现。

2、输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出错误信息。

程序:

x=input('请输入成绩')

ifx>=90&x<=100

disp('等级为A')

elseifx>=80&x<=89

disp('等级为B')

elseifx>=70&x<=79

disp('等级为C')

elseifx>=60&x<=69

disp('等级为D')

elseifx>=0&x<=59

disp('等级为E')

else

disp('成绩有误')

end

【例8】输入一个数,判断该数是否能被5整除?

要求:

采用switch语句实现。

程序:

clear;clc;

n=input('请输入一个数字n=');

switchmod(n,5)

case0

fprintf('%d是5的倍数\n',n)

otherwise

fprintf('%d不是5的倍数\n',n)

end

【例9】已知

,当n=100时,求y的值。

令s0=0,则对于任意i,有si=si-1+1/(i*i),i=1,2,…,n。

要求:

采用for循环语句实现。

程序:

y=0;n=100;

fori=1:

n

y=y+1/i^2;

end

y

【例10】假设

,采用for循环语句求

提示:

每一个小曲边梯形的面积和为定积分的值,步长h=(3*pi-0)/1000。

程序:

a=0;b=3*pi;

n=1000;

h=(b-a)/n;

x=a;s=0;

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

fori=1:

n

x=x+h;

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

s=s+(f0+f1)*h/2;

f0=f1;

end

s

【例11】设x,y,z均为正整数,求下列不定方程组共有多少组解。

提示:

此类方程的个数少于未知数的个数的方程称为不定方程,一般没有唯一解,而有多组解。

对于这类问题,可采用穷举法,即将所有可能的取值一个一个地去试,看是否满足方程,如满足即是方程的解。

首先确定3个变量的可取值,x、y、z均为正整数,所以3个数的最小值是1,而其和为20,所以3者的最大值是18。

要求:

采用for循环嵌套语句实现。

程序:

n=0;

a=[];

forx=1:

18

fory=1:

18

z=20-x-y;

if25*x+20*y+16*z==400

a=[a;x,y,z];

n=n+1;

end

end

end

disp(['方程组共有',num2str(n),'组解']);

disp(a)

【例12】从键盘输入若干个数,当输入0时结束输入,求这些数的和以及平均值。

提示:

设输入的数存放在x中,sum表示和,n表示读入数的个数,则求若干个数的和,就是对x进行累加,即sum=sum+x,其中sum的初值为0。

如果读入个数n大于0,则输出sum、sum/n。

要求:

采用while与if结构语句实现。

程序:

sum=0;n=0;

x=input('Enteranumber(endin0):

');

whilex~=0

sum=sum+x;

n=n+1;

x=input('Enteranumber(endin0):

');

end

ifn>0

sum

mean=sum/n

end

实验六

【例1】一元分段函数为

,创建名为piece_x的函数文件,并绘制该分段函数的图形。

functionf=piece_x(x)

f=x.^2.*(x>=0&x<1)+cos(pi*(x-1)).*(x>=1&x<2)+(-x.^2)./(x+2).*(2<=x&x<=4

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

当前位置:首页 > 高等教育 > 医学

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

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