资源描述:
《MATLAB的数值运算与符号运算.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB与控制系统仿真第3章MATLAB的数值运算与符号运算主要内容3.1数组与矩阵的基本操作3.1.1数组与矩阵的输入3.1.2数组与矩阵的元素操作3.1.3数组与矩阵的输出3.2MATLAB的基本数学运算3.2.1算术运算3.2.2关系运算3.2.3逻辑运算3.2.4运算优先级主要内容(续)3.3MATLAB的基本符号运算3.3.1符号运算基本函数及示例3.3.2符号代数方程求解3.3.3符号微积分运算3.3.4Laplace,Z变换及反变换本章小结3.1数组与矩阵的基本操作3.1.1数组与矩阵的输入通过提示语句输入矩阵或数组x=input(‘prompt’),或x=input
2、('prompt','s')在屏幕上显示一个提示符,等待用户从键盘输入,并读取用户输入到工作空间中。第一种方式供输入数字,而后一种方式供输入字符串。注:演示例3通过提示语句输入矩阵或数组。3.1.1数组与矩阵的输入B=zeros(n)B=zeros(m,n)B=zeros(size(A))产生n*n维的全0矩阵产生m*n维的全0矩阵产生与矩阵A同维数的全0矩阵Y=ones(n)Y=ones(m,n)Y=ones(size(A))产生n*n维的全1矩阵产生m*n维的全1矩阵产生与矩阵A同维数的全1矩阵Y=eye(n)Y=eye(m,n)Y=eye(size(A))产生n*n维的单位矩阵产
3、生m*n维的单位矩阵产生与矩阵A同维数的单位矩阵3.1.1数组与矩阵的输入Y=randY=rand(n)Y=rand(m,n)Y=rand(size(A))产生一个随机数产生n*n维平均分布的随机矩阵产生m*n维平均分布的随机矩阵产生与矩阵A同维数的平均分布随机矩阵Y=randn()类似于Y=rand(),各数值遵循正态分布规律M=magic(n)产生n*n维的魔方矩阵,要求n≥33.1.1数组与矩阵的输入y=linspace(a,b)y=linspace(a,b,n)产生线性分布的向量,位于a~b之间共100个点值产生线性分布的向量,位于a~b之间共n个点值y=logspace(a,
4、b)y=logspace(a,b,n)产生对数分布的向量,位于10^a~10^b之间共50个点值产生对数分布的向量,位于10^a~10^b之间共n个点值3.1.2数组与矩阵的元素操作数组/矩阵元素的操作主要有提取(部分)元素、修改或赋值给(部分)元素值、删除(部分)元素及数组/矩阵的翻转等。MATLAB提供了数组/矩阵翻转的函数。操作数组/矩阵的MATLAB函数B=rot90(A)矩阵逆时针旋转90°B=shiftdim(X,n)矩阵的元素移位B=flipud(A)矩阵上下翻转U=triu(X)得到矩阵的上三角矩阵B=fliplr(A)矩阵左右翻转L=tril(X)得到矩阵的下三角矩阵
5、B=flipdim(A,dim)矩阵的某维元素翻转3.2MATLAB的基本数学运算3.2.1算术运算注:演示例11已知方程组用矩阵除法求解。3.3MATLAB的基本符号运算符号数学工具箱MATLAB的符号数学工具箱(SymbolicMathToolbox)将符号运算结合到MATLAB的数值运算环境中。符号数学工具箱是以Maple软件内核为符号运算的引擎,当MATLAB进行符号运算时,就转入Maple去计算并将结果返回到MATLAB的命令窗口。3.3.1符号运算基本函数常使用的符号表达式的创建方法有2种。需根据使用场合进行选择。创建符号型数据变量有专门的函数sym和syms。syms需要
6、在具体创建一个符号表达式之前,将表达式所包含的全部符号变量创建完毕。3.3.1符号运算基本函数sym函数的用处之一是创建单个的符号变量。这种创建方式不需要在前面有任何说明,使用非常快捷。正因如此,此创建过程中,包含在表达式内的符号变量并未得到说明,也就不存在于工作空间。演示例18:使用syms函数与sym函数的示例。3.3.2符号代数方程求解solve函数对代数方程求解dsolve函数对符号常微分方程求解。注:上述函数的帮助文档导读3.3.2符号代数方程求解使用说明:对于一个表达式中的多个参数,函数选取自由变量有以下几个原则:按照函数中的参数选取指定自由变量;如未指定,对表达式中的多个
7、变量,首先选择x为自由变量。如果没有x,则选择字母顺序中最接近x的字符变量;如与x距离相同,选x后面的字符变量;小写字母优先于所有大写字母;小写字母i,j不能作为自由变量。3.3.2符号代数方程求解注:演示例19求解方程注:演示例20求解方程组3.3.2符号代数方程求解注:演示例21求微分方程的通解,及当时的特解。3.3.3符号微积分运算微分函数说明积分函数说明diff(S)diff(S,'v')diff(S,n)diff(S,'v',n)求S