Matlab工程应用基础-3-2_第1页
Matlab工程应用基础-3-2_第2页
Matlab工程应用基础-3-2_第3页
Matlab工程应用基础-3-2_第4页
Matlab工程应用基础-3-2_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

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,pos

3、itive)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;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(

4、23/9) 33/100, 3333/10000, 6243314768165359*2(-52)不管数值矩阵的元素是以分数或是浮点数表示,转换后的符号矩阵都将以最接近有理式的形式给出。b. syms 函数 syms arg1 arg2 . syms a b c x y2、符号表达式和矩阵的创建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,

6、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 B=4+x x2 x;x3 5*x-3 x*aB = 4+x, x2, x x3, 5*x-3, x*a不能创建符号方程 第3章 矩阵、数组和符号运算3、数字矩阵和符号矩阵的转换 MATLAB 中的数值型、字符型和符号型三种数据类型中数值变量级别最低,字符变量级别居中,符号变量级别最高;三种变量参与的混合运算,系统将会把所有参与运算的变量自动统一转换为变量等级最高的类型,然后进行计算;可以通过命令来完成对不同数据

7、类型之间的转换,大致可以分为三种情况:转换为数值变量: double, str2num,numeric转化为符号变量: sym转化为字符变量: int2str, num2str第3章 矩阵、数组和符号运算4、MATLAB 关于不同精度的控制 针对浮点运算的数值算法计算速度最快,占用计算机内存最少的算法,与 C、FORTRAN 语言中的浮点运算算法完全相同。在机器内的表达和计算都是一个被“ 截断”的8 位浮点近似值。针对精确运算的符号算法计算时间最长,内存占用最多,精度也最高。任意精度的算法运算时间、内存占用和计算精度均介于以上两种运算之间。采用函数 digits 来控制十进制结果的有效位数。d

8、igits 的缺省值为 32,大约对应于浮点精度。符号数学工具箱中,用 vpa 函数执行任意精度运算。第3章 矩阵、数组和符号运算 syms x f=x-cos(x)f = x-cos(x) f1=subs(f,x,pi) %将符号表达式中的变量替换为另一变量f1 = pi+1 digits(25) vpa(f1)ans = 4.141592653589793238462643 vpa(f1,6)ans = 4.14159 numeric(f1)ans = 4.1416 double(f1)ans = 4.14165、符号矩阵的运算基本运算 四则运算两个符号矩阵的大小相等方可进行加减运算,符号

9、矩阵和符号标量的加减运算按照数组运算规则进行; 两个符号矩阵只有内积相等时才可以进行乘法运算; 符号的乘方运算 Sp,若 S 为符号表达式,p 可以为符号表达式或数值表达式;若 S 为符号矩阵,则 p 必须是整数。第3章 矩阵、数组和符号运算第3章 矩阵、数组和符号运算 a=sym(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*

10、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+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

11、+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*(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

12、), 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*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

13、 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(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)

14、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自变量确定原则:除i、j外,字母位置最接近x的小写字母为自变量;如果表达式中没有变量,x会被视为默认的变量。由函数findsym可一找到默认变量a. 符号极限limit(F,x,a)limi

15、t(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 =infb.符号积分int(S) 不定积分int(S,v)int(S,a,b) 定积分int(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*

16、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(symsum(k2,0,n)ans =1/3*n3+1/2*n2+1/6*n simplify(symsum(k2,0,10)

17、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(x*t)*t, cos(x*t)*t -cos(x*t)*t, -sin(x*t)*t d

18、iff(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:2); z=x.*exp(-x.2-y.2); px,py=gradien

19、t(z,0.2,0.2); contour(z) hold on quiver(px,py) %画矢量图 hold offd.傅立叶变换和傅立叶逆变换傅立叶快速离散变换 MATLAB 提供了 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 指定变换的实施方向。当

20、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 是对数据做二维快速傅立叶变换和逆傅立叶变

21、换。数据的二维傅立叶变换 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

22、.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)作用于有限数据采样,傅立叶变换

23、作用于连续函数 。傅立叶变换调用格式为: 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 的函数 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

温馨提示

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

评论

0/150

提交评论