文档库 最新最全的文档下载
当前位置:文档库 › matlab实验内容答案

matlab实验内容答案

matlab实验内容答案
matlab实验内容答案

实验报告说明:

matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。

第一次实验内容:

实验一 MATLAB 运算基础

一、实验目的

1.熟悉启动和退出MA TLAB 的方法。

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

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

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

二、实验内容

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

(1)2

2sin 8511z e ?=

+

(2

)12ln(2

z x =+

,其中2120.45

5i +?

?

=?

?-??

(3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02

a

a

e

e z a a --=

+=---

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

2

2

01

41

1221

23

t t z t t t t t ?≤

2.已知

12344347873657A -????=??????,131203327B -????

=????-??

求下列表达式的值:

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

(2)A*B 和A.*B 。 (3)A^3和A^.3 。 (4)A/B 和B\A 。

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

3.设有矩阵A 和B

12345678910111213141516171819202122232425A ????????=????????, 30

161769

23497041311B ??

??

-??

??=-??

?????

?

(1) 求它们的乘积C 。

(2) 将矩阵C 的右下角3×2子矩阵赋给D (3) 查看MA TLAB 工作空间使用情况。

4.完成下列操作:

(1)求[100,999]之间能被21整除的数的个数。 提示:先利用冒号表达式,再利用find 和length 函数。 (2)建立一个字符串向量,删除其中的大写字母。 提示:利用find 函数和空矩阵。

第二次实验内容:

实验三 选择结构程序设计

一、实验目的

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

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

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

4. 掌握try 语句的使用。

二 、实验内容

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

22

2

6,0356,010,231

x x x x y x x

x x x

x x ?+-<≠-?=-+≤<

≠≠??--?且且其他

要求:

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

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

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

用。

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 。其中90~100分为A ,80~89分为B ,

70~79分为C ,60~69分为D ,60分以下为E 。 要求:

(1) 用switch 语句实现。

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

x=input('input score:'); if x<0

disp('Sorry ,The fail score!') elseif x<60 disp('E') elseif x<70 disp('D') elseif x<80 disp('C') elseif x<90 disp('B') elseif x<=100 disp('A') else

disp('Sorry ,The fail score!') end

switch 语句实现: clear

score=input('input the score:'); switch score case num2cell(0:59) disp('E')

case num2cell(60:69) disp('D')

case num2cell(70:79) disp('C')

case num2cell(80:89) disp('B')

case num2cell(90:100)

disp('A') otherwise

disp('Sorry!It''s the 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

2

2

2

2

11116

1

2

3

n

π

=

+

+

++

,求π的近似值。当n 分别取100、1 000、10 000时,结果是

要求:分别用循环结构和向量运算(使用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 :') for i=1:n y=y+1/(i*i); end

pai=sqrt(6*y)

2.根据.

11113

5

21

y n =+

+

++

- ,求:

(1)y<3时的最大n 值。 (2)于(1)的n 值对应的y 值。 clear

y=0;n=1000; for i=1:1000 y=y+1/(2*i-1); if y>=3 break; end i=i+1; end i

3. 已知 123123

101

2,3

n n n n f f f f f f f n ---=??=?

?

=??=-+>?

求1100f f -中:

(1) 最大值、最小值、各数之和。 (2) 正数、零、负数的个数。 -------------------------------------------------

for n=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是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。求[2,50]区间内:

(1)亲密数对的对数;

(2)与上述亲密数对对应的所有亲密素数之和。

实验五函数与文件

一、实验目的

1.掌握定义和调用,MA TLAB函数的方法。

2.掌握MA TLAB文件的基本操作。

二、实验内容

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); % p的个位和十位调换,调换后为q

for j=2:9

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

调用: clear all p=10:99; [q]=apnum(p) 3. 已知)

20()30()40(f f f y +=

(1)当)5ln(10)(2++=n n n f 时,求y 的值。

(2)当)1(433221)(+?++?+?+?=n n n f 时,求y 的值。

第三次实验内容:

实验六 高层绘图操作

一、实验目的

1. 掌握绘制二维图形的常用函数。

2. 掌握绘制三维图形的常用函数。

二、实验内容

1. 已知213),2cos(2,12

y y y x y x y ?===完成下列操作: (1)在同一坐标系下用不同的颜色和线型绘制三条曲线。 (2)以子图形式绘制3条曲线。

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

2. 分别用plot 和fplot 函数绘制函数1sin y x

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

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

2

2

(2)x y xy

z x x e

---=-

提示:绘制三维曲面图,首先要选定一平面区域并在该区域产生网络坐标矩阵。在做本题前,先分析并上机验证下列命令的执行结果,从中体会产生网络坐标矩阵的方法。 [x,y]=meshgrid(-1:0.5:2,1:5)

3. 已知6

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);

for ii=1:length(I)

z(I(ii),J(ii))=NaN;

end

surf(x,y,z);

实验七低层绘图操作

一、实验目的

1.掌握图形对象属性的基本操作。

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

二、实验内容

1. 建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标器的左键之后显示出Left Button Pressed字样。

hf=figure('Color',[1,0,0],'Window ButtonDownFcn','disp(''Left Button Pressed.'')');

2. 先利用缺省属性绘制曲线22x

y x e

=,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注22x

=。

y x e

实验十二菜单设计

一、实验目的

1. 了解图形用户界面的特点。

2. 掌握菜单设计的方法。

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

二、实验内容

1. 设计菜单。

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

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

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

第四次实验内容:

实验二 矩阵分析

一、实验目的

1. 掌握生成特殊矩阵的方法。

2. 掌握矩阵分析的方法。

二、实验内容

1. 产生5阶希尔伯特矩阵H 和5阶帕斯卡矩阵P ,且求其行列式的值Hh 和Hp 以及它们的条件数Th 和Tp ,判断哪个矩阵性能更好,为什么? 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=[1 2 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. 已知

29618

20

5128

8

5A -???

?=????-??

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

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

一、实验目的

1. 掌握数据统计和分析的方法。

2. 掌握数值插值与曲线拟合的方法及其应用。

3. 掌握多项式的常用运算。

二、实验内容

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

(1)分别求每门课的最高分、最低分及相应学生序号。 (2)分别求每门课的平均分合标准方差。

(3)5门课总分的最高分、最低分及相应学生序号。

(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个采样点的函数值

试求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个多项式4322

1

23()245,()2,()23,p

x x x x p x x p x x x =+++=+=++试进行下列操作: 求()p x =1()p x +2()p x 3()

p x 。

(1) 求()p x 的根。

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

1.21.4

0.752

3.50

52.5

A --???

?=??????

(3)当以矩阵A为自变量时,求P(x)的值。其中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=A时P(X)的值

第五次实验内容:

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

一、实验目的

1.掌握定义符号对象的方法。

2.掌握符号表达式的运算法则以及符号矩阵运算。

3.掌握求符号函数极限及导数的方法。

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

二、实验内容

1. 已知x=6,y=5,

利用符号表达式求z=

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

x=sym('6');

y=sym('5');

z=(x+1)/(sqrt(3+x)-sqrt(y))

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

(1)

sin tan

3

(1)2(1) lim

sin

x x

x

x e e

x

+--

syms x;

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

(2)已知

3

cos ln

x

a t

A

t x x

??

=??

??

,分别求

22

2

,,

dA d A d A

dx dt dxdt

syms a 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)4

8

1dx x x

++?

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

4

11

x dx x +∞++?

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

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

一、实验目的

1. 掌握级数求和的方法。

2. 掌握将函数展开为泰勒级数的方法。

3. 掌握微分方程符号求解的方法。

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

二、实验内容

1. 级数符号求和。

计算10

1

1

21n S n ==

-∑

n=sym('n');

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

(1) 求级数2

1

1

n n n x

-=∑之和函数,并求21

5

n

n n ∞

=∑

之和。

syms n x;

S2=symsum((n^2)*x^(n-1),n,1,inf) %求N 的从1到无穷的和函数

S3=symsum((n^2)/5^n)

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

x=sym('x'); f=log(x);

taylor(f,x,6,1)

2. 求微分方程的符号解。

22

2

0(0)'(0),,d y k y dx y a y b a b k ?+=???

=??=???为任意常数

syms x y a b k;

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

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

(1)35sin 78.50x xe x +-=

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

(2

)1000

3580

x y =+-=??

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

(3)5ln(1)21sin x x

+-

=+

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

(4

)2

10x +=

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

第六次实验内容:

实验十三 Simulink 的应用

一、实验目的

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

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

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

二、实验内容

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

0.20.40.2()x x u t '''++=,()u t 是单位阶跃函数。用积分器直接构造求解微分方程的模型exm1.mdl 并仿真。

2. 利用传递函数模块建模。仍以下面的二阶微分方程为例0.20.40.2()x x u t '''++=

3. 利用状态方程模块建模。仍以下面的二阶微分方程为例0.20.40.2()x x u t '''++=

第七次实验内容:

实验十四 综合实验(1)

一、实验目的

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

1.用Matlab 表示传递函数为 12343

22

3

++++s s s s 的系统。 2.用Matlab 表示传递函数为

)

2)(1()3(2+++s s s s 的系统。

3. 用Matlab

表示状态空间表达式为????

?

?????=?????

?

????+???????????????

?

????---=??????????32

1321321]00

1

[100321100010x x x y u x x x x x

x

的系统。

A=[0 1 0;0 0 1;-1 -2 -3];

B=[0;0;1]; C=[1 0 0]; D=0;

Gf=ss(A,B,C,D)

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

31)(2

++=

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

益模型。 num=[1];

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

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

Step :(Gtf)

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

3)(1(2)(+++=

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

k=1;

z=[-2];

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

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

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

G(s)=

)

5.1)(5.0()2.0(5+-+s s s s ,试求单位阶跃信号作为

参考输入时产生的稳态误差。 k=5;

z=[-0.2];

p=[0 0.5 -1.5]; G=zpk(z,p,k); Gtf=feedback(G,1) step(Gtf)

[numk,denk]=tfdata(Gtf); Kp=dcgain(numk,denk)

第八次实验内容:

实验十四 综合实验(2)

一、实验目的

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

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

15.0)(13(2

)(++=s s s s G ,试利用MATLAB 画出系统的奈奎斯特图。

num=2;

den=conv([1 0],conv([3 1],[0.5 1])); G=tf(num,den); Nyquist(G)

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

能指标。

num=[0 0 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是系统的相角裕量;

Wcp是Gm对应的角频率;

Wcg是Pm对应的角频率;

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

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

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

(2)系统校正后,相角稳定裕度介于43与48度之间。

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

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

统的阶跃响应曲线。

Matlab上机实验答案

Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -

>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +

Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50

+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =

MATLAB全部实验及答案

MATLAB全部实验及答案 实验一、MATLAB基本操作 实验内容及步骤 4、有关向量、矩阵或数组的一些运算 (1)设A=15;B=20;求C=A+B与c=a+b? (2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与 A.*B? A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2? (4)设a=[1 -2 3;4 5 -4;5 -6 7] 请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全 下标的形式),并将其单下标转换成全下标。 clear,clc a=[1 -2 3;4 5 -4;5 -6 7]; [x,y]=find(a<0); c=[]; for i=1:length(x) c(i,1)=a(x(i),y(i)); c(i,2)=x(i); c(i,3)=y(i); c(i,4)=(y(i)-1)*size(a,2)+x(i); end c

(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那 个是虚数矩阵,后面那个出错 (6)请写出完成下列计算的指令: a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=? a^2= 22 16 16 25 26 23 26 24 28 a.^2= 1 4 9 9 16 4 25 4 9 (7)有一段指令如下,请思考并说明运行结果及其原因 clear X=[1 2;8 9;3 6]; X( : ) 转化为列向量 (8)使用三元组方法,创建下列稀疏矩阵 2 0 8 0 0 0 0 1 0 4 0 0 6 0 0 0 方法一: clear,clc

Matlab实验五分支结构程序设计答案

实验五分支结构程序设计 实验内容 (1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear >> format long g s=input('s=') n=fix(log10(s)); A=0; for i=1:n a=fix(s/10^n); x=fix(mod(s,10^i)/10.^(i-1)); A=A+x*10^(n+1-i); end A+a s=693 s = 693 ans = 396 (2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现 2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息 If语句 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理');

elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩98 a = 98 A 成绩合理 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理'); elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩148 a = 148 成绩错误 switch语句 >> a=input('输入成绩') switch a; case num2cell(0:59) disp('E 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(90:100) disp('A 成绩合理'); otherwise disp('成绩错误'); end

MATLAB)课后实验答案

实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 012 2sin 851z e =+ (2) 21ln(2 z x =,其中2 120.45 5i x +??=? ?-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022 a a e e a z a a --+= ++=--L (4) 22 42011 122123t t z t t t t t ?≤

4. 完成下列操作: (1) 求[100,999]之间能被21整除的数的个数。 (2) 建立一个字符串向量,删除其中的大写字母。解:(1) 结果: (2). 建立一个字符串向量例如: ch='ABC123d4e56Fg9';则要求结果是:

实验二 MATLAB 矩阵分析与处理 1. 设有分块矩阵33322322E R A O S ?????? =? ??? ,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22 E R RS A O S +?? =???? 。 解: M 文件如下; 5. 下面是一个线性方程组: 1 231 1 12340.951110.673450.5211145 6x x x ?? ??????????????=??? ?????????????????? ? ch = 123d4e56g9

(1) 求方程的解。 (2) 将方程右边向量元素b 3改为0.53再求解,并比较b 3的变化和解的相对变化。 (3) 计算系数矩阵A 的条件数并分析结论。 解: M 文件如下: 实验三 选择结构程序设计 1. 求分段函数的值。 2226035605231x x x x y x x x x x x x ?+-<≠-? =-+≤<≠≠??--? 且且及其他 用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 解:M 文件如下:

Matlab实验第一次实验答案

实验一Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句 3、熟悉Matlab绘图命令及基本绘图控制 4、熟悉Matlab程序设计的基本方法 二、实验内容: 1、帮助命令 使用help命令,查找sqrt(开方)函数的使用方法; 解:sqrt Square root Syntax B = sqrt(X) Description B = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results. Remarks See sqrtm for the matrix square root. Examples sqrt((-2:2)') ans = 0 + 1.4142i 0 + 1.0000i

1.0000 1.4142 2、矩阵运算 (1)矩阵的乘法 已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B 解:A=[1 2;3 4 ]; B=[5 5;7 8 ]; A^2*B (2)矩阵除法 已知A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; A\B,A/B 解:A=[1 2 3;4 5 6;7 8 9 ]; B=[1 0 0;0 2 0;0 0 3 ]; A\B,A/B (3)矩阵的转置及共轭转置

MATLAB实验题答案

1、求以下变量的值,并在MATLAB中验证。( 1 ) a = 1 : 2 : 5 a = 1 3 5 ( 2 ) b = [ a' , a' , a' ;a ] b = 1 1 1 3 3 3 5 5 5 1 3 5 ( 3 ) c = a + b ( 2 , : ) c = 4 6 8 2、下列运算是否合法,为什么?如合法, 结果是多少? >> result2=a*b Error using * Inner matrix dimensions must agree. >> result3=a+b result3 = 3 6 2 5 8 11 >> result4=b*d result4 = 31 22 22 40 49 13 >> result5=[b;c']*d result5 = 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 4 1 5 30 >> result7=a./b result7 = 0.5000 0.5000 -3.0000 4.0000 1.6667 1.2000>> result8=a.c Attempt to reference field of non-structure array. >> result9=a.\b result9 = 2.0000 2.0000 -0.3333 0.2500 0.6000 0.8333 >> result10=a.^2 result10 = 1 4 9 16 25 36 >> result11=2.^a result11 = 2 4 8 16 32 64 3、用MATLAB求解下面的的方程组。 (1) ? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - 1 7 4 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 4 3 2 1 x x x x >> A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> B=[4 7 -1 0] >> B=B' >> x=inv(A)*B (2) ? ? ? ? ? ? ? = - + + = - - = - + + = + + 5 6 5 3 3 3 3 2 8 2 1 w z y x w y x w z y x z y x >> A1=[1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6] >> B2=[1;8;3;5] >> x2=inv(A1)*B2 4、已知 ? ? ? ? ? ? ? ? ? ? ? ? - - - - = 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 A

matlab所有实验及答案

实验二 习题 1、 矩阵Y= ???? ? ???? ???3472123100451150425 ,给出元素1的全下标和单下标,并用函数练习全下标和单下标的转换,求出元素100的存储位置。取出子矩阵?? ? ? ??21301,并求该矩阵的维数。 解:命令为: Y=[5,2,4;0,15,1;45,100,23;21,47,3] Y(2,3) Y(10) sub2ind([4 3],2,3) [i,j]=ind2sub([4 3],10) find(Y==100) sub2ind([4 3],3,2) B=Y(2:2:4,3:-2:1) 或 B=Y([2 4],[3 1]) [m n]=size(Y) 2、 建立一个数值范围为0—100内4*5的整数随机矩阵。 求出大于50的元素的位置。 解:命令为: G=int8(100*rand(4,5)) find(G>50) 3、 已知矩阵A=[1 0 -1 ;2 4 1; -2 0 5],B=[0 -1 0;2 1 3;1 1 2] 求2A+B 、A 2-3B 、A*B 、B*A 、A .*B ,A/B 、A\B 解:命令为: A=[1 0 -1 ;2 4 1; -2 0 5] B=[0 -1 0;2 1 3;1 1 2] E=2*A+B F=A^2-3*B G=A*B H=B*A I=A.*B J=A/B K=A\B 4、 利用函数产生3*4阶单位矩阵和全部元素都为8的 4*4阶矩阵,并计算两者的乘积。 解:命令为: A=eye(3,4) B=8*ones(4) C=A*B 5、 创建矩阵a=????? ???????------7023021.5003.120498601 ,取出其前两列构成的矩阵b ,取出前两行构成矩阵c ,转置矩阵b 构成矩阵d ,计算a*b 、c

matlab实验四及其答案

实验四GUI 设计专业 学号姓名成绩电气工程及其自 动化201409140305 杨诚1.创建GUI 绘制方程c bx ax y ++=2图形,需要显示绘图结果的坐标系窗口,还能够输入 a , b , c 的值和x 取值范围(最大值和最小值)。 回调函数的编写: a=str2num(get(handles.edit1,'String'));b=str2num(get(handles.edit2,'String'));c=str2num(get(handles.edit3,'String'));xmin=str2num(get(handles.edit4,'String'));xmax=str2num(get(handles.edit5,'String'));x=xmin:0.1:xmax;y=a*x.^2+b*x+c;plot(x,y); 设计的运行界面截图:

2.设计一个GUI,完成画出y=sin(x)、y=cos(x)和y=x 3.的波形图。回调函数的编写: x=-5:0.1:5 plot(x,sin(x)) x=-5:0.1:5 plot(x,cos(x))

x=-5:0.1:5 y=x.^3 plot(x,y)

设计的运行界面截图: 3.创建一个GUI,含有下拉菜单,下拉菜单中有背景颜色选择。回调函数的编写: yanse=get(handles.popupmenu1,'value'); switch yanse case1 set(gcf,'color','r'); case2 set(gcf,'color','y'); case3 set(gcf,'color','g'); end 设计的运行界面截图:

MATLAB上机实验(答案)

MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =

河南城建学院MATLAB上机实验答案

一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:?变量名必须以字母开头,只能由字母、数字或下划线组成。 ?变量名区分大小写。 ?变量名不能超过63个字符。 ?关键字不能作为变量名。 ?最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector. 线性等分函数 LINSPACE(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2. 以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。 Class support for inputs X1,X2: float: double, single 数据类型:单精度、双精度浮点型。 (4)说明函数ones()、zeros()、eye()的用法。 ones()生成全1矩阵。 zeros()生成全0矩阵。 eye()生成单位矩阵。 2、Matlab的数值显示格式

MATLAB实验题目及答案

实验二一维二维数组的创建和寻访 一、实验目的 1、掌握一维数组、二维数组创建和寻访的几种方法。 2、区别数组运算和矩阵运算的差别。 3、熟悉执行数组运算的常用数组操作函数。 4、掌握数组运算中的关系和逻辑操作及常用的关系、逻辑函数。 5、掌握“非数”、“空”数组在MA TLAB中的应用。 二、实验主要仪器与设备 装配有MA TLAB7.6软件的计算机 三、预习要求 做实验前必须认真复习第三章MATLAB的数值数组及向量化运算功能。 四、实验内容及实验步骤 1、一维数组的创建方法有哪几种?举例说明。 答:一维数组的创建方法有: ①递增/递减型一维数组的创建:冒号生成法:x=a:inc:b 线性(或对数)定点法:x=linspace(a,b,n),x=logspace(a,b,n) ②逐个元素输入法:如x=[0.1,sin(pi/5),-exp(-3),-2*pi] ③运用MA TLAB函数生成法:例ones,rand等。 2、输入以下指令,并写出运行结果。本例演示:数组元素及子数组的各种标识和寻访格式;冒号的使用;end的作用。 A=zeros(2,6) %创建(2×6)的全零数组 A(:)=1:12 %赋值号左边:单下标寻访(2×6) 数组A的全部12个元素 %赋值号右边:拥有12个元素的一维数组 A(2,4) %双下标:A数组的第2行第4列元素 A(8) %单下标:数组A的第8个元素 A(: , [1,3]) %双下标:显示A的“第1列和第3列上全部行的元素” A([1, 2, 5, 6]') %单下标:把A数组第1,2,5,6个元素排成列向量 A(: , 4:end) %双下标:显示A的“从第4起到最后一列上全部行的元素” %在此end用于“列标识”,它表示“最后一列” A(2,1:2:5)=[-1, -3, -5] %把右边的3个数分别赋向A数组第2行的第1,3,5个元素位置 B=A([1, 2, 2, 2], [1, 3, 5]) %取A数组的1,3,5列的第1行元素作为B的第1行 %取A数组的1,3,5列的第2行分别作为B的第2,3,4行 L=A<3 %产生与A维数相同的“0,1”逻辑数组 A(L)=NaN %把逻辑1标识的位置上的元素赋为“非数” 运行结果: A = 0 0 0 0 0 0 0 0 0 0 0 0

matlab实验内容答案

实验报告说明: matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。 第一次实验内容: 实验一 MATLAB 运算基础 一、实验目的 1.熟悉启动和退出MA TLAB 的方法。 2.熟悉MA TLAB 命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握MA TLAB 各种表达式的书写规则以及常用函数的使用。 二、实验内容 1.先求下列表达式的值,然后显示MA TLAB 工作空间的使用情况并保存全部变量。 (1)2 2sin 8511z e ?= + (2 )12ln(2 z x =+ ,其中2120.45 5i +? ? =? ?-?? (3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02 a a e e z a a --= +=--- 提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。 (4)2 2 2 01 41 1221 23 t t z t t t t t ?≤

12344347873657A -????=??????,131203327B -???? =????-?? 求下列表达式的值: (1)A+6=B 和A-B+I(其中I 为单位矩阵)。 (2)A*B 和A.*B 。 (3)A^3和A^.3 。 (4)A/B 和B\A 。 (5)[A ,B]和[A([1,3],;);B^2] 。 3.设有矩阵A 和B 12345678910111213141516171819202122232425A ????????=????????, 30 161769 23497041311B ?? ?? -?? ??=-?? ????? ? (1) 求它们的乘积C 。 (2) 将矩阵C 的右下角3×2子矩阵赋给D (3) 查看MA TLAB 工作空间使用情况。 4.完成下列操作: (1)求[100,999]之间能被21整除的数的个数。 提示:先利用冒号表达式,再利用find 和length 函数。 (2)建立一个字符串向量,删除其中的大写字母。 提示:利用find 函数和空矩阵。 第二次实验内容: 实验三 选择结构程序设计 一、实验目的 1. 掌握建立和执行M 文件的方法。 2. 掌握利用if 语句实现选择结构的方法。 3. 掌握利用switch 语句实现多分支选择结构的方法。 4. 掌握try 语句的使用。 二 、实验内容

Matlab实验指导书(含答案)汇总

实验一:Matlab操作环境熟悉 一、实验目的 1.初步了解Matlab操作环境。 2.学习使用图形函数计算器命令funtool及其环境。 二、实验内容 熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算: 1.单函数运算操作。 求下列函数的符号导数 (1) y=sin(x); (2) y=(1+x)^3*(2-x); 求下列函数的符号积分 (1) y=cos(x); (2) y=1/(1+x^2); (3) y=1/sqrt(1-x^2); (4) y=(x-1)/(x+1)/(x+2); 求反函数 (1) y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2)); 代数式的化简 (1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4); (2) sin(x)^2+cos(x)^2; (3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x); 2.函数与参数的运算操作。 从y=x^2通过参数的选择去观察下列函数的图形变化 (1) y1=(x+1)^2 (2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作 求和 (1) sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5 乘积 (1) exp(-x)*sin(x)

matlab实验指导答案详解(非常详细正确)

实验一 MATLAB 工作环境熟悉及简单命令的执行 一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。 二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单 (Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作 空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤: 1、启动MATLAB ,熟悉MATLAB 的桌面。 2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。 (1)(365-52?2-70)÷3 >>(365-52*2-70)/3 ans = 63.6667 (2)>>area=pi*2.5^2 area = 19.6350 (3)已知x=3,y=4,在MATLAB 中求z : () 2 3 2y x y x z -= >>x=3 >>y=4 >>z = x ^2 * y ^3 / (x - y) ^2 z = 576 (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。 m1=???? ? ???? ???11514412679810115133216 执行以下命令 >>m1 =[16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 ] >>m1( 2 , 3 ) ans = 10 >>m1( 11 ) ans = 6 >>m1( : , 3 ) ans =3 10 6 15 >>m1( 2 : 3 , 1 : 3 ) ans =5 11 10 9 7 6 >>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) ans = 34 (5)执行命令>>help abs

Matlab数学实验一2015(标准答案版)

Matlab数学实验一——matlab初体验 一、实验目的及意义 [1] 熟悉MATLAB软件的用户环境; [2] 了解MATLAB软件的一般目的命令; [3] 掌握MATLAB数组操作与运算函数; 通过该实验的学习,使学生能熟悉matlab的基础应用,初步应用MATLAB软件解决一些简单问题。 二、实验内容 1.认识matlab的界面和基本操作 2.了解matlab的数据输出方式(format) 3. MATLAB软件的数组(矩阵)操作及运算练习; 三、实验任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→原理→算法与编程→计算结果或图形→心得体会) 完成如下题目,并按照实验报告格式和要求填写实验报告 1.在commandwindow中分别输入如下值,看它们的值等于多少,并用matlab的help中查询这些缺省预定义变量的含义,用中文写出它们的意义。 ijeps inf nan pi realmaxrealmin 2.分别输入一个分数、整数、小数等,(如:a=1/9),观察显示结果,并使用format函数控制数据的显示格式,如:分别输入format short、format long、format short e、format long g、format bank、format hex等,然后再在命令窗口中输入a,显示a的值的不同形式,并理解这些格式的含义。 3.测试函数clear、clc的含义及所带参数的含义(利用matlab的help功能)。 4. 写出在命令窗口中的计算步骤和运行结果。 (1)计算 1.22 10 (ln log) 81 e ππ +- ; >>(log(pi)+log(pi)/log(10)-exp(1.2))^2/81 >>ans = 0.0348 (2) >> x=2;y=4; >> z=x^2+exp(x+y)-y*log(x)-3 z = 401.6562 (3)输入变量 13 5.3, 25 a b ?? ==?? ?? ,在工作空间中使用who,whos,并用save命令将变量存入”D:\exe0 1.mat”文件。测试clear命令,然后用load命令将保存的”D:\exe01.mat”文件载入>> a=5.3 a=

实验三MATLAB程序设计并且附有答案

实验三(1)、MATLAB程序设计 一、实验目的 1、掌握建立和执行M文件的方法 2、掌握利用if语句和switch语句实现选择结构的方法 二、实验内容及步骤 1、输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。 其中90分~100分为A,80分~89分为B,70分~79为C, 60分~69分为D,60分以下为E。 要求:1)分别用if语句和switch语句实现a=input('please input the score:'); if mod(a,==0 &a>=0&a<=100; switch (floor(a/10)) case 9 disp('A'); case 8 disp('B'); case 7 disp('C'); case 6 disp('D'); otherwise disp('E'); end else disp('输入的成绩不合理') end double x; x=input('Input x please:'); if mod(x,~=0 || x>100 || x<0 disp('ê?è?μ?3é?¨2?o?àí'); elseif x>=90 & x<=100 disp('A'); elseif x>=80 & x<=89 disp('B'); elseif x>=70 & x<=79 disp('C'); elseif x>=60 & x<=69 disp('D'); elseif x>=0 & x<60

disp('E'); end 2)对不合理的成绩应输出出错信息“输入的成绩不 合理”(若成绩出现小数,则只能是“.5”) 2、设计程序,完成两位数的加、减、乘、除四则运算,即产 生两个两位随机整数,再输入一个运算符号,做相应的运 算,显示相应的结果,并要求结果显示类似于“a=x+y=34”。 x=randint(1,1,[10 99]);或者x=round(rand(1)*100) y=randint(1,1,[10 99]);或者y=round(rand(1)*100) disp(['x=',num2str(x)]); disp(['y=',num2str(y)]); A=input('请输入一个运算符号:','s'); %书上114页有说明switch(A) case '+' a=x+y; disp(['a=x+y=',num2str(a)]); case '-' a=x-y;disp(['a=x-y=',num2str(a)]); case '*' a=x*y;disp(['a=x*y=',num2str(a)]); case '/' a=x/y;disp(['a=x/y=',num2str(a)]); end 3、求下列分段函数的值 2 2 2 6,0 56, 1, y χχχχ χχχχχ χχ ?+-<≠ ? =-+≤≠≠? ?-- ? 且-3 0<10,2且3 其他 要求:用if语句实现,分别输出x = ,,,,,,时的y值。其中

Matlab习题与答案

实验二二维/三维数据的可视化 一、实验目的 熟悉掌握简单的图形绘制函数;掌握MATLAB常用的二维、三维图形及其他图形绘制函数的使用方法;熟悉图形句柄的使用。 二、实验环境 硬件环境:计算机一台 软件环境:Matlab 6.0 三、实验内容 作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。 1、二维绘图 (1)plot函数 函数格式:plot(x,y) 其中x和y为坐标向量 函数功能:以向量x、y为轴,绘制曲线。 例1 在区间0≤X≤2 ,绘制正弦曲线Y=SIN(X),其程序为: x=0:pi/100:2*pi; y=sin(x); plot(x,y) 例2同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X 轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。 例3 用不同线型和颜色重新绘制Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x);

plot(x,y1,'go',x,y2,'b-.') 其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。 在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。 title(‘加图形标题'); xlabel('加X轴标记'); ylabel('加Y轴标记'); text(X,Y,'添加文本'); 例4 在坐标范围0≤X≤2π,-2≤Y≤2内重新绘制正弦曲线,其程序为: x=linspace(0,2*pi,60);生成含有60个数据元素的向量X y=sin(x); plot(x,y); axis ([0 2*pi -2 2]);设定坐标轴范围 2、subplot函数 (1)subplot(m,n,p) 该命令将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。 例5 在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:x=linspace(0,2*pi,60); y=sin(x); z=cos(x); t=sin(x)./(cos(x)+eps); eps为系统内部常数 ct=cos(x)./(sin(x)+eps); subplot(2,2,1); 分成2×2区域且指定1号为活动区 plot(x,y); title('sin(x)'); axis ([0 2*pi -1 1]); subplot(2,2,2); plot(x,z); title('cos(x)'); axis ([0 2*pi -1 1]); subplot(2,2,3); plot(x,t); title('tangent(x)'); axis ([0 2*pi -40 40]);

Matlab实验四答案

实验四采用SIMULINK的系统仿真 一、实验目的: 1、熟悉SIMULINK 工作环境及特点 2、掌握线性系统仿真常用基本模块的用法 3、掌握SIMULINK 的建模与仿真方法 4、子系统的创建和封装设计 二、实验基本知识: 1.了解SIMULINK模块库中各子模块基本功能

2. SIMULINK 的建模与仿真方法 (1)打开模块库,找出相应的模块。鼠标左键点击相应模块,拖拽到模型窗口中即可。(2)创建子系统:当模型大而复杂时,可创建子系统。 (3)设置仿真控制参数。 三、实验容

练习A 1.SIMULINK 仿真实际应用 (1) 双环调速的电流环系统的方框图模型为: 图中参数设为 Ks=44;Ts=0.00167;Ta=0.017;R=1;Tm=0.075;Ce=0.1925;Kt=0.01178;T1=0.049;T2=0.088, (1)在Simulink 集成环境下建立模型,在给定信号作用点处输入单位给定阶跃响应信号,0.3秒后在扰动信号点输入单位阶跃响应信号。并绘制相应的响应曲线 (2)计算仿真结果的超调量、上升时间、调节时间、稳态误差。 (3)设计PID 调节器替代图中的比例积分调节器,调节P K , i T ,d T 用使系统满足超调量15%,上升时间0.3s ,调节时间0.4s 的要求。 (4)要求对加入的PID 控制器封装成一个模块使用 Gain3

To Work s pace Warning: Unable to reduce the step size without violating minimum step size of 1.015e-015 at time 0.0001. Continuing simulation with the step size restricted to 1.015e-015 and using an effective relative error tolerance of 0., which is greater than the specified relative error tolerance of 0.001. >> wentai=y(end) chaotiao=100*(max(y)-wentai)/wentai INDEXtm=find(max(y)==y); Tm=t(INDEXtm) ; TT=t(find((abs(y-wentai)/wentai)>0.05)); Ts=max(TT) m=length(y);

MATLAB程序设计与应用(第二版)实验参考答案1

MATLAB程序设计与应用(第二版)实验参考答案 %实验一MATLAB运算基础 %第一题 %(1) z1=2*sin(85*pi/180)/(1+exp(2)) %(2) x=[2,1+2i;-0.45,5]; z2=0.5*log(x+sqrt(1+x.^2)) %(3) a=-3.0:0.1:3.0; z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2) %(4) t=0:0.5:2.5; z4=t.^2.*(t>=0&t<1)+(t.^2-1).*(t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t<3) %第二题 A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; A+6*B A-B+eye(size(A)) A*B A.*B A^3 A.^3 A/B B\A [A,B] [A([1,3],:);B^2] %第三题 A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25] B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11] C=A*B F=size(C) D=C(F(1)-2:F(1),F(2)-1:F(2)) whos %第四题 %(1): A=100:999; B=rem(A,21); C=length(find(B==0)) %(2):

A='lsdhKSDLKklsdkl'; k=find(A>='A'&A<='Z'); A(k)=[] %实验二MATLAB矩阵分析与处理%第一题 E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([2,3]); A=[E,R;O,S]; A^2 B=[E,(R+R*S);O,S^2] %第二题 H=hilb(5) P=pascal(5) Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) %第三题: A=fix(10*rand(5)) H=det(A) Trace=trace(A) Rank=rank(A) Norm=norm(A) %第四题: A=[-29,6,18;20,5,12;-8,8,5] [V,D]=eig(A) %数学意义略 %第五题方法一: %(1): A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; b=[0.95,0.67,0.52]'; x=inv(A)*b %(2): B=[0.95,0.67,0.53]'; x=inv(A)*B %(3): cond(A) %第五题方法二: A=hilb(4) A(:,1)=[]

相关文档