matlab实验报告.docx

上传人:b****7 文档编号:10775396 上传时间:2023-02-22 格式:DOCX 页数:27 大小:294.61KB
下载 相关 举报
matlab实验报告.docx_第1页
第1页 / 共27页
matlab实验报告.docx_第2页
第2页 / 共27页
matlab实验报告.docx_第3页
第3页 / 共27页
matlab实验报告.docx_第4页
第4页 / 共27页
matlab实验报告.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

matlab实验报告.docx

《matlab实验报告.docx》由会员分享,可在线阅读,更多相关《matlab实验报告.docx(27页珍藏版)》请在冰豆网上搜索。

matlab实验报告.docx

matlab实验报告

 

《MATLAB程序设计教程》

实验报告

姓名:

学号:

专业:

班级:

201年月日星期日

第一次作业

1.求下列表达式的值。

(1)

w=sqrt

(2)*(1+0.34245*power(10,-6))

w=

1.4142

(2)

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

x=(2*pi*3.5+(5+(-9.8))/(pi+3.5*5*(-9.8))-exp

(2))/(tan(5+(-9.8))+3.5)

x=

6.6186

(3)

,其中

>>alpha=3.32;beta=-7.9;

y=2*pi*alpha*alpha*((1-pi/4)*beta-(0.8333-pi/4)*alpha)

y=

-128.4271

(4)

,其中

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

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

z=

1.0e+004*

0.0057-0.0007i0.0049-0.0027i

1.9884-0.3696i1.7706-1.0539i

2.已知

,求下列表达式的值:

(1)

(其中I为单位阵);

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

>>A+6*B

ans=

4723-10

123726

-15737

>>A^2-B+I

ans=

-18-21717

22533109

21867526

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

>>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、B\A;

>>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]、[A([13],:

);B^2]。

>>[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。

>>A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14];

B=A(1:

3,:

);

C=A(:

1:

2);

D=A([2:

4],3:

4);

E=B*C;

2)分别求E

>>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阶正态分布的随机方阵。

>>3+sqrt

(1)*randn(5)

ans=

1.98942.35643.00003.89563.5689

3.61453.38032.68213.73102.7444

3.50771.99094.09503.57792.6225

4.69242.98051.12603.04032.7041

3.59132.95183.42823.67711.5249

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

、右旋

的功能,

>>A=[1,4,7,10;2,5,8,11;3,6,9,12;4,7,10,13]

A=

14710

25811

36912

471013

>>rot90(A)

ans=

10111213

78910

4567

1234

>>rot90(A,-1)

ans=

4321

7654

10987

13121110

6.建立一个字符串向量,删除其中的大写字母。

>>ch='abcdefghiJK1234'

ch=abcdefghiJK1234

>>k=find(ch>='A'&ch<='Z')

k=

1011

>>ch(k)=[]

ch=abcdefghi1234

7.分别建立一个结构矩阵和一个单元矩阵来存储自己班上5名同学的基本情况数据,每名学生的数据包括学号、姓名、专业和6门课程的成绩。

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

a

(1).x1=12345678;a

(1).x2='一二三';a

(1).x3='自动化';a

(1).x4=[97,66,88,79,90,81];

a

(2).x1=12345677;a

(2).x2='二三四';a

(2).x3='自动化';a

(2).x4=[87,86,88,89,90,91];

a(3).x1=12345676;a(3).x2='三四五';a(3).x3='自动化';a(3).x4=[97,86,78,89,90,91];

a(4).x1=12345675;a(4).x2='四五六';a(4).x3='自动化';a(4).x4=[87,86,88,89,90,91];

a(5).x1=12345674;a(5).x2='七八九';a(5).x3='自动化';a(5).x4=[87,86,98,89,90,91]

a=

1x5structarraywithfields:

x1

x2

x3

x4

>>a

(1)

ans=

x1:

12345678

x2:

'一二三'

x3:

'自动化'

x4:

[97,66,88,79,90,81]

 

第二次作业

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

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

(1)M脚本文件名不必与函数名相同;

(2)M函数文件调用时需要提供函数参数,而M脚本文件只需要提供文件名;(3)M脚本文件创建的每个变量都会保存到Matlab工作区,而M函数文件只有输出结果才保存到Matlab工作区中;(4)文件格式上的一些区别。

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

s=0;

forn=100:

999

ifrem(n,21)==0

s=s+1;

end

end

s

s=

43

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

(提示:

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

m=0;n=0;

A=magic(6)

fork=A

m=m+k;

end

forB=m'

n=n+B;

end

disp(n)

A=

3516261924

3327212325

3192222720

82833171015

30534121416

43629131811

666

Sum函数

A=magic(6)

sum(sum(A))

A=

3516261924

3327212325

3192222720

82833171015

30534121416

43629131811

ans=

666

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

如639,输出为936。

调用该函数,输出结果。

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

');

m1=fix(m/100);

m2=rem(fix(m/10),10);

m3=rem(m,10);

m=m1+m2*10+m3*100;

disp(m);

请输入一个三位数:

123

321

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

,要求在函数文件中包含能够通过help查询到的说明。

然后调用该函数文件求

的值。

函数名:

abcdefghijk12345678

functiony=abcdefghijk12345678(m,n)

i=1:

n;

y=sum(i.^m);

>>y=abcdefghijk12345678(1,100)+abcdefghijk12345678(2,50)+abcdefghijk12345678(-1,10)

y=

4.7978e+004

4.已知

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

1)求各点的函数值;

函数名ysin

functiony=ysin(x)

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

>>x=-3.0:

0.1:

3;

y=ysin(x)

y=

Columns1through12

2.01301.44601.08350.82520.63110.48070.36210.26780.19240.13220.08470.0478

Columns13through24

0.02000-0.0130-0.0198-0.0209-0.0167-0.00760.00640.02500.04820.07620.1090

Columns25through36

0.14690.19040.23980.29580.35940.43170.51410.60860.71780.84530.99621.1774

Columns37through48

1.39961.67892.04182.53403.24314.35886.385311.251039.4306-28.8207-10.8760-6.8045

Columns49through60

-4.9934-3.9630-3.2935-2.8202-2.4653-2.1871-1.9614-1.7731-1.6124-1.4725-1.3487-1.2373

Column61

-1.1359

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

w=sum(y)/61

w=

0.1616

6.求分段函数的值。

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

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

ifx<0&x~=-3

y=x*x+x-6;

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

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

else

y=x*x-x-1

end

y

请输入x的值:

-5.0

y=

14

请输入x的值:

-3.0

y=

11

请输入x的值:

1.0

y=

2

请输入x的值:

2.0

y=

1

请输入x的值:

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。

要求:

分别用if语句和switch语句实现。

students=input('请输入一个学生的成绩');

switchfix(students/10)

case{9,10}

dengji='A';

case{8}

dengji='B';

case{7}

dengji='C';

case{6}

dengji='D';

case{0,1,2,3,4,5}

dengji='E';

otherwise

'输入错误'

end

dengji

if语句

students=input('请输入一个学生的成绩:

');

num=fix(students/10);

ifnum==9||num==10

dengji='A';

elseifnum==8

dengji='B';

elseifnum==7

dengji='C';

elseifnum==6

dengji='D';

elseifnum==0||num==1||num==2||num==3||num==4||num==5

dengji='E';

end

dengji

8、根据

的近似值。

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

(要求:

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

循环结构

functiony=fqp(n)

s=0;

fori=1:

n;

s=s+1/i^2;

y=sqrt(6*s);

end

向量运算

functiony=fqpxl(n)

i=1:

n;

s=sum(1./i.^2);

y=sqrt(6*s);

end

>>y=fqpxl(100)

y=

3.1321

>>y=fqpxl(1000)

y=

3.1406

>>y=fqpxl(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

f;

fmax=max(f)

fmin=min(f)

sumf=sum(f)

fmax=

4.3776e+011

fmin=

-8.9941e+011

sumf=

-7.4275e+011

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

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

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

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

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

n=input('ÇëÊäÈ빤ºÅ£º');

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

ifa>=120

y=a*84+(a-120)*84*0.15;

elseifa<120&a>=60

y=a*84;

elseifa<60

y=a*84-700;

end

disp([n,'员工的工资',y]);

y

请输入工号:

001

请输入工作小时数:

100

001员工的工资?

y=

8400

 

第三次作业

作业:

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]为纵坐标绘制x-y的图形。

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).当x为向量,y为M×N的矩阵时,plot以y的每一列为纵坐标,以x为横坐标绘图,在一个图形窗口同时绘制多条曲线,这些曲线具有相同的横坐标。

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

x=[t;t]';

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

plot(x,y)

(3).当输入参数有矩阵形式时,配对的x、y按对应列元素为横、纵坐标分别绘制曲线,曲线条数相当于矩阵的列数。

x1=linspace(0,2*pi,100);

y1=sin(x1);

y2=2*sin(x1);

y3=3*sin(x1);

x=[x1;x1;x1]';

y=[y1;y2;y3]';

plot(x,y,x1,cos(x1))

1.设

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

x=0:

pi/50:

2*pi;

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

plot(x,y)

运行结果:

2.已知

,完成下列操作:

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

x=linspace(0,2*pi,100);

y1=x.*x;

y2=cos(2*x);

y3=y1.*y2;

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

',x,y3,'r-.')

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

x=linspace(0,2*pi,100);

y1=x.*x;

y2=cos(2*x);

y3=y1.*y2;

plot(x,y1)

figure

(2)

plot(x,y2,'g:

')

figure(3)

plot(x,y3,'r-.')

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

x=linspace(0,2*pi,100);

y1=x.*x;

y2=cos(2*x);

y3=y1.*y2;

subplot(3,1,1);

plot(x,y1);

subplot(3,1,2);

plot(x,y2,'g:

');

subplot(3,1,3);

plot(x,y3,'r-.');

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

x=linspace(0,2*pi,100);

y1=x.*x;

y2=cos(2*x);

y3=y1.*y2;

subplot(3,1,1)

plot(x,y1)

xlabel('variableX','FontWeight','bold');

ylabel('variableY','FontWeight','bold');

title('y=x^2','FontWeight','bold');

subplot(3,1,2)

plot(x,y2,'g:

')

xlabel('variableX','FontWeight','bold');

ylabel('variableY','FontWeight','bold');

title('y=cos2x','FontWeight','bold');

subplot(3,1,3)

plot(x,y3,'r-.')

xlabel('variableX','FontWeight','bold');

ylabel('variableY','FontWeight','bold');

title('y=x^2*cos2x','FontWeight','bold');

3.编写函数绘制三维球面,允许用户指定球面圆心位置及半径;并调用函数文件绘制圆心在(2,3,2.5)处,半径为2的三维球面。

a=input('请输入球心X的坐标=');

b=input('请输入球心Y的坐标=');

c=input('请输入球心Z的坐标=');

R=input('请输入球的半径R=');

[x,y,z]=sphere(100);

X=x*R+a;

Y=y*R+b;

Z=z*R+c;

surf(X,Y,Z)

4.使用子图,在一个图形窗口分图绘制函数

(-5≤x,y≤5)

的三维网格图和曲面图,要求:

1)第一个子图直接用mesh函数绘图,不加任何修饰;

2)第二个子图直接用surf函数绘图,去掉网格线;

3)第三个子图在第二个子图的基础上使用颜色插值,平滑表面;

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

[x,y]=meshgrid(-5:

0.1:

5);

z=cos(x).*cos(y).*exp(sqrt(x.^2+y.^2)/4);

colormap(hot);

subplot(3,1,1);

mesh(x,y,z)

xlabel('variableX');

ylabel('variableY');

zlabel('variableZ');

title('不加任何修饰');

subplot(3,1,2);

surf(x,y,z);

xlabel('variableX');

ylabel('variableY');

zlabel('variableZ');

title('去掉网格线');

subplot(3,1,3);

surf(x,y,z);

shadinginterp;

xlabel('variableX');

ylabel('variableY');

zlabel('variableZ');

title('使用颜色插值,平滑表面');

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

当前位置:首页 > 小学教育 > 小升初

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

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