Matlab编程实验报告.docx

上传人:b****3 文档编号:3386941 上传时间:2022-11-22 格式:DOCX 页数:31 大小:259.23KB
下载 相关 举报
Matlab编程实验报告.docx_第1页
第1页 / 共31页
Matlab编程实验报告.docx_第2页
第2页 / 共31页
Matlab编程实验报告.docx_第3页
第3页 / 共31页
Matlab编程实验报告.docx_第4页
第4页 / 共31页
Matlab编程实验报告.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

Matlab编程实验报告.docx

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

Matlab编程实验报告.docx

Matlab编程实验报告

(此文档为word格式,下载后您可任意编辑修改!

 

中北大学

Matlab编程实验报告

 

班级:

姓名:

学号:

2013年11月

2,实验一Matlab运算基础

一、实验目的

1、熟悉启动和退出MATLAB的方法。

2、熟悉MATLAB工作窗口的组成。

3、掌握建立矩阵的方法,矩阵分析与处理。

4、掌握MATLAB各种表达式的书写规则以及常用函数的使用。

二、实验内容

1.先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。

z1=2*sin(85*pi180)(1+exp

(2))

z1=

0.2375

(2),其中

x=[2,1+2*i;-0.45,5]

x=

2.00001.0000+2.0000i

-0.45005.0000

z2=12*log(x+sqrt(1+x*x))

z2=

0.7114-0.0253i0.8968+0.3658i

0.2139+0.9343i1.1541-0.0044i

(3)

提示:

利用冒号表达式生成a向量,求各点的函数值时用点乘运算。

a=-3.0:

0.1:

3.0

a=

Columns1through9

-3.0000-2.9000-2.8000-2.7000-2.6000-2.5000-2.4000-2.3000-2.2000

Columns10through18

-2.1000-2.0000-1.9000-1.8000-1.7000-1.6000-1.5000-1.4000-1.3000

Columns19through27

-1.2000-1.1000-1.0000-0.9000-0.8000-0.7000-0.6000-0.5000-0.4000

Columns28through36

-0.3000-0.2000-0.100000.10000.20000.30000.40000.5000

Columns37through45

0.60000.70000.80000.90001.00001.10001.20001.30001.4000

Columns46through54

1.50001.60001.70001.80001.90002.00002.10002.20002.3000

Columns55through61

2.40002.50002.60002.70002.80002.90003.0000

>>z3=(exp(0.3.*a)-exp(-0.3.*a))2.*sin(a+0.3)

z3=

Columns1through9

0.43870.50720.56400.60890.64240.66480.67660.67840.6709

Columns10through18

0.65490.63130.60110.56520.52470.48050.43370.38540.3366

Columns19through27

0.28810.24100.19620.15430.11620.08240.05350.02990.0120

Columns28through36

-0.0000-0.0060-0.006000.01170.02880.05090.07750.1080

Columns37through45

0.14180.17800.21590.25470.29340.33110.36690.39980.4289

Columns46through54

0.45320.47190.48410.48910.48620.47480.45430.42430.3846

Columns55through61

0.33500.27550.20610.12720.0392-0.0574-0.1619

(4),其中t=0:

0.5:

2.5

提示:

用逻辑表达式求分段函数值。

t=0:

0.5:

2.5;

z4=(t>=0&t<1).*(t.*t)+(t>=1&t<2).*(t.*t-1)+(t>=2&t<3).*(t.*t-2.*t-1)

z4=

00.250001.2500-1.00000.2500

2.已知

求下列表达式的值:

(1)A+6.*B和A-B+I(其中I为单位矩阵)。

(2)A*B和A.*B。

(3)A^3和A.^3。

(4)AB和B\A。

(5)[A,B]和[A([1,3],:

);B^2]。

A=[1234-4;34787;3657];

B=[13-1;203;3-27];

z1=A+6.*B

z1=

1852-10

467105

215349

C=eye(3);

z2=A-B+C

z2=

1231-3

32884

0671

z3=A*B

z3=

684462

309-72596

154-5241

z4=A.*B

z4=

121024

680261

9-13049

z5=A^3

z5=

3722623382448604

247370149188600766

78688454142118820

z6=A.^3

z6=

172839304-64

39304343658503

27274625343

z7=AB

z7=

16.4000-13.60007.6000

35.8000-76.200050.2000

67.0000-134.000068.0000

z8=B\A

z8=

109.4000-131.2000322.8000

-53.000085.0000-171.0000

-61.600089.8000-186.2000

z9=[A,B]

z9=

1234-413-1

34787203

36573-27

z10=[A([1,3],:

);B^2]

z10=

1234-4

3657

451

11019

20-540

3.设有矩阵A和B

(1)求它们的乘积C。

(2)将矩阵C的右下角3×2子矩阵赋给D

(3)查看MATLAB工作空间使用情况。

A=[12345;678910;1112131415;1617181920;2122232425];

B=[3016;17-69;023-4;970;41311];

C=A*B

C=

9315077

258335237

423520397

588705557

753890717

D=C(3:

5,2:

3)

D=

520397

705557

890717

whos

NameSizeBytesClassAttributes

A5x5200double

B5x3120double

C5x3120double

D3x248double

4.完成下列操作:

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

提示:

先利用冒号表达式,再利用find和length函数。

>>A=100:

999;

>>B=find(mod(A,21)==0)

B=

Columns1through16

627486990111132153174195216237258279300321

Columns17through32

342363384405426447468489510531552573594615636657

Columns33through43

678699720741762783804825846867888

>>C=length(B)

C=

43

>>

(2)建立一个字符串向量,删除其中的大写字母。

>>X='LIsaisABeAutifulGirl';

>>Y=find(X>='A'&X<='Z')

Y=

129111321

>>X(Y)=[]

X=

saiseutifulirl

提示:

利用find函数和空矩阵。

5.由指令A=rand(3,5)生成二维数组A,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。

(提示:

find和sub2ind)

>>A=rand(3,5)

A=

Columns1through4

0.6860.8030.7360.816

0.7990.6790.6630.989

0.4440.0570.5310.228

Column5

0.809

0.208

0.031

>>K=find(A>0.5)

K=

1

2

3

4

8

10

12

[C,D]=ind2sub(size(A),K)

C=

1

2

3

1

2

1

3

D=

1

1

1

2

3

4

4

>>

6.先运行clear,formatlong,A=rand(3,3),然后根据A写出两个矩阵:

一个对角阵B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全为0,而其余元素与对应的A阵元素相同。

(提示:

diag)

>>clear

>>formatlong

>>A=rand(3,3)

A=

0.7730.1680.609

0.3330.5570.421

0.9160.5620.890

>>b=diag(A)

b=

0.773

0.557

0.890

>>B=diag(b)

B=

0.77300

00.5570

000.890

>>C=A-B

C=

00.1680.609

0.33300.421

0.9160.5620

>>

三、实验报告及要求

实验报告给出详细的实验过程、代码以及实验结果,必要时按照实验任务要求对结果进行分析。

实验二多项式及字符运算

一、实验目的

1、掌握多项式的表示与创建方法。

2、掌握多项式的四则运算以及多项式求根方法。

3、掌握字符串数组的创建及操作方法。

二、实验内容

1、已知,分别取和一个矩阵,求在处的值。

>>p=[2-103];

>>x=2;

>>y=polyval(p,x)

y=

15

>>x1=[12;34];

>>y1=polyval(p,x1)

y1=

415

48115

2、有3个多项式

试进行下列操作:

求=+。

(1)求的根。

>>p1=[12405];

>>p2=[12];

>>p3=[123];

>>R=conv(p2,p3)

R=

1476

>>p4=[01476];

p5=p1+p4

p5=

138711

>>r=roots(p5)

r=

-1.3840+1.8317i

-1.3840-1.8317i

-0.1160+1.4400i

-0.1160-1.4400i

>>

(2)当x取矩阵A的每一元素时,求P(x)的值。

其中

>A=[-11.2-1.4;0.7523.5;052.5];

>>y=polyval(p5,A)

y=

1.0e+003*

0.01000.03820.0125

0.02230.09700.4122

0.01101.24600.1644

>>

(3)当以矩阵A为自变量时,求P(x)的值。

其中A的值与(3)相同。

X=A

X=

-1.00001.2000-1.4000

0.75002.00003.5000

05.00002.5000

>>Y=X^4+3*X^3+8*X^2+7*X^1+11

Y=

1.0e+003*

0.0076-0.1172-0.0665

0.14371.39001.1754

0.19341.74741.5198

3.用两种方法建立如下的二维字符串数组:

第一行为“Matlab编程”,第二行为“实验环节”,最后利用该二维字符串形成一个一行字符串数组,“Matlab编程实验环节”>>A=['Matlab编程';'实验环节']

A=

Matlab编程

实验环节

>>B=str2mat('Matlab编程','实验环节')

B=

Matlab编程

实验环节

>>C=[B(1,:

),B(2,:

)]

C=

Matlab编程实验环节

三、实验报告及要求

实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。

实验三Matlab符号计算

一、实验目的

1、熟练掌握MATLAB符号表达式的创建

2、熟练掌握符号表达式的代数运算

3、掌握符号表达式的化简和替换

4、熟练掌握符号微积分

5、熟练掌握符号方程的求解

二、实验内容

1.创建符号表达式:

(用两种方式分别创建)

>>f=sym('a*x^3+b*x^2+c*x+d')

f=

a*x^3+b*x^2+c*x+d

symsabcd

>>f=a*x^3+b*x^2+c*x+d

f=

a*x^3+b*x^2+c*x+d

2.创建符号矩阵。

>>A=sym('[a*cos(x)+b*sin(y)10+20;a*x^2+b*y^2+c*z^2sqrt(t*t+1)]')

A=

[a*cos(x)+b*sin(y),30]

[a*x^2+b*y^2+c*z^2,(t^2+1)^(12)]

3.已知表达式,计算当时的值;计算与的复合函数,、的逆函数。

f=1-sin(x)*sin(x);

>>x=1

x=

1

>>subs(f)

ans=

0.2919

>f=sym('1-sin(x)*sin(x)');

>>g=sym('2*x+1');

>>compose(f,g)

ans=

1-sin(2*x+1)^2

>>finverse(f)

Warning:

finverse(1-sin(x)^2)isnotunique.

ans=

asin((1-x)^(12))

>>finverse(g)

ans=

x2-12

>>

4.符号函数,分别对、、、进行微分,对趋向于1求极限,并计算对的二次、三次微分,用findsym得出符号变量。

symsxyabcd

f=a*x^3+b*y^2+c*y+d;

>>A=diff(f,x)

A=

3*a*x^2

>>B=diff(f,y)

B=

c+2*b*y

>>C=diff(f,c)

C=

y

>>D=diff(f,d)

D=

1

>>L=limit(a*x^3+b*y^2+c*y+d,y,1)

L=

a*x^3+b+c+d

>E=diff(f,x,2)

E=

6*a*x

>>F=diff(f,x,3)

F=

6*a

>>findsym(E)

ans=

a,x

>>findsym(F)

ans=

a

>>

>>

5.求极限。

symsn;

L=limit(symsum(12^n,n,0,inf),n,inf)

L=

2

6.求定积分和不定积分。

symsx;

>>f=sqrt(x)(1+x)^2;

>>int(f,x,1,inf)

ans=

pi4+12

>>symsxy;

>>q=x*exp(-x*y);

I=int(q)

I=

-(x*y+1)(y^2*exp(x*y))

>>S=int(I)

S=

(x*y+2)(y^3*exp(x*y))

>>

7.求微分方程在满足,的解。

y=dsolve('D2y+2*Dy+2*y','y(0)=1','Dy(0)=0','x')

y=

cos(x)exp(x)+sin(x)exp(x)

8.求解微分方程组

[x,y]=dsolve('Dx=2*x+3*y','Dy=x-2*y','x(0)=1','y(0)=2','t')

x=

(exp(7^(12)*t)*(2*7^(12)-3))2-(2*7^(12)+3)(2*exp(7^(12)*t))+(7^(12)*exp(7^(12)*t)*(2*7^(12)-3))7+(7^(12)*(2*7^(12)+3))(7*exp(7^(12)*t))

y=

(7^(12)*exp(7^(12)*t)*(2*7^(12)-3))14+(7^(12)*(2*7^(12)+3))(14*exp(7^(12)*t))

>>,其中

9.解微分方程的通解。

>

>y=dsolve('Dy+y*tanx=cosx','x')

y=

(cosx-C11exp(tanx*x))tanx

10、求解方程组

[x,y,z]=solve('x+2*y-z=7','x+z=3','x^2+3*y^2=28','x','y','z')

x=

154-37^(12)4

37^(12)4+154

y=

37^(12)4+54

54-37^(12)4

z=

37^(12)4-34

-37^(12)4-34

三、实验报告及要求

实验报告给出详细的实验代码以及实验结果,必要时标注代码注释,并按照实验任务要求对结果进行分析。

实验四选择结构程序设计

一、实验目的

1、掌握建立和执行M文件的方法。

2、掌握利用if语句实现选择结构的方法。

3、掌握利用switch语句实现多分支选择结构的方法。

4、掌握try语句的使用。

二、实验内容

1.求下列分段函数的值。

要求:

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

提示:

x的值从键盘输入。

请输入x的值:

-5

x=

-5

y=

14

请输入x的值:

-3

x=

-3

y=

11

请输入x的值:

1

x=

1

y=

2

请输入x的值:

2

x=

2

y=

1

请输入x的值:

2.5

x=

2.5000

y=

-0.2500

请输入x的值:

3

x=

3

y=

5

请输入x的值:

5

x=

5

y=

6

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

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

要求:

(1)用switch语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出错误信息。

(1)

请输入成绩:

61

grade=

61

rate=

D

请输入成绩:

54

grade=

54

rate=

E

请输入成绩:

87

grade=

87

rate=

B

请输入成绩:

78

grade=

78

rate=

C

(2)

请输入成绩:

103

grade=

103

成绩无效

3、建立5×6矩阵,要求输出矩阵第n行元素。

当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。

请输入行数n:

2

n=

2

356789

请输入行数n:

6

n=

6

468903

ans=

Indexexceedsmatrixdimensions.

三、实验报告及要求

实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。

实验五循环结构程序设计

一、实验目的

1、掌握利用for语句实现循环结构的方法。

2、掌握利用while语句实现循环结构的方法。

3、熟悉利用向量运算来代替循环操作的方法。

二、实验内容

1.根据,求的近似值。

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

要求:

分别用循环结构和向量运算(使用sum函数)来实现。

(1)

请输入n值;100

n=

100

s=

3.1321

请输入n值;1000

n=

1000

s=

3.1406

请输入n值;10000

n=

10000

s=

3.1415

(2)

请输入n值;100

n=

100

s=

3.1321

请输入n值;1000

n=

1000

s=

3.1406

请输入n值;10000

n=

10000

s=

3.1415

2.根据.,求:

(1)y<3时的最大n值。

(2)与

(1)的n值对应的y值。

3.已知

求中:

(1)最大值、最小值、各数之和。

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

A=max(f)

B=min(f)

C=sum(f)

length(find(f>0))

length(find(f==0))

length(find(f<0))

(2)正数、零、负数的个数。

A=

4.

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

当前位置:首页 > 农林牧渔 > 林学

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

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