文档详情

matlab符号运算讲诉.ppt

发布:2017-01-10约5.99千字共46页下载文档
文本预览下载声明
第三讲 MATLAB的符号运算 —— matlab 不仅具有数值运算功能,还开发了在matlab环境下实现符号计算的工具包Symbolic Math Toolbox 一、符号运算入门 从上面的例子可以看出,matlab符号运算的主要对象是没有赋值的变量,得到的结果也是文字符号。符号运算是数学理论中的主要运算方式。 与数值运算的区别 ※ 数值运算中必须先对变量赋值,然后才能参与运算。 ※ 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。 一、符号对象的创建 1、创建符号常量 符号常量是不含变量的符号表达式,用sym命令来创建符号常量。 语法:sym(‘常量’) 例:a=sym(‘sin(2)’) a= sin(2) 1、创建符号常量 Sym命令也可以把数值转换成某种格式的符号常量; 语法:sym(常量,参数) 说明:参数可以选择为:’d’,’f’,’e’或’r’,也可以省略。 d—— 返回最接近的十进制数值(默认32位) f—— 返回最接近的符号表示 r——返回最接近的有理数(为系统默认方式) e——返回最接近的带有机器浮点误差的有理值 1、创建符号常量 例:a1=2*sqrt(5)+pi a2=sym(‘2*sqrt(5)+pi’) a3=sym(2*sqrt(5)+pi) a4=sym(2*sqrt(5)+pi,’d’) a5=‘2*sqrt(5)+pi’ 看看结果有什么不一样?再查看一下各变量的数据类型和存储空间 2、创建符号变量和表达式 (1)使用sym命令创建符号变量和表达式; 语法:创建符号变量:sym(‘arg’,’参数’) 创建符号表达式:sym(‘表达式’) 说明:参数用来设置限定符号变量的数学特性,可以选择为:’positive’,’real’,’unreal’表示:正,实和非实。不限定可以省略。 2、创建符号变量和表达式 例:x=sym(‘x’,’real’) y=sym(‘y’,’real’) z=x+i*y real(z) x=sym(‘x’,’unreal’) real(z) 比较一下两个real(z)命令的结果有什么不同?为什么呢? 2、创建符号变量和表达式 例:f1=sym(‘a*x^2+b*x+c’) f1= a*x^2+b*x+c 上面的语句只创建了f1的符号表达式,没有创建符号变量。 也可以用sym命令定义符号变量后,利用符号变量的计算来生成符号表达式。(怎么在matlab中实现?) 2、创建符号变量和表达式 (2)使用syms命令创建符号变量和符号表达式: 语法:syms(‘arg1’,’arg2’,…,参数) 也可以简写为:syms arg1 arg2 … 参数 说明:参数设置与sym命令相同。 该命令可以一次创建多个符号变量 2、创建符号变量和表达式 例:syms a b c x f2=a*x^2+b*x+c syms(‘a’,’b’,’c’,’x’) f3=a*x^2+b*x+c 上面的语句即创建了符号变量a,b,c,x,又创建了符号表达式,f1,f2,f3符号表达式相同。 3、符号矩阵 用sym和syms命令都可以创建符号矩阵: 例:A=sym(‘[a,b;c,d]’)和 syms a b c d A=[a,b;c,d]都可以得到下面的结果 A= [a,b] [c,d] 3、符号矩阵 考察并思考下面语句的结果: B=‘[a,b;c,d]’ 可以把字符串矩阵转换为符号矩阵: C=sym(B) whos看看结果? 三、符号形式与数值形式之间的转换 1、将符号形式转换为数值形式: 主要利用函数eval和numeric来实现 r=sym(‘(1+sqrt(5))/2’),运行后屏幕显示: r =(1+sqrt(5))/2,是一个符号常量。 利用命令eval(r)或者是numeric(r)可以将符号常量转化为数值。看看matlab中可以得到什么结果? 另外还有一个函数sym2poly,实现将多项式转化为它对应的系数向量时也很有用。 例如:已知多项式x3-4x+5 输入 syms x p=x^3-4*x+5 可以得到一个符号多项式; 运行命令sym2poly(p) 可以把该多项式的系数提取出来,做成一个向量。 2、将数值形式转化为符号形式 主要是利用sym函数来实现 例如:p=3.1416 q=sym(p) 看看得到什么结果?
显示全部
相似文档