MATLAB第二讲数值计算和符号计算.ppt_第1页
MATLAB第二讲数值计算和符号计算.ppt_第2页
MATLAB第二讲数值计算和符号计算.ppt_第3页
MATLAB第二讲数值计算和符号计算.ppt_第4页
MATLAB第二讲数值计算和符号计算.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

Matlab基础应用,1,第二讲数值计算和符号运算,Matlab基础应用,2,1.数值计算,1.1矩阵和数组基础创建矩阵元素标识矩阵操作矩阵函数1.2矩阵和数组的计算,Matlab基础应用,3,1.3多项式运算,MATLAB语言把多项式表达成一个行向量,该向量中的元素是按降幂排列多项式各项系数的,如果缺某次幂项,则该次幂项系数为。f(x)=anxn+an-1xn-1+a1x+a0用行向量p=anan-1a1a0表示。,多项式行向量,Matlab基础应用,4,可用polyval函数,计算多项式在变量为特定值的结果。,1.3.1多项式求值,例2:计算x=0:0.5:3时,p(x)=x3+21x2+20 x值。,解:p1=121200;x=0:0.5:3;polyval(p1,x)015.375042.000080.6250132.0000196.8750276.0000,Matlab基础应用,5,1.3.2多项式求根-求方程的解,例3:p(x)=x3-6x2-72x-27,在MATLAB利用函数:roots,解:p=1-6-72-27r=roots(p)r=12.1229-5.7345-0.3884,Matlab基础应用,6,1.3.3部分分式展开,利用residue函数来实现部分分式展开。,语法:r,p,k=residue(B,A)其中:B,A分别为分子、分母多项式系数行向量;r为r1,rn留数行向量;p为p1pn极点行向量;k为直项行向量。,Matlab基础应用,7,1.3.4多项式乘除运算,多项式的乘法语法:p=conv(p1,p2)说明:p是多项式p1和p2的乘积多项式。多项式的除法语法:q,r=deconv(p1,p2)说明:p1被p2除,商为多项式q,余数式为r。,Matlab基础应用,8,1.3.4多项式乘除运算(续),例4:a(x)=x2+2x+3;b(x)=4x2+5x;求c=a(x)*b(x)。解:a=123;b=450;c=conv(a,b)c=41322150d,r=deconv(c,a)d=450r=00000,Matlab基础应用,9,(1)字符串用字符数组来存储,以单引号来界定。(2)常见的字符串函数:length(str):计算字符串的长度;double(str):查看字符串的ASCII码;char(x):将ASCII码转换成字符串形式;strcmp(x,y):比较两字符串是否相同;strcat(s1,s2,):字符串级连函数;findstr(x,x1):查找x中是否有x1;(3)执行字符串:eval(str)命令例1:str1=a=2*3;eval(str1)a=6,1.4字符串,Matlab基础应用,10,(1)元胞数组的基本单元是元胞,每个元胞可存放不同类型(矩阵、数组、字符串等)的数据,以来界定。(2)元胞数组的创建:方法1:直接创建如:A=THIS,34;ones(3),ONE,TWO方法2:由各元胞创建如:A(1,1)=THISA(1,2)=34A(2,1)=ones(3)A(2,2)=ONE,TWO(3)元胞数组元素内容的获取:X=A2,1X=111;111;111,1.5元胞数组,Matlab基础应用,11,(1)结构数组的基本组成是结构,每个结构都包含某一对象的多个域,以.来标识域。(2)结构数组的创建:方法1:TU(1)=struct(name,曲线1,color,red,)方法2:TU(1).name=曲线1;TU(1).color=redTU(1).shape=sin;TU(1).position=0piTU(2).name=曲线2;TU(2).color=blueTU(2).shape=cos;TU(2).position=02*pi(3)结构数组元素内容的获取:用.号来获取X=TU(2).shapeX=cos,1.6结构数组,Matlab基础应用,12,1.7数据分析,遵循的原则:(1)如果输入是向量,则按整个向量进行计算。(2)如果输入的是矩阵,则按列进行运算。,因此:一定要将需要分析的数据按列进行分类。若已有的矩阵是按行进行分类的,可用矩阵的旋转使矩阵变成按列进行分类,Matlab基础应用,13,1.7.1数据统计和相关分析,Matlab基础应用,14,1.7.2差分与积分,Matlab基础应用,15,1.7.3卷积和快速傅立叶变换-离散序列,卷积,Conv:计算向量的卷积。conv2:计算二维(矩阵或二维数组)卷积。deconv:解卷积运算。,快速傅立叶变换,fft:一维快速傅立叶变换。ifft:一维快速傅立叶逆变换。,Matlab基础应用,16,课程导入,求半径为5的圆的面积,数值运算:r=5s=pi*r2s=78.5398,如果要求求解的精度保留到小数点后10位,怎样求解呢?,符号运算是数值运算的扩展,为了得到更高精度的运算结果,符号运算:symssrs=pi*r2r=5s=vpa(subs(s),32)s=78.539816339744830961566084581988,2符号运算,Matlab基础应用,17,2.1符号对象的建立,2.1.1创建符号常量(sym是symbolic缩写)语法:sym(常量),例1:创建数值常量和符号常量a1=2*sqrt(5)+pi%数值常量a2=sym(2*sqrt(5)+pi)%符号常量,符号对象:是一种数据结构,用来存储代表符号的字符串,包括符号常量、符号变量和符号表达式,符号运算的结果也都是符号对象。,Matlab基础应用,18,(1)使用sym命令创建符号变量:sym(arg,参数)%参数设置数学特性,可为positive,real,unreal,可省略;符号表达式:sym(表达式)注意:符号对象必须用单引号括起来MATLAB才能识别。,例2:f=sym(sin(x)+5*x)f符号表达式名sin(x)+5*x符号表达式符号标识,2.1.2创建符号变量和表达式,注意:常数与符号变量的相乘不能省*,(2)使用syms命令创建:一个或多个符号变量的创建syms(arg1,arg2,参数)symsarg1arg2参数,Matlab基础应用,19,例3:f1=sym(a*x2+b*x+c)%方法一whosNameSizeBytesClassf11x1146symobjectGrandtotalis12elementsusing146bytessymsabcx%方法二f2=a*x2+b*x+cwhosNameSizeBytesClassa1x1126symobjectb1x1126symobjectc1x1126symobjectf21x1146symobjectx1x1126symobjectGrandtotalis20elementsusing650bytes,注意:方法一只创建了符号表达式,没有创建符号变量;而方法二既创建了符号表达式,又创建符号变量.,Matlab基础应用,20,使用sym和syms命令创建,A=sym(a,b;c,d)A=a,bc,dsymsfghkB=f,g;h,kB=f,gh,k,2.1.3创建符号矩阵,例4:,Matlab基础应用,21,(1)数值运算保留8位有效位数,每一次数值运算有一定的截断误差,重复的多次数值运算就可能会造成很大的累积误差;符号运算不进行数值计算,无截断误差。(2)符号运算可以得出完全的封闭解或任意精度的数值解。(3)符号运算的时间较长,而数值运算速度快。(4)数值运算中必须先对变量赋值;符号运算无须事先对变量赋值,但必须先定义,运算结果以标准的符号表达式形式给出。,2.2.1符号运算与数值运算的区别,2.2符号运算,Matlab基础应用,22,(1)基本运算符符号矩阵:“+”,“-”,“*”,“”,“/”,“”,“”符号数组:“.*”,“./”,“.”,“.”,“.”(2)关系运算符运算符只有“=”,“=”。,2.2.2符号运算中的运算符,Matlab基础应用,23,2.2.3符号运算中的函数运算,(1)三角函数和双曲函数除atan2外与数值运算(包括使用方法)相同。(2)指数和对数函数没有log2和log10,其余与数值运算相同。(3)复数运算没有提供相角的命令,其余与数值运算相同。(4)矩阵代数命令与数值运算相同。,Matlab基础应用,24,例5:求符号矩阵的行列式值、共轭转置和特征值。,symsa11a12a21a22A=a11,a12;a21,a22;det(A)%计算行列式值A%计算共轭转置eig(A)%计算特征值,Matlab基础应用,25,2.2.4符号运算任意精度控制,(1)设置默认的全局精度语法:digits(n)%n为期望的有效位数,默认的为32位。(2)把单个对象s表示为n位有效位数的符号对象语法:S=vpa(s,n)%n省略时按digits给定的精度,Matlab基础应用,26,a1=2/3a1=0.6667%数值型a2=sym(2/3)a2=2/3,digitsdigits=32%默认的32位有理数型vpa(a2)ans=.66666666666666666666666666666667a3=vpa(2/3,15)a3=0.666666666666667%VPA型,例6:,Matlab基础应用,27,2.2.5数值对象与符号对象的相互转换,将数值对象转化为符号对象格式:sym(s)或vpa(s),其中s为数值对象例7:A=2.5,1.8;1/1.6,3/5B=sym(A)或B=vpa(A,n)将符号对象转化为数值对象格式:numeric(s)或double(s)或eval(s),其中s为符号对象例8:a1=sym(2*sqrt(5)a2=eval(a1)ans=4.4721,Matlab基础应用,28,2.3.符号表达式的操作,(1)当符号表达式中含有多个符号变量时,例如“f=x+y”,则只有一个变量是独立变量,其余的符号变量当作常量来处理。(2)若没有指定自由变量,MATLAB按如下规则选择自由变量:小写i和j不能做自由变量选择自由变量的顺序:首选x,没有x选择字母顺序离x最近的字符变量;若与x距离相同,则在x后面的优先。大写字母比小写字母都靠后函数确定自由变量:语法:findsym(EXPR,1),2.3.1自由变量的确定,Matlab基础应用,29,2.3.2符号表达式的函数操作,合并、化简、展开等函数collect(f):将表达式f中相同幂次的项合并;factor(f):将表达式f因式分解;simplify(f):利用代数中的函数规则对表达式化简;expand(f):将符号表达式展开成多项式的形式反函数和复合函数finverse(f,v):求指定变量v的函数f(v)的反函数compose(f,g,z):求f(x)和g(y)的复合函数f(g(z),Matlab基础应用,30,2.3.3符号表达式的替换,subs函数用来对符号表达式中的符号变量或字符串进行替换,从而化简符号表达式。语法:(1)subs(s)%用给定值替换s中赋值的变量(2)subs(s,old,new)s为符号表达式;old为旧符号变量;new为新值或表达式;,Matlab基础应用,31,用subs函数对符号表达式进行替换。,例9:,f=sym(x+y)2+3*(x+y)+5)x=5;f1=subs(f)f1=(5+y)2+3*(5+y)+5f2=subs(f,x+y,z)f2=z2+3*z+5,Matlab基础应用,32,2.4符号方程求解,代数方程代数方程的求解由函数solve实现:语法:solve(f)求解符号方程fsolve(f1,fn)求解由f1,fn组成的代数方程组常微分方程使用函数dsolve来求解常微分方程语法:dsolve(eq,cond,v)dsolve(eq1,eq2,cond1,cond2,.,v),Matlab基础应用,33,例10:,1.求代数方程a*x*x+b*x+c=0的解f=sym(a*x*x+b*x+c=0)solve(f)2.求微分方程y=x的通解,指定x为自由变量。dsolve(Dy=x,x)%注意y的输入方法3.求微分方程y=1+y的特解,加初始条件y(0)=1,y(0)=0dsolve(D2y=1+Dy,y(0)=1,Dy(0)=0)4.微分方程组的通解x,y=dsolve(Dx=y+x,Dy=2*x),注意微分表达式和初始条件的输入方法。,Matlab基础应用,34,2.5符号微积分,符号微分语法:diff(f)求f对自由变量的一阶微分diff(f,v)求f对符号变量v的一阶微分diff(f,v,n)求f对符号变量v求n阶微分符号积分语法:int(f,v)求表达式f的对符号变量v的不定积分int(f,v,a,b)求表达式f的对符号变量v的在(a,b)范围内定积分,Matlab基础应用,35,例11:,Matlab基础应用,36,例12:,Matlab基础应用,37,2.6符号积分变换,F=fourier(f,t,w)求时域函数f(t)的傅立叶变换F(w)f=ifourier(F,w,t)求频域函数F(w)的傅立叶反变换,傅立叶(Fourier)变换及其反变换,F=laplace(f,t,s)求时域函数f(t)的拉普拉斯变换f=ilaplace(F,s,t)求频

温馨提示

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

评论

0/150

提交评论