《Matlab及其工程应用基础.ppt》由会员分享,可在线阅读,更多相关《Matlab及其工程应用基础.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3章章矩阵、数组和符号运算矩阵、数组和符号运算二、符号及运算二、符号及运算掌握内容:掌握内容:(1)了了解解MATLAB6.0的的符符号号变变量量,掌掌握握MATLAB符符号号表达式、符号矩阵的两种表达式、符号矩阵的两种创建方法创建方法。(2)掌握)掌握MATLAB符号数学函数符号数学函数的创建。的创建。(3)掌掌握握符符号号矩矩阵阵的的基基本本运运算算及及MATLAB关关于于不不同同精精度度的控制方法的控制方法。(4)掌掌握握符符号号微微积积分分内内容容,包包括括求求函函数数的的极极限限、对对符符号号表表达达式式求求导导数数和和微微分分、符符号号积积分分、符符号号求求和和、傅傅立立叶叶变
2、变换换及及其逆变换等。其逆变换等。(5)掌握)掌握各种符号方程的求解方法各种符号方程的求解方法和函数命令。和函数命令。(6)了解)了解MATLAB可视化的符号函数分析界面可视化的符号函数分析界面及使用。及使用。(7)初步了解)初步了解MAPLE的符号资源的符号资源。第第3章章矩阵、数组和符号运算矩阵、数组和符号运算抽象运算:抽象运算:公式推导公式推导、因式分解因式分解、求解代数方程或微分方求解代数方程或微分方程的精确解程的精确解 符号数学工具箱符号数学工具箱 1 1)通过基本符号数学工具箱的通过基本符号数学工具箱的专用函数专用函数;符号表达式和符号矩阵的操作;符号表达式和符号矩阵的操作;多项式
3、的化简、展开和代入;多项式的化简、展开和代入;线性代数;线性代数;微积分;微积分;符号方程的求解;符号方程的求解;特殊的数学函数。特殊的数学函数。2 2)通通过过 maple.mmaple.m、mpa.m mpa.m 两两个个专专门门设设计计的的 M M 文文件件进进行行符符号运算;号运算;3)3)通过通过 MATLAB MATLAB 中的中的函数计算器函数计算器(Function Function CaculatorCaculator)。)。第第3章章矩阵、数组和符号运算矩阵、数组和符号运算1、符号变量的创建符号变量的创建a.sym函数函数S=sym(arg),从表达式从表达式arg创建一个
4、创建一个sym对象对象Sx=sym(x)x=sym(x,real)x=sym(x,unreal)附加属性附加属性x=sym(x,positive)pi=sym(pi)delta=sym(1/10)S=sym(A,flag),将数值或矩阵转化为符号形式将数值或矩阵转化为符号形式其中其中flag选项有四项参数选项有四项参数f,r,e和和d,r为缺省项为缺省项。f:代表十六进制浮点形式;代表十六进制浮点形式;r:代表有理数形式;代表有理数形式;e:估计误差;估计误差;d:表示十进制小数。表示十进制小数。第第3章章矩阵、数组和符号运算矩阵、数组和符号运算A=2/5,4/0.78,sqrt(23)/3;
5、0.33,0.3333,log(4)输入数值矩阵AA=0.40005.12821.59860.33000.33331.3863FA=sym(A)将数值矩阵A转化为符号矩阵FAFA=2/5,200/39,sqrt(23/9)不不管管数数值值矩矩阵阵的的元元素素是是以以分分数数或或是是浮浮点点数数表表示示,转转换换后后的符号矩阵都将以的符号矩阵都将以最接近有理式最接近有理式的形式给出。的形式给出。b.syms函数函数symsarg1arg2.symsabcxy2、符号表达式和矩阵的创建符号表达式和矩阵的创建a.字符串字符串直接输入直接输入创建创建符号表达式和符号方程对符号表达式和符号方程对空格空格
6、很敏感。因此,在创建很敏感。因此,在创建符号表达式或符号方程时,不要在字符间任意加空格符;符号表达式或符号方程时,不要在字符间任意加空格符;符号计算中出现的符号计算中出现的数字数字也是当作符号处理的;也是当作符号处理的;f=a*x2+b*x+cf=a*x2+b*x+cf=a*x2+b*x+c=0f=a*x2+b*x+c=0第第3章章矩阵、数组和符号运算矩阵、数组和符号运算第第3章章矩阵、数组和符号运算矩阵、数组和符号运算这这种种方方法法输输入入符符号号矩矩阵阵与与字字符符串串矩矩阵阵的的输输入入相相似似。但但要要保保证证在在同同一一列列中中各各元元素素字字符符串串有有同同样样的的长长度度,在在
7、较较短短的的字字符串前后用空格符填充;符串前后用空格符填充;这这种种方方法法要要求求符符号号矩矩阵阵每每一一行行的的两两端端都都有有方方括括号号,而而字字符串矩阵符串矩阵仅在首尾有方括号。仅在首尾有方括号。B=4+xx2x;x35*x-3x*aB=4+xx2xx35*x-3x*a第第3章章矩阵、数组和符号运算矩阵、数组和符号运算b.b.由由sym命令创建命令创建f=sym(a*x2+b*x+c)f=a*x2+b*x+cf1=sym(a*x2+b*x+c=0)f1=a*x2+b*x+c=0A=sym(4+x,x2,x;x3,5*x-3,x*a)A=4+x,x2,xx3,5*x-3,x*a第第3章
8、章矩阵、数组和符号运算矩阵、数组和符号运算c.c.由由syms命令创建命令创建symsxabcf=a*x2+b*x+cf=a*x2+b*x+csymsxaB=4+xx2x;x35*x-3x*aB=4+x,x2,xx3,5*x-3,x*a不能创建符号方程不能创建符号方程第第3章章矩阵、数组和符号运算矩阵、数组和符号运算3、数字矩阵和符号矩阵的转换数字矩阵和符号矩阵的转换MATLAB中中的的数数值值型型、字字符符型型和和符符号号型型三三种种数数据据类类型型中中数数值值变变量量级级别别最最低低,字字符符变变量量级级别别居居中中,符符号号变变量量级级别别最高最高;三三种种变变量量参参与与的的混混合合运
9、运算算,系系统统将将会会把把所所有有参参与与运运算算的的变量自动统一转换为变量自动统一转换为变量等级最高的类型变量等级最高的类型,然后进行计算;,然后进行计算;可可以以通通过过命命令令来来完完成成对对不不同同数数据据类类型型之之间间的的转转换换,大大致致可以分为三种情况:可以分为三种情况:转换为数值变量转换为数值变量:double,str2num,numeric转化为符号变量转化为符号变量:sym转化为字符变量转化为字符变量:int2str,num2str第第3章章矩阵、数组和符号运算矩阵、数组和符号运算4、MATLAB关于不同精度的控制关于不同精度的控制针对针对浮点运算浮点运算的数值算法的数
10、值算法计计算算速速度度最最快快,占占用用计计算算机机内内存存最最少少的的算算法法,与与C、FORTRAN语语言言中中的的浮浮点点运运算算算算法法完完全全相相同同。在在机机器器内内的表达和计算都是一个被的表达和计算都是一个被“截断截断”的的8位浮点近似值。位浮点近似值。针对针对精确运算精确运算的符号算法的符号算法计算时间最长,内存占用最多,精度也最高。计算时间最长,内存占用最多,精度也最高。任意精度任意精度的算法的算法运运算算时时间间、内内存存占占用用和和计计算算精精度度均均介介于于以以上上两两种种运运算算之之间间。采采用用函函数数digits来来控控制制十十进进制制结结果果的的有有效效位位数数
11、。digits的的缺省值为缺省值为32,大约对应于浮点精度。,大约对应于浮点精度。符号数学工具箱中,符号数学工具箱中,用用vpa函数执行任意精度运算函数执行任意精度运算。第第3章章矩阵、数组和符号运算矩阵、数组和符号运算symsxf=x-cos(x)f=x-cos(x)f1=subs(f,x,pi)%将符号表达式中的变量替换为另一变量f1=pi+1digits(25)vpa(f1)ans=vpa(f1,6)ans=4.14159numeric(f1)ans=4.1416double(f1)ans=4.14165、符号矩阵的运算符号矩阵的运算a.基本运算基本运算b.四则运算四则运算两个符号矩阵的
12、两个符号矩阵的大小相等大小相等方可进行方可进行加减运算加减运算,符号,符号矩阵和矩阵和符号标量符号标量的加减运算按照的加减运算按照数组运算数组运算规则进行;规则进行;两个符号矩阵只有两个符号矩阵只有内积内积相等相等时才可以进行时才可以进行乘法运算乘法运算;符号的乘方运算符号的乘方运算Sp,若若S为为符号表达式符号表达式,p可以可以为符号为符号表达式或数值表达式表达式或数值表达式;若;若S为为符号矩阵符号矩阵,则,则p必须是必须是整数整数。第第3章章矩阵、数组和符号运算矩阵、数组和符号运算第第3章章矩阵、数组和符号运算矩阵、数组和符号运算a=sym(1/x,1/(x+1);1/(x+2),1/(
13、x+3)a=1/x,1/(x+1)1/(x+2),1/(x+3)b=sym(x,1;x+2,0)b=x,1x+2,0b-aans=x-1/x,1-1/(x+1)x+2-1/(x+2),-1/(x+3)abans=-6*x-2*x3-7*x2,3/2*x2+x+1/2*x36+2*x3+10*x2+14*x,-1/2*x3-2*x2-3/2*xa.bans=x2,x+1(x+2)2,0a2ans=1/x2+1/(x+1)/(x+2),1/x/(x+1)+1/(x+1)/(x+3)1/(x+2)/x+1/(x+3)/(x+2),1/(x+1)/(x+2)+1/(x+3)2exp(b)ans=exp
14、(x),exp(1)exp(x+2),1第第3章章矩阵、数组和符号运算矩阵、数组和符号运算矩阵运算矩阵运算aans=1/conj(x),1/(2+conj(x)1/(1+conj(x),1/(3+conj(x)inv(a)ans=1/2*x*(x+1)*(x+2),-1/2*x*(x+3)*(x+2)-1/2*x*(x+3)*(x+1),1/2*(x+3)*(x+1)*(x+2)det(a)ans=2/x/(x+3)/(x+1)/(x+2)rank(a)ans=2eig(b)ans=1/2*x+1/2*(x2+4*x+8)(1/2)1/2*x-1/2*(x2+4*x+8)(1/2)triu(a
15、)ans=1/x,1/(x+1)0,1/(x+3)diag(a)ans=1/x1/(x+3)tril(a)ans=1/x,01/(x+2),1/(x+3)第第3章章矩阵、数组和符号运算矩阵、数组和符号运算b.符号矩阵的简化符号矩阵的简化因式分解因式分解symsxfactor(x9-1)ans=(x-1)*(x2+x+1)*(x6+x3+1)符号矩阵展开符号矩阵展开symsxyexpand(x+1)3)ans=x3+3*x2+3*x+1expand(sin(x+y)ans=sin(x)*cos(y)+cos(x)*sin(y)同类项合并同类项合并symsxycollect(x2*y+y*x-x2
16、-2*x)ans=(y-1)*x2+(y-2)*x分式通分分式通分symsxyn,d=numden(x/y+y/x)n=x2+y2d=y*x符号简化符号简化symsxsimple(cos(x)2-sin(x)2)simplify:2*cos(x)2-1radsimp:cos(x)2-sin(x)2combine(trig):cos(2*x)factor:(cos(x)-sin(x)*(cos(x)+sin(x)expand:cos(x)2-sin(x)2combine:cos(2*x)第第3章章矩阵、数组和符号运算矩阵、数组和符号运算convert(exp):(1/2*exp(i*x)+1/2
17、/exp(i*x)2+1/4*(exp(i*x)-1/exp(i*x)2convert(sincos):cos(x)2-sin(x)2convert(tan):(1-tan(1/2*x)2)2/(1+tan(1/2*x)2)2-4*tan(1/2*x)2/(1+tan(1/2*x)2)2collect(x):cos(x)2-sin(x)2ans=cos(2*x)simplify(cos(x)2-sin(x)2)ans=2*cos(x)2-1simplify(sin(x)2+cos(x)2)ans=1第第3章章矩阵、数组和符号运算矩阵、数组和符号运算第第3章章矩阵、数组和符号运算矩阵、数组和符号
18、运算6、符号微积分符号微积分Matlab自变量确定原则:除自变量确定原则:除i、j外,字母位置外,字母位置最接近最接近x的小写字母的小写字母为自为自变量;如果表达式中没有变量变量;如果表达式中没有变量,x会会被视为默认的变量。由函数被视为默认的变量。由函数findsym可一找到默认变量可一找到默认变量a.符号极限符号极限limit(F,x,a)limit(F,a),变量为由变量为由findsym定义的默认变量定义的默认变量limit(F,x,a,right)/limit(F,x,a,left)Limit(F),a=0symsxathlimit(sin(x)/x)ans=1limit(1+2*t
19、/x)(3*x),x,inf)ans=exp(6*t)limit(1/x,x,0,right)ans=infb.符号积分符号积分int(S)不定积分不定积分int(S,v)int(S,a,b)定积分定积分int(S,v,a,b)symsxx1alphaut;A=cos(x*t),sin(x*t);-sin(x*t),cos(x*t)A=cos(x*t),sin(x*t)-sin(x*t),cos(x*t)int(A,t)ans=1/x*sin(x*t),-cos(x*t)/xcos(x*t)/x,1/x*sin(x*t)int(x1*log(1+x1),0,1)ans=1/4第第3章章矩阵、数
20、组和符号运算矩阵、数组和符号运算符号合计函数符号合计函数Symsum(S)Symsum(S,v)Symsum(S,a,b)symskn;simplify(symsum(k)ans=1/2*k2-1/2*ksimplify(symsum(k2,0,n)ans=1/3*n3+1/2*n2+1/6*nsimplify(symsum(k2,0,10)ans=385c.符号微分和差分符号微分和差分微分和差分微分和差分Diff(S)Diff(S,v)Diff(S,n)Diff(S,v,n)symsxdiff(sin(x2)ans=2*cos(x2)*xdiff(t6,6)ans=720第第3章章矩阵、数组
21、和符号运算矩阵、数组和符号运算symsxt;A=cos(x*t),sin(x*t);-sin(x*t),cos(x*t)A=cos(x*t),sin(x*t)-sin(x*t),cos(x*t)diff(A,x)%diff(A,x)ans=-sin(x*t)*t,cos(x*t)*t-cos(x*t)*t,-sin(x*t)*tdiff(A,t,2)ans=-cos(x*t)*x2,-sin(x*t)*x2sin(x*t)*x2,-cos(x*t)*x2第第3章章矩阵、数组和符号运算矩阵、数组和符号运算梯度函数梯度函数DF=gradient(F)一维梯度一维梯度FX,FY=gradient(F
22、)二维梯度二维梯度FX,FY=gradient(F,H)FX,FY=gradient(F,HX,HY)FX,FY,FZ=gradient(F)三维梯度三维梯度FX,FY,FZ=gradient(F,HX,HY,HZ)H指定间距,默认为指定间距,默认为1x,y=meshgrid(-2:0.2:2,-2:0.2:2);z=x.*exp(-x.2-y.2);px,py=gradient(z,0.2,0.2);contour(z)holdonquiver(px,py)%画矢量图holdoffd.傅立叶变换和傅立叶逆变换傅立叶变换和傅立叶逆变换傅立叶快速离散变换傅立叶快速离散变换 MATLAB提供了提供
23、了fft(内置函数内置函数)、ifft、fft2、ifft2、fftn、ifftn、fftshift、ifftshift等函数,用来计算矩阵的离散快速等函数,用来计算矩阵的离散快速傅立叶变换。傅立叶变换。函数函数fft和和ifft 函数函数fft最完整的调用格式为:最完整的调用格式为:Y=fft(X,dim)或或Y=fft(X,n,dim)数据长度数据长度n是是2次幂时,可以采用次幂时,可以采用基基-2算法进行快速计算。算法进行快速计算。输入参数输入参数X可以是向量、矩阵。可以是向量、矩阵。dim指指定定变变换换的的实实施施方方向向。当当X是是矩矩阵阵时时,1指指明明变变换换按按列列进进行行(
24、默默认),认),2指明变换按行进行。指明变换按行进行。第第3章章矩阵、数组和符号运算矩阵、数组和符号运算第第3章章矩阵、数组和符号运算矩阵、数组和符号运算X=1,2,3;4,5,6;7,8,9X=123456789Y=fft(X)Y=12.000015.000018.0000-4.5000+2.5981i-4.5000+2.5981i-4.5000+2.5981i-4.5000-2.5981i-4.5000-2.5981i-4.5000-2.5981i函数函数fft2和和ifft2函函数数fft2和和ifft2是是对对数数据据做做二二维维快快速速傅傅立立叶叶变变换换和和逆逆傅傅立立叶叶变变换换
25、。数数据据的的二二维维傅傅立立叶叶变变换换 fft2(X)相相当当于于fft(fft(X),即即先先对对X的的列列做做一一维维傅傅立立叶叶变变换换,然然后后对对变变换结果的行换结果的行做一维傅立叶变换。做一维傅立叶变换。其调用格式为:其调用格式为:Y=fft2(X,mrows,ncols)和函数和函数fft2和和ifft2类似,类似,函数函数fftn和和ifftn对数据做多维快对数据做多维快速傅立叶变换。速傅立叶变换。函数函数fftshift和和ifftshift函函数数fftshift用用于于把把傅傅立立叶叶变变换换结结果果(频频域域数数据据)中中的的直直流流分量(分量(频率为频率为0处的值
26、)移到中间位置处的值)移到中间位置。其调用格式为:其调用格式为:Y=fftshift(X)X=rand(3,3)X=0.95010.48600.45650.23110.89130.01850.60680.76210.8214Y=fft(X)Y=1.78812.13941.29640.5311+0.3254i-0.3407-0.1119i0.0365+0.6953i0.5311-0.3254i-0.3407+0.1119i0.0365-0.6953i第第3章章矩阵、数组和符号运算矩阵、数组和符号运算Y1=fftshift(X)Y1=0.82140.60680.76210.45650.95010.
27、48600.01850.23110.8913傅立叶积分变换及其反变换傅立叶积分变换及其反变换离散傅立叶变换离散傅立叶变换(DFT)作用于有限数据采样作用于有限数据采样,傅立叶变换傅立叶变换作用于作用于连续函数连续函数。傅立叶变换调用格式为:傅立叶变换调用格式为:F=fourier(f):求求表表达达式式f的的傅傅立立叶叶变变换换。缺缺省省的的自自变变量量为为x,缺缺省省的的返回值是关于返回值是关于w的函数。的函数。F=fourier(f,v):返返回回函函数数F是是关关于于符符号号表表达达式式对对象象v的的函函数数,而而不是缺省的不是缺省的w。F=fourier(f,u,v):对对关关于于u的
28、的函函数数f进进行行变变换换,返返回回函函数数F是是关于关于v的函数。的函数。傅立叶逆变换调用格式为:傅立叶逆变换调用格式为:f=ifourier(F):符符号号表表达达式式对对象象F的的傅傅立立叶叶逆逆变变换换。缺缺省省的的自自变变量量为为w,缺省缺省返回是关于返回是关于x的函数。的函数。f=ifourier(F,u):返返回回函函数数f是是关关于于符符号号表表达达式式对对象象u的的函函数数,而不是缺省的而不是缺省的x的函数。的函数。f=ifourier(F,v,u):对对关关于于v的的函函数数F进进行行变变换换,返返回回关关于于u的的函数函数f。第第3章章矩阵、数组和符号运算矩阵、数组和符
29、号运算symsxtwu;fourier(exp(-x2)ans=pi(1/2)*exp(-1/4*w2)fourier(exp(-x2),u)ans=pi(1/2)*exp(-1/4*u2)fourier(exp(-t2),t,u)ans=pi(1/2)*exp(-1/4*u2)ifourier(sym(fourier(f(x),x,w),w,x)ans=f(x)ifourier(exp(-w2)ans=1/2/pi(1/2)*exp(-1/4*x2)第第3章章矩阵、数组和符号运算矩阵、数组和符号运算e.Laplace变换变换L=laplace(F)xsL=laplace(F,z)xzL=la
30、place(F,w,z)wzsymsxswzlaplace(sin(x)ans=1/(s2+1)laplace(sin(x),w)ans=1/(w2+1)第第3章章矩阵、数组和符号运算矩阵、数组和符号运算laplace(sin(x*w)ans=w/(s2+w2)laplace(sin(x*w),w,z)ans=x/(z2+x2)(1)设)设 ,对对f(x)和和g(x)进行因式分解。进行因式分解。(2)运用)运用simplify命令简化命令简化,并与采,并与采用用simple命令得出的结果相比较。命令得出的结果相比较。(3)计算下列极限)计算下列极限a.b.(4)建建立立一一个个符符号号表表达达
31、式式y=sin(a+b)2*xc),分分别别以以变变量量c进行积分、以变量进行积分、以变量x从从pi/2到到pi进行积分,进行积分,(5)求求符符号号矩矩阵阵F对对变变量量x的的一一阶阶微微分分、对对变变量量a的的二二阶微分阶微分F=cos(a*x)sin(a+b)2*x)-sin(b*x)en;上机练习(上机练习(5)(6)建建立立一一个个包包含含的的符符号号表表达达式式,并并将将该该表达式转换为符号变量。表达式转换为符号变量。(7)用符号计算验证下述三角恒等式的正确性。)用符号计算验证下述三角恒等式的正确性。(8)用用rand函函数数建建立立一一个个33维维随随机机数数值值矩矩阵阵,并并将将该该数值矩阵转换为符号矩阵,比较它们的不同。数值矩阵转换为符号矩阵,比较它们的不同。(9)分分别别用用1位位和和10位位有有效效数数字字计计算算2*pi+3.1415的的值值,并比较与采用并比较与采用format格式的差别。格式的差别。(10)求下述矩阵的逆、特征根和矩阵的行列式值。)求下述矩阵的逆、特征根和矩阵的行列式值。上机练习(上机练习(5)