数学软件与数学实验(第二版)杨杰-第6章 符号运算.pptxVIP

  • 11
  • 0
  • 约 119页
  • 2023-04-18 发布于浙江
  • 举报

数学软件与数学实验(第二版)杨杰-第6章 符号运算.pptx

数学软件与数学实验(第二版)杨杰-第6章符号运算

第六章 符号运算 数值运算与符号运算在数值运算中,由于受运算所保留有效位数的限制,每次运算都会产生一定的舍入误差,重复多次后数值计算就会造成很大的累积误差,而且在实际问题中,也存在一些无法用数值计算描述的问题。在某些方面,有时我们需要问题的精确解。符号运算是指在解数学表达式或方程时,根据一系列恒等式和数学定理,通过推理和演绎,获得解析结果。这种计算建立在数值表达准确和推理严格解析的基础上,因此所得结果是完全准确的。 主要内容符号对象符号表达式的基本操作符号微积分符号方程的求解 积分变换 6.1 创建符号对象在MATLAB中进行符号运算,首先要创建符号对象(symbolic objects),符号对象包括:符号数(symbolic numbers)符号变量(symbolic variables)符号表达式(symbolic expressions)符号函数(symbolic functions)。 6.1 创建符号对象6.1.1 符号数 符号数与浮点数最大的区别是数字的精确表示。Symbolic Math Toolbox提供了sym函数来创建符号数。sym(num) 将浮点数或矩阵num转化为符号数。sym(num, flag) 用flag指定的方法将浮点数num转化为符号数,其中flag表示转化的方法。 6.1 创建符号对象flag作用r采用有理数模式,将通过p/q、p*pi/q、sqrt(p) 、2^q 和10^q等形式计算的浮点数转化为相对应形式的符号数(为系统默认方式)。这种方法有效的补偿了原始计算的四舍五入导致的误差,但也有可能导致浮点数的值不够精确,若找不到较简单的有理数近似值,则作用与f是一样的。d采用十进制小数模式,符号数的位数由digits确定,将浮点数转化为有效数字不超过16位数字的符号数,超过16位的数字是不准确的。e采用误差估计模式转化,其转化结果是在有理数模式的基础上增加一个包含eps的项,这一项误差估计是理论上的有理数值与实际上的浮点数之差。f采用浮点数到有理数模式,其转化结果是与浮点数值相等的精确有理数。 例6-1 将实数4/3用4种方法转化为符号数。在命令行窗口依次输入下面的命令: x=4/3 %浮点数运算 c1=sym(x,r) c2=sym(x,d) c3=sym(x,e) c4=sym(x,f)6.1 创建符号对象 6.1 创建符号对象? 6.1 创建符号对象? 6.1 创建符号对象例6-3 创建复数域上的符号变量x,y,z。方法一:用sym函数。在命令行窗口依次输入下面的命令: x=sym(x); y=sym(y); z=sym(z); 方法二:用syms命令。在命令行窗口依次输入下面的命令: syms x y z注:从例6-3可以看出,sym函数一次只能定义一个符号变量,而syms命令一次可以定义若干个符号变量。 6.1 创建符号对象2.创建特定数域上的符号变量x = sym(x,set) 创建一个在特定数域上的符号变量。syms?var1 ... varN set 创建若干个在特定数域上的符号变量。其中,set用于说明变量的数域,其值可取‘real’,?‘positive’,?‘integer’, 或‘rational’,也可以是它们中的多个组合。 6.1 创建符号对象例6-4 创建特定数域上的符号变量方法一:用sym函数在命令行窗口依次输入下面命令:x = sym(x,real); %定义实数域上的符号变量xy = sym(y,positive); %定义正实数域上的符号变量y z = sym(z,[positive,integer]); %定义正整数域上的符号变量z,用方括号包含多个条件 t = sym(t,{positive,rational}); %定义正有理数域上的符号变量t,用花括号包含多个条件 assumptionsans = [ in(z, integer), in(t, rational), in(x, real), 0 t, 0 y, 1 = z]注1:assumptions命令可以显示所有符号变量的数域,要显示某一个符号变量的数域可用assumptions(var)形式。注2:in(x,type)表示x是指定类型的逻辑条件。6.1 创建符号对象 6.1 创建符号对象方法二:用syms 命令。在命令行窗口输入下面的命令:syms x y integer syms z t positive rational %多个数域用空格分隔 assumptions ans = [ in(x, integer), in(y, integer), in(t, rational), in(z, rational), 0 t, 0 z

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档