《MATLAB及应用》实验指导书作业.docx

上传人:b****8 文档编号:9107158 上传时间:2023-05-17 格式:DOCX 页数:29 大小:68.26KB
下载 相关 举报
《MATLAB及应用》实验指导书作业.docx_第1页
第1页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第2页
第2页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第3页
第3页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第4页
第4页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第5页
第5页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第6页
第6页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第7页
第7页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第8页
第8页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第9页
第9页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第10页
第10页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第11页
第11页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第12页
第12页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第13页
第13页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第14页
第14页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第15页
第15页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第16页
第16页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第17页
第17页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第18页
第18页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第19页
第19页 / 共29页
《MATLAB及应用》实验指导书作业.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《MATLAB及应用》实验指导书作业.docx

《《MATLAB及应用》实验指导书作业.docx》由会员分享,可在线阅读,更多相关《《MATLAB及应用》实验指导书作业.docx(29页珍藏版)》请在冰点文库上搜索。

《MATLAB及应用》实验指导书作业.docx

《MATLAB及应用》实验指导书作业

《MATLAB及应用》实验指导书

 

班级:

姓名:

学号:

总评成绩:

 

汽车工程系

电测与汽车数字应用中心

目录

实验04051001MATLAB语言基础3

实验04051002MATLAB科学计算及绘图12

实验04051001MATLAB语言基础

操作成绩

报告成绩

实验目的

1)熟悉MATLAB的运行环境

2)掌握MATLAB的矩阵和数组的运算

3)掌握MATLAB符号表达式的创建

4)熟悉符号方程的求解

实验内容(任选6题)

1.利用rand等函数产生下列矩阵:

产生一个均匀分布在(-5,5)之间的随机阵(50×2),要求显示精度为精确到小数点后一位(精度控制指令为format)。

formatbank

a=-5;b=5;

r=a+(b-a).*rand(50,2)

r=

3.15-2.24

4.061.80

-3.731.55

4.13-3.37

1.32-3.81

-4.02-0.02

-2.224.60

0.47-1.60

4.580.85

4.65-2.76

-3.422.51

4.71-2.45

4.570.06

-0.151.99

3.003.91

-3.584.59

-0.780.47

4.16-3.61

2.92-3.51

4.59-2.42

1.563.41

-4.64-2.46

3.493.14

4.34-2.56

1.794.29

2.58-1.50

2.43-3.03

-1.08-2.49

1.551.16

-3.29-0.27

2.06-1.48

-4.683.31

-2.230.85

-4.540.50

-4.034.17

3.23-2.14

1.952.57

-1.832.54

4.50-1.20

-4.660.68

-0.61-4.24

-1.18-4.46

2.660.31

2.952.79

-3.134.34

-0.10-3.70

-0.540.69

1.46-0.31

2.09-4.88

2.55-1.63

2.在一个已知的测量矩阵T(100×100)中,删除整行数据全为0的行,删除整列数据全为0的列(判断某列元素是否为0方法:

检查T(:

i).*(T(:

i))是否为0)。

T=rand(10,10);

T(3,:

)=0;

T(:

4)=0;

[row,col]=size(T);

r=[];c=[];

fori=row:

-1:

1

if(sum(T(i,:

).*T(i,:

))==0)

r(size(r)+1)=i;

end

end

if(size(r))

T(r,:

)=[];

end

[row,col]=size(T);

forj=col:

-1:

1

if(sum(T(:

j).*T(:

j))==0)

c(size(c)+1)=j;

end

end

if(size(c))

T(:

c)=[]

end

T=

Columns1through4

0.830.870.140.49

0.540.080.870.34

0.080.260.550.37

0.440.800.140.11

0.110.430.850.78

0.960.910.620.39

0.000.180.350.24

0.770.260.510.40

0.820.150.400.10

Columns5through8

0.130.170.180.31

0.940.650.370.51

0.580.650.780.82

0.060.450.080.79

0.230.550.930.64

0.350.300.780.38

0.820.740.490.81

0.020.190.440.53

0.040.690.450.35

Column9

0.94

0.88

0.62

0.59

0.21

0.30

0.47

0.23

0.84

3.假设汽车系在下列各年度的人口统计如表所示

年份

类别

大一新生

学士毕业生

2002

102

82

2003

120

100

2004

98

94

2005

105

97

2006

121

110

试用一个二维矩阵STU表示上述数据,并请计算出下列各数值:

(1)汽车系在2002~2006年之间的每年平均新生、毕业生人数。

(2)5年来汽车系共有多少毕业生?

(3)在哪几年,新生数目比毕业生多?

(4)5年来每年的毕业生对新生的比例平均值为何?

STU=[200210282

2003120100

20049894

200510597

2006121110];

Ave_Stu=round(mean(STU(:

[2,3])))

Sum_gra=sum(STU(:

3))

Ave_Stu=

10997

Sum_gra=

483

STU_radio=mean(STU(:

3)./STU(:

2))

STU_radio=

0.8859

4.完成下列矩阵运算:

(1)使用randn产生一个(10×10)的矩阵A

(2)计算B=(A+A’)/2。

请注意,B一定是一个对称矩阵

(3)计算矩阵B的特征向量e1e2…e10(使用函数eig)

(4)验证在i不等于j的情况下,ei和ej的内积必定为0

A=randn(10,10)

B=(A+A')/2

C=eig(B)

A=

Columns1through6

0.5377-1.34990.67150.8884-0.1022-0.8637

1.83393.0349-1.2075-1.1471-0.24140.0774

-2.25880.72540.7172-1.06890.3192-1.2141

0.8622-0.06311.6302-0.80950.3129-1.1135

0.31880.71470.4889-2.9443-0.8649-0.0068

-1.3077-0.20501.03471.4384-0.03011.5326

-0.4336-0.12410.72690.3252-0.1649-0.7697

0.34261.4897-0.3034-0.75490.62770.3714

3.57841.40900.29391.37031.0933-0.2256

2.76941.4172-0.7873-1.71151.10931.1174

Columns7through10

-1.0891-0.61561.4193-1.1480

0.03260.74810.29160.1049

0.5525-0.19240.19780.7223

1.10060.88861.58772.5855

1.5442-0.7648-0.8045-0.6669

0.0859-1.40230.69660.1873

-1.4916-1.42240.8351-0.0825

-0.74230.4882-0.2437-1.9330

-1.0616-0.17740.2157-0.4390

2.3505-0.1961-1.1658-1.7947

B=

Columns1through6

0.53770.2420-0.79370.87530.1083-1.0857

0.24203.0349-0.2410-0.60510.2366-0.0638

-0.7937-0.24100.71720.28070.4041-0.0897

0.8753-0.60510.2807-0.8095-1.31570.1624

0.10830.23660.4041-1.3157-0.8649-0.0185

-1.0857-0.0638-0.08970.1624-0.01851.5326

-0.7613-0.04580.63970.71290.6897-0.3419

-0.13651.1189-0.24790.0668-0.0686-0.5154

2.49890.85030.24581.47900.14440.2355

0.81070.7610-0.03250.43700.22120.6523

Columns7through10

-0.7613-0.13652.49890.8107

-0.04581.11890.85030.7610

0.6397-0.24790.2458-0.0325

0.71290.06681.47900.4370

0.6897-0.06860.14440.2212

-0.3419-0.51540.23550.6523

-1.4916-1.0823-0.11321.1340

-1.08230.4882-0.2105-1.0645

-0.1132-0.21050.2157-0.8024

1.1340-1.0645-0.8024-1.7947

C=

-4.0702

-3.4514

-1.5577

-1.2496

-0.0343

0.8496

1.4875

2.1549

3.2486

4.1882

5.下列MATLAB语句用于画出函数

在[0,10]的值。

x=0:

0.1:

10;

y=2*exp(-0.2*x);

plot(x,y);

利用MATLAB的M-文件编辑器创建一个新的M-文件,输入上述代码,保存为文件test1.m。

然后在命令窗口中输入test1执行这个文件。

看得到什么结果?

x=0:

0.1:

10;

y=2*exp(-0.2*x);

plot(x,y);

6.熟悉MATALB帮助的使用:

1)通过以下两种方式得到关于exp函数的帮助

(a)在命令窗口中输入helpexp命令;

(b)运用帮助空间窗口。

2)使用lookfor命令查找出以10为底的对数函数,并计算1、10、1000的对数值。

helpexp

EXPExponential.

EXP(X)istheexponentialoftheelementsofX,etotheX.

ForcomplexZ=X+i*Y,EXP(Z)=EXP(X)*(COS(Y)+i*SIN(Y)).

SeealsoEXPM1,LOG,LOG10,EXPM,EXPINT.

Overloadedmethods:

lti/exp

codistributed/exp

ReferencepageinHelpbrowser

docexp

lookforlog10

log10-Common(base10)logarithm.

LOG10Common(base10)logarithm.

LOG10(X)isthebase10logarithmoftheelementsofX.

ComplexresultsareproducedifXisnotpositive.

ClasssupportforinputX:

float:

double,single

Seealsolog,log2,exp,logm.

Overloadedmethods:

codistributed/log10

ReferencepageinHelpbrowser

doclog10

log10

(1)

log10(10)

log10(1000)

ans=

0

ans=

1

ans=

3

7.假设u=1和v=3,用MATLAB符号计算功能计算下列表达式的值:

a.

b.

c.

d.

u=1;v=3;

a=4*u/(3*v)

b=2*v^(-2)/(u+v)

c=v^3/(v^3-u^3)

d=4*pi*v^2/3

a=

0.4444

b=

0.0556

c=

1.0385

d=

37.6991

8.a=3,A=4,b=a2,B=b2-1,c=a+A-2B,C=a+B+2c,求C。

(使用符号函数solve)

S=solve('a-3','A-4','b-a^2','B-b^2+1','c-a-A+2*B','C-a-B-2*c');

C=S.C

C=

-223

9.求解常微分方程x’’=-x’+x+1,x’(0)=1,x(0)=0(使用符号函数dsolve)

S=dsolve('D2x=-Dx+x+1','Dx(0)=1,x(0)=0')

S=

(5^(1/2)*exp(t*(5^(1/2)/2-1/2))*(5^(1/2)+3))/10+(5^(1/2)*(5^(1/2)-3))/(10*exp(t*(5^(1/2)/2+1/2)))-1

10.应用MATLAB帮助窗口查找显示当前目录的命令。

a)MATLAB启动时的当前目录是什么?

D:

\MyDocuments\MATLAB

b)创建一个新的目录mynewdir,并将其改变为当前目录。

然后打开M-文件编辑窗口,增加以下语句:

%createaninputarrayfrom-2*pito2*pi

t=-2*pi:

pi/10:

2*pi;

%calculate|sin(t)|

x=abs(sin(t));

%plotresult

plot(t,x);

把此文件以test2.m为文件名保存,然后在命令窗口中输入test2执行此文件。

%createaninputarrayfrom-2*pito2*pi

t=-2*pi:

pi/10:

2*pi;

%calculate|sin(t)|

x=abs(sin(t));

%plotresult

plot(t,x);

c)关闭绘图窗口,返回到原始目录,然后在命令窗口中输入test2。

看有何情况发生,为什么。

?

?

?

Undefinedfunctionorvariable'test2'.

因为Matlab命令窗口要执行的test2已不存在于当前目录下

思考题

1.MATLAB中,数组与矩阵在表示与应用上有哪些区别。

二维数组相当于矩阵,所以矩阵是数组的子集。

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

矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算是一致的。

但有两点要注意:

(1)对于乘法、乘方和除法等三种运算,矩阵运算与数组运算的运算符及含义都不同:

矩阵运算按线性变换定义,使用通常符号;数组运算按对应元素运算定义,使用点运算符;

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

实验04051002MATLAB科学计算及绘图

操作成绩

报告成绩

实验目的

1)熟悉MATLAB所提供的常用数值计算的函数(方程(组)的求解、插值、拟合);

2)掌握MATLAB二维图形绘制命令及其图形控制(plot、loglog、contour、polar等);

3)熟悉MATLAB三维图形绘制命令及其图形控制(mesh、surf等)。

实验内容

1.求f(x)=4x6-x+x3-95在(0,100)上最大值、最小值,根。

(使用函数fminbnd、roots)

解法1:

yx1=@(x)4*x^6-x+x^3-95;

[xn1,ymin1]=fminbnd(yx1,0,100);

yx2=@(x)(4*x^6-x+x^3-95)*(-1);

[xn2,ymin2]=fminbnd(yx2,0,100);

ymin=ymin1

ymax=abs(ymin2)

r=roots([40010-1-95])

ymin=

-95.3258

ymax=

4.0000e+012

r=

1.6860

0.8525+1.4852i

0.8525-1.4852i

-1.7050

-0.8431+1.4514i

-0.8431-1.4514i

解法2:

yx1=@(x)4*x^6-x+x^3-95;

xn1=fminbnd(yx1,0,100);

ymin=yx1(xn1)

yx2=@(x)(4*x^6-x+x^3-95)*(-1);

xn2=fminbnd(yx2,0,100);

ymax=abs(yx2(xn2))

r=roots([40010-1-95])

ymin=

-95.3258

ymax=

4.0000e+012

r=

1.6860

0.8525+1.4852i

0.8525-1.4852i

-1.7050

-0.8431+1.4514i

-0.8431-1.4514i

2.请用梯形法、辛普森法分别计算积分值

(trapz、quad)

采用trapz

formatlong

d=0.01;x=0:

d:

10;

y=sqrt(x.^2+x+1);

Itrapz=d*trapz(x,y)

Itrapz=

0.560524689738299

采用quad

法一:

采用匿名函数表达函数

fx=@(x)sqrt(x.^2+x+1);

Ic=quad(fx,0,1)%Ic=quad(@(x)sqrt(x.^2+x+1),0,1)

Ic=

1.336907509306287

法二:

采用字符串表达函数

fx='sqrt(x.^2+x+1)';

Ic=quad(fx,0,1)%Ic=quad('sqrt(x.^2+x+1)',0,1)

Ic=

1.336907509306287

3.

,用两种方法求函数的根,并求其极值与零点。

yx=@(x)x^3+(x-0.8)^2/(x+1.25)^3-5*(x+1/x);

xi1=fzero(yx,100)

S=solve('x^3+(x-0.8)^2/(x+1.25)^3-5*(x+1/x)','x');

xi2=double(S)

yx1=@(x)(x^3+(x-0.8)^2/(x+1.25)^3-5*(x+1/x))*(-1);

[x0,y0]=fminbnd(yx,0,100);

[x1,y1]=fminbnd(yx1,0,100);

x0

ymin=y0

x1

ymax=abs(y1)

xi1=

2.42

xi2=

2.42

-0.78

-2.28

-0.03

-0.78

-0.03

-2.28

x0=

0.00

ymin=

-83384.32

x1=

100.00

ymax=

999498.40

4.计算二重积分

(使用函数dblquad)

法一:

formatlong

S1=dblquad(@(x,y)x.^2+y.^2+x*y+2*x+y+1',0,2,0,1)

%采用匿名函数表示被积函数

S1=

11.333333333333334

法二:

formatlong

S2=dblquad('x.^2+y.^2+x*y+2*x+y+1',0,2,0,1)

%采用字符串表示被积函数

S2=

11.333333333333334

法三:

formatlong

S3=dblquad(inline('x.^2+y.^2+x*y+2*x+y+1'),0,2,0,1)

%采用内联对象表示被积函数

S3=

11.333333333333334

5.求解常微分方程x’’=-x’+x+1,x’(0)=1,x(0)=0(使用函数ode45,需建立M函数)

%functionydot=DyDt(t,y)

%ydot=[y

(2);-y

(2)+y

(1)+1];

tspan=[0,30];

y0=[1;0];

[tt,yy]=ode45(@DyDt,tspan,y0);

plot(tt,yy(:

1))

xlabel('t'),title('x(t)')

6.矩阵M=[1,2,6;4,2,7;8,9,3],求M的LU分解,QR分解,对角阵,特征值分解。

(使用函数lu、qr、svd、eig)

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

[L,U]=lu(M)

[Q,R]=qr(M)

[U,S,V]=svd(M)

[V,D]=eig(M)

M=

126

427

893

L=

0.125000000000000-0.3500000000000001.000000000000000

0.5000000000000001.0000000000000000

1.000000000000

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

当前位置:首页 > 经管营销 > 经济市场

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

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