版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB的符号运算,1. 什么是符号运算,2. 符号变量与符号表达式,3. 符号矩阵的创建,4.符号矩阵的修改,5.符号矩阵与数值矩阵的转换,6.符号矩阵的运算,什么是符号运算 与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。运算对象可以是没有赋值的符号变量表示。,2. 符号变量与符号表达式的创建 f = sin(x)+5x f 符号变量名 sin(x)+5x 符号表达式 符号标识 符号表达式一定要用 单引号括起来matlab才能识别。 的内容可以是符号表达式,也可以是符号方程。 例: f1=ax2+bx+c
2、二次三项式 f2= ax2+bx+c=0 方程 f3=Dy+y2=1 微分方程 符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算,MATLAB的符号数学工具箱提供了用于创建符号变量和符号表达式的两种基本函数,即sym和syms。 创建符号类型数值 a=3; s1=sym(a) s1 = 3 创建符号类型变量 a=sym(alpha) a = alpha,创建符号表达式 syms a b; f=a2+2*b f = a2 + 2*b 符号表达式也可以通过sym函数直接创建 sym(a2 + 2*b) ans = a2 + 2*b 对于一个已有的表达式可以通过f
3、indsym函数需找该表达式中的符号变量。 syms a b; f=a2+2*b; findsym(f) ans = a,b,3.符号矩阵的创建 数值矩阵A=1,2;3,4 A=a,b;c,d 不识别 用matlab函数sym创建矩阵(symbolic 的缩写) 命令格式:A=sym( ) 符号矩阵内容同数值矩阵 需用sym指令定义 需用 标识, A = sym(a , 2*b ; 3*a , 0) A = a, 2*b 3*a, 0 这就完成了一个符号矩阵的创建。 注意:符号矩阵的每一行的两端都有方括号,这是与 matlab 数值矩阵的一个重要区别。,用matlab函数syms创建矩阵 sy
4、ms a b A=a,2*b;3*a,0 A = a, 2*b 3*a, 0 用字符串直接创建矩阵 模仿matlab数值矩阵的创建方法 需保证同一列中各元素字符串有相同的长度。 A = a,2*b; 3*a, 0 A = a, 2*b 3*a, 0,4.符号矩阵的修改 a.直接修改 可用、 键找到所要修改的矩阵,直接修改 b.指令修改 subs用于替换求值 格式:subs(s,new) 含义:s中符号变量用数值型变量或表达式new替换,一般替换的是s中与x接近的符号变量。,例:把x=2带入到表达式f=2x2-3x+1 syms x; f=2*x2-3*x+1; subs(f,2) ans =
5、3 格式:subs(s,old,new) 含义:s中的符号变量old用数值型变量或表达式new替代。,符号矩阵的数值转换的例子 例: syms x y z u v w; F=sin(x),cos(y),exp(z); subs(F,x y z,u v w) ans = sin(u), cos(v), exp(w),例:把表达式f=x2y+3xy1/2中的x用5代替。 syms x y; f=x2*y+3*x*y(1/2); subs(f,x,5) ans = 25*y + 15*y(1/2) subs(f,y,5) ans = 5*x2 + 3*5(1/2)*x,5.符号矩阵与数值矩阵的转换
6、a.将数值矩阵转化为符号矩阵 函数调用格式:sym(A) A=1/3 5/2;10/7 2/5 A= 0.3333 2.5000 1.4286 0.4000 sym(A) ans = 1/3, 5/2 10/7, 2/5,b.将符号矩阵转化成数值矩阵 函数调用格式:double(A) A=sym(1/3 5/2;10/7 2/5) A = 1/3, 5/2 10/7, 2/5 double(A) ans = 0.3333 2.5000 1.4286 0.4000,6.符号矩阵的运算 a.算数符号操作 命令 +、-、*、.*、.、/、./、.、. 用法如下: A+B、A-B 符号阵列的加法与减法
7、 若A与B为同型阵列时,A+B、A-B分别对对应分量进行加减;若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减。 syms a b c d m; A=a b;c d ; B=m; A-B ans = a - m, b - m c - m, d - m,A*B 符号矩阵乘法 A*B为线性代数中定义的矩阵乘法。按乘法定义要求必须有矩阵A的列数等于矩阵B的行数。 A.*B 符号数组的乘法 A.*B为按参量A与B对应的分量进行相乘。A与B必须为同型阵列,或至少有一个为标量。 AB 矩阵的左除法 X=AB为符号线性方程组A*X=B的解。我们指出的是,AB近似地等于i
8、nv(A)*B。若X不存在或者不唯一,则产生一警告信息。,A.B 数组的左除法 A.B为按对应的分量进行相除。若A与B为同型阵列时,An*m.Bn*m=(aij)n*m.(bij)n*m=Cn*m=(cij)n*m,则cij= aij bij,i=1,2,n;j=1,2,m。若若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。 A/B 矩阵的右除法 X=B/A为符号线性方程组X*A=B的解。我们指出的是,B/A粗略地等于B*inv(A)。若X不存在或者不唯一,则产生一警告信息。,A./B 数组的右除法 A./B为按对应的分量进行相除。若A与B为同型阵列时,
9、 An*m./Bn*m=(aij)n*m./(bij)n*m=Cn*m=(cij)n*m,则cij= aij/bij,i=1,2,n;j=1,2,m。若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。 AB 矩阵的方幂 计算矩阵A的整数B次方幂。若A为标量而B为方阵,AB用方阵B的特征值与特征向量计算数值。若A与B同时为矩阵,则返回一错误信息。,A.B 数组的方幂 A.B为按A与B对应的分量进行方幂计算。若A与B为同型阵An*m.Bn*m=(aij)n*m.(bij)n*m=Cn*m=(cij)n*m,则cij= aijbij,i=1,2,n;j=1,2,
10、m。若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。 syms a b c d e f g h; A=a b;c d; B=e f;g h; A-B ans = a - e, b - f c - g, d - h,A*B ans = a*e + b*g, a*f + b*h c*e + d*g, c*f + d*h A.*B ans = a*e, b*f c*g, d*h AB ans = -(b*g - d*e)/(a*d - b*c), -(b*h - d*f)/(a*d - b*c) (a*g - c*e)/(a*d - b*c), (a*h -
11、c*f)/(a*d - b*c),A.B ans = e/a, f/b g/c, h/d A2 ans = a2 + b*c, a*b + b*d a*c + c*d, d2 + b*c A.B ans = ae, bf cg, dh,b.基本运算 命令1 合并同类项 格式 : R = collect(S) 对于多项式S中的每一函数,collect(S)按缺省变量x的次数合并系数。R = collect(S,v) 对指定的变量v计算,操作同上。 syms x y; A= x2*y+y*x-x2-2*x collect(A,x) ans = (y - 1)*x2 + (y - 2)*x coll
12、ect(A,y) ans = (x2 + x)*y - x2 - 2*x,命令2 因式分解 格式 : factor(X) 当x是一个符号矩阵时,此命令将该矩阵的每一个元素进行因式分解;当x是一个整数的时,此命令返回该整数的所有质数分解式。我们需要注意的是,在整数数组中有一位元素位数超过16位时,必须用sym函数创建该元素。当s为符号表达式时,结果返回乘积形式。 f1=factor(sym(352) f1= 25*11 f2=factor(sym(1234567890123456789) f2 = 28*3*11*146137297599841, f3=factor(x5-y5) f3 = (x
13、 - y)*(x4 + x3*y + x2*y2 + x*y3 + y4) syms x y z u; f4=x3-1 y4-1;z5-2 u2-2*u+1; factor(f4) (x - 1)*(x2 + x + 1), (y - 1)*(y + 1)*(y2 + 1) z5 2 , (u - 1)2,命令3 表达式展开命令 格式:expand(A) 此命令将符号矩阵A的每一个元素(符号表达式)进行展开。此命令经常用在多项式、三角函数、指数函数等函数表达式的展开中。 expand(x+1)3) ans = x3 + 3*x2 + 3*x + 1 expand(sin(x+y) ans =
14、cos(x)*sin(y) + cos(y)*sin(x), syms x y; A=(x-1)2 y2-1;(y+2)2 x3; expand(A) ans = x2 - 2*x + 1, y2 - 1 y2 + 4*y + 4, x3,命令4 表达式化简 simplify和simple是Matlab符号数学工具箱提供的两个简化函数,区别如下:simplify的调用格式为:simplify(S);对表达式S进行化简。simple是通过对表达式尝试多种不同的方法(包括simplify)进行化简,以寻求符号表达式S的最简形式。调用方式为:r,how=simple(S);r为返回的简化形式,how
15、为化简过程中使用的一种方法。how有以下几种形式:(1)simplify 函数对表达式进行化简;(2)radsimp函数对含根式的表达式进行化简;(3)combine 函数将表达式中以求和、乘积、幂运算等形式出现的项进行合并;,(4)collect合并同类项(5)factor函数实现因式分解(6)convert函数完成表达式形式的转换 syms x; y=sin(x)2+cos(x)2; simplify(y) ans = 1 r,how=simple(y) r = 1 how = simplify,命令5 表达式通分 符号表达式的通分可以通过函数numden来实现,其调用格式为N D=num
16、den(A),表达式将A转化 为分子分母都是整系数的最佳形式。其中,A为符号多项式,N为分子多项式,D为分母最小公因式。 对表达式进行通分: syms x; f=(x+1)/x2+(x-1)/(2*x+3) n d=numden(f) n = x3 + x2 + 5*x + 3 d = x2*(2*x + 3), syms x; A=3/2 (2*x+1)/3;4/x2 3*x+4; n d=numden(A) n = 3, 2*x + 1 4, 3*x + 4 d = 2, 3 x2, 1 命令6 表达式的嵌套形式 函数horner可以将符号表达式转化成嵌套形式,其调用格式为F=horner(P)。P为符号多项式矩阵,该函数将P的每一个元素
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国交通安全日校园教育课件
- 2026年秋季儿童流行性腮腺炎预防专题培训课件
- 中学统计知识拓展试题及答案
- 偏瘫康复知识测试题目及答案
- 2026年植树问题行测试题及答案
- 2026年古代罗马文化测试题及答案
- 2026年面试 能力测试题及答案
- 2026年地理地图测试题及答案
- 2026年用户研究测试题及答案
- 2026年物质电离能测试题及答案
- 光大证券2027届校园招聘笔试备考题库及答案详解
- 安全用电 课件 绪论
- 2026年中职市场营销(市场营销基础知识)试题及答案
- 2026山东鲁东南水资源配置有限公司社会招聘笔试参考题库及答案详解
- 新生儿窒息复苏指南学习课件
- 新版(2026秋新版)北师大版五年级数学上册全册教案合集
- 2026年秋季教育学专业开学第一课 职业发展前景分析教学设计
- 医院关于不合理医疗检查专项治理自查自查自纠总结
- (正式版)DB31∕T 684-2023 《养老机构照护服务分级要求》
- 2026年贵州省纪委监委公开遴选公务员笔试试题及答案解析
- 2026年《中华人民共和国妇女权益保障法》知识竞赛题库(含答案)
评论
0/150
提交评论