当前位置:文档之家› 通信工程MATLAB上机实验指导书

通信工程MATLAB上机实验指导书

通信工程MATLAB上机实验指导书
通信工程MATLAB上机实验指导书

MATLAB实验指导书

张龙

河北工程大学信电学院通信工程系

2012年12月

实验一熟悉MATLAB环境

[实验目的]

1.熟悉MATLAB主界面,学会常用的窗口的操作

2.学会简单的矩阵输入

3.熟悉MATLAB基本语句的使用、矩阵与向量的基本运算

[实验原理]

1. 用户第一次使用MATLAB时,可通过demo命令,启动MATLAB的演试程序,领略MATLAB所提供的强大的运算与绘图功能。也可以键入help进行进一步了解。

2.MATLAB 是以矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。在MATLAB中输入矩阵最方便的的方式是直接输入矩阵的元素,其方法为:

1)用中括号[ ]把所有矩阵元素括起来;

2)同一行的不同数据元素之间用空格或逗号间隔;

3)用分号(;)指定一行结束;

4)也可以分成几行进行输入,用回车符代替分号;

5)矩阵元素可以是任何matlab表达式(系统将自动计算结果),可以是实数,也可以是复数,复数可用特殊函数i,j 输入。

3.MATLAB语言最基本的赋值语句结构为:变量=表达式。表达式由操作符或其它字符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量(ans为默认)中并存放于workspace工作空间中以备调用。[实验内容]

1.(1)用空格或逗号输入矩阵A=[1 2 3;4 5 6;7 8 9] B=[9,8,7;6,5,4;3,2,1];C=[4,5,6;7,8,9;1,2,3];或A=[1,2,3;4,5,6;7,8,9](2)试用回车代替A中的分号,观察输出结果。

要求:总结矩阵的输入

2.用edit或选择File|new菜单中的M-file进入编辑器,输入:

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

Base_info=Base+1

保存为Base.m文件,并通过Debug中的run命令(或F5)运行之,观察有何

异常现象。

要求:解释异常现象的原因。

3.打开Workspace窗口,学习save及load命令的使用

(1)用save命令将上述输入的A、B、C三个变量存入data或data.mat文件;

(2) 通过Current Directory查找data;

(2)然后使用clc及clear 命令;

(3)最后通过load data(或data.mat)命令(可通过向上的方向键找到上条save命令再修改成load命令的方法)将变量A、B、C调入Workspce;

(4) 执行命令A+B+C

要求:

(1)观察使用上述命令后Workspce的变化;

(2)使用命令save data_new A B -ascii(或ASCII),改变存储格式,重复上述过程(第2步查找data_new,第3步load data_new, 第4步改为A+B), 观察Workspce显示结果的不同;

(3)查看data_new,在data_new中取出A的值。

[实验报告要求]

针对实验内容中的各项要求,做出总结,给出实验报告。

实验二MATLAB数值运算及绘图功能

[实验目的]

1.掌握MATLAB特殊函数创建矩阵及利用已有矩阵创建新矩阵的方法2.掌握矩阵的操作,矩阵之间的运算方法

3.学会使用常用的几种矩阵函数进行简单的问题求解

4.掌握plot基本绘图语句的使用

[实验原理]

一、利用MATLAB特殊函数创建矩阵

x=a:b;x=linspace(a,b,n);

zeros(m,n);ones(m,n);eye(m,n)等

randint(m,n):m×n 0,1等概率随机阵

rand(m,n):m×n (0,1) 间均匀分布随机阵

randn(m,n):m×n 均值为0,方差为1的标准正态分布随机阵

二、矩阵的操作

1.矩阵中元素的表示:一是用两个下标来表示矩阵元素A(i,j),二是采用矩阵元素的索引值来引用矩阵元素-A(index)称序号(索引)表示法。

2.矩阵中元素的提取和修改

(1)矩阵元素的提取

矩阵A的第r行:A(r,:)

矩阵A的第r列:A(:,r)

取矩阵A的第i1~i2行、第j1~j2列,构成新矩阵:A(i1:i2, j1:j2)

A的第i1~i2行,构成新矩阵:A(i1:i2,:)

删除A的第j1~j2列,构成新矩阵: A(:,j1:j2)=[ ]

将矩阵A和B拼接成新矩阵:[A B];[A;B]

(2)矩阵元素的修改

可以利用下标对矩阵元素进行修改, 可用find函数修改

3.矩阵中元素的数学运算

元素取整函数:

? round(A) % 四舍五入取整

?fix(A) %将矩阵A 中元素按离0近的方向取整 ?floor(x) %向负无穷方向取整,即取不足整数 ?ceil(x) %向正无穷方向取整,即取过剩整数 4.矩阵的一些特殊操作(旋转与变形) ?矩阵的变维

a=[1:12]; b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:) ?矩阵的变向

rot90:旋转; fliplr:左右翻; flipud:上下翻 ?矩阵的抽取

diag(D) % 取D 矩阵的主对角元素

X=diag(v) %以向量v 为主对角线元素,其余元素为0构成矩阵X a1=diag(A,1) %取 A 阵―第一上对角线‖的元素

A1=diag(a1,-1) %产生以 a1 数组元素为―第一下对角线‖元素的二维数组 ?矩阵的扩展

repmat(D,1,3) %在水平方向―铺放‖三个D 阵 三、矩阵之间的运算

1.矩阵乘法:A*B ,只有当前一矩阵的列数和后一矩阵的行数相同或者其中一个为标量时才能进行。

2.矩阵除法:运算符有两种―\‖( 左除)和―/‖(右除),两矩阵相除,主要用于方程组求解。 A*x=B 的解为x=A\B ;x*A=B 的解为x=B/A 。

要解上述的联立方程式,可利用矩阵左除\ 做运算,即:X=A\B , 左除时要求A 、B 的行数相等。 四、常用的几个矩阵函数

n=numel(A) %计算矩阵A 中元素的个 n= length(a) %计算向量中元素的个数 [m,n]=size(A) %返回矩阵的行列数

32103251x y z x y z x y z +-=??

-++=??--=-?

321132111A -?? ?=- ?

?--??

x X y z ??

?= ?

???

1051B ?? ?= ?

?-??

size(A,1) %返回矩阵的行数;size(A,2) %返回矩阵的列数 max 、min — 各列最大、最小值,

如: [Y ,I]=max(A) %返回各列最大值Y 及最大值在各列的位置 mean 各列平均值;sum 各列求和;std 各列标准差; var 各列方差;sort 各列递增排序

[实验内容]

1. 写出下列命令的运算结果,然后验证:

(1)A=[eye(2); 5:5:11]

(3)a=[1 –2 –4 5]; b=(a>=-2 & a<=5) (4)a=linspace(-3,0,4);f=zeros (1,5);f(a+5)=a (5)x=[7 6 5 8 10 4]; y=find(x>4) (6)m=[7 6 5 8 10 4]; m(find(m>=7))=[]

2. 熟悉矩阵的基本运算 (1) 矩阵的基本数学运算

键入矩阵a ,b a=[1 2;0 3]

b=[3 4+3i;8+i 10]

作如下运算,并记录结果。 V1=a+b V2=sum(a) V3=sum(b) V4=a ’ V5=a.’ V6=b ’

V7=b.’ (比较V4和 V5有什么不同, V6和 V7有什么不同) V8=a*b

V9=a.*b (比较V8和 V9有什么不同) V10=a^2

V11=a/b (矩阵右除,常规除)

V12=a\b (矩阵左除,比较左除与右除的结果有什么不同)

3. 利用randn 函数建立3×3的矩阵:

(a)使用函数sum, 分别求此矩阵第一列的和、第三行的和 (b)使用函数max, 找出此矩阵中, 最大的元素

4.按如下要求,绘制两条曲线,一条是余弦曲线()()cos 220x t t π=?,另一条是按100Hz 抽样频率对余弦曲线进行抽样得到的离散序列。设t 的时长为0.1s 。

要求:

(1)在同一窗口中使用hold on 命令绘出上述两条曲线,并设置图形属性如下:连续曲线:黑色,实线

抽样序列:红色,虚线, 宽为3个象素

图题为―连续余弦曲线及其抽样序列‖,并加图例;

(2)使用subplot命令绘出上述两条曲线;

(3)交互式绘图方式将图题改为“余弦曲线”。

5. MATLAB的绘图修饰

(1)色彩、线型和数据点标志

x=0:pi/50:2*pi;

y=cos(x);

plot(x,y,'-.mo') %用品红色、点划线和数据标记点符号“o”来绘图

plot(x,y,'--g*') %用绿色、虚线和数据标记点符号“*”来绘图

(2)坐标轴的控制

x=0:0.02:5;

y=x.^2;

plot(x,y,'--g*')

axis([-1,11,-2,30]); %比较用此命令前后图形的区别

(3)坐标网格

在(2)命令的基础上,加入命令:

grid on

可看到图形上的网格线。

(4)图形的标注和图例

x=linspace(0, pi,20);

y=sin(x);

z=cos(x);

w=x-0.5;

plot(x,y,'b:',x,z,'r-',x,w,'-.b*'); %绘图

xlabel('X axis'); % x 轴的标注

ylabel('function y,z and w'); %y,z,w轴的标注

title('Three Function'); %图形的标题

grid on

text(2,1,'y=sinx') %在点(6,-0.5)处标注

text(2,-0. 3,'z=cosx')

gtext('w=x-0.5')

legend('y=sinx','z=cosx','w=x-0.5') %制作图例说明盒

[实验报告要求]

1.写出每一实验的设计过程及实验结果

2.总结实验,写出上机收获与体会

实验三 MATLAB程序设计基础

[实验目的]

1.熟悉MATLAB的数据结构

2.熟悉流程控制语句的使用,搞清MATLAB中循环体与C语言的不同

3.掌握脚本与函数文件的编程方法

4.进一步掌握绘图语句的使用

[实验原理]

一、MATLAB的数据类型

在MATLAB中有六种常用基本数据类型:

double(双精度数值)

char(字符)

sparse(稀疏数据):一般用于处理稀疏矩阵

storage(存储型):只用于内存的有效存储

cell(单元数组):

struct(结构):一般只在大型程序中使用

在MATLAB中,所有的数都用double浮点双精度类型来存储和运算。因而省略了定义类型的语句,编程时无需去思考分辨,也减少了错误。当然对于那些本来要用一两个字节来表示的变量来说,这种做法浪费内存,又降低了运算速度。但用牺牲(存储)空间和(运算)时间来换取人机交互友善性的战略被证明是有效的,它形成了科学计算语言的特色,使人们不在编程的细节上花精力,而把注意力集中到科学计算的方法和建模合理性等大问题上去。

二、MATLAB的流程控制语句

与C语言类似,MATLAB程序的控制结构也有顺序结构、选择结构和循环结构三种,另外还有一种试探结构。

由于MATLAB以矩阵为运算单位,所以在for 和while循环结构及分支结构的使用上与C略有不同,这是特别要注意的,希望通过本次实验加以理解。

1. for循环的格式

for循环可接受有效维数的数组作为循环变量

for x=array

commands ;

end

For循环语句的执行过程:当循环变量为矩阵时,其执行过程是从矩阵的第一列开始,依次将矩阵的各列之值赋值给变量,然后执行语句组中的语句,直到最后一列。

2.switch 分支结构的格式

switch switth_expr分支条件(数值或字符串)

case 数值(或字符串)常量表达式1

<语句组1>

case {数值(或字符串)常量表达式case_expr2,数值(或字符串)常量表达式case_expr3…}

<语句组2>

case 数值(或字符串)常量表达式N

<语句组n>

otherwise

<语句组n+1>

end

三、MATLAB的m文件

m文件是由MATLAB语句构成的ASCII码文件,用户可以用普通的文本编辑把一系列MATLAB语句写进一个文件里,给定文件名,确定文件的扩展名为.m,并存储。m文件可分为两种:

1.脚本文件(Scripts):也称命令文件,是由用户为解决特定的问题而编制的;

2.函数文件(Function):子程序,可由用户编写,但它必须由其它m文件来调用

[实验内容]

1. 按要求给出结果

(1)若有s=input( ?Please input a=‘); 给出运行时错误的输入方式:

A)2 B) ‘John‘C) [1 2 3 4] D) John

(2)A=dec2bin(7,4)

(3) xf=[4 3 0 0];

for k=0:2

xshift(k+1,:)=[zeros(1,k),xf(1:end-k)];

end

xshif t

2.使用switch语句编写DTMF(Dual-Tone Multi-Frequency)拨号音编码时域波形仿真程序。

说明:

(1)一个双音多频电话机可以对12个按键编码,每个码都是两个单频正弦信号之和,例如:按键“5”由两个频率分别为770Hz和1336Hz的正弦信号组成;按键“#”分别由两个频率为941Hz和1447Hz的正弦信号组成。这两个单频正弦信号分别来自两个频率组,即列频率组(或称低频群)与行频率组(或称高频群),它们与每个按键的对应关系如下图所示:

120913361477

Hz

697 770 852 941123

456

789

※0#

A

B

C

D

图1按键式拨号盘的配置

(2)DTMF信号的指标是:在传送过程中每个按键数字占用100ms,其中DTMF 必须存在至少40ms,且不得多于55ms,100ms里的其余时间是静声(无信号)。

要求:

(1)每输入一个数字给出相应的波形

key=input('please input key valuve ,0~9 or # or *:','s');

(2)fl表示低频率;fh表示高频率

(3)根据所拨数字用switch给定fl及fh的值

(4)主要参数如下:

fs=8000; %语音信号采样值

dt=1/fs;

t=0:dt:0.05; %按要求给出DTMF信号的时长

x=0.9*cos(2*pi*fl*t)+cos(2*pi*fh*t);

sound(x,8000) %按时长仿真发出的拨号音

plot(t,x)

zoom xon, grid on

3. 创建一个函数文件, 建立如下函数

?

??<+-≥++=0

0),(2

22

2y x y x y x y x y x f

给x,y 由键盘赋值,采用调用方法计算f 值,试编写程序(M 文件),并以x=6,y=-3及x=-6,y=3二种情况运行,写出运行结果。

键盘赋值指令为:x=input(?x=?‘) ,该指令功能是由键盘结x 赋值 ,运行该指令时,计算机暂停下来输出提示:x=?,用户从键盘键入值后按回车键,即可将从键盘键入值赋给变量x)

4. 分别使用while 和for 编写命令文件,用循环语句编程计算s 值:

10

322()n s n n ==-∑

[实验报告要求]

1.写出每一实验的设计过程

2.总结实验,写出相应的体会

3.总结程序调试常用技巧

实验五线性系统分析、simulink仿真

一、实验目的

1. 掌握离散时间信号的MATLAB表示

2. 掌握线性系统描述方法, 线性系统的时间响应分析和频响分析;

3. 掌握线性时不变系统的各种描述方式,线性时不变系统的响应。

4. 掌握线性时不变系统的频响。

5. 掌握IIR数字滤波器的设计方法及MA TLAB实现

3. 应用simulink建立线性系统仿真模型,掌握仿真步骤.

二、实验原理

1. 线性系统描述

在matlab中用二个向量num和den表示该系统

num=[am-1, am-2,…, a0]

den=[bn-1, bn-2,…, b0]

2.线性系统的时间响应分析

阶跃响应

y=step(a,b,c,d,iu,T)

T为等间隔的时间向量.

3. 线性系统的频响分析

Bode(波特)图

(1) bode(num,den,w) % 直接得到bode图

(2) [m,p]= bode(num,den,ω) % 得到幅值m,相角p, ω为频率(rad/sec).

4. simulink

simulink是matlab软件中的数字仿真工具.是一个用来对动态系统进行建模、仿真和分析的集成环境.

模型的建立:

(1)在matlab命令窗口中:File/New/model建立一个名为?untitled‘的模型窗口.等建好系统模型后,再由用户命名保存.

(2)将功能模块由模块库中‘拖出‘(复制)到模型窗口,对模块进行连接,从而构成需要的系统模型.

(3)设置功能模块参数,设置仿真参数.

(4)仿真运行.

三、实验内容

教材p183页,习题8,9,10等题。

四、实验要求

1.预习实验原理.

2.对实验内容编程或建模,上机运行,记录运行结果(图或曲线或数据).

3.写出实验报告

实验五MATLAB在通信系统仿真中的应用

[实验目的]

1.掌握信源随机二进制信号的产生方法

2.了解数字信号复数映射的方法

3.了解信道编码的仿真方法

4.了解噪声信道和多径信道的仿真方法

5. 熟悉利用MATLAB仿真通信系统的基本过程

[实验原理]

一、数字通信系统基本组成

常用的数字通信系统基带传输模型如图5-1所示:

5-1数字通信系统基带传输模型

二、数字通信系统基本传输的仿真

根据上述模型需完成以下仿真过程:

1.随机二进制0、1信源信号的产生

随机信号经常用来模拟噪声、错误或信号源。除了MATLAB的内置函数rand 和randn,通信工具箱还提供randint函数。格式如下:

out=randint(m,n)

功能说明:产生m×n的矩阵,其元素相互独立,取值范围为1或0,取值是等概的。

2.信道的仿真方法

(1)高斯白噪声信道

高斯过程又称正态随机过程,它是一种普遍存在和重要的随机过程,在通信信道中的噪声,通常是一种高斯过程,故又称为高斯噪声。利用awgn 函数可为信号叠加高斯白噪声,其常见的使用格式说明如下: ①y = awgn(x,snr)

%adds white Gaussian noise to the vector signal x. The scalar snr specifies the signal-to-noise ratio per sample, in dB. If x is complex, then awgn adds complex noise. This syntax assumes that the power of x is 0 dBW. ②y = awgn(x,snr,'measured')

%It is the same as y = awgn(x,snr), except that awgn measures the power of x before adding noise

本次实验采用第二种方法。 (2)多径衰落信道

在仿真过程中,若以抽样的序列来表示信号,多径的影响可以表示如下:

∑-=)(*)()(i a i n x n y

其中)(i a 是第i 条路径的衰落值,可以用一个信道向量表示为012[,,,,]N a a a a ,其中i a 表示延迟i 个码元信道的平均衰落。

举例说明,用信道向量[1 0 0 0 0 0.5]来表示莱斯多径,它意味着电磁波通过一个没有延迟,没有衰落的信道;和一个延迟为5个码元,衰落系数为0.5的信道。在这样的两径信道里,接收信号为:

)5(*5.0)(*1)(-+=n x n x n y

在仿真噪声及多径对信号的影响,可先对信号加噪,再做多径处理,表示为:

)(*)]()([)(*)(')(n a n z n x n a n x n y f f +==

其中)(n a f 是信道向量决定的滤波器。在MATLAB 中可使用函数filter(Multipath,1,BaseSignal)给信号BaseSignal 按Multipath 所代表的多径向量加多径。

3.数字信号的调制映射

数字信号的调制映射的基本思想是将二进制序列,分成长度为n=1、2、4的

组,分别对应BPSK、QPSK、16QAM。然后再把这些二进制序列组分别映射为星座图中对应点的复数表示,其映射采用如图5-2所示的星座映射图。

由图5-2可得知,BPSK调制将0和1映射为2个点;正交振幅调制(16QAM)是将每四位比特流映射映射成星座坐标图中的16个点中的一个;QPSK将每两位比特流映射成星座坐标图中的4个点中的一个,其中有GRAY mapping 和Natural mapping。Gray mpping表示按格雷码方式映射,Natural mapping 表示按自然码方式映射。

图5-2 BPSK、QPSK、16QAM比特编码映射图

在星座图中,每个点的横坐标对应于该点的实部,纵坐标对应该点的虚部,这样通过星座映射将0,1比特流转换成了复数信号流。如若对011比特流进行BPSK调制映射,则变成1+0j,-1+0j,-1+0j。

[实验内容]

1.编写随机解交织derandperm_inter和行列式解交织函数delincol_inter,其格式如下:

Data_out=delincolinter(Data_in,alpha);

%delincolinter行列解交织函数

% 待解交织的序列Data_in

%alpha表示发送端行列序列号的交织向量

% 解交织后的序列Data_out

2.编写函数mappingBPSK完成BPSK映射及demappingBPSK函数完成逆映射,格式如下:

BPSKCode = mappingBPSK(Xframe)

%mappingBPSK完成BPSK编码映射

% Xframe待编码映射的序列

% BPSKCode编码映射后的序列

deBPSKCode = demappingBPSK(PskCode)

%demappingBPSK完成BPSK编码逆映射

3.利用randint(1,data)产生0,1等概的二进制信源信息,然后调用BPSK映射mappingBPSK及逆映射demappingBPSK函数,并通过信号分析函数biterr,检验所编的映射和逆映射函数的正确性。

注:biterr

格式:Error = biterr(data_in,data_out)

功能:biterr计算data_in,data_out之间的误比特数Error。

4. 根据图5-1所示数字通信系统基带传输模型的信号流程,在下述条件下完成以下两项内容:

(1)比较随机交织抗噪及抗多径性能(用SNR-BER关系图来表示);

(2)比较随机交织与行列式交织的抗噪性能(用SNR-BER关系图来表示)。Xframe_Len=256;%帧长

SNRdB=0:10;%分贝表示的信噪比

行列交织:行m=16,列n=17的方式读入并按列读出

Nframe=100 %测试100帧信号总的误比特率

[实验报告要求]

写出每一实验的设计过程,并总结实验

Matlab实验指导书

实验一 Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句; 3、熟悉Matlab绘图命令及基本绘图控制; 4、熟悉Matlab程序设计的基本方法。 二、实验内容 1、帮助命令 2、矩阵运算 (1)矩阵的乘法和乘方 已知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。 ( 3 )矩阵的转置及共轭转置 已知A=[5+i,2-i,1;6*i,4,9-i],求该复数矩阵的转置A',共轭转置A.' ( 4 )使用冒号选出指定元素 已知:A=[1 2 3:4 5 6:7 8 9];求A中第3列前2个元素;A中第2、3行元素。 ( 5 )方括号[] 用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列 3、多项式 (1)求多项式P(x)=x3-2x-4的根 ( 2 )已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4].,构造多项式,并计算多项式值为20的解。 4、基本绘图命令 ( 1 ) 绘制余弦曲线 ] 2,0[ ), cos(π ∈ =t t y 。 ( 2 ) 在同一坐标系中绘制曲线 ] 2,0[ ), 5.0 sin( ), 25 .0 cos( yπ ∈ - = - =t t y t 5、基本绘图控制 绘制 ] 4,0[π 区间上的y=10sint曲线,并要求: (1)线形为点划线,颜色为红色,数据点标记为加号; (2)坐标轴控制:显示范围,刻度线,比例,网络线; (3)标注控制:坐标轴名称,标题,相应文本。 6、基本程序设计 (1)编写命令文件:计算1+2+....+n<2000时的最大n值; (2)编写函数文件:分别用n和which循环结构编写程序,求2的0到n次幂的和. n=input('输入正数n:') ji=1: for i=1:n; ji=ji+2^i: end ji input('输入正数n:') ji-1:i-1: While i<=n ji=ji+2^i; i=i+1; end ji (3)如果想对一个变量x赋值,当从键盘输入y或Y时,x自动赋为1;当从键盘输入n或N时,x自 动赋为0;输入其他字符时终止程序。 k=input('shuruX:'.'s'): if k=='y' k=='Y' x=1 ; else k=='n' k=='N' x=0; else ruturn end >> n=input('输入正数n:') 输入正数n:20 n =20

MATLAB实验指导书

实验一MATLAB 工作环境熟悉及简单命令的执行 一、 实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。 二、 实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单 (Menu )、工具条(T oolbar )、命令窗口(Command Window)、历史命令窗口、工作 空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤: 1、启动MATLAB ,熟悉MATLAB 的桌面。 2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。 (1)(365-52?2-70)÷3; (2)area=pi*2.5^2; (3)已知x=3,y=4,在MATLAB 中求z : ()23 2y x y x z -= ; (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。 m1=???? ? ???? ???11514412679810115133216 执行以下命令 >>m1( 2 , 3 ) >>m1( 11 ) >>m1( : , 3 ) >>m1( 2 : 3 , 1 : 3 ) >>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) (5)执行命令>>help abs 查看函数abs 的用法及用途,计算abs( 3 + 4i ); (6)执行命令 >>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y) (7)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。 四、思考题 1、以下变量名是否合法?为什么? (1)x2; (2)3col ; (3)_row ; (4)for ;

实例matlab-非线性规划-作业

实例matlab-非线性规划-作业

现代设计方法-工程优化理论、方法与设计 姓名 学号 班级 研 问题 : 某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台。每季度的生产费用为 (元),其中x 是该季生产的台数。若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c 元。已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=0.2、c=4,问工厂应如何安排生产计划,才能既满足合同又使总费用最低。讨论a 、b 、c 变化对计划的影响,并作出合理的解释。 问题的分析和假设: 问题分析:本题是一个有约束条件的二次规划问题。决策变量是工厂每季度生产的台数,目标函数是总费用(包括生产费用和存储费)。约束条件是生产合同,生产能力的限制。在这些条件下需要如何安排生产计划,才能既满足合同又使总费用最低。 问题假设: 1、工厂最大生产能力不会发生变化; 2、合同不会发生变更; 3、第一季度开始时工厂无存货; 4、生产总量达到180台时,不在进行生产; 5、工厂生产处的发动机质量有保证,不考虑退货等因素; 6、不考虑产品运输费用是否有厂家承担等和生产无关的因素。 符号规定: x1——第一季度生产的台数; x2——第二季度生产的台数; 180-x1-x2——第三季度生产的台数; y1——第一季度总费用; y2——第二季度总费用; y3——第三季度总费用; y ——总费用(包括生产费用和存储费)。 ()2bx ax x f +=

建模: 1、第一、二、三季度末分别交货40台、60台、80台; 2、每季度的生产费用为 (元); 3、每季度生产数量满足40 ≤x1≤100,0≤x2≤100,100≤x1+x2 ≤180; 4、要求总费用最低,这是一个目标规划模型。 目标函数: y1 2111x b x a Z ?+?= y2()4012222-?+?+?=x c x b x a Z y3()()()10018018021221213 -+?+--?+--?=x x c x x b x x a Z y x x x x x x Z Z Z Z 68644.04.04.0149201 212221321--+++=++= 40≤x1≤100 0≤x2≤100 100≤x1+x2≤180 ()2 bx ax x f +=

matlab实验2MATLAB基础知识

实验2 MATLAB基础知识 一、实验目的 1.熟悉MATLAB的数据类型 2.熟悉MATLAB的基本矩阵操作 3.熟悉MATLAB的运算符 4.熟悉MATLAB的字符串处理 二、实验内容 1.创建结构体DataTypes,属性包含MATLAB支持的所有数据类型,并通过赋值构 造结构体二维数组。 DataTypes.char=char([65]); DataTypes.string='hello'; DataTypes.int=100; DataTypes.single=1.560 DataTypes = char: 'A' string: 'hello' int: 100 single: 1.5600 >> DataTypes(2).char=char([66]); DataTypes(2).string='kugou'; DataTypes(2).int=200; DataTypes(2).single=3.14 DataTypes = 1x2 struct array with fields: char string int single 2.用满矩阵和稀疏矩阵存储方式分别构造下述矩阵。 A=

答: A = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 B = A = 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A = 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 A = 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 A = 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1

matlab基础实验

实验一 MATLAB基础知识 一、实验目的 1.熟练掌握Matlab的启动与退出; 2. 熟悉Matalb的命令窗口,常用命令和帮助系统; 3. 熟悉Matalb的数据类型; 4. 熟悉Matlab的基本矩阵操作,运算符和字符串处理 二、实验设备 1.方正电脑 2.MATLAB软件 三、实验内容 1. 已知矩阵 A=[3 4 -1 1 -9 10;6 5 0 7 4 -16;1 -4 7 -1 6 -8;2 -4 5 -6 12 -8;-3 6 -7 8 -1 1;8 -4 9 1 3 0] 写出完成下列操作的命令: (1) 将矩阵A的第2-5行中第1,3,5列元素赋给矩阵B; (2) 删除矩阵A的第7号元素; (3) 将矩阵A的每个元素加上30; (4) 求矩阵A的大小和维数; (5) 将矩阵A的右下角3*2矩阵构成矩阵C; (6) 输出[-5,5]范围内的所有元素; 程序: A=[3 4 -1 1 -9 10;6 5 0 7 4 -16;1 -4 7 -1 6 -8;2 -4 5 -6 12 -8;-3 6 -7 8 -1 1;8 -4 9 1 3 0] %(1) B=A(2:5,[1 3 5]) %(2) A2=A; A2(7)=[] %(3) A3=A+30 %(4) length(A) size(A) %(5) C=A(end-2:end,end-1:end) %(6) A6=A.*(A>=-5 & A<=5) 结果: A =

3 4 -1 1 -9 10 6 5 0 7 4 -16 1 -4 7 -1 6 -8 2 -4 5 -6 12 -8 -3 6 -7 8 -1 1 8 -4 9 1 3 0 B = 6 0 4 1 7 6 2 5 12 -3 -7 -1 A2 = Columns 1 through 7 3 6 1 2 -3 8 5 Columns 8 through 14 -4 -4 6 -4 -1 0 7 Columns 15 through 21 5 -7 9 1 7 -1 - 6 Columns 22 through 28 8 1 -9 4 6 12 -1 Columns 29 through 35 3 10 -16 -8 -8 1 0 A3 = 33 34 29 31 21 40 36 35 30 37 34 14

BP神经网络matlab实例(简单而经典)

p=p1';t=t1'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始数据归一化 net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx'); %设置网络,建立相应的BP网络 net.trainParam.show=2000; % 训练网络 net.trainParam.lr=0.01; net.trainParam.epochs=100000; net.trainParam.goal=1e-5; [net,tr]=train(net ,pn,tn); %调用TRAINGDM算法训练BP网络 pnew=pnew1'; pnewn=tramnmx(pnew,minp,maxp); anewn=sim(net,pnewn); %对BP网络进行仿真 anew=postmnmx(anewn,mint,maxt); %还原数据 y=anew'; 1、BP网络构建 (1)生成BP网络 = net newff PR S S SNl TF TF TFNl BTF BLF PF (,[1 2...],{ 1 2...},,,) R?维矩阵。 PR:由R维的输入样本最小最大值构成的2 S S SNl:各层的神经元个数。 [ 1 2...] { 1 2...} TF TF TFNl:各层的神经元传递函数。 BTF:训练用函数的名称。 (2)网络训练 [,,,,,] (,,,,,,) = net tr Y E Pf Af train net P T Pi Ai VV TV (3)网络仿真 = [,,,,] (,,,,) Y Pf Af E perf sim net P Pi Ai T {'tansig','purelin'},'trainrp'

MATLAB)课后实验答案[1]

实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 0 12 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.022a a e e a z a a --+= ++=--L (4) 2242011 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 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证2 2 E R RS A O S +?? =???? 。 解: M 文件如下; 5. 下面是一个线性方程组: 1 231 1 12340.951110.673450.521114 5 6x x x ?? ??????????????=??? ??????????????????? (1) 求方程的解。 (2) 将方程右边向量元素b 3改为0.53再求解,并比较b 3的变化和解的相对变化。 (3) 计算系数矩阵A 的条件数并分析结论。 解: M 文件如下: 123d4e56g9

MATLAB基础及应用实验指导书

MATLAB基础及应用实验指导书

MATLAB基础及应用课程实验指导书 实验一软件环境和基本操作熟悉 一、实验目的 ①熟悉MATLAB 主界面,并学会简单的菜单操作。 ②学会简单的矩阵输入与信号输入。 ③掌握部分绘图函数。 二、实验内容 熟悉MATLAB操作环境,通过简单操作熟悉MATLAB的基本使用方法。 三、实验要求与步骤 1、用户第一次使用MATLAB 时,建议首先在屏幕上键入demo 命令,它将启动MATLAB 的演试程序,用户可在此演示程序中领略MATLAB 所提供的强大的运算与绘图功能。也可以键入help 进行进一步了解。 MATLAB 启动界面如图所示: MATLAB 语言最基本的赋值语句结构为:变量名列表= 表达式。表达式由操作符或其它字符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量中并存放于工作空间中以备调用。如果变量名和“= ”省略,则ans 变量将自动建立,例如键入:1900/81 ,得到输出结果:ans =23.4568 。 MATLAB 中变量命名的原则要求必须以英文字母开头,文件夹名字中可以

还包括、下划线和数字,不要使用其他的字符,更不要单纯使用数字或者中文名命名,有时在运行MATLAB 中一些莫名的错误可能就是不规范的命名引起的。这种规则包括将来为自己编写的脚本文件、函数文件命名以及为使用的变量命名也应遵循这个规则。 2、用户工作目录和当前目录的建立和设置 1)为管理方便,每个用户在使用MATLAB 前,尽量为自己建立一个专门的工作目录,即“用户目录”,用来存放自己创建应用文件。例如首先打开资源管理器,在E 驱动器下可以根据自己喜好建立一个新文件夹,但应注意:该文件夹必须以英文开头,文件夹名字中可以包括字母、下划线和数字,不要使用其他的字符,更不要单纯使用数字或者中文名命名,有时在运行MATLAB 中一些莫名的错误可能就是不规范的命名引起的,这与MATLAB 中为变量和文件名命名原则是一致的。尽管MATLAB\work 允许用户存放用户文件,但最好把它仅作为临时工作目录来使用。 2)为了用户运行方便,在开始工作前可把用户定义的目录设置为当前目录,方法是可直接在MATLAB 命令窗口桌面上方通过目录设置栏来实现。 3)把自己的工作目录加到MATLAB 搜索路径上,这样可以在任何情况下方便地调用自己的编写文件。MATLAB 工作时,基本搜索过程为:首先在工作空间,即MATLAB 内存中进行检查,看输入的指令是不是变量;如不是,则检查输入指令是不是内建函数(比如sin 函数等);如不是,则在当前目录上,检查是否有与输入指令相同的M 文件存在;如还没有,则在MATLAB 定义的搜索路径其他目录中,检查是否有该M 文件存在。设置方法是通过File 菜单下设置路径对话框进行。 3、熟悉简单的矩阵输入 1)从屏幕上输入矩阵A=[1 2 3 ;4 5 6;7 8 9] 回车 A=[1,2,3;4,5,6;7,8,9] 回车 观察输出结果。 2)试用回车代替分号,观察输出结果。 3)输入size(A) ,观察结果。 4)输入矩阵B=[9,8,7;6,5,4;3,2,1];回车 输入矩阵C=[4,5,6;7,8,9;1,2,3];回车,然后分别键入 A B C 回车观察结果。 5)选择File | new 菜单中的M-file ,输入B=[9,8,7;6,5,4;3,2,1] ;保存为

matlab实验4MATLAB基本编程

实验4 MATLAB 基本编程 一、实验目的 1. 熟悉MATLAB 的脚本编写 2. 熟悉MATLAB 的函数编写 3. 熟悉MATLAB 的变量使用 4. 熟悉MATLAB 的程序控制结构 二、实验内容 1. 分别选用if 或switch 结构实现下述函数表示。 -1 x ≤-a f(x)= x/a -a ≤<--≤<≤<--≤=d x d x c d x d c c x b b x a a x a b a x x f 0)(11)(10)(

昆明理工大学MATLAB实验指导书(第二次实验)

************************ MATLAB上机指导书 ************************ 昆明理工大学机电学院 彭用新 2015年3月

实验三符号计算 一、操作部分:在命令窗口执行命令完成以下运算,记录运算结果。 1.findsym:帮助我们获取系统定义的自变量 f= sym('sin(a*x+b*y)'); findsym(f) 2.numden(获取分子分母), sym2poly,(获取多项式时系数)poly2sym(根据多项式系 数获得符号表达式) [n,d]=numden(sym('x*x+y')+sym('y^2')) p=sym('2*x^3+3*x^2+4'); sym2poly(p) x=[2,3,0,4]; poly2sym(x) 3. collect :合并同类项;expand:展开多项式;horner: 分解成嵌套形式;factor:因式 分解;simplify: 对表达式化简 syms x y; collect(x^2*y+y*x-x^2-2*x) collect((x+y)*(x^2+y^2+1), y) syms x y; expand((x-2)*(x-4)) syms x;horner(x^3-6*x^2+11*x-6) syms x;factor(x^3-6*x^2+11*x-6) syms x;simplify((x^2+5*x+6)/(x+2)) 4. finverse :求得符号函数的反函数。 syms x y; finverse(1/tan(x)) f= x^2+y; finverse(f,y) finverse(f) https://www.doczj.com/doc/ee15699334.html,pose 求符号函数的复合函数 syms x y; f = 1/(1 + x^2); g = sin(y); compose(f,g) 6. subs :表达式替换。 syms a b;subs(a+b,a,4)

实验一 Matlab基本操作(2016)

实验一 MATLAB 基本操作 一、实验目的 1. 学习和掌握MA TLAB 的基本操作方法 2. 掌握命令窗口的使用 3. 熟悉MATLAB 的数据表示、基本运算 二、实验内容和要求 1. 实验内容 1) 练习MATLAB7.0或以上版本 2) 练习矩阵运算与数组运算 2. 实验要求 1) 每位学生独立完成,交实验报告 2) 禁止玩游戏! 三、实验主要软件平台 装有MATLAB7.0或以上的PC 机一台 四、实验方法、步骤及结果测试 1. 实验方法:上机练习。 2. 实验步骤: 1) 开启PC ,进入MA TLAB 。 2) 使用帮助命令,查找sqrt 函数的使用方法 答: help sqrt 3) 矩阵、数组运算 a) 已知 ??????????=987654321A ,???? ??????=963852741B ,求)2()(A B B A -?+ 答: A=[1, 2, 3; 4, 5, 6; 7, 8, 9]; B=[1, 4, 7; 2, 5, 8; 3, 6, 9]; (A+B)*(2*B-A) b) 已知?? ????-=33.1x ,??????=π24y ,求T xy ,y x T c) 已知??????????=987654321A ,???? ??????=300020001B ,求A/B, A\B. d) 已知???? ??????=987654321A ,求:(1) A 中第三列前两个元素;(2) A 中所有第二行元素;(3) A 中四个角上的元素;(4) 交换A 的第1、3列。(5) 交换A 的第1、2行。(6) 删除A 的第3列。

e) 已知[]321=x ,[]654=y ,求:y x *.,y x /.,y x \.,y x .^, 2.^x ,x .^2。 f) 给出x=1,2,…,7时,x x sin 的值。 3)常用的数学函数 a )随机产生一个3x3的矩阵A ,求:(1) A 每一行的最大、最小值,以及最大、最小值所在的列;(2) A 每一列的最大、最小值,以及最大、最小值所在的行;(3) 整个矩阵的最大、最小值;(4) 每行元素之和;(5) 每列元素之和;(6) 每行元素之积;(7) 每列元素之积。 b) 随机产生两个10个元素的向量x ,y 。(1) 求x 的平均值、标准方差。(2) 求x ,y 的相关系数。(3)对x 排序,并记录排序后元素在原向量中的位置。 4) 字符串操作函数 建立一个字符串向量(如‘ABc123d4e56Fg9’),然后对该向量做如下处理: (1) 取第1~5个字符组成的子字符串。 (2) 将字符串倒过来重新排列。 (3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。 (4) 统计字符串中小写字母的个数。

MATLAB实验指导书(学生定稿)

实验一 MATLAB语言平台及基本运算 一、实验目的 1、熟悉MATLAB基本的操作界面。 2、掌握MATLAB中变量、数组、向量等对象的生成方法。 3、掌握矩阵的生成和基本运算方法。 4、掌握MATLAB中的常用绘图命令使用方法 二、实验设备 计算机,MATLAB语言环境 三、实验指导原理 1、常见数学函数 如:输入 x=[-4.85 -2.3 -0.2 1.3 4.56 6.75],则 ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) = -5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 7 系统的在线帮助 (1) help 命令: 1).当不知系统有何帮助内容时,可直接输入 help以寻求帮助: >> help(回车) 2).当想了解某一主题的内容时,如输入: >> help syntax (了解 Matlab 的语法规定) 3).当想了解某一具体的函数或命令的帮助信息时,如输入: >> help sqrt (了解函数 sqrt 的相关信息)

(2) lookfor 命令 现需要完成某一具体操作,不知有何命令或函数可以完成,如输入: >> lookfor line (查找与直线、线性问题有关的函数) 3、常量与变量 系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后 可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表: (1)数值型向量(矩阵)的输入 1).任何矩阵(向量),可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号([ ]内;例1: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] >> X_Data = [2.32 3.43;4.37 5.98] 2).系统中提供了多个命令用于输入特殊的矩阵: 上面函数的具体用法,可以用帮助命令 help 得到。如:help zeros ZEROS Zeros array. ZEROS(N) is an N-by-N matrix of zeros. ZEROS(M,N) or ZEROS([M,N]) is an M-by-N matrix of zeros.等等 4、数组(矩阵)的点运算 运算符:+(加)、-(减)、./(右除)、.\(左除)、.^(乘方), 例4: >> g = [1 2 3 4];h = [4 3 2 1]; >> s1 = g + h, s2 = g.*h, s3 = g.^h, s4 = g.^2, s5 = 2.^h 5、矩阵的运算

matlab函数计算的一些简单例子1

MATLAB作业一1、试求出如下极限。 (1) 23 25 (2)(3) lim (5) x x x x x x x ++ + →∞ ++ + ,(2) 23 3 1 2 lim () x y x y xy x y →- → + + ,(3) 22 22 22 1cos() lim ()x y x y x y x y e+ → → -+ + 解:(1)syms x; f=((x+2)^(x+2))*((x+3)^(x+3))/((x+5)^(2*x+5)) limit(f,x,inf) =exp(-5) (2)syms x y; f=(x^2*y+x*y^3)/(x+y)^3; limit(limit(f,x,-1),y,2) =-6; (3)syms x y; f=(1-cos(x^2+y^2))/(x^2+y^2)*exp(x^2+y^2); limit(limit(f,x,0),y,0) =0 2、试求出下面函数的导数。 (1 )() y x=, (2)22 atan ln() y x y x =+ 解; (1)syms x; f=sqrt(x*sin(x)*sqrt(1-exp(x))); g= diff(f,x); g== (sin(x)*(1 - exp(x))^(1/2) + x*cos(x)*(1 - exp(x))^(1/2) - (x*exp(x)*sin(x))/(2*(1 - exp(x))^(1/2)))/(2*(x*sin(x)*(1 - exp(x))^(1/2))^(1/2)) pretty(g)= (2)syms x y; f=atan(y/x)-log(x^2+y^2) pretty(-simple(diff(f,x)/diff(f,y)))= 2 x + y =------- x - 2 y (3) 假设1 cos u- =,试验证 22 u u x y y x ?? = ???? 。 解:syms x y; u=1/cos(sqrt(x/y)); diff(diff(u,x),y)-diff(diff(u,y),x)=0; 所以: 22 u u x y y x ?? = ????

实验一:MATLAB软件入门(2015版)

实验一:MATLAB 软件入门 一、 实验目的及意义 [1] 熟悉MATLAB 软件的用户环境; [2] 了解MATLAB 软件的一般目的命令; [3] 掌握MATLAB 数组操作与运算函数; [4] 掌握MATLAB 软件的基本绘图命令; [5] 掌握MATLAB 语言的几种循环、条件和开关选择结构。 通过该实验的学习,使学生能灵活应用MATLAB 软件解决一些简单问题,能借助MATLAB 软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发现进而证实其中的规律。 二、实验内容 1.MATLAB 软件的数组操作及运算练习; 2.直接使用MATLAB 软件进行作图练习; 3.用MATLAB 语言编写命令M-文件和函数M-文件。 三、实验步骤 1. 在D 盘建立一个自己的文件夹; 2.开启软件平台——MATLAB ,将你建立的文件夹加入到MATLAB 的搜索路径中。 3.利用帮助了解函数max, min, sum, mean, sort, length ,rand, size 和diag 的功能和用法。 4.开启MATLAB 编辑窗口,键入你编写的M 文件(命令文件或函数文件); 5.保存文件(注意将文件存入你自己的文件夹)并运行; 6.若出现错误,修改、运行直到输出正确结果; 7.写出实验报告,并浅谈学习心得体会。 四、实验要求与任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→算法与编程→计算结果或图形→心得体会) 1.设有分块矩阵??????=????223 22333S O R E A ,其中E,R,O,S 分别为单位阵、随机阵、零阵和对角阵,试通过数值计算验证??????+= 22S 0RS R E A 。 2.某零售店有9种商品的单件进价(元)、售价(元)及一周的销量如表1.1,问哪种商品的利润最大,哪种商品的利润最小;按收入由小到大,列出所有商品及其收入;求这一周该10种商品的总收入和总利润。 表1.1

matlab实验指导书

matlab实验指导书 实验一 MATLAB运算基础及矩阵分析与处理 一实验目的 1.熟悉启动和退出MATLAB的方法。 2.熟悉MATLAB 命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握MATLAB各种表达式的书写规则以及常用函数的使用。 5. 掌握生成特殊矩阵的方法。 6. 掌握矩阵分析的方法。 7. 用矩阵求逆解线性方程组。二实验仪器和设备装有以上计算机一台三实验原理 MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。基本规则 一般MATLAB命令格式为 [输出参数1,输出参数2,……]= 输出参数用方括号,输入参数用圆括号如果输出参数只有一个可不使用括号。 %后面的任意内容都将被忽略,而不作为命令执行,一般用于为代码加注 释。 可用↑、↓键来重现已输入的数据或命令。用←、→键来移动光标进行修改。所有MATLAB命令都用小写字母。

大写字母和小写字母分别表示不同的 变量。 常用预定义变量,如pi 、Inf、NaN、ans 矩阵的输入要一行一行的进行,每行各元素用空格或“,”分开,每行用 “;”分开。如 123 A456789 MATLAB书写格式为A=[1 2 3 ;4 5 6 ;7 8 9] 在MATLABZ中运行如下程序可得到A 矩阵 a=[1 2 3;4 5 6;7 8 9] a = 1 2 3 4 5 6 7 8 9 需要显示命令的计算结果时,则语句后面不加“;”号,否则要加“;”号。运行下面两种格式可以看出它 们的区别: a=[1 2 3;4 5 6;7 8 9] a=[1 2 3;4 5 6;7 8 9]; a= 1 2 3 不显示结果 4 5 6 7 8 9 当输入语句过长需要换行时,应加上“…”后再回车,则可续行输入。文件管理常用命令帮助命令 MATLAB有很多命令,因此很不容易记忆。使用HELP命 令可以得到有关命令的屏幕帮助信息。 如在MATLAB环境下直接运行HELP命令就会在屏幕上

matlab仿真实例

matlab 仿真实例 实验五MATLAB 及仿真实验一、控制系统的时域分析 (一)稳定性 1、系统传递函数为G(s),试判断其稳定性。 程序: >> nu m=[3,2,5,4,6]; >> den=[1,3,4,2,7,2]; >> sys=tf( nu m,de n); >> figure(1); >> pzmap(sys); >> title(' 零极点图') 由图可知:在S 右半平面有极点,因此可知系统是不稳定的。 2、用MATLA 求 出 G(s)=(s A 2+2*s+2)/(s A 4+7*s A 3+5*s+2) 的极点。 程序及结果: >> sys=tf([1,2,2],[1,7,3,5,2]); >> p=pole(sys) 矿'. 赳 _ ■ —

-6.6553 0.0327 + 0.8555i 0.0327 - 0.8555i -0.4100 (二)阶跃响应 1、二阶系统G(s)=10/s A2+2*s+10 1)键入程序,观察并记录单位阶跃响应曲线: 程序: >> sys=tf(10,[1,2,10]); >> step(sys); >> title('G(s)=10/sA2+2*s+10 单位阶跃响应曲线') 2)计算系统闭环跟、阻尼比、无阻尼振荡频率,并记录程序及结果: >> sys=tf(10,[1,2,10]); >> p=pole(sys)

p = -1.0000 + 3.0000i -1.0000 - 3.0000i >> [wn,z]=damp(sys) wn = 3.1623 3.1623 z = 0.3162 0.3162 3)记录实际测取的峰值大小,峰值时间和过渡过程时间,并填表实际值理论值峰值Cmax 1.35s 峰值时间tp 1.05s 过渡时间+5% 3.54s ts +2% 3.18s 程序: >> sys=tf(10,[1,2,10]); >> step(sys); >> title('G(s)=10/sA2+2*s+10 单位阶跃响应曲线')

实验一 MATLAB运算基础

实验一 MATLAB 运算基础 一、实验目的 1.熟悉启动和退出MATLAB 的方法; 2.熟悉MATLAB 命令窗口的组成; 3.掌握建立矩阵的方法; 4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。 二、实验内容 1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 ⑴21185sin 2e z +?=; >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = 0.2375 ⑵)1ln(2122x x z ++=,其中?? ????-+=545.0212i x ; >> x=[2 1+2i;-0.45 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = 0.7114 - 0.0253i 0.8968 + 0.3658i 0.2139 + 0.9343i 1.1541 - 0.0044i ⑶0.3,9.2,8.2,,8.2,9.2,0.3,2 3.0ln )3.0sin(23.03.03 ---=+++-=-a a a e e z a a >> 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) z3 = Columns 1 through 3 0.7388 + 3.1416i 0.7696 + 3.1416i 0.7871 + 3.1416i Columns 4 through 6 0.7913 + 3.1416i 0.7822 + 3.1416i 0.7602 + 3.1416i Columns 7 through 9

MATLAB实验指导书(2010)

MATLAB语言及应用实验指导书 机械与电气工程学院

目录 实验一MA TLAB基础入门及数值数组运算(2学时,验证) . 3 实验二MA TLAB语言的程序设计(4学时,综合) (8) 实验三SIMULINK交互式仿真集成环境(2学时,验证) (11)

实验一MATLAB基础入门及数值 数组运算 一、实验目的 1、了解MATLAB操作桌面的基本结构和组成; 2、理解Command Window指令窗的作用,掌握指令窗的操作方式和指令的基本语法; 3、理解Current Directory当前路径、搜索路径的作用,掌握当前路径、搜索路径的设置 方法; 4、理解Workspace Browser工作空间浏览器的作用,掌握内存变量的查阅、删除、保存和 载入的基本方法; 5、掌握一维数组的创建方法;掌握一维数组子数组的寻访和赋值方法; 6、掌握二维数组的创建方法;掌握二维数组子数组的寻访和赋值方法; 7、掌握数组的各种运算,理解数组运算和矩阵运算的区别。 二、实验原理 1、MATLAB操作桌面的基本结构和组成 了解MATLAB的基本组件是正确使用MATLAB的基本前提。MATLAB由以下基本组件组成:(1)指令窗Command Window:可键入各种送给MATLAB运作的指令、函数、表达式;显示除图形外的所有运算结果 (2)历史指令窗Command History:记录已经运作过的指令、函数、表达式; (3)当前目录浏览器:进行当前目录的设置;展示相应目录上的M、MDL等文件;(4)工作空间浏览器Workspace Browser:列出MATLAB工作空间中所有的变量名、大小、字节数; (5)内存数组编辑器Array Editor:在工作空间浏览器中对变量进行操作时启动(6)开始按钮 (7)交互界面分类目录窗Launch Pad:以可展开的树状结构列着MATLAB提供的所有交互界面 (8)M文件编辑/调试器 (9)帮助导航/浏览器 2、MATLAB指令窗的基本操作 MATLAB指令窗给用户提供了最直接的交互界面,可用于输入和执行指令、显示指令运行结果、调试MATLAB程序等常用的MATLAB仿真计算功能。本实验掌握以下在指令窗执行的基本操作,达到熟悉使用指令窗的目的: (1)最简单的计算器使用方法:在MATLAB指令窗中,可按计算器的方式进行一般的数学计算,MATLAB的运算符的含义大致与常见的运算规则一致; (2)在指令窗中输入和生成矩阵:与一般的计算器不同,在MATLAB中可直接输入和生成矩阵。实际上,矩阵是MATLAB工作的基本元素。 (3)数值表述方法:在MATLAB中的大部分数值的表述方式与平常是相同的,需要注意的是在表示比较大的数时,MATLAB默认采用科学计数法显示; (4)变量命名规则:对于MATLAB变量命名规则,需要注意以下几点:

matlab函数计算的一些简单例子2

MATLAB 作业二 1、请将下面给出的矩阵A 和B 输入到MATLAB 环境中,并将它们转换成符号矩阵。若某一 矩阵为数值矩阵,另以矩阵为符号矩阵,两矩阵相乘是符号矩阵还是数值矩阵。 57651653 5501232310014325462564206441211346,3 9636623 51521210760077410120172440773 473 78 124867217110 7 681 5A B ???? ?????????? ????? ?==?????? ????? ?---????????--??? ? 解:A 转换为符号矩阵;a=sym(A) a=[5,7,6,5,1,6,5] [2,3,1,0,0,1,4][6,4,2,0,6,4,4][3,9,6,3,6,6,2][10,7,6,0,0,7,7][7,2,4,4,0,7,0][4,8,6,7,2,1,7]B 转换为符号矩阵;b=sym(B)b = [3,5,5,0,1,2,3][3,2,5,4,6,2,5][1,2,1,1,3,4,6][3,5,1,5,2,1,2][4,1,0,1,2,0,1][-3,-4,-7,3,7,8,12][1,-10,7,-6,8,1,5] 若某一矩阵为数值矩阵,另以矩阵为符号矩阵,两矩阵相乘是符号矩阵例;a*B= [48,3,64,48,159,106,194][17,-26,47,-8,62,26,59][48,-8,52,12,108,64,124][59,22,41,69,151,101,184][43,-22,91,13,175,121,220][22,39,4,53,88,94,147][75,11,115,36,151,70,151] 2、利用MATLAB 语言提供的现成函数对习题1中给出的两个矩阵进行分析,判定它们是否 为奇异矩阵,得出矩阵的秩、行列式、迹和逆矩阵,检验得出的逆矩阵是否正确。 解:由于a=det(A)=3.7396e+04;故A 是非奇异矩阵。B=det(B)=0,故B 是奇异矩阵; 由于a=rank(A)=7,故A 的秩为7;由于b=rank(B)=5,故B 的秩为5;由于a=trace(A)=27,b=trace(B)=26,故A,B 的迹为27,26;由a=inv(A)得A 的逆矩阵如下;

相关主题
文本预览
相关文档 最新文档