《MATLAB应用技术》实验报告书.docx

上传人:b****5 文档编号:5750594 上传时间:2022-12-31 格式:DOCX 页数:28 大小:205.10KB
下载 相关 举报
《MATLAB应用技术》实验报告书.docx_第1页
第1页 / 共28页
《MATLAB应用技术》实验报告书.docx_第2页
第2页 / 共28页
《MATLAB应用技术》实验报告书.docx_第3页
第3页 / 共28页
《MATLAB应用技术》实验报告书.docx_第4页
第4页 / 共28页
《MATLAB应用技术》实验报告书.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

《MATLAB应用技术》实验报告书.docx

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

《MATLAB应用技术》实验报告书.docx

《MATLAB应用技术》实验报告书

《MATLAB应用技术》实验报告书

 

班级:

姓名:

学号:

总评成绩:

 

实验一MATLAB语言基础

操作成绩

报告成绩

一、实验目的

1)熟悉MATLAB的运行环境

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

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

4)熟悉符号方程的求解

二、实验内容

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

检查T(:

i).*(T(:

j))是否为0)。

>>T=rand(5,5);

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=

0.81470.09750.15760.6557

0.90580.27850.97060.0357

0.91340.95750.48540.9340

0.63240.96490.80030.6787

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

年份

类别

大一新生

学士毕业生

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=round(mean(STU(:

[2,3])))

S=sum(STU(:

3))

rate=mean(STU(:

3)./STU(:

2))

STU=

200210282

2003120100

20049894

200510597

2006121110

Ave=

10997

S=

483

rate=

0.8859

3.完成下列矩阵运算:

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

Columns1through8

0.5377-1.34990.67150.8884-0.1022-0.8637-1.0891-0.6156

1.83393.0349-1.2075-1.1471-0.24140.07740.03260.7481

-2.25880.72540.7172-1.06890.3192-1.21410.5525-0.1924

0.8622-0.06311.6302-0.80950.3129-1.11351.10060.8886

0.31880.71470.4889-2.9443-0.8649-0.00681.5442-0.7648

-1.3077-0.20501.03471.4384-0.03011.53260.0859-1.4023

-0.4336-0.12410.72690.3252-0.1649-0.7697-1.4916-1.4224

0.34261.4897-0.3034-0.75490.62770.3714-0.74230.4882

3.57841.40900.29391.37031.0933-0.2256-1.0616-0.1774

2.76941.4172-0.7873-1.71151.10931.11742.3505-0.1961

Columns9through10

1.4193-1.1480

0.29160.1049

0.19780.7223

1.58772.5855

-0.8045-0.6669

0.69660.1873

0.8351-0.0825

-0.2437-1.9330

0.2157-0.4390

-1.1658-1.7947

B=

Columns1through8

0.53770.2420-0.79370.87530.1083-1.0857-0.7613-0.1365

0.24203.0349-0.2410-0.60510.2366-0.0638-0.04581.1189

-0.7937-0.24100.71720.28070.4041-0.08970.6397-0.2479

0.8753-0.60510.2807-0.8095-1.31570.16240.71290.0668

0.10830.23660.4041-1.3157-0.8649-0.01850.6897-0.0686

-1.0857-0.0638-0.08970.1624-0.01851.5326-0.3419-0.5154

-0.7613-0.04580.63970.71290.6897-0.3419-1.4916-1.0823

-0.13651.1189-0.24790.0668-0.0686-0.5154-1.08230.4882

2.49890.85030.24581.47900.14440.2355-0.1132-0.2105

0.81070.7610-0.03250.43700.22120.65231.1340-1.0645

Columns9through10

2.49890.8107

0.85030.7610

0.2458-0.0325

1.47900.4370

0.14440.2212

0.23550.6523

-0.11321.1340

-0.2105-1.0645

0.2157-0.8024

-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

4.下列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);

>>test1

Undefinedfunctionorvariable'test1'.

5.熟悉MATALB帮助的使用:

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

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

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

2)使用lookfor命令寻找以10为底的对数函数。

(1)

(a)>>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:

zpk/exp

tf/exp

codistributed/exp

gpuArray/exp

fints/exp

xregcovariance/exp

ReferencepageinHelpbrowser

docexp

(b)exp

Exponential

Syntax

Y=exp(X)

Description

Y=exp(X)returnstheexponentialforeachelementofX.expoperateselement-wiseonarrays.Forcomplexx+i*y,expreturnsthecomplexexponentialez=ex(cosy+isiny).Useexpmformatrixexponentials.

Examples

Findthevalueofeiπ:

y=exp(i*pi)

returns

y=

-1.0000+0.0000i

2)>>lookforlog10

log10-Common(base10)logarithm.

6.假设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

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

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

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

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

t=-2*pi:

pi/10:

2*pi;%createaninputarrayfrom-2*pito2*pi

x=abs(sin(t));%calculate|sin(t)|

plot(t,x);%plotresult

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

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

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

(a)E:

\ProgramFiles\matlab2012\bin

(b)>>t=-2*pi:

pi/10:

2*pi;%createaninputarrayfrom-2*pito2*pi

x=abs(sin(t));%calculate|sin(t)|

plot(t,x);%plotresult

>>test2

Undefinedfunctionorvariable'test2'.

三、思考题

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

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

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

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

但有两点要注意:

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

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

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

四、实验报告要求

1.编写实现实验内容中所使用的函数命令,并记录相应的生成结果。

2.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。

 

实验二MATLAB科学计算及绘图

操作成绩

报告成绩

一、实验目的

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

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

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

二、实验内容

说明:

可以采用notebook格式输出结果(关于notebook请查阅其他参考资料,或上网搜索)

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

(使用函数fminbnd、roots)

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

[x1,fx1]=fminbnd(fx1,0,100);

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

[x2,fx2]=fminbnd(fx2,0,100);

fmin=fx1

fmax=abs(fx2)

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

fmin=

-95.3258

fmax=

4.0000e+12

r=

1.6860

0.8525+1.4852i

0.8525-1.4852i

-1.7050

-0.8431+1.4514i

-0.8431-1.4514i

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

>>D2x=diff(x,2);

Dx=diff(x);

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

S=

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

3.已知t=an2+bn,测得对应数据如下:

(多项式插值interp1)

t=[0,20,40,60,80,100,120,140,160,183.5];

n=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152];

试求a和b的值。

>>t=[0,20,40,60,80,100,120,140,160,183.5];

n=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152];

y=polyfit(n,t,2)

y=

0.00000.01440.0498

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

(trapz、quad)

1)>>formatlong

x=0:

0.01:

1;

y=sqrt(x.*x+x+1);

z=trapz(x,y)

z=

1.336910563097274

2)>>y=@(x)sqrt(x.*x+x+1);

z=quad(y,0,1)

z=

1.336907509306287

5.计算二重积分

(使用函数dblquad)

>>z=@(x,y)x.*x+y.*y+x.*y+2.*x+y+1;

dblquad(z,0,2,0,1)

ans=

11.333333333333334

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

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

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

[L,U]=lu(M)

[V,W]=qr(M)

[X,Y]=eig(M)

L=

0.125000000000000-0.3500000000000001.000000000000000

0.5000000000000001.0000000000000000

1.00000000000000000

U=

8.0000000000000009.0000000000000003.000000000000000

0-2.5000000000000005.500000000000000

007.550000000000001

V=

-0.111111*********0.403623652610222-0.908153218373000

-0.444444444444444-0.837519079166211-0.317853626430550

-0.8888888888888890.3683065830068280.272445965511900

W=

-9.000000000000000-9.111111*********-6.444444444444446

02.446968393949471-2.335971889481658

00-6.856556798716150

X=

-0.411139723734907-0.771916546326007-0.499195212370029

-0.5483686592966010.623734541710148-0.391426912299308

-0.7281867487591580.1228823298353360.773038881476651

Y=

14.29440454328952900

0-1.5712145592408100

00-6.723189984048726

7.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

8.用两种方法求解Ax=b的解。

(A为四阶随机矩阵,b为四阶向量,自己创建)。

>>A=[7828;31033;56810;7133]

b=[2;3;6;5]

x1=A\b

x2=inv(A)*b

A=

7828

31033

56810

7133

b=

2

3

6

5

x1=

0.476274165202109

.010*********

0.953427065026362

-0.394551845342707

x2=

0.476274165202109

.010*********

0.953427065026362

-0.394551845342706

9.建立一个5×5矩阵,分别用polyval函数和polyvalm函数将矩阵代入函数

f(x)=1.35+0.0668x+0.436x2+0.695x3,计算出结果并比较。

>>f=[0.6950.4360.06681.35];

p=rand(5,5);

f1=polyval(f,p)

f2=polyvalm(f,p)

f1=

1.95331.85912.08871.52191.5689

1.92561.35261.84011.47761.5278

1.48521.41671.43721.96841.7629

1.77681.35412.40342.02831.8649

1.37771.36121.35281.38221.9475

f2=

5.04871.84823.83113.66544.3686

2.67242.66512.77432.67803.2253

2.58951.25064.06752.71813.3309

3.47661.65813.67225.01924.4345

0.98400.48700.95440.97102.8451

10.

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

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

z=fzero(f1,100)

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

xi=double(S)

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

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

[x2,y2]=fminbnd(f2,0,100);

ymin=y1

x1

ymax=abs(y2)

x2

z=

2.4156

xi=

2.4156

-0.7765-0.4875i

-2.2785+0.4975i

-0.0279+0.9400i

-0.7765+0.4875i

-0.0279-0.9400i

-2.2785-0.4975i

ymin=

-8.3384e+04

x1=

5.9963e-05

ymax=

9.9950e+05

x2=

99.9999

11.假设汽车系在2004、2005、2006年的人员组成如表所示:

年份

类别

大一新生

学士毕业生

2002

102

82

2003

120

100

2004

98

94

2005

105

97

2006

121

110

a)请用bar3命令来画出上述数据的立体长条图

b)请用各种你可以想到的方法,在上述图形中加入各种解释和说明的文字。

>>X=[20022003200420052006];

Y=[10282;120100;9894;10597;121110];

bar3(X,Y,1.5,'grouped')

title('2002~2006汽车系学生组成图')

legend('大一新生','学士毕业生','location','southwest')

12.北

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

当前位置:首页 > 医药卫生 > 基础医学

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

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