文档详情

第5章MATLAB符号计算.doc

发布:2017-05-26约1.85万字共23页下载文档
文本预览下载声明
第5章 MATLAB符号计算 Matlab本身并没有符号计算功能,1993年通过购买Maple的使用权后,开始具备符号运算的功能.符号运算的类型很多,几乎涉及数学的所有分支. 符号运算使用一种特殊的数据类型,称为符号对象(Symbolic Object),用字符串形式表达,但又不同于字符串(Char Array)。符号中的变量,函数和表达式都是符号对象。 5.1 符号对象的定义 5.1.1 建立符号变量 MATLAB提供了两个建立符号对象的函数:sym和syms,两个函数的用法不同。 1. sym函数 sym函数用来建立单个符号对象,一般调用格式为: 符号对象名=sym(符号字符串) 该函数可以建立一个符号对象,符号字符串可以是常量、变量、函数或表达式。 符号对象名=sym(num,’d’) 该函数将数值表达式num转化为符号表达式,数值用十进制表示; 试比较分析下列命令: a=pi^2, b=’pi^2’, c=sym(pi^2),d= sym(pi^2,’d’), e=sym(b) a=pi^2 %结果为一个数 a = 9.8696 b=pi^2 %结果为一个字符串 b = pi^2 c=sym(pi^2) %数值转化为符号对象,有理表示! c = 5556093337880030*2^(-49) c=sym(pi^2,d) %数值转化为符号对象,十进制表示! c = 9.8696044010893579923049401259050 e=sym(b) %或e=sym(pi^2) 字符串转化为符号对象 e = pi^2 2. syms函数 函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量(对象)。syms函数的一般调用格式为: syms 符号变量名1 符号变量名2 … 符号变量名n 用这种格式定义符号变量时不要在变量名上加字符串分界符(‘),变量间用空格而不要用逗号分隔。 syms x y z h=x^3+2*y^2+e h = x^3+2*y^2+pi^2 5.1.2 建立符号表达式 含有符号对象的表达式称为符号表达式。建立符号表达式有以下3种方法: (1)利用单引号来生成符号表达式。 (2)用sym函数建立符号表达式。 (3)使用已经定义的符号变量组成符号表达式。 A=[c b;e-h h-x^3] A = [ 5556093337880030*2^(-49), pi^2] [ -x^3-2*y^2, 2*y^2+pi^2] 5.1.3 计算精度和数据类型转换 利用函数sym可以将数值表达式变换成它的符号表达式,函数numeric或eval可以将符号表达式变换成数值表达式。 double(s) 将符号对象转化为双精度数值 char(s) 将符号对象转化为字符串 digits(n) 将数值计算精度设为n位; x=vpa(s) 求s的数值结果 x=vpa(s,n) 采用n位计算精度求s的数值结果 2^10000 ans = Inf a=sym(2);b=a^10000 b = 199506311688075838488374216268…709376 %很长的整数,准确的,而不是近似的 vpa(b) ans = .19950631168807583848837421626836e3011 format long;pi^2,format short %用长格式显示pi的值,再恢复为短格式 ans = 9.86960440108936 试比较以下C=PI^2的显示结果。 c=sym(pi^2); vpa(c,16) %16位 ans = 9.869604401089357 vpa(c) %32位,默认 ans = 9.8696044010893586188344909998761 vpa(c,100) %100位,高精度 ans = 9.869604401089358618834490999876151135313699407240790626413349376220044822419205243001773403718552232 vpa(c,2) %2位,低精度 ans = 9.6 double(c)
显示全部
相似文档