资源描述:
《MATLAB的符号运算V4.0(精简版》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Matlab语言基础张启升地球物理与信息技术学院测控教研室教五楼125E-mail:zqs@cugb.edu.cn第4讲MATLAB的符号运算符号运算的功能符号表达式、创建符号矩阵因式分解、展开和简化符号代数方程求解符号微积分符号微分方程符号线性代数Matlab符号运算是通过符号数学工具箱(SymbolicMathToolbox)来实现的。Matlab的符号运算简介符号对象的建立:sym和syms例:>>symsxyz>>x=sym(‘x’);>>y=sym(‘y’);>>z=sym(‘z’);<==>符号对象建立时可以附加属性:real、posit
2、ive和unreal>>k=sym('k','positive')>>x=sym('x','real')>>x=sym('x','unreal')表明x是实的表明k是正的去掉x的附加属性Matlab的符号运算符号表达式的建立>>f2=sym(’sin(x)+cos(x)’)>>symsx>>f1=sin(x)+cos(x)推荐!Matlab的符号运算相关函数findsym:查找符号表达式中的符号变量findsym(f)按字母顺序列出符号表达式f中的所有自由变量findsym(f,N)列出f中距离x最近的N个自由变量(i,j除外)默认自变量=finds
3、ym(f,1)>>a=sym('a');x=sym('x');k=sym('3');>>f=k*x+a;>>findsym(f)例:ans=a,xMatlab的符号运算相关函数subs:符号替换subs(f):用当前工作空间中存在的变量值,替换f中所有出现的相同的变量,并进行简化计算。subs(f,x,a):用a替换f中的x;a是可以是数/数值变量/表达式或符号变量/表达式。若x与a为相同大小的向量或矩阵,则用a中相应的元素替换x中的元素;若f,x为标量,而a是向量或矩阵,则f与x将扩展为与a相同形状的向量或矩阵。Matlab的符号运算例:>>s
4、ymsxy>>f=2*x+y;>>x=3,y=4;>>subs(f)>>subs(f,x,’a’)>>symsxyab>>f=2*x+y;>>subs(f,[x,y],[3,4])>>subs(f,{x,y},{3,4})>>subs(f,x,[1:3])>>subs(f,{x,y},{[1:3],[5:7]})>>subs(f,{x,y},{a+b,a-b})>>subs(f,{x,y},{x+y,x-y})ans=10ans=2*a+yans=10ans=[2+y,4+y,6+y]ans=[71013]ans=3*a+b?Matlab的符号运算符
5、号矩阵使用sym函数直接生成>>A=sym(’[1+x,sin(x);5,exp(x)]’)将数值矩阵转化成符号矩阵>>B=[2/3,sqrt(2);5.2,log(3)]>>C=sym(B)符号矩阵中元素的引用和修改>>A=sym(’[1+x,sin(x);5,exp(x)]’)>>A(1,2)>>A(2,2)=sym(’cos(x)’)Matlab的符号运算>>D=[1+x,sin(x);5,exp(x)]符号矩阵的基本运算符号矩阵的基本运算与数值矩阵的基本运算相类似。1)基本运算符:+、-、*、、/、^、.*、.、./、.^、’、.’2)三
6、角函数与反三角函数:sin、cos、tan、……3)指数、对数函数:sqrt、exp、log、……4)复数函数:real、imag、conj、abs5)矩阵函数:det、inv、rank、……(没有norm)6)矩阵元素的抽取:diag、tril、triuMatlab的符号运算六大常见符号运算因式分解、展开、合并、简化及通分等因式分解:factor>>symsx>>f=x^6+1>>s=factor(f)s=(1+x^2)*(x^4-x^2+1)factor也可用于正整数的分解Matlab的符号运算大整数的分解Matlab的符号运算展开函数:expa
7、nd多项式展开三角函数展开该函数经常用于多项式展开,也常用于三角函数、指数函数和对数函数的展开中。Matlab的符号运算合并同类项:collectcollect(f,v):按指定变量v的次数合并系数;collect(f):合并f中的默认自变量的各项系数。findsym(f,1)Matlab的符号运算简化函数:simple和simplifysimple(f):对f尝试多种不同的算法简化,返回其中最短的简化形式;[R,HOW]=simple(f):R为f的最短简化形式,HOW中记录的为简化过程中使用的主要方法。fRHOW2*cos(x)^2-sin(x
8、)^23*cos(x)^2-1simplify(x+1)*x*(x-1)x^3-xcombine(trig)