资源描述:
《四:Matlab符号运算二.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数学实验Matlab符号运算(二)sym函数用来建立单个符号量,一般调用格式为:符号对象的建立:sym和syms符号对象的建立符号变量=sym(A)参数A可以是一个数或数值矩阵,也可以是字符串syms命令用来建立多个符号量,一般调用格式为:syms符号变量1符号变量2...符号变量n例:>>symsabc>>a=sym('a');>>b=sym('b');>>c=sym('c');符号表达式的建立:符号表达式及相关函数>>symsx;>>f=sin(x)+cos(x)>>f=sym('sin(x)+cos(x)')
2、相关函数:findsymsubs符号矩阵>>A=sym('[1+x,sin(x);5,exp(x)]')使用sym函数直接生成将数值矩阵转化成符号矩阵符号矩阵中元素的引用和修改>>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)')%重新赋值六类常见符号运算因式分解、展开、合并、简化及通分等计算极限计算导数计算积分符号求和代数方程和微分方程求解因式分解因式分解fa
3、ctor(f)>>symsx;f=x^6+1;>>factor(f)factor也可用于正整数的分解>>s=factor(100)>>factor(sym('12345678901234567890'))大整数的分解要转化成符号常量函数展开函数展开expand(f)>>symsx;f=(x+1)^6;>>expand(f)多项式展开三角函数展开>>symsxy;f=sin(x+y);>>expand(f)合并同类项合并同类项collect(f,v):按指定变量v进行合并collect(f):按默认变量进行合并>>s
4、ymsxy;>>f=x^2*y+y*x-x^2+2*x;>>collect(f)>>collect(f,y)函数简化函数简化y=simple(f):对f尝试多种不同的算法进行简化,返回其中最简短的形式[R,How]=simple(f):y为f的最简短形式,How中记录的为简化过程中使用的方法。fRHOW2*cos(x)^2-sin(x)^23*cos(x)^2-1simplify(x+1)*x*(x-1)x^3-xcombine(trig)x^3+3*x^2+3*x+1(x+1)^3factorcos(3*acos
5、(x))4*x^3-3*xexpand函数简化函数简化y=simplify(f):对f进行简化>>symsx;f=sin(x)^2+cos(x)^2;>>simplify(f)>>symscalphabeta;>>f=exp(c*log(sqrt(alpha+beta)));>>simplify(f)函数简化举例>>symscalphabeta;>>f=(1/x^3+6/x^2+12/x+8)^(1/3);>>y1=simplify(f)>>g1=simple(f)>>g2=simple(g1)多次使用simple
6、可以达到最简表达。例:简化分式通分函数简化[N,D]=numden(f):N为通分后的分子,D为通分后的分母>>symsxy;>>f=x/y+y/x;>>[N,D]=numden(f)>>[n,d]=numden(sym(112/1024))horner多项式horner多项式:嵌套形式的多项式>>symsx;>>f=x^4+2*x^3+4*x^2+x+1;>>g=horner(f)例:计算极限limit(f,x,a):计算limit(f,a):当默认变量趋向于a时的极限limit(f):计算a=0时的极限limi
7、t(f,x,a,'right'):计算右极限limit(f,x,a,'left'):计算左极限例:计算,>>symsxhn;>>L=limit((log(x+h)-log(x))/h,h,0)>>M=limit((1-x/n)^n,n,inf)计算导数g=diff(f,v):求符号表达式f关于v的导数g=diff(f):求符号表达式f关于默认变量的导数g=diff(f,v,n):求f关于v的n阶导数diff>>symsx;>>f=sin(x)+3*x^2;>>g=diff(f,x)计算积分int(f,v,a,b):
8、计算定积分int(f,a,b):计算关于默认变量的定积分int(f,v):计算不定积分int(f):计算关于默认变量的不定积分>>symsx;f=(x^2+1)/(x^2-2*x+2)^2;>>I=int(f,x)>>K=int(exp(-x^2),x,0,inf)例:计算和符号求和>>symsn;f=1/n^2;>>S=symsum(f,n,1,inf)>