版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 仿真软件 MATLAB基础与应用 用于把重复的程序段封装起来,完成复杂任务,可以输入输出参数,输入输出变量可以是标量、数组、矩阵或字符串,也可以没有输入输出参数。函数文件的笫一行总是以 “function”引导的“函数申明行”。基本格式:function y1,y2,=myfunc(x1,x2,) 关键字 输出变量 函数名 输入变量 函数文件 M函数文件有自己的工作空间,与MATLAB工作空间分开,二者之间由输入输出变量联系; M函数除输入输出变量外都是局部变量,在该函数返回后就自动清除掉了。若要在工作空间起作用,则定义为全局变量,并且应在工作空间和M函数中都要同时定义。 函数名和函数
2、文件名最好统一,以免出错。函数申明行:位于函数文件的首行,以关键字 function 开头,函数名以及函数的输入输出变量都在这一行被定义。笫一注释行:紧随函数申明行之后以%开头笫一注释行。该行供lookfor关键词查询和 help在线帮助使用 在线帮助文本区 :笫一注释行及其之后的连续以%开头的所有注释行构成整个在线帮助文本。编写和修改记录:与在线帮助文本区相隔一个“空”行,也以%开头,标志编写及修改该M文件的作者日期等 。 函数体:为清晰起见,与前面的注释以“空”行相隔。 例:函数myguass.m 调用testguass.m 典型 M函数文件的结构如下 : function g=mygua
3、ss(a)%The Solution of Linear Systems AX=B by Guassian Elimination%input a=A|B is augmented matrix%output g=x is the result%It was edited in Mar 20,2002 and modified in May 3,2003 by JPn=length(a)for i=2:1:(n-1) %消元过程 for k=i:1:(n-1) m=a(k,i-1)/a(i-1,i-1); for j=1:1:n a(k,j)=a(k,j)-a(i-1,j)*m; end en
4、dend 局部变量n,根据输入矩阵的维数确定循环次数。%回代过程for i=n-1:-1:1 f=0; for j=i+1:n-1 f=f+a(i,j)*x(j); end x(i)=(a(i,n)-f)/a(i,i);endg=x;%命令文件调用myguass.m函数文件a=1 2 3;3 4 8x=myguass(a)testguass.m全局变量应在工作空间和M函数中都要同时定义。、顺序结构、循环结构:、分支结构:二.程序结构和控制语句(主要是三种结构): if 条件表达式1 命令串1 elseif 条件表达式2 命令串2 . else 命令串end myif.mswitch 表达式 c
5、ase 值1 命令串1 case 值2 命令串2 . otherwise 命令串end myswitch.m固定次数的for和不定次数的whilefor 循环变量=数组范围 命令串end myfor.mwhile 条件表达式 命令串 end mywhile.m1)关系操作符 非零数值为真(1)、零为假(0 )(小于) (大于) =(大于或等于) = =(等于) =(不等于)MATLAB的关系操作符可以用来比较两个大小相同的数组,或者比较一个数组和一个标量。在与标量比较时,结果和数组大小一样。 例p382) 逻辑操作符:定义按照“与”、“或”、“非”的关系表达式&(与) |(或) (非) 3)
6、NaN、Inf和空矩阵 例p40NaN(Not a Number)表示: 0/0 或 Inf-InfInf表示: 1/0或计算中的数值上溢产生的空矩阵是行列数为0的矩阵,是逻辑上的无或不存在三.关系和逻辑运算可定义一串文字并进行字符串的处理与运算。字符串是ASCII码的数值数组,每个字符占用2个字节存储。定义格式:用单引号括起来 x=Matlab is a software字符串的转换MATLAB定义一些字符串转换函数 例p41.m字符串运算函数eval命令是执行字符串的功能,可以执行一些操作命令,运行已有的M函数,计算并赋值给其它变量。 例p43.m四. 字符运算五.数据的输入输出1、数据不
7、多时,可由FileSave Workspace As保存工作空间当前所有变量(保存为*.mat)。类似地,由File Import Data 可装载数据。2、save、load命令:以二进制格式保存和读入save 将工作空间所有变量以二进制格式存入matlab.matsave 将所有变量以二进制格式存入save x y z 将变量x y z以二进制格式存入 .matsave x y z ascii 以8位ASCII代替二进制格式 与save相对应,可用load命令加载数据。3、低级文件输入输出命令常用基本命令 例inout.m一、多项式的表示方法对于 P(x)= an xn + an-1xn-
8、1 + +a1x +a0 ,用多项式系数的降幂排列的行向量表示:P=an an-1 a1 a0 p = 1 0 -2 -5; P(x)=x3 -2x-51.2.5多项式运算多项式运算是线性代数、线性系统分析中的重要内容。 二、求根及其逆运算roots(p) 求多项式的根,并按列向量存储。poly(rr) 由根的列向量求多项式的系数。 Characteristic Polynomials 特征多项式 The poly function also computes the coefficients of the characteristic polynomial of a matrix. A =
9、1.2 3 -0.9; 5 1.75 6; 9 0 1; poly(A) ans = 1.0000 -3.9500 -1.8500 -163.2750The roots of this polynomial, computed with roots, are the characteristic roots, or eigenvalues, of the matrix A. (Use eig to compute the eigenvalues of a matrix directly.) A = 1.2 3 -0.9; 5 1.75 6; 9 0 1;r1= roots(poly(A)r2=
10、 eig(A) 在控制系统中,若A为系统矩阵,可方便求取系统特征方程及特征值。A=0 1 0;0 0 1;-3 -2 -7poly(A)ans = 1.0000 7.0000 2.0000 3.0000r1= roots(poly(A)r2= eig(A)r1 = -6.7700 -0.1150 + 0.6557i -0.1150 - 0.6557ir2 = -6.7700 -0.1150 + 0.6557i -0.1150 - 0.6557i 三、加、减与乘、除法 加、减可直接进行,要求两个多项式的行向量元素数目相等,当两个多项式阶数不等时,需补充0元素。p=1 2 0 -5 6; %p(x
11、)=x4+2x3-5x+6的多项式s=0 0 1 2 3; %s(x)=x2+2x+3为与p进行加减, %补0使行向量元素相等s1=1 2 3; c1=p+s;%c2=p+s1; %行向量元素相等,才能进行加减多项式的乘法与除法 conv(a,b) 完成两个多项式的乘法 deconv(a,b) 完成两个多项式的除法例如:a(s)=s+1 b(s)=s+2. a=1 1; b=1 2; f=conv(a,b) 多项式的乘法 f = 1 3 2 %f(x)=(s+1)*(s+2)=s2+3x+2 r = deconv(f,a) 多项式的除法 r = 1 2 四、多项式的微分 微分由polyder命
12、令完成 p=1 2 0 -5 6; %p(x)=x4+2x3-5x+6的多项式 f=polyder(p); %多项式的微分 f = 4 6 0 -5 %p(x)=4x3+6x2 - 5 五、计算多项式的值 polyval可以计算出多项式在某个特定点的值。 若计算多项式P(s)在 s = 5时的值,用 polyval(p,5)例如: P=1 0 1; %P(s)=s2+1 Pv=polyval(p,5) X=-1:0.1:2; %x由-1到2 y=polyval(p,x); %针对自变量x,计算多项式p(x)的值六、有理多项式常用于线性系统的Fourier变换、Laplace变换和Z变换。有理多
13、项式的表示:分别由分子多项式和分母多项式表示;部分分式展开r,p,k=residue(num,den) 见num分子多项式系数行向量;den分母多项式系数行向量; 部分分式拟和num,den=residue(r,p,k) 例p32.m注意: residue 函数是完成部分分式展开还是拟合功能取决于输入参数的个数r,p,k=residue(num,den)的分解结果形式:有理多项式k(s)为常数项或纯微分项例如已知传递函数被分解为上例中已知传递函数被分解为%有理多项式n=conv(10,1 3);d=conv(1 1,1 1 3);r,p,k=residue(n,d) %部分分式展开,r为分子,
14、p为极点,k为常数项n1,d1=residue(r,p,k) %部分分式拟和首先需安装Symbolic Toolbox工具箱。 一、符号表达式符号表达式是包括数字、代数或有理运算和符号变量的MATLAB字符串,不要求预先确定变量的值。1.创建符号表达式简易: 用字符串变量的生成法标准方法:sym( )命令创建syms 命令创建的符号函数与sym()方法相同,但不能创建符号方程。 例p50_1.m1.2.6 符号运算例p50_1.m符号表达式,可定义矩阵及多种表达式,也有多种函数可对其进行操作。 例p50.m 2.符号常量 不含变量的符号表达式如 f=sym(2*4-6) 可进行数值或符号运算
15、3.符号变量 当符号表达式中含有多于一个的变量时,只有一个变量是独立变量,其余的文字符作常量处理。若不指定哪个变量是独立变量,将按一定的规则确定:除去i、j的小写字母,若无其它字母,x作独立变量。有多个字符变量,选择在字母顺序中最接近x的字符;若有相连的字符,选择在字母表中较后的字符. P52.m二、Symbolic Calculate 符号表达式运算1、Numerator and denominator 提取分子和分母 numden 可以提取有理分式的分子和分母,还可以进行通分,合并同类项后再提取分子分母。对符号矩阵也可作同样操作。 p54.m2、Algebra Calculate 代数运算
16、可进行符号表达式的加、减、乘、除和幂次。symadd 符号加法symsub 符号减法symmul 符号乘法symdiv 符号除法 例: p55.m3、高级运算:可进行符号表达式的复合、求逆函数、求前n-1项和等。compose(f,g) 求复合函数f(g(x) 例 p57.mfinverse(f) 求f(x)的逆函数g(x)满足g(f(x)=xsymsum(f) 求表达式前n-1项的和 例 p58.m4、函数变换numeric( ) 把符号常数变换成一个数值eval(f) 计算符号表达式的值p=sym2poly(f) 符号表达式f转换成多项式pf=poly2sym(p) 多项式p转换成符号表达
17、式fsubs(f,old,new) 用new代替f中的old字符串例p60.m1、微分 diff 命令 例p61.m三、微分和积分 Differentiation and Integration2、积分 int 命令可求不定积分和定积分 例p62.m四、符号表达式的简化 Simplifications对一些长而繁复的表达式可进行合并、展开、因式分解和简化等处理。pretty 以类似数学课本上的形式来显示 %不能有返回变量,Too many output argumentscollect 合并同类项,给出降幂排列形式horner 把降幂排列的多项式变成嵌套形式factor 因式分解expand
18、展开表达式,给出降幂排列形式simplify 表达式简化simple 试用几种简化方式,选择最简形式五、Variable-Precision Arithmetic可变精度算术运算MATLAB中存在三种运算方式: 例p67.m数值运算(MATLAB的浮点运算)运算快,占用内存少;计算精度受字长影响,有舍入误差,多次运算造成累计误差。符号运算(精确的)计算精度最高,但占用内存多。可变精度运算占用内存和计算精度受指定精度影响。digits 显示当前符号运算缺省精度digits(n) 指定符号运算缺省精度位数为n(全局)vpa(f) 以缺省精度计算并显示符号表达式vpa(f,n) 以指定的n位精度计算
19、并显示符号表达式,并且不会影响全局的缺省精度%p32.m基本的数据类型:数据类型举例说明double1 2;3 4双精度数值类型,最常用 charhello字符数组,每字符16位sparsespeye(5)双精度稀疏矩阵,只存非0元素cell17helloeye(2)细胞数组,元素可为不同类型、维数structa.day=12;a.color=red;结构数组,相当于数据库的记录,各属性的数据类型可不同uint8Uint8(magic(3)8位型,不能进行数学运算,用于图象处理。低级文件I/O命令fclose 关闭文件feof 测试文件结束ferror 查询文件I/O的错误状态fgetl 读文
20、件的行,忽略回行符fgets 读文件的行,包括回行符fopen 打开文件fprintf 按照格式要求把数据写到文件或屏幕上fread 从文件中读二进制文件frewind 返回到文件开始fscanf 按照格式要求从文件中读数据fseek 设置文件位置指示符ftell 获取文件位置指示符fwrite 把二进制数据写到文件里 返回常用基本数学函数 abs实数绝对值,复数模log2基为2的对数acos反余弦log10常用对数angle相角mod求余conj复共轭real复数的实部cos余弦rem除法的余数cot余切round四舍五入取整exp指数sign符号函数gcd最大共因子sin正弦imag取出复
21、数的虚部sqrt平方根log自然对数tan正切基本的数据类型:数据类型举例说明double1 2;3 4双精度数值类型,最常用 charhello字符数组,每字符16位sparsespeye(5)双精度稀疏矩阵,只存非0元素cell17helloeye(2)细胞数组,元素可为不同类型、维数structa.day=12;a.color=red;结构数组,相当于数据库的记录,各属性的数据类型可不同uint8Uint8(magic(3)8位型,不能进行数学运算,用于图象处理。 Arithmetic operators. plus - Plus + minus - Minus - mtimes - Matrix multiply * times - Array mu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年船舶航运消防安全管理模拟试卷(含答案)
- 2025浙江省高等院校计算机等级考试三级数据库真题及参考答案(精-选)
- 2026事业单位工勤技能-新疆-新疆印刷工一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-广西-广西政务服务办事员四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-广东-广东广播电视天线工三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-山西-山西舞台技术工一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-山西-山西不动产测绘员四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-山东-山东农业技术员四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-宁夏-宁夏工程测量员五级(初级工)历年参考题库含答案详解
- 2026事业单位工勤技能-天津-天津动物检疫员二级(技师)历年参考题库含答案详解
- 《健康经济学》课程教学大纲
- 认知域作战基础知识课件
- 医疗结构化面试经典100题及答案
- 电力公司安全管理部岗位职责介绍
- T/CGCC 72-2022公用纺织品洗涤废水回用水质要求
- 会议室改造工程施工方案
- 上市公司并购重组典型案例汇编 -16.长电科技要约收购星科金朋
- 外挂悬挑式花篮盘扣脚手架安全专项施工方案7.17
- 医院保洁人员院感培训
- 高职应用语文教程(第二版) 课件 2求职信
- 莆田市哲理小升初数学期末试卷真题汇编解析版
评论
0/150
提交评论