资源描述:
《matlab符号运算new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、符号运算科学计算包括数值计算和符号计算两种计算,数值计算是近似计算;而符号计算则是绝对精确的计算。符号变量的生成和使用1、符号变量、符号表达式和符号方程的生成(1)、使用sym函数定义符号变量和符号表达式单个符号变量sqrt(2)sym(sqrt(2))%显示精确结果a=sqrt(sym(2))%显示精确结果double(a)sym(2)/sym(3)%显示精确结果2/5+1/3sym(2/5+1/3)%显示精确结果sym(2)/sym(5)+sym(1)/sym(3)%显示精确结果sym函数定义符号表达式:单个变量定义法,整体定
2、义法单个变量定义法a=sym('a')b=sym('b')c=sym('c')x=sym('x')f=a*x^2+b*x+c整体定义法f=sym('a*x^2+b*x+c')g=f^2+4*f-2(2)、使用syms函数定义符号变量和符号表达式一次可以创建任意多个符号变量symsvar1var2var3…symsabcxf=a*x^2+b*x+cg=f^2+4*f-2(3)、符号方程的生成函数:数字和变量组陈的代数式方程:函数和等号组成的等式用sym函数生成符号方程:equation1=sym('sin(x)+cos(x)=1')
3、2、符号变量的基本操作(1)、findsym函数用于寻找符号变量findsym(f):找出f表达式中的符号变量findsym(s,n):找出表达式s中n个与x接近的变量symsaalphabx1yfindsym(alpha+a+b)findsym(cos(alpha)*b*x1+14*y,2)%x1,yfindsym(y*(4+3i)+6j)findsym(cos(alpha)*b*x1+14*y,1)%x1findsym(cos(alpha)*b*x1+14*y,3)%x1,y,b(2)、任意精确度的符号表达式digits函数设
4、定所用数值的精度digits:在commandwindow显示当前设定的数值精度digits(D):设置数值的精度为DD=digits:在commandwindow中返回当前设定数值精度digitsdigits(100)D=digitsvpa函数进行可控精度运算R=vpa(S):显示符号表达式S在当前精度D下的值,D是使用digits函数设置的数值精度vpa(S,D):显示符号表达式S在精度D下的值,D不是当前精度值,只是临时设置的r=vpa(pi)r=vpa(pi,1000)q=vpa(hilb(2))q=vpa(hilb(2)
5、,6)(3)、数值型变量与符号型变量的转换形式数值型变量t转换成符号型变量有理数形式:sym(t)或sym(t,’r’)浮点数形式:sym(t,’f’)指数形式:sym(t,’e’)指数精度形式:sym(t,’d’)t=0.1sym(t)sym(t,'r')sym(t,'f')sym(t,'e')sym(t,'d')可以通过digits函数改变精度digits(7)sym(t,'d')也可以用于矩阵,但是矩阵只能转换为有理数形式A=hilb(4)A=sym(A)A=sym(A,'d')%报错A=sym(A,'e')%报错A=sym
6、(A,'f')%报错3、符号表达式(符号函数)的操作(1)、四则运算(与通常算术式一样)symsxyabfun1=sin(x)+cos(y)fun2=a+bfun1+fun2(2)、合并同类项collect(S,v):将符号矩阵S中所有同类项合并,并以v为符号变量输出collect(S):使用findsym函数规定的默认变量,代替上式的vsymsxycollect(x^2*y+y*x-x^2-2*x)f=-1/4*x*exp(-2*x)+3/16*exp(-2*x)collect(f)(3)、因式分解horner(P):将表达式P
7、进行因式分解symsxfun1=2*x^3+2*x^2-32*x+40horner(fun1)fun2=x^3-6*x^2+11*x-6horner(fun2)(4)、简化simplify(S):将表达式S中的每个元素都进行简化,即便使用多次simplify也不一定能得到最简形式symsxfun1=(1/x+7/x^2+12/x+8)^(1/3)sfy1=simplify(fun1)sfy2=simplify(sfy1)simplify(sin(x)^2+cos(x)^2)simple(S):使用多种代数方法对S进行简化,显其中最
8、简单的结果[R,how]=simple(S):R为最简结果,how为简化方法的字符串s=2*cos(x)^2-sin(x)^2simple(s)[Rhow]=simple(s)simple(f)(5)、subs函数用于替换求值subs函数可以将符号