系统仿真工具MATLAB.ppt_第1页
系统仿真工具MATLAB.ppt_第2页
系统仿真工具MATLAB.ppt_第3页
系统仿真工具MATLAB.ppt_第4页
系统仿真工具MATLAB.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

系统仿真工具MATLAB,在仿真数值求解中的应用东北大学信息学院智能所郝培锋,MATLAB基本内容,MATLAB语言简介程序设计基础MATLAB数值线性代数计算数值微积分及方程求解系统工具箱(略),一MATLAB语言简介,1MATLAB具有交互式的语言环境,同时可以进行正常的程序化设计。2最早的语言主要是为进行数值代数及矩阵计算设计的系统,随着系统计算和绘图功能的完善其在各领域得到极其广泛的应用。3与其他语言有相应的接口,编程简单,函数功能齐全。4各种高级算法、工具箱等,Simulink面向对象的程序设计仿真环境等。,二MATLAB程序设计基础,1直接点击MATLAB图标可以自动建立交互式语言环境,基本的赋值语句结构赋值变量=赋值表达式例:A=1,2,3;7,8,0表示将一个矩阵赋给A函数调用返回变量列表=函数名(输入变量列表)例:x,y=meshgrid(-3:0.1:3,-2:0.2:2)生成x,y的一个平面分割,横坐标在-3与3,纵坐标在-2与2间步长都为0.1。,二MATLAB程序设计基础,2简单的矩阵运算矩阵转置B=A加减法运算(同阶矩阵)C1=A+BC2=A-B乘法运算(可相乘)C=A*B矩阵左除C=AB为AX=B的解矩阵右除C=A/B为XA=B的解矩阵翻转C=fliplr(A),C=flipud(A),C=rot90(A)矩阵乘方C=A3矩阵点运算C=A.*BC=A.BC=A./B,二MATLAB程序设计基础,3MATLAB基本编程方式和程序语句循环结构for循环变量=s1:s2:s3循环体语句组end例:mysum=0;fori=1:1:100,mysum=mysum+i;end;mysum运行结果:mysum=5050相应的循环结构:while逻辑变量循环体语句组end,二MATLAB程序设计基础,3MATLAB基本编程方式和程序语句条件转移结构if逻辑变量条件块语句组end例:mysum=0;form=1:1:1000,if(mysum10000),break;endmysum=mysum+m;end;m,mysum运行结果:mmysum=14210011,二MATLAB程序设计基础,4MATLAB函数编写规范函数基本结构Function返回变量表=函数名(输入变量表)%注释说明语段输入、返回变量格式检测函数体语句注意:函数中有两个默认的输入输出变量个数检测变量nargin和nargout。(详细例题请参阅相关指导书),三MATLAB数值线性代数计算,1特殊矩阵的输入与表示零、幺和单位阵A=zeros(m,n),B=ones(m,n),C=eye(m,n)随机元素阵、对角矩阵A=rand(m,n),B=diag(a1,an),或B=diag(V)Vandermonde矩阵例:C=1,2,3,4,5;V=wander(C)结果:,111111684216251252551,三MATLAB数值线性代数计算,2特殊矩阵特征参数运算矩阵行列式A=2,4,0;-3,1,-12;0,-1,1,B=det(A)矩阵迹与秩B=tr(A)C=rank(A)矩阵范数N=norm(A,选项n),选项n对于范数的定义n=1表示矩阵的1-范数,即A=maxn=2矩阵的2-范数,即A=而表示A的最大奇异值的平方。,三MATLAB数值线性代数计算,3矩阵的特征多项式、特征方程与特征根特征多项式:构造sI-A并求其行列式C(s)=det(sI-A)=sn+c1sn-1+cn-1s+cn特征多项式函数C=poly(A)如A=123;456;780;B=poly(A)B=1.000-6.000-72.000-27.000特征值与特征向量:v,d=eig(A),v=0.74710.29980.2763-0.65820.70750.38840.09310.64000.8791,d=-0.388400012.1229000-5.7345,三MATLAB数值线性代数计算,4矩阵的逆非奇异矩阵求逆:B=inv(A)矩阵广义逆:任何矩阵A都有B=Pinv(A)5矩阵的非线性运算面向矩阵元素的运算对象是矩阵的每一个元素。常用的一些面向元素的非线性函数有:abs()asin()acos()aqrt()log()log10()exp()real()imag()conj()sin()cos()round()floor()ceil(),三MATLAB数值线性代数计算,面向矩阵元素的运算例:A=1,2,3;4,5,6;7,8,0;exp(A)ans=1.0e+003*0.00270.00740.02010.05460.14840.40341.09662.98100.0010log(A)warning:logofzero.ans=,三MATLAB数值线性代数计算,面向整个矩阵的非线性运算矩阵指数的运算expm(A),用Taylor级数展开eA,对矩阵进行运算:eA=I+A+1/2!A2+1/3!A3+1/m!Am+MATLAB还允许对矩阵求对数logm()、平方根sqrtm()和任意函数funm()。其中funm()是通过直接编写函数实现任意函数的整个矩阵运算。例:funm(A,sin)得对A的sin值,而它是面向矩阵元素的函数。,三MATLAB数值线性代数计算,还可以通过直接编写函数的方法求得A的sin函数值。例:functionE=sinm1(A)E=zeros(size(A);F=A;k=1;whilenorm(E+F-E,1)0E=E+F;F=-A2*F/(k+1)*(k+2);k=k+2;endE=sinm1(A)实验表明funm(A,sin)与E结果是完全一致的。,四数值微积分及方程求解,1数值差分与积分运算数值差分计算差分函数diff(),设向量yi,则处理后的新向量为yi+1-yi,显然新的比原向量维数少1。例如:A=2,3,1;0,-10,5;-3,8,20;1,1,3;diff(A)ans=-2-134-31815-4-7-17,四数值微积分及方程求解,数值积分算法如果定积分函数为:则积分调用格式:y,n=quad(F,a,b,tol)可以通过inline()函数定义该积分函数,如f=inline(1/sqrt(2*pi)*exp(-x.2/2),x);y,kk=quad(f,-8,8)y=0.99999997742635kk=860其中积分表示式为通常用有限区间长代替无限积分区间,四数值微积分及方程求解,通过编写函数实现数值积分Functiony=myquad(x)y=1/sqrt(2*pi)*exp(-x.2/2);还是对上述的无限区间上的定积分有:formatlong;y,kk=quad(myquad,-8,8)y=0.99999997742635kk=504也可以增大积分区间长进行计算y,kk=quad(myquad,-15,15)y=1.00000007062479kk=860,四数值微积分及方程求解,多(双)重定积分数值求解一般形式的表示式基本调用格式:y=dblquad(函数名,xM,xm,yM,ym)例如:编写函数。Functionz=my2dfun(x,yglobalkk;kk=kk+1;z=exp(-x.2/2).*sin(x.2+y);Y=dblquad(my2dfun,-2,2,-1,1)Y=1.57456866245358kk=1781,四数值微积分及方程求解,2常微分方程数值解法四阶定步长Runge-Kutta法记tk时刻状态向量xk,定义四个附加向量:K1=h*f(tk,xk)K2=h*f(tk+h/2,xk+k1/2)K3=h*f(tk+h/2,xk+K2/2)K4=h*f(t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论