matlAB实验答案.docx

上传人:b****1 文档编号:1397130 上传时间:2023-04-30 格式:DOCX 页数:35 大小:635.43KB
下载 相关 举报
matlAB实验答案.docx_第1页
第1页 / 共35页
matlAB实验答案.docx_第2页
第2页 / 共35页
matlAB实验答案.docx_第3页
第3页 / 共35页
matlAB实验答案.docx_第4页
第4页 / 共35页
matlAB实验答案.docx_第5页
第5页 / 共35页
matlAB实验答案.docx_第6页
第6页 / 共35页
matlAB实验答案.docx_第7页
第7页 / 共35页
matlAB实验答案.docx_第8页
第8页 / 共35页
matlAB实验答案.docx_第9页
第9页 / 共35页
matlAB实验答案.docx_第10页
第10页 / 共35页
matlAB实验答案.docx_第11页
第11页 / 共35页
matlAB实验答案.docx_第12页
第12页 / 共35页
matlAB实验答案.docx_第13页
第13页 / 共35页
matlAB实验答案.docx_第14页
第14页 / 共35页
matlAB实验答案.docx_第15页
第15页 / 共35页
matlAB实验答案.docx_第16页
第16页 / 共35页
matlAB实验答案.docx_第17页
第17页 / 共35页
matlAB实验答案.docx_第18页
第18页 / 共35页
matlAB实验答案.docx_第19页
第19页 / 共35页
matlAB实验答案.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

matlAB实验答案.docx

《matlAB实验答案.docx》由会员分享,可在线阅读,更多相关《matlAB实验答案.docx(35页珍藏版)》请在冰点文库上搜索。

matlAB实验答案.docx

matlAB实验答案

MATLAB程序设计教程

上机实验报告

 

专业:

机械设计制造及其自动化

班级:

2011级机械4班

姓名:

李衍丹

学号:

20111292

指导老师:

辜良瑶

机电工程学院

2013年1月5日

第一次上机作业

1、求下列表达式的值,显示MATLAB工作空间的使用情况并保存全部变量,变量保存的文件名必须包含自己的学号后四位数:

(1)

(2)

其中a=3.5,b=5,c=9.8。

(3)

,其中

(4)

,其中

程序代码及结果:

(1)>>w=sqrt

(2)*(1+0.34245e-6)

w=

1.4142

(2)>>x=(2*pi*a+((b+c)/(pi+a*b*c))-exp

(2))/(tan(b+c)+a)

x=

6.6186

(3)>>y=2*pi*d*d*((1-pi/4)*e-(0.8333-pi/4)*d)

y=

-128.4271

(4)>>t=[2,1-3i;5,-0.65]

>>z=(1/2)*exp(2*t)*log(t+sqrt(1+t*t))

z=

1.0e+004*

0.0057-0.0007i0.0049-0.0027i

1.9884-0.3696i1.7706-1.0539i

2.已知

,求下列表达式的值:

(1)

(其中I为单位阵);

(2)A*B、A.*B、B*A、B.*A;

(3)A/B、B\A;

(4)[A,B]、[A([13],:

);B^2]。

程序代码及结果:

(1)>>A=[-1,5,-4;0,7,8;3,61,7],B=[8,3,-1;2,5,3;-3,2,0]

>>A+6*B

ans=

4723-10

123726

-15737

>>I=eye(3)

I=

100

010

001

>>A*A-B+I

ans=

-18-21717

22533109

21867526

(2)>>A*B

ans=

141416

-105121

125328180

>>A.*B

ans=

-8154

03524

-91220

>>B*A

ans=

-110-15

722853

3-128

>>B.*A

ans=

-8154

03524

-91220

(3)>>A/B

ans=

1.2234-0.92552.9787

-0.94682.3511-0.9574

4.61703.872313.8936

>>B\A

ans=

-0.5106-8.6170-1.1277

0.734017.57451.8085

-0.8830-21.21280.4043

(4)>>[A,B]

ans=

-15-483-1

078253

3617-320

>>[A([13],:

);B^2]

ans=

-15-4

3617

73371

173713

-2019

3.已知

(1)、取出A的前三行构成矩阵B,其前两列构成矩阵C,其右下角3×2子矩阵构成的矩阵D,B与C的乘积构成矩阵E。

(2)、分别求E

程序代码及结果:

(1)>>B=A(1:

3,1:

4)

B=

23.000010.0000-0.77800

41.0000-45.000065.00005.0000

32.00005.0000032.0000

>>C=A(1:

4,1:

2)

C=

23.000010.0000

41.0000-45.0000

32.00005.0000

6.0000-9.5400

>>D=A(2:

4,3:

4)

D=

65.00005.0000

032.0000

54.00003.1400

>>E=B*C

E=

1.0e+003*

0.9141-0.2239

1.20802.7123

1.1330-0.2103

(2)>>E

ans=

01

00

01

>>E&D

ans=

11

01

11

>>E|D

ans=

11

11

11

>>~E|~D

ans=

00

10

00

4.产生均值为3,方差为1的5阶正态分布的随机方阵。

程序代码及结果:

>>A=3+randn(5)

A=

1.33444.18923.72584.06681.6638

3.12532.96242.41173.05933.7143

3.28773.32735.18322.90444.6236

1.85353.17462.86362.16772.3082

4.19092.81333.11393.29443.8580

5.使用函数,实现方阵A左旋

、右旋

的功能,

程序代码及结果:

>>A=[14710;25811;36912;471013]

A=

14710

25811

36912

471013

>>rot90(A)

ans=

10111213

78910

4567

1234

>>rot90(A,-3)

ans=

10111213

78910

4567

1234

6.建立一个字符串向量(要求字符串向量必须包含自己的姓名,大小写均可),删除其中的大写字母。

程序代码及结果:

xm='MynameisLiyandan'

xm=

MynameisLiyandan

>>xm='MynameisLiyandan

xm=

MynameisLiyandan

>>k=find(xm>='A'&xm<='Z');

>>xm(k)=[];

>>char(xm)

ans=

MynameisLiyandan

7.分别建立一个结构矩阵和一个单元矩阵来存储自己班上5名同学的基本情况数据(其中1名同学必须是自己,另外一名必须是女生),每名学生的数据包括学好、姓名、专业和6门课程的成绩。

并查询自己的所有信息以及女生的成绩。

程序代码及结果:

>>a.xuehao=20111409;a.name='欧阳冬枚';a.major='机械4班';a.grade=[879892919496]

a=

xuehao:

20111409

name:

'欧阳冬枚'

major:

'机械4班'

grade:

[879892919496]

>>b.xuehao=20111292;b.name='李衍丹';b.major='机械4班';b.grade=[918581889790]

b=

xuehao:

20111292

name:

'李衍丹'

major:

'机械4班'

grade:

[918581889790]

>>c.xuehao=20111291;c.name='李翔宇';c.major='机械4班';c.grade=[878791959393]

c=

xuehao:

2011191

name:

'李翔宇'

major:

'机械4班'

grade:

[878791959393]

>>d.xuehao=20111302;d.name='王伟';d.major='机械4班';d.grade=[848792918594]

d=

xuehao:

20111302

name:

'王伟''

major:

'机械4班'

grade:

[848792918594]

>>e.xuehao=20111311;e.name='尹章良';e.major='机械4班';e.grade=[889387918496]

e=

xuehao:

20111311

name:

'尹章良'

major:

'机械4班'

grade:

[889387918496]

>>z={20111409,'欧阳冬枚','机械4班',[879892919496];20111292,'李衍丹','机械4班',[918581889790];20111291,'李翔宇,'机械4班',[878791959393];20111302,'王伟','机械4班',[848792918594];20111311,'尹章良','机械4班',[889387918496]}

z=

[20111409]‘欧阳冬枚''机械4班'[1x6double]

[20111292]'李衍丹''机械4班'[1x6double]

[20111291]'李翔宇''机械4班'[1x6double]

[20111302]'王伟''机械4班'[1x6double]

[20111311]'尹章良''机械4班'[1x6double]

第二次上机作业

1.分析脚本M文件与函数M文件的区别。

区别:

1)、脚本M文件没有输入参数,也不返回输出参数,而函数M文件可以带参数,也可以返回输出参数;

2)、脚本M文件对MATLAB工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数M文件中定义的变量为局部变量,当函数M文件执行完毕时,这些变量被消除;

3)、脚本M文件可以直接运行,在MATLAB命令窗口中输入命令文件的名字,就会顺序执行命令文件中的命令,而函数M文件不能直接运行,而要用函数调用的方式运行。

2.分别编写脚本文件,实现以下要求:

1)求[100,999]之间能被21整除的个数。

2)用magic(6)产生一矩阵,用至少两种方法求解其所有元素的和。

(提示:

1、for循环;2、sum函数)

程序代码及结果:

(1).sum=0;

forn=100:

999;

ifrem(n,21)==0;

sum=sum+1;

end

end

sum

sum=

43

(2).A=magic(6)

sum=0;

forn=1:

36;

sum=sum+A(n);

end

sum

A=

3516261924

3327212325

3192222720

82833171015

30534121416

43629131811

sum=

666

A=magic(6)

sum=6*(A(1,1)+A(1,2)+A(1,3)+A(1,4)+A(1,5)+A(1,6))

A=

3516261924

3327212325

3192222720

82833171015

30534121416

43629131811

sum=

666

3.编写函数文件,实现从键盘输入一个3位整数,将它反向输出。

如639,输出为936。

并调用该函数,输入自己的学号后三位数,输出结果。

程序代码及结果:

functiond=fad(f)

a=fix(f/100);

b=fix(f/10)-10*fix(f/100);

c=rem(f,10);

d=a+10*b+100*c

y=input('inputanumber:

');x=fad(y)

inputanumber:

292

d=

292

x=

292

4.定义一个函数文件,求

,要求在函数文件中包含能够通过help查询到的说明,说明里面必须有自己的名字学号。

然后调用该函数文件求

的值。

程序代码及结果:

function[count]=asd(n,m)

%姓名:

李衍丹

%学号:

20111292

count=0;

fori=1:

n

count=count+i^m;

end

count=asd(100,1)+asd(50,2)+asd(10,-1)

count=4.7978e+004

5.已知

,当x取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时,

1)、求各点的函数值;

2)、求这些数据的平均值;

程序代码及结果:

(1).functiona=diwuti(n,m)

forx=(n:

0.1:

m)

a=sin(x+1.7)*log((pi+x)/2)/(1+cos(x+1.7))

end

a

>>y=diwuti(-3,3)

a=2.0130

a=1.4460

a=1.0835

a=0.8252

a=0.6311

a=0.4807

a=0.3621

a=0.2678

a=0.1924

a=0.1322

a=0.0847

a=0.0478

a=0.0200

a=0

a=-0.0130

a=-0.0198

a=-0.0209

a=-0.0167

a=-0.0076

a=0.0064

a=0.0250

a=0.0482

a=0.0762

a=0.1090

a=0.1469

a=0.1904

a=0.2398

a=0.2958

a=0.3594

a=0.4317

a=0.5141

a=0.6086

a=0.7178

a=0.8453

a=0.9962

a=1.1774

a=1.3996

a=1.6789

a=2.0418

a=2.5340

a=3.2431

a=4.3588

a=6.3853

a=11.2510

a=39.4306

a=-28.8207

a=-10.8760

a=-6.8045

a=-4.9934

a=-3.9630

a=-3.2935

a=-2.8202

a=-2.4653

a=-2.1871

a=-1.9614

a=-1.7731

a=-1.6124

a=-1.4725

a=-1.3487

a=-1.2373

a=-1.1359

a=-1.1359

y=-1.1359

(2).functiona=diwuti(n,m)

a=0;

forx=(n:

0.1:

m)

a=sin(x+1.7)*log((pi+x)/2)/(1+cos(x+1.7))+a;

a=10*a/(m-n);

end

a

>>y=diwuti(-3,3)

a=

1.2269e+014

y=

1.2269e+014

6.求分段函数的值。

用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5时的值。

程序代码及结果:

x=input('inputx:

');

ifx<0&x~=-3

y=x^2+x-6;

else

ifx>=0&x<5&x~=2&x~=3

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

else

y=x^2-x-1;

end

end

Y

inputx:

-5

y=

14

inputx:

-3

y=

11

inputx:

1

y=

2

inputx:

2

y=

1

inputx:

2.5

y=

-0.2500

7.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。

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

程序代码及结果:

(1).x=input('pleaseinputyourgrade:

')

ifx>=90&x<=100

disp('A')

elseifx>=80&x<=89

disp('B')

elseifx>=70&x<=79

disp('C')

elseifx>=60&x<=69

disp('D')

else

disp('E')

end

pleaseinputyourgrade:

68

x=

68

D

pleaseinputyourgrade:

96

x=

96

A

pleaseinputyourgrade:

85

x=

85

B

pleaseinputyourgrade:

76

x=

76

C

pleaseinputyourgrade:

56

x=

56

E

(2).grade=input('pleaseinputyourgrade:

')

switchfix(grade/10)

case{0,5}

disp('E')

case{6}

disp('D')

case{7}

disp('C')

case{8}

disp('B')

otherwise

disp('A')

end

pleaseinputyourgrade:

59

grade=

59

E

pleaseinputyourgrade:

68

grade=

68

D

pleaseinputyourgrade:

79

grade=

79

C

pleaseinputyourgrade:

83

grade=

83

B

pleaseinputyourgrade:

96

grade=

96

A

8.根据

的近似值。

当n分别取100、1000、10000时,结果是多少?

(要求:

分别用循环结构和向量运算来实现).

程序代码及结果:

(1)、functionp=dibati(n)

p=0;

fori=1:

1:

n

p=p+1/(i^2);

end

p=sqrt(6*p);

>>y=dibati(100)

y=

3.1321

>>y=dibati(1000)

y=

3.1406

>>y=dibati(10000)

y=

3.1415

(2)、functionp=dibati(n)

i=1:

1:

n;

p=sum(1./i./i);

p=sqrt(6*p);

>>y=dibati(100)

y=

3.1321

>>y=dibati(1000)

y=

3.1406

>>y=dibati(10000)

y=

3.1415

9.已知n=1时,f1=1;n=2时,f2=0;n=3时,f3=1;n>3时,fn=fn-1-2fn-2+fn—3;

求f1~f100中,最大值、最小值以及各数之和。

程序代码及结果:

f

(1)=1;

f

(2)=0;

f(3)=1;

forn=4:

100

f(n)=f(n-1)-2*f(n-2)+f(n-3);

end

MAX=max(f)

MIN=min(f)

SUM=sum(f)

MAX=

4.3776e+011

MIN=

-8.9941e+011

SUM=

-7.4275e+011

10.某公司员工的工资计算方法如下:

1)工作时数超过120小时者,超过部分加发15%;

2)工作时数低于60小时者,扣发700元;

3)其余按每小时84元计发。

试编程按输入的工号和该号员工的工时数,计算应发工资。

程序代码及结果:

hours=input('ÇëÊäÈ빤×÷ʱÊý£º');

s=90;%¶¨ÒåÿСʱ¹¤×ÊΪ90Ôª

ifhours<60

salary=hours*s-700;

elseifhours>120

salary=120*s+(hours-120)*s*(1+0.15);

elsesalary=84*hours;

end

salary

请输入工作时数:

100

salary=

8400

请输入工作时数:

130

salary=

11835

请输入工作时数:

40

salary=

2900

第三次上机作业

1、运行课本第四章及课堂上讲过的例子.

(1)、x=[0:

0.1:

1];

y=[2.3,4.3,2.5,6,4.9,1.5,1,4.6,5,6.7,0];

plot(x,y)

(2)、t=linspace(0,2*pi,100);

x=[t;t]';

y=[sin(t);cos(t)]';

plot(x,y)

(3)、x=0:

0.1:

3*pi;

y1=sin(x);

y2=cos(x);

plot(x,y1,'--g',x,y2,':

bo');

patch(x,y1,'r')

2、设

区间取101点,绘制函数的曲线。

程序代码及结果:

x=0:

2*pi/101:

2*pi;

y=(0.5+3.*sin(x)/(1+x.*x)).*cos(x);

plot(x,y)

3、已知

,完成下列操作:

(1)在同一坐标系下用不同的颜色和线型绘制三条曲线。

(2)在不同的窗口用不同的颜色和线型绘制三条曲线。

(3)以子图形式用不同的颜色和线型制三条曲线。

(4)为(3)所有子图添加标题、坐标轴说明及适当的文本标注。

程序代码及结果:

(1)、x=0:

pi/100:

2*pi;

y1=x.*x;

y2=cos(2.*x);

y3=y1.*y2;

plot(x,y1,'g-',x,y2,'b-.',x,y3,'r:

')

(2)、x=0:

pi/100:

2*pi;

y1=x.*x;

y2=cos(2.*x);

y3=y1.*y2;

figure

(1)

plot(x,y1,'g-')

figure

(2)

plot(x,y2,'b-.')

figure(3)

plot(x,y3,'r:

')

 

(3)、x=0:

pi/100:

2*pi;

y1=x.*x;

y2=cos(2.*x);

y3=y1.*y2;

subplot(2,2,1)

plot(x,y1,'g-')

subplot(2,2,2)

plot(x,y2,'b-.')

subplot(2,2,3)

plot(x,y3,'r:

')

(4)、x=0:

pi/100:

2*pi;

y1=x.*x;

y2=cos(2.*x);

y3=y1.*y2;

subplot(2,2,1)

plot(x,y1,'g-')

title('ÇúÏßy1=x^2');

xlabel('VariableX');

ylabel('VariableY');

text(2,30,'y1=x^2')

s

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2