哈工大matlab期末考精彩试题精彩试题及问题详解(95分)分解

发布时间:2019-12-21 14:53:23   来源:文档文库   
字号:

春季学期MATLAB期末作业

学院:机电工程学院

专业:机械制造设计及其自动化

学号:

班号:

姓名:

2013年春季学期

MATLAB 课程考查题

姓名:

学号

学院 机电学院

专业: 机械制造

一、 必答题:

1. matlab常见的数据类型有哪些?各有什么特点?

常量:具体不变的数字

变量:会根据已知条件变化的数字

字符串:由单引号括起来的简单文本

复数:含有复数的数据

2. MATLAB中有几种帮助的途径?

1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器;

2help命令:在命令窗口键入“help 命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息;

3lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数

4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。

注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。

3. Matlab常见的哪三种程序控制结构及包括的相应的语句?

1.顺序结构:数据输入A=input(提示信息,选项)

数据输出disp(X)

数据输出fprintf(fid,format,variables)

暂停pause pause(n)

2.选择结构:

If语句:

if expression (条件)

statements1(语句组1

else

statements2(语句组2

End

Switch 语句:

switch expression (表达式)

case value1 (表达式1

statement1(语句组1

case value2 (表达式2

statement2(语句组2

... ...

case valuem (表达式m

statementm(语句组m

otherwise

statement (语句组)

end

3.循环结构:

For循环:

for variable=expression(循环变量)

statement(循环体)

end

While循环:

while expression (条件<循环判断语句>

statement(循环体)

end

4. 命令文件与函数文件的主要区别是什么?

命令文件:不接受输入参数,没有返回值,基于工作空间中的数据进行操作, 自动完成需要花费很多时间的多步操作时使用。

函数文件:可以接受输入参数,可以有返回值,默认时,文件中参数的作用范围只限于函数内部,扩展MATLAB语言功能时使用

5. 什么是全局变量和局部变量?

全局变量:作用域是在整个MATLAB工作空间,即全程有效,所有函数都可以对其进行存取和修改,定义全局变量是函数之间传递信息的手段。

局部变量:函数文件变量一般是局部变量,与其他函数和matlab工作空间是隔离的。即在一个函数文件中定义的变量不能被另一个函数文件引用。如果在若干函数中,把某个变量定义为全局变量,那么这些函数可以共用这个变量。

6. 数据插值和曲线拟合区别?

曲线拟合研究的是如何寻找平滑曲线以最好的表现带噪声的测量数据,但不要求拟合曲线穿过这些测量数据点;插值是研究如何平滑的估算出基准数据之间的其他点的函数值,所以插值所得曲线一定要穿过基准数据。

7. 数值运算与符号运算的区别?

数值运算:

1. 其运算的元素是数值;

2. 在运算过程中必须先对变量进行赋值,然后才能参加运算;

3. 其结果以数值形式出现。

符号运算:

1. 其运算的元素是符号;

2. 在运算过程中无须对变量进行赋值就可参加运算;但是必须先定义符号变量;

3. 其结果以符号形式出现。

8. GUI开发环境中提供了哪些方便的工具?各有什么用途?

布局编辑器(Layout Edtor)——在图形窗口中创建及布置图形对象;

几何排列工具(Alignment Tool)——调整各对象之间的几何关系和位置;

属性查看器(Property Inspector)——查询并设置对象的属性值;

对象浏览器(Object Browser)——用于获得当前Matlab窗口中图形对象句柄的分级排列;

菜单编辑器(Menu Editor)——建立和编辑主菜单和图形对象鼠标右键菜单

Tab顺序编辑器(Tab Order Editor——用于设置当用户按下键盘上的Tab键时,对象被选中的先后顺序。

9. 简述Simulink建立子系统的两种方法及其子系统封装的4个选项

1、使用Subsystems模块库中的Subsystem模块建立子系统,首先构成系统的整体模型,然后编辑空的子系统内的模块。(注意,对于多输入与多输出子系统而言,需要使用Sources模块库中的In1输入虚模块与Sinks模块库中的Out1输出虚模块来实现。)

2、首先选择能够完成一定功能的一组模块,然后选择Simulink模型创建编辑器中Edit菜单下的Create Subsystem,即可建立子系统并将这些模块封装(到此子系统中,Simulink自动生成子系统的输入与输出端口。)

3、Icon Parameters Initialization标签页 Documentation标签页

10. 分别采用函数 fixfloorceilroundA=[ -1.95,-1.25,1.45,1.85]取整,并说明这些取整函数的区别。

fix函数:结尾取整

Ceil函数:向上取整

Floor函数:向下取整

Round函数:四舍五入

11. A=[1,2,3;4,5,6;7,8,9]矩阵的秩,迹,特征值和特征向量、范数和方阵的条件数;并求Aa= magic(5)矩阵行列式,逆矩阵和伪逆矩阵,并说明逆矩阵和伪逆矩阵区别。

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

rank=rank(A)

trace=trace(A)

[V,D]=eig(A)

norm=norm(A)

cond=cond(A)

结果:rank = 2

trace = 15

V =

-0.2320 -0.7858 0.4082

-0.5253 -0.0868 -0.8165

-0.8187 0.6123 0.4082

D =

16.1168 0 0

0 -1.1168 0

0 0 -0.0000

norm =16.8481

cond =3.8131e+16

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

a=magic(5)

detA=det(A)

invA=inv(A)

pinvA=pinv(A)

deta=det(a)

inva=inv(a)

pinva=pinv(a)

如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A‘同型的矩阵B,使得:

A·B·A=A

B·A·B=B

此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。

12. 已知:a=6; A=pascal(4); B=randn(4);A*B A.*B, B/AB./A, B\A, B.\A ,A.^a A^a,并且说明数组和矩阵在上述运算中的区别。

a=6; A=pascal(4); B=randn(4);

A*B

A.*B

B/A

B./A

B\A

B.\A

A.^a

A^a

ans =

-3.3843 -0.7710 0.2884 -0.4321

-5.7672 -3.9198 1.6239 1.0912

-6.7793 -10.8330 4.2172 4.3328

-4.9821 -23.2219 8.3812 9.9203

ans =

-1.0689 0.3252 -0.1022 -0.8649

-0.8095 -1.5099 -0.7243 -0.1202

-2.9443 4.1109 1.9152 -1.6488

1.4384 -6.8461 3.1286 12.5541

ans =

-5.7707 9.4959 -6.2804 1.4863

0.3558 -3.1462 2.7419 -0.7610

-18.5572 32.8440 -23.1637 5.9327

16.6463 -34.1498 25.8257 -6.8838

ans =

-1.0689 0.3252 -0.1022 -0.8649

-0.8095 -0.3775 -0.0805 -0.0075

-2.9443 0.4568 0.0532 -0.0165

1.4384 -0.4279 0.0313 0.0314

ans =

-0.6348 -1.6245 -2.9494 -4.6346

-1.1688 -2.9031 -5.9575 -10.7762

1.7679 6.3637 16.2994 33.0876

-1.0201 -0.9924 -1.6780 -3.3918

ans =

-0.9356 3.0751 -9.7807 -1.1562

-1.2353 -2.6493 -12.4251 -133.1057

-0.3396 2.1893 18.7966 -60.6505

0.6952 -2.3371 31.9633 31.8620

ans =

1 1 1 1

1 64 729 4096

1 729 46656 1000000

1 4096 1000000 64000000

ans =

1200089 4011200 9133680 17222240

4011200 13407257 30529056 57564976

9133680 30529056 69516457 131078976

17222240 57564976 131078976 247160297

数组运算是指数组对应元素之间的运算,也称点运算.矩阵的乘法、乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所以数组乘法、乘方和除法的运算符前特别加了一个点。

(1)对于乘法、乘方和除法等三种运算,矩阵运算与数组运算的运算符及含义都不同:矩阵运算按线性变换定义,使用通常符号;数组运算按对应元素运算定义,使用点运算符;

(2)数与矩阵加减、矩阵除法在数学是没有意义的,在MATLAB中为简便起见,定义了这两类运算

13. 分别采用不循环语句和循环语句Forwhile计算级数:S=1+6+62+63+···+633 并且说明循环语句Forwhile之间的区别。

While 语句

s=0;

i=0;

while i<34

s=s+6^i;

i=i+1;

end

S

For 语句:

s=0;

for i=(0:1:33)

s=s+6^i;

end

S

不循环语句:

i=(0:1:33);

sum(6.^i)

forwhile的区别:while循环语句与for循环语句不同的是,前者是以条件的满足与否来判断循环是否结束的,而后者则是以执行次数是否达到指定值来判断的。

14. 采用M函数文件编写特殊矩阵函数HilbterHilbter矩阵特点是每个元素,并且调用matlab中的函数Hilb,进行对比。

A=zeros(6,6)

A =

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

>> for i=1:1:6

for j=1:1:6

A(i,j)=1./(i+j-1);

end

end

>> A

A =

1.0000 0.5000 0.3333 0.2500 0.2000 0.1667

0.5000 0.3333 0.2500 0.2000 0.1667 0.1429

0.3333 0.2500 0.2000 0.1667 0.1429 0.1250

0.2500 0.2000 0.1667 0.1429 0.1250 0.1111

0.2000 0.1667 0.1429 0.1250 0.1111 0.1000

0.1667 0.1429 0.1250 0.1111 0.1000 0.0909

>> hilb(6)

ans =

1.0000 0.5000 0.3333 0.2500 0.2000 0.1667

0.5000 0.3333 0.2500 0.2000 0.1667 0.1429

0.3333 0.2500 0.2000 0.1667 0.1429 0.1250

0.2500 0.2000 0.1667 0.1429 0.1250 0.1111

0.2000 0.1667 0.1429 0.1250 0.1111 0.1000

0.1667 0.1429 0.1250 0.1111 0.1000 0.0909

两者相同。

15. 分别求多项式a(x)=x4+8x3-10和多项式b(x)= 2x2-x+3的乘以和除以结果,同时求这两个多项式乘积的导函数和两个多项式除法的导函数。

syms x

p1=[1 8 0 0 -10];

p2=[2 -1 3];

w = conv(p1,p2);

k = polyder(p1,p2);

[Q,r] = deconv(p1,p2);

[p,q] = polyder(p1,p2);

a=poly2str(p1,'x')

b=poly2str(p2,'x')

ab=poly2str(w,'x')

dab=poly2str(k,'x')

e=poly2str(Q,'x')

de=poly2str(p,'x')

g=poly2str(r,'x')

dg=poly2str(q,'x')

16. 已知多项式P(x)=x4+8x3,分别用polyvalpolyvalm函数计算这多项式在x=[-1,1.2;2,-1.8]处的值,它们区别是什么?

p=[1,8,0,0,0];

x=[-1,1.2;2,-1.8];

polyval(p,x)

polyvalm(p,x)

x可以是一个矩阵或者一个向量,在这两种情况下,polyval计算在X中任意元素处的多项式p的估值,计算在x=-11.22-1.8的值,结果以矩阵的形式表示出来。而polyvalm运算时把x=A矩阵直接带入多项式进行运算,进行矩阵运算,结果也是一个矩阵。

17. 2次和6次多项式拟合在[0,2]区间的函数y=cos(x) *exp(x/20),并将原始数据和拟合结果绘制在一个图中,并且进行图形标注。

x=0:0.1:2;

y=cos(x) .*exp(x/20);

p1=polyfit(x,y,2);

y1=polyval(p1,x);

p2=polyfit(x,y,6);

y2=polyval(p2,x);

hold on;

plot(x,y,'or--');

plot(x,y1,'b--');

plot(x,y2,'g*');

xlabel('x');

ylabel('y');

legend('原始数据','二次多项式拟合','六次多项式拟合')

18. 有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:pi/5:4*pi,用三次样条法进行插。

x=0:pi/5:4*pi;

y=sin(x).*exp(-x/10);

xi=0:0.1:4*pi;

yi_spline=interp1(x,y,xi,'spline');

plot(x,y,'ro',xi,yi_spline,'b-');

title('三次样条插值');

19. 求解恰定方程组,采用左除法、求逆法、lu qr 分解法求数值解

2x+y-3z+w=11

x-2y+7w=-7

2y+z-w=5

x+4y-z-2w=0

A=[2,1,-3,1;1,-2,0,7;0,2,1,-1;1,4,-1,-2];

B=[11;-7;5;0];

x=A\B

x=pinv(A)*B

[L,U]=lu(A);

x=U\(L\B)

[Q,R]=qr(A);

x=R\(Q\B)

20. 在同一图形窗口采用子图的形式绘制不同图形,条形图、阶梯图、杆图和对数坐标图。

x=-pi:0.1:pi;

y=1./(1+exp(-x));

subplot(2,2,1);bar(x,y,'g');

title('bar(x,y,''g'')');axis([0,7,-2,2]);

subplot(2,2,2);stairs(x,y,'b');

title('stairs(x,y,''b'')');axis([0,7,-2,2]);

subplot(2,2,3);stem(x,y,'k');

title('stem(x,y,''k'')');axis([0,7,-2,2]);

subplot(2,2,4)

loglog(x,y)

二、 选答题(在下列题中选答4题):

1..符号运算(必选两道)

(1) 求微分方程

syms t y;

dsolve('Dy = (t^2+y^2)/2/t^2')

ans =

-t*(1/(C4 + log(t)/2) - 1)

(2) 求代数方程的解

[x]=solve('1/(x+2)+a=1/(x-2)')

x =

(2*(a*(a + 1))^(1/2))/a

-(2*(a*(a + 1))^(1/2))/a

2. 求解方程的数值解(必选两道)

(1)

function yp =text2(x)

%UNTITLED5 Summary of this function goes here

% Detailed explanation goes here

yp = x-sin(x)-10^x;

end

z = fzero('text2',0.5)

z =

NaN

(2) 非线性方程组在(0.5,0.5) 附近的数值解

function q=myfun1(p)

x=p(1);

y=p(2);

q(1)=2*x^2-0.3*cos(y);

q(2)=3*y^2-0.6*cos(x);

end

x=fsolve('myfun1',[0.5,0.5]',optimset('Display','off'))

x =

0.3691

0.4319

(3) 常微分方程数值解

(4) 采用牛顿-科特斯法数值求解定积分

3. 采用GUI设计工具设计用户界面,要求设计一个带有两个按钮和一个坐标轴的图形用户界面,当用鼠标点击两个按钮时,分别在坐标轴内画cylinderpeaks 两个图形。

4. ,分别绘制它的网络图、带等高线的空间曲面、屏蔽边界面的空间曲面和表面图

[x,y]=meshgrid([-8:.5:8]);

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

mesh(x,y,z)

subplot(2,2,1), plot3(x,y,z)

title('plot3 (x,y,z)')

subplot(2,2,2), mesh(x,y,z)

title('mesh (x,y,z)')

subplot(2,2,3), surf(x,y,z)

title('surf (x,y,z)')

subplot(2,2,4), surf(x,y,z), shading interp

title('surf (x,y,z), shading interp')

5. 有初始状态为0的二阶微分方程,其中u(t)是单位阶跃函数,建立系统并仿真,并用scope模块观察结果。

6. 编程:某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示)

1 price<200 没有折扣

2 200price<500 3%折扣

3 500price<1000 5%折扣

4 1000price<2500 8%折扣

5 2500price<5000 10%折扣

6 5000price 14%折扣

输入所售商品的价格,求其实际销售价格

price=input('请输入商品价格');

a=price;

switch fix(a/100)

case {0,1}

rste=0;

case {2,3,4}

rate=0.03;

case num2cell(5:9)

rate=0.05;

case num2cell(10:24)

rate=0.08;

case num2cell(25:49)

rate=0.1;

otherwise

rate=0.14;

end

a=a.*(1-rate)

本文来源:https://www.2haoxitong.net/k/doc/1ee3c1fc4493daef5ef7ba0d4a7302768e996f09.html

《哈工大matlab期末考精彩试题精彩试题及问题详解(95分)分解.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式