资源描述:
《matlab3matlab的符号运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三讲MATLAB的符号运算——matlab不仅具有数值运算功能,还开发了在matlab环境下实现符号计算的工具包SymbolicMathToolbox符号运算的功能符号表达式、符号矩阵的创建符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程一、符号运算的基本操作什么是符号运算与数值运算的区别※数值运算中必须先对变量赋值,然后才能参与运算。※符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。特点:运算对象可以是没赋值的符号变量可以获得任意精度的解SymbolicMath
2、Toolbox——符号运算工具包通过调用Maple软件实现符号计算的。maple软件——主要功能是符号运算,它占据符号软件的主导地位。2.符号变量与符号表达式f='sin(x)+5x'f——符号变量名sin(x)+5x——符号表达式''——符号标识符号表达式一定要用''单引号括起来matlab才能识别。''的内容可以是符号表达式,也可以是符号方程。例:f1='ax^2+bx+c'——二次三项式f2='ax^2+bx+c=0'——方程f3='Dy+y^2=1'——微分方程※符号表达式或符号方程可以赋
3、给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算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数值矩阵的一个重要区别。用字符串直接创建矩阵模仿m
4、atlab数值矩阵的创建方法需保证同一列中各元素字符串有相同的长度。例:A=['[a,2*b]';'[3*a,0]']A=[a,2*b][3*a,0]符号矩阵的修改a.直接修改可用、键找到所要修改的矩阵,直接修改b.指令修改用A1=sym(A,,,'new')来修改。用A1=subs(A,'new','old')来修改A1=subs(S,'old','new')例如:A=[a,2*b][3*a,0]A1=sym(A,2,2,'4*b')A1=[a,2*b][3*a,4*b]A(2,2)='4*b
5、'A3=[a,2*b][3*a,4*b]A2=subs(A1,'c','b')A2=[a,2*c][3*a,4*c]将数值矩阵转化为符号矩阵函数调用格式:sym(A)A=[1/3,2.5;1/0.7,2/5]A=0.33332.50001.42860.4000sym(A)ans=[1/3,5/2][10/7,2/5]符号矩阵与数值矩阵的转换将符号矩阵转化为数值矩阵函数调用格式:numeric(A)A=[1/3,5/2][10/7,2/5]numeric(A)ans=0.33332.50001.42860
6、.4000符号矩阵运算数值运算中,所有矩阵运算操作指令都比较直观、简单。例如:a=b+c;a=a*b;A=2*a^2+3*a-5等。而符号运算就不同了,所有涉及符号运算的操作都有专用函数来进行二、符号运算符号矩阵运算的函数:symadd(a,d)——符号矩阵的加symsub(a,b)——符号矩阵的减symmul(a,b)——符号矩阵的乘symdiv(a,b)——符号矩阵的除sympow(a,b)——符号矩阵的幂运算symop(a,b)——符号矩阵的综合运算例1:f='2*x^2+3*x-5';g='x^2
7、+x-7';h=symadd(f,g)h=3*x^2+4*x-12例2:f='cos(x)';g='sin(2*x)';symop(f,'/',g,'+',f,'*',g)ans=cos(x)/sin(2*x)+cos(x)*sin(2*x)例1:f=2*x^2+3*x-5;g=x^2+x-7;>>symsx>>f=2*x^2+3*x-5;g=x^2+x-7;>>h=f+gh=3*x^2+4*x-12例2:f=cos(x);g=sin(2*x);>>symsx>>f=cos(x);g=sin(2*x);>
8、>f/g+f*gans=cos(x)/sin(x)+cos(x)*sin(x)符号运算函数:symsize——求符号矩阵维数charploy——特征多项式determ——符号矩阵行列式的值eigensys——特征值和特征向量inverse——逆矩阵transpose——矩阵的转置jordan——约当标准型simple——符号矩阵简化2.任意精度的数学运算在symbolic中有三种不同的算术运算:数值类型matlab的浮点算术运