Matlab及其工程应用基础.ppt

上传人:小飞机 文档编号:6511799 上传时间:2023-11-08 格式:PPT 页数:29 大小:266.49KB
返回 下载 相关 举报
Matlab及其工程应用基础.ppt_第1页
第1页 / 共29页
Matlab及其工程应用基础.ppt_第2页
第2页 / 共29页
Matlab及其工程应用基础.ppt_第3页
第3页 / 共29页
Matlab及其工程应用基础.ppt_第4页
第4页 / 共29页
Matlab及其工程应用基础.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《Matlab及其工程应用基础.ppt》由会员分享,可在线阅读,更多相关《Matlab及其工程应用基础.ppt(29页珍藏版)》请在三一办公上搜索。

1、,第3章 矩阵、数组和符号运算,二、符号及运算掌握内容:(1)了解 MATLAB 6.0 的符号变量,掌握 MATLAB 符号表达式、符号矩阵的两种创建方法。(2)掌握 MATLAB 符号数学函数的创建。(3)掌握符号矩阵的基本运算及MATLAB 关于不同精度的控制方法。(4)掌握符号微积分内容,包括求函数的极限、对符号表达式求导数和微分、符号积分、符号求和、傅立叶变换及其逆变换等。(5)掌握各种符号方程的求解方法和函数命令。(6)了解 MATLAB 可视化的符号函数分析界面及使用。(7)初步了解 MAPLE 的符号资源。,第3章 矩阵、数组和符号运算,抽象运算:公式推导、因式分解、求解代数方

2、程或微分方程的精确解 符号数学工具箱 1)通过基本符号数学工具箱的专用函数;符号表达式和符号矩阵的操作;多项式的化简、展开和代入;线性代数;微积分;符号方程的求解;特殊的数学函数。2)通过 maple.m、mpa.m 两个专门设计的 M 文件进行符号运算;3)通过 MATLAB 中的函数计算器(Function Caculator)。,第3章 矩阵、数组和符号运算,1、符号变量的创建a.sym 函数 S=sym(arg),从表达式 arg 创建一个 sym 对象 Sx=sym(x)x=sym(x,real)x=sym(x,unreal)附加属性x=sym(x,positive)pi=sym(p

3、i)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;0.33,0.3333,log(4)输入数值矩阵AA=0.4000 5.1282 1.5986 0.3300 0.3333 1.3863 FA=sym(A)将数值矩阵A转化为符号矩阵FA FA=2/5,200/39,sqrt(23/9)不管数值矩阵的元素是以分数或是浮点数表示,转换后的符号

4、矩阵都将以最接近有理式的形式给出。b.syms 函数 syms arg1 arg2.syms a b c x y,2、符号表达式和矩阵的创建a.字符串直接输入创建 符号表达式和符号方程对空格很敏感。因此,在创建符号表达式或符号方程时,不要在字符间任意加空格符;符号计算中出现的数字也是当作符号处理的;f=a*x2+b*x+cf=a*x2+b*x+c f=a*x2+b*x+c=0f=a*x2+b*x+c=0,第3章 矩阵、数组和符号运算,第3章 矩阵、数组和符号运算,这种方法输入符号矩阵与字符串矩阵的输入相似。但要保证在同一列中各元素字符串有同样的长度,在较短的字符串前后用空格符填充;这种方法要求

5、符号矩阵每一行的两端都有方括号,而字符串矩阵仅在首尾有方括号。B=4+x x2 x;x3 5*x-3 x*aB=4+x x2 x x3 5*x-3 x*a,第3章 矩阵、数组和符号运算,b.由 sym 命令创建 f=sym(a*x2+b*x+c)f=a*x2+b*x+c f1=sym(a*x2+b*x+c=0)f1=a*x2+b*x+c=0 A=sym(4+x,x2,x;x3,5*x-3,x*a)A=4+x,x2,x x3,5*x-3,x*a,第3章 矩阵、数组和符号运算,c.由 syms 命令创建 syms x a b c f=a*x2+b*x+cf=a*x2+b*x+c syms x a

6、B=4+x x2 x;x3 5*x-3 x*aB=4+x,x2,x x3,5*x-3,x*a不能创建符号方程,第3章 矩阵、数组和符号运算,3、数字矩阵和符号矩阵的转换 MATLAB 中的数值型、字符型和符号型三种数据类型中数值变量级别最低,字符变量级别居中,符号变量级别最高;三种变量参与的混合运算,系统将会把所有参与运算的变量自动统一转换为变量等级最高的类型,然后进行计算;可以通过命令来完成对不同数据类型之间的转换,大致可以分为三种情况:转换为数值变量:double,str2num,numeric转化为符号变量:sym转化为字符变量:int2str,num2str,第3章 矩阵、数组和符号运

7、算,4、MATLAB 关于不同精度的控制 针对浮点运算的数值算法计算速度最快,占用计算机内存最少的算法,与 C、FORTRAN 语言中的浮点运算算法完全相同。在机器内的表达和计算都是一个被“截断”的8 位浮点近似值。针对精确运算的符号算法计算时间最长,内存占用最多,精度也最高。任意精度的算法运算时间、内存占用和计算精度均介于以上两种运算之间。采用函数 digits 来控制十进制结果的有效位数。digits 的缺省值为 32,大约对应于浮点精度。符号数学工具箱中,用 vpa 函数执行任意精度运算。,第3章 矩阵、数组和符号运算,syms x f=x-cos(x)f=x-cos(x)f1=subs

8、(f,x,pi)%将符号表达式中的变量替换为另一变量f1=pi+1 digits(25)vpa(f1)ans=vpa(f1,6)ans=4.14159 numeric(f1)ans=4.1416 double(f1)ans=4.1416,5、符号矩阵的运算基本运算 四则运算两个符号矩阵的大小相等方可进行加减运算,符号矩阵和符号标量的加减运算按照数组运算规则进行;两个符号矩阵只有内积相等时才可以进行乘法运算;符号的乘方运算 Sp,若 S 为符号表达式,p 可以为符号表达式或数值表达式;若 S 为符号矩阵,则 p 必须是整数。,第3章 矩阵、数组和符号运算,第3章 矩阵、数组和符号运算,a=sym

9、(1/x,1/(x+1);1/(x+2),1/(x+3)a=1/x,1/(x+1)1/(x+2),1/(x+3)b=sym(x,1;x+2,0)b=x,1 x+2,0 b-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*x3 6+2*x3+10*x2+14*x,-1/2*x3-2*x2-3/2*x a.bans=x2,x+1(x+2)2,0 a2ans=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+

10、1)/(x+2)+1/(x+3)2 exp(b)ans=exp(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=2,eig(b)ans=1/2*x+1/2*(x2+4*x+8)(1/2)1/2*x-1/2*(

11、x2+4*x+8)(1/2)triu(a)ans=1/x,1/(x+1)0,1/(x+3)diag(a)ans=1/x 1/(x+3)tril(a)ans=1/x,0 1/(x+2),1/(x+3),第3章 矩阵、数组和符号运算,b.符号矩阵的简化因式分解 syms x factor(x9-1)ans=(x-1)*(x2+x+1)*(x6+x3+1)符号矩阵展开 syms x y expand(x+1)3)ans=x3+3*x2+3*x+1 expand(sin(x+y)ans=sin(x)*cos(y)+cos(x)*sin(y),同类项合并 syms x y collect(x2*y+y*

12、x-x2-2*x)ans=(y-1)*x2+(y-2)*x分式通分 syms x y n,d=numden(x/y+y/x)n=x2+y2d=y*x,符号简化 syms x simple(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/exp(

13、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-1 simplify(sin(x)2+cos(x)2)ans=1,第3章 矩阵、数组和符号运算,第3章 矩阵、数组和符号运算,6、符号微积分Matlab自变量确定原则:

14、除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=0 syms x a t h limit(sin(x)/x)ans=1 limit(1+2*t/x)(3*x),x,inf)ans=exp(6*t),limit(1/x,x,0,right)ans=inf,b.符号积分int(S)不定积分int(S,v)int(S,a,b)定积分in

15、t(S,v,a,b)syms x x1 alpha u t;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)/x cos(x*t)/x,1/x*sin(x*t)int(x1*log(1+x1),0,1)ans=1/4,第3章 矩阵、数组和符号运算,符号合计函数Symsum(S)Symsum(S,v)Symsum(S,a,b)syms k n;simplify(symsum(k)ans=1/2*k2-1/2*k simplify

16、(symsum(k2,0,n)ans=1/3*n3+1/2*n2+1/6*n simplify(symsum(k2,0,10)ans=385,c.符号微分和差分微分和差分Diff(S)Diff(S,v)Diff(S,n)Diff(S,v,n)syms x diff(sin(x2)ans=2*cos(x2)*x diff(t6,6)ans=720,第3章 矩阵、数组和符号运算,syms x t;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

17、(x*t)*t,cos(x*t)*t-cos(x*t)*t,-sin(x*t)*t diff(A,t,2)ans=-cos(x*t)*x2,-sin(x*t)*x2 sin(x*t)*x2,-cos(x*t)*x2,第3章 矩阵、数组和符号运算,梯度函数DF=gradient(F)一维梯度FX,FY=gradient(F)二维梯度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指定间距,默认为1 x,y=meshgrid(-2:0.2:2,-2:0.2

18、:2);z=x.*exp(-x.2-y.2);px,py=gradient(z,0.2,0.2);contour(z)hold on quiver(px,py)%画矢量图 hold off,d.傅立叶变换和傅立叶逆变换傅立叶快速离散变换 MATLAB 提供了 fft(内置函数)、ifft、fft2、ifft2、fftn、ifftn、fftshift、ifftshift 等函数,用来计算矩阵的离散快速傅立叶变换。函数 fft 和 ifft 函数 fft 最完整的调用格式为:Y=fft(X,dim)或 Y=fft(X,n,dim)数据长度n是 2 次幂时,可以采用基-2 算法进行快速计算。输入参数

19、 X 可以是向量、矩阵。dim 指定变换的实施方向。当 X 是矩阵时,1 指明变换按列进行(默认),2 指明变换按行进行。,第3章 矩阵、数组和符号运算,第3章 矩阵、数组和符号运算,X=1,2,3;4,5,6;7,8,9X=1 2 3 4 5 6 7 8 9 Y=fft(X)Y=12.0000 15.0000 18.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 是对数据做二维快速傅立叶变换

20、和逆傅立叶变换。数据的二维傅立叶变换 fft2(X)相当于 fft(fft(X),即先对 X 的列做一维傅立叶变换,然后对变换结果的行做一维傅立叶变换。其调用格式为:Y=fft2(X,mrows,ncols),和函数 fft2 和 ifft2 类似,函数 fftn 和 ifftn 对数据做多维快速傅立叶变换。函数 fftshift 和 ifftshift 函数 fftshift 用于把傅立叶变换结果(频域数据)中的直流分量(频率为 0 处的值)移到中间位置。其调用格式为:Y=fftshift(X)X=rand(3,3)X=0.9501 0.4860 0.4565 0.2311 0.8913 0

21、.0185 0.6068 0.7621 0.8214 Y=fft(X)Y=1.7881 2.1394 1.2964 0.5311+0.3254i-0.3407-0.1119i 0.0365+0.6953i 0.5311-0.3254i-0.3407+0.1119i 0.0365-0.6953i,第3章 矩阵、数组和符号运算,Y1=fftshift(X)Y1=0.8214 0.6068 0.7621 0.4565 0.9501 0.4860 0.0185 0.2311 0.8913,傅立叶积分变换及其反变换 离散傅立叶变换(DFT)作用于有限数据采样,傅立叶变换作用于连续函数。傅立叶变换调用格式

22、为:F=fourier(f):求表达式 f 的傅立叶变换。缺省的自变量为 x,缺省的返回值是关于 w 的函数。F=fourier(f,v):返回函数 F 是关于符号表达式对象 v 的函数,而不是缺省的 w。F=fourier(f,u,v):对关于 u 的函数 f 进行变换,返回函数 F 是 关于 v 的函数。傅立叶逆变换调用格式为:f=ifourier(F):符号表达式对象F的傅立叶逆变换。缺省的自变量为 w,缺省返回是关于 x 的函数。f=ifourier(F,u):返回函数 f 是关于符号表达式对象 u 的函数,而不是缺省的 x的函数。f=ifourier(F,v,u):对关于 v 的函数

23、 F 进行变换,返回关于 u 的函数 f。,第3章 矩阵、数组和符号运算,syms x t w u;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=lapla

24、ce(F)x sL=laplace(F,z)x z L=laplace(F,w,z)w z syms x s w z laplace(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)建立一个符号表达式 y=sin(a+b)2*xc

25、),分别以变量 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),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号