您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页matlab实验内容答案

matlab实验内容答案

来源:化拓教育网



实验报告说明:

matlab课程实验需撰写8个实验报告,每个实验报告内容写每次

实验内容中标号呈黑体大号字显示的题目。

第一次实验内容:

实验一MATLAB运算基础

一、实验目的
1.熟悉启动和退出MATLAB的方法。

2.熟悉MATLAB命令窗口的组成。

3.掌握建立矩阵的方法。

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

二、实验内容

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

1

z 1

2sin85




)

,其中













1

e

2

x

2

2

1

2 i


2

z

2

1

ln(

x

1



2




0.45


5

,2.8,2.9,3.0

3

z

3

e

0.3

a

e

0.3

a

g sin(

a

0.3),

a

3.0, 2.9, 2.8,

L




2





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

4

z

4

t
t

t

2

1

1

0



1

,其中t00.52.5

2

1



2

2

2 t

2



3

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

2.已知



A

12

34

3

34

4



B

1

2

3

3

1






7

87

0

3

65

7

2

7

求下列表达式的值:
1A+6=BA-B+I(其中I为单位矩阵)
2A*BA.*B

3A^3A^.3

4A/BB\A

5[AB][A([1,3],;);B^2]

3.设有矩阵AB

A

1 2

6 7

11 12

16 17

21 22

3

4

5



B

3
17

0

9

4

0

16









8

9

10

6

9

13 14

15

23

4

18

19

20

7

0

23

24

25

13 11

1

求它们的乘积C

2

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

3

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

4.完成下列操作:
1)求[100999]之间能被21整除的数的个数。

提示:先利用冒号表达式,再利用findlength函数。

2)建立一个字符串向量,删除其中的大写字母。提示:利用find函数和空矩阵。

第二次实验内容:

实验三选择结构程序设计

一、实验目的

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

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

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

二、实验内容



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

y



x

2

x

6,

x

0x

3

2x

3

x

2

5

x

6,

0

x

10,

x

x

2

x

1

其他

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

提示:x的值从键盘输入,可以是向量。

2 仿照实验一第1题第4小题,用逻辑表达式实现,从而体会MATLAB逻辑表达式的一种应 用。

clear
x=input('input the value of x :');
if x<0 & x~=3
y=x*x+x-6;
elseif x>=0 & x<10 & x~=2 &x~=3
y=x*x-5*x+6;
else
y=x*x-x-1;
end
y

2输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90100分为A80分为B

7079分为C6069分为D60分以下为E

要求:
1 switch语句实现。

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

if语句实现:
clear
x=input('inputscore:');
ifx<0
disp('Sorry,Thefail score!')
elseifx<60
disp('E')
elseifx<70
disp('D')
elseifx<80
disp('C')
elseifx<90
disp('B')
elseifx<=100
disp('A')
else



disp('Sorry,Thefail score!')
end

switch语句实现:
clear
score=input('inputthe score:');
switchscore
casenum2cell(0:59)
disp('E')
casenum2cell(60:69)
disp('D')
casenum2cell(70:79)
disp('C')
casenum2cell(80:)
disp('B')
casenum2cell(90:100)
disp('A')
otherwise
disp('Sorry!It''sthe fail score,input the score again')
end

3.建立5×6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。

clear
A=[1,1,1,1,1,1;2,2,2,2,2,2;3,3,3,3,3,3;4,4,4,4,4,4;5,5,5,5,5,5];n=input('请输入输出元素行数n=');
try
B=A(n,:);
catch
B=A(5,:);
lasterr
end
B

实验四循环结构程序设计

一、实验目的
1. 掌握利用for语句实现循环结构的方法。
2. 掌握利用while语句实现循环结构的方法。
3. 熟悉利用向量运算来代替循环操作的方法。

二、实验内容

1.根据

2

1

1

1

1

,求

的近似值。当n 分别取1001 00010 000 时,结果是


6


1 2


2

2


3 2




n

2






多少?

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

应用sum的方法:
clear
n=100;i=1:n;
y=1./i.^2;
y1=sum(y);
pai=sqrt(6*y1)

第二种方法:
clear
y=0;
n=input('输入数据n')
fori=1:n
y=y+1/(i*i);
end
pai=sqrt(6*y)

2.根据.

y



1

1


1


,求:




3


5




2

n

1


1y<3时的最大n值。

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

clear
y=0;n=1000;
fori=1:1000
y=y+1/(2*i-1);
ify>=3
break;
end
i=i+1;
end
i
3.已知

f 1








f 1

1

n

1

2

f

n

2

f

n

3

,

n

3

0

f

2

1

f

3

f

f

n

f 100

中:

1

最大值、最小值、各数之和。

2

正数、零、负数的个数。

-------------------------------------------------



f=[1,0,1];
forn=4:100
f(n)=f(n-1)-2*f(n-2)+f(n-3);
end
k=length(find(f<0))
k=length(find(f>0))
k=length(find(f==0))
-------------------------------------------------

4.若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。

[250]区间内:
1)亲密数对的对数;
2)与上述亲密数对对应的所有亲密素数之和。

实验五函数与文件

一、实验目的
1. 掌握定义和调用,MATLAB函数的方法。
2. 掌握MATLAB文件的基本操作。

二、实验内容
1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。

function[a,b,c,d]=susb(x)
a=exp(x);
b=sin(x);
c=log10(x);
d=cos(x);

调用:
x=1+2i
[a,b,c,d]=susb(x)

2.一个自然数是素数,且它的各位数字位置经过任意对换后仍为素数,则称是绝对素数。例如13

是绝对素数。试求所有两位的绝对素数。

要求:定义一个判断素数的函数文件。

function[q]=apnum(p);
for i=2:9
n=find(rem(p,i)==0);

%以下为函数文件,需单独保存

%找出能被i整除的p的位置

p(n)=[]; % 消去能被i 整除的p

end

q=10*rem(p,10)+fix(p/10); for j=2:9

%p的个位和十位调换,调换后为q



m=find(rem(q,j)==0); %找出能被j整除的q的位置 q(m)=[]; %消去能被j整除的qend

调用:
clearall
p=10:99;
[q]=apnum(p)

3.

已知

y


f

(

40 )

时,求y 的值。





)

f

( 30 )

f

(

20 )

1 )

时,求y 的值。

1)当

f

(

n

n

10

ln(

n

2

5 )

2)当

f

(

n

)

1

2

2

3

3

4

n

(

n

第三次实验内容:

实验六高层绘图操作

一、实验目的
1. 掌握绘制二维图形的常用函数。
2. 掌握绘制三维图形的常用函数。

二、实验内容

1. 已知

y 1

x

2

,

y

2

cos(

2

x

),

y

3

y 1

y

2

完成下列操作:

1)在同一坐标系下用不同的颜色和线型绘制三条曲线。(2)以子图形式绘制3条曲线。

3)分别用条图形、阶梯图、杆图和填充图绘制3条曲线。

2. 分别用plot fplot 函数绘制函数

y

sin

1

的曲线,分析两曲线的差别。



x

3. 绘制函数的曲面图和等高线。已知

z

(

x

2

2 ) x e

x

2

y

2

xy

提示:绘制三维曲面图,首先要选定一平面区域并在该区域产生网络坐标矩阵。在做本题前,先分

析并上机验证下列命令的执行结果,从中体会产生网络坐标矩阵的方法。 [x,y]=meshgrid(-1:0.5:2,1:5)

3. 已知6<x<3015<y<36,求不定方程2x+5y=126的整数解。

x=7:29;y=16:35;
[x,y]=meshgrid(x,y); %[7,29]×[16,35]区域生成网格坐标



z=2*x+5*y;
k=find(z==126); %找出解的位置
x(k),y(k)%输出对应位置的x,y即方程的解

5.裁掉表现函数z=sin(y)cos(x)三维曲面图中z>0.25部分。

x=0:0.1:2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x);
[I,J]=find(z>0.25);
forii=1:length(I)
z(I(ii),J(ii))=NaN;
end
surf(x,y,z);

实验七低层绘图操作

一、实验目的
1. 掌握图形对象属性的基本操作。

2. 掌握利用图形对象进行绘图操作的方法。

二、实验内容

1.建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标器

的左键之后显示出LeftButton Pressed字样。

hf=figure('Color',[1,0,0],'WindowButtonDownFcn','disp(''LeftButton Pressed.'')');

2.先利用缺省属性绘制曲线yxe 2 2x ,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,

并利用文字对象给曲线添加文字标注yxe 2 2x

实验十二菜单设计

一、实验目的
1.了解图形用户界面的特点。
2.掌握菜单设计的方法。

3. 掌握对话框设计的方法。

二、实验内容
1.设计菜单。

菜单条仅有File菜单项,File下有NewPlotExit3个选项。选择New时利用Edit命令建立一个新的M文件。选择Plot将显示下一级菜单,其中有SineWaveCosineWave两个子菜单项,且若选择了其中的SineWave子菜单项,则将打开一个新的图形窗口并显示出正弦曲线。若选择了其中的CosineWave 子菜单项,则将打开一个新的图形窗口并显示出余弦曲线。如果选择Exit菜单项,则将关闭窗口并推出用户系统回到MATLAB命令窗口。

2.为图形窗口建立快捷菜单,用以控制窗口的背景颜色和大小。

4. 设计一个对话框,其中有一个编辑框和按钮,当单击按钮时,使编辑框的内容加5



第四次实验内容:

实验二矩阵分析

一、实验目的
1. 掌握生成特殊矩阵的方法。
2. 掌握矩阵分析的方法。

二、实验内容
1.产生5阶希尔伯特矩阵H5阶帕斯卡矩阵P,且求其行列式的值HhHp以及它们的条件数ThTp,判断哪个矩阵性能更好,为什么?

H=hilb(5) %产生55阶希尔波特矩阵
P=pascal(5)%产生55阶帕斯卡矩阵
%计算行列式的值Hh=det(H);
Ph=det(P);
Th=cond(H);
%计算条件数Tp=cond(P);
Hh
Ph
Th
Tp
2.建立一个5×5矩阵,求它的行列式值、迹、秩和范数。

A=[12 3 4 5;2 3 4 5 6;3 4 5 6 7;4 5 6 7 8;5 6 7 8 9];
det(A)
trace(A)
rank(A)
norm(A)
3.已知

A





29

6

18






20

5

12

8

8

5

A的特征值及特征向量,并分析其数学意义。

实验八数据处理和多项式计算

一、实验目的
1. 掌握数据统计和分析的方法。

2. 掌握数值插值与曲线拟合的方法及其应用。
3. 掌握多项式的常用运算。

二、实验内容



1.100个学生5门功课的成绩存入矩阵P中,进行如下处理:

1)分别求每门课的最高分、最低分及相应学生序号。

2)分别求每门课的平均分合标准方差。

35门课总分的最高分、最低分及相应学生序号。

4)将5门课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh

提示:上机调试时,为避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机矩阵来表示学生成绩。

A=rand(5,100);
P=100*A;
[Y,U1]=max(P,[],2); %求每门功课的最高分、序号[X,U2]=min(P,[],2); %求每门功课的最低分、序号Y
U1
X
U2
Z1=mean(P,2) %求每门功课的平均值Z2=std(P,1,2) %求每门功课的标准方差B1=cumsum(P); %求五门功课的总成绩B=B1(5,:);
%求总成绩的最高分[YZ,UZ1]=max(B,[],2)
[XZ,UZ2]=min(B,[],2) %求总成绩的最低分
zcj=-sort(-B,2)

2.已知lg(x)[1,101]区间11个整数采样点的函数值如表2所示。

2 lg(x)10个采样点的函数值

x

1

11

21

31

41

51

61

71

81

91

101

Lg(x)

0

1.0414

1.3222

1.4914

1.6128

1.7076

1.7853

1.8513

1.9085

1.9590

2.0043

试求lg(x)5次拟合多项式p(x),并分别绘制出lg(x)p(x)[1,101]区间的函数曲线。

x=[1:10:101];
y=[0,1.0414,1.3222,1.4914,1.6128,1.7076,1.7853,1.8513,1.9085,1.9590,2.0043];[P,S]=polyfit(x,y,5)
plot(x,y,'k*',x,polyval(P,x),'k-')

3. 3 个多项式

p x 1 ( )

x

4

2

x

3

4

x

2

5,

p 2

( )

x

2,

p x 3 ( )

x

2

2

x

3,

试进行下列操作:

p x ( )

p x 1( )

p 2( )

p x 3( )

1

p x ( )

的根。

2

x 取矩阵A 的每一元素时,求Px)的值。其中

A





1

1.2

1.4






0.75

2

3.5

0

5

2.5




3 当以矩阵A为自变量时,求Px)的值。其中A的值与(3)相同。

p1=[1,2,4,0,5]
p22=[1,2];p2=[0,0,0,p22];
p33=[1,2,3];p3=[0,0,p33];
p=p1+p2.*p3
x=roots(p) %求多项式的根A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5];
G=poly(A) %X=AP(X)的值

第五次实验内容:

实验九符号计算基础与符号微积分

一、实验目的
1. 掌握定义符号对象的方法。

2. 掌握符号表达式的运算法则以及符号矩阵运算。3. 掌握求符号函数极限及导数的方法。

掌握求符号函数定积分和不定积分的方法。4.

二、实验内容

1. 已知x=6,y=5,利用符号表达式求

z

3

x

1

y

x

提示:定义符号常数x=sym(‘6’),y=sym(‘5’)

x=sym('6');
y=sym('5');
z=(x+1)/(sqrt(3+x)-sqrt(y))

2.用符号方法求下列极限或导数。

1

lim

x e

sin

x

1)

2(

e

tan

x

1)



x

0










sin

3

x











symsx;
f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(sin(x))^3;
limit(f,x,0)

2)已知

A




a

x

t

3

,分别求

dA d A d A 2 2

, ,






t

cos

x

ln

x





dx

dt

2

dxdt


symsa t x;
A=[a^x,t^3;t*cos(x),log(x)];
diff(A,x) %X一阶导数diff(A,x,2) %X二阶导数



diff(diff(A,x),t) %X导数的T导数

3.用符号方法求下列积分。

1




dx




1

x

4

x

8

x=sym('x');
f=1/(1+x^4+x^8);
int(f)

2



x

2

1
dx


0

x

4

1

x=sym('x');
f=(x^2+1)/(x^4+1);
int(f,0,inf)

实验十级数与方程符号求解

一、实验目的
1. 掌握级数求和的方法。

2. 掌握将函数展开为泰勒级数的方法。
3. 掌握微分方程符号求解的方法。

掌握代数方程符号求解的方法。4.

二、实验内容

1.级数符号求和。

计算

S

10


1





n1

2

n

1

n=sym('n');
S=symsum(1/(2*n-1),n,1,10)

1

求级数


n1

n x 2

n

1

之和函数,并求

n 2

n15n

之和。

symsn x;

S2=symsum((n^2)*x^(n-1),n,1,inf) 函数
S3=symsum((n^2)/5^n)

%N的从1到无穷的和

2. ln(x)x=1 处按5 次多项式展开为泰勒级数。

x=sym('x');
f=log(x);
taylor(f,x,6,1)
2.求微分方程的符号解。



d y 2

k y 2

0








dx

2



y

(0)

a

y

'(0)

b

a b k

为任意常数

symsx y a b k;
m=dsolve('D2y+k^2*y','y(0)=a','Dy(0)=b','x')

4.求下列方程和方程组的符号解。

13

xe

x

5sin

x

78.5

0

x=solve('3*x*exp(x)+5*sin(x)-78.5','x')

2



3

x

2

y

2

100

0

x

5

y

8

0

[xy]=solve('sqrt(x^2+y^2)-100','3*x+5*y-8','x,y')

3

ln(1

x

)

5


2







1 sin

x



x=solve('log(1+x)-5/(1+sin(x))=2','x')

4

x

2

9

x



0

x=solve('x^2+9*sqrt(x+1)-1','x')

第六次实验内容:

实验十三Simulink的应用

一、实验目的
1.熟悉Simulink的操作环境并掌握构建系统模型的方法。

2.掌握Simulink中子系统模块的建立与封装技术。

3.对简单系统所给出的数学模型能转化为系统仿真模型并进行仿真分析。

二、实验内容

1.假设从实际应用领域(力学、电学、生态或社会)中,抽象出有初始状态为0的二阶微分方程

x



0.2

x

0.4

0.2 ( )

u t ( )

是单位阶跃函数。用积分器直接构造求解微分方程的模型

exm1.mdl并仿真。

2. 利用传递函数模块建模。仍以下面的二阶微分方程为例

x



0.2

x

0.4

0.2 ( )

3. 利用状态方程模块建模。仍以下面的二阶微分方程为例

x



0.2

x

0.4

0.2 ( )




第七次实验内容:

实验十四综合实验(1

一、实验目的
综合运用所学知识,掌握利用MATLAB解决控制系统仿真分析与设计的方法。

二、实验内容

2

s

3


1

的系统。





1.用Matlab 表示传递函数为

4

s

3

3 s

2

2

s





2Matlab 表示传递函数为


(

2 (

s

3 )

2 )

的系统。

s

s

1 )(

s

0

0

1



u

的系统。

3. Matlab 表示状态空间表达式为



x 1



0

0



1

1

0

1

3






x 1



0

x 2

x

2

x 3

2

x 3

y

[ 1

0


0 ]

x 1






x 2

x 3

A=[01 0;0 0 1;-1 -2 -3];
B=[0;0;1];
C=[10 0];
D=0;
Gf=ss(A,B,C,D)

4.已知某控制系统的传递函数为

G

(

s

)




1



,求Matlab 描述的传递函数模型及零极点增







s

2

3 s

2


益模型。

num=[1];
den=[13 2];
Gtf=tf(num,den)
Gzpk=zpk(Gtf)

5.MATLAB绘制典型二阶系统的单位阶跃响应曲线。

Step(Gtf)

6. 已知单位负反馈系统的开环传递函数为

G

(

s

)




s

2



,试判断系统的闭环稳定性。







s

(

s

1 )(

s

3 )


k=1;
z=[-2];
p=[0-1 -3];
G=zpk(z,p,k);



Gtf=feedback(G,1)
pzmap(Gtf)

7.

已知一单位负反馈系统的开环传递函数为G(s)




5 (

s

0 . 2 )

,试求单位阶跃信号作为参



s

(

s

0 . 5 )(

s

1 . 5 )


考输入时产生的稳态误差。

k=5;
z=[-0.2];
p=[00.5 -1.5];
G=zpk(z,p,k);
Gtf=feedback(G,1)
step(Gtf)
[numk,denk]=tfdata(Gtf);
Kp=dcgain(numk,denk)
第八次实验内容:

实验十四综合实验(2

一、实验目的
综合运用所学知识,掌握利用MATLAB解决控制系统仿真分析与设计的方法。

二、实验内容

8. 已知系统开环传递函数为

G

(

s

)




2




,试利用MATLAB 画出系统的奈奎斯特图。







s

( 3 s

1 )(

0 . 5

s

1 )


num=2;

den=conv([10],conv([3 1],[0.5 1]));

G=tf(num,den);

Nyquist(G)

9已知一单位反馈系统开环传递函数为G(s)=2/(s^3+6s^2+5s),试绘制bode图并计算系统频域性

能指标。

num=[00 0 2]; den=[1 6 5 0];
G=tf(num,den);
Gtf=feedback(G,1);
bode(Gtf)
sys=tf(num,den);
[mag,phase,w]=bode(sys);
[gm,pm,wcp,wcg]=margin(mag,phase,w)



Gm是系统的幅值裕量;
Pm是系统的相角裕量;
WcpGm对应的角频率;
WcgPm对应的角频率;

10.已知单位反馈系统被控对象的传递函数为G0s=K0/0.0001s^3+0.101s^2+s),试用bode

图设计方法对系统进行超前串联校正,使之满足:

1)在速度信号作用下,系统的稳态误差小于等于0.001

2)系统校正后,相角稳定裕度介于4348度之间。

11.使用子系统封装实现下图所示的变化。

12.若已知如上题图所示的系统,试利用系统线性化分析的方法求系统的闭环传递函数,并绘制系统的阶跃响应曲线。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务