第3章矩阵、数组和符号运算 、符号及运算 掌握内容: (1)了解 MATLAB6.0的符号变量,掌握 MATLAB符 号表达式、符号矩阵的两种创建方法 (2)掌握 MATLAB符号数学函数的创建 (3)掌握符号矩阵的基本运算及 MATLAB关于不同精度 的控制方法 (4)掌握符号微积分内容,包括求函数的极限、对符号表 达式求导数和微分、符号积分、符号求和、傅立叶变换及 其逆变换等。 (5)掌握各种符号方程的求解方法和函数命令 (6)了解 MATLAB可视化的符号函数分析界面及使用 (7)初步了解 MAPLE的符号资源
第3章 矩阵、数组和符号运算 二、符号及运算 掌握内容: (1)了解 MATLAB 6.0 的符号变量,掌握 MATLAB 符 号表达式、符号矩阵的两种创建方法。 (2)掌握 MATLAB 符号数学函数的创建。 (3)掌握符号矩阵的基本运算及MATLAB 关于不同精度 的控制方法。 (4)掌握符号微积分内容,包括求函数的极限、对符号表 达式求导数和微分、符号积分、符号求和、傅立叶变换及 其逆变换等。 (5)掌握各种符号方程的求解方法和函数命令。 (6)了解 MATLAB 可视化的符号函数分析界面及使用。 (7)初步了解MAPLE 的符号资源
第3章矩阵、数组和符号运算 抽象运算:公式推导、因式分解、求解代数方程或微分方 程的精确解 符号数学工具箱 )通过基本符号数学工具箱的专用函数; ◆符号表达式和符号矩阵的操作; ◆多项式的化简、展开和代入; ◆线性代数; ◆微积分; ◆符号方程的求解; ◆特殊的数学函数。 2)通过 maple.m、mpa.m两个专门设计的M文件进行 符号运算; 3)通过 MATLAB中的函数计算器( Function Caculator)
第3章 矩阵、数组和符号运算 抽象运算:公式推导、因式分解、求解代数方程或微分方 程的精确解 符号数学工具箱 1)通过基本符号数学工具箱的专用函数; ◆符号表达式和符号矩阵的操作; ◆多项式的化简、展开和代入; ◆线性代数; ◆微积分; ◆符号方程的求解; ◆特殊的数学函数。 2)通过 maple.m、mpa.m 两个专门设计的 M 文件进行 符号运算; 3) 通过 MATLAB 中的函数计算器(Function Caculator)
第3章矩阵、数组和符号运算 1、符号变量的创建 a.sym函数 S=sym(arg),从表达式arg创建一个sym对象S x=Sym(x) X=sym(x,’rea”) x=sym(∵x',’ unrea)一附加属性 X=sym(x,’ positive”) pl=sym( pi') delta= sym(1/10) S=sym(A,lag),将数值或矩阵转化为符号形式 其中nag选项有四项参数’f,’r,'e’和’d’,'r'为缺省项, f”:代表十六进制浮点形式; r’:代表有理数形式 e’:估计误差 d’:表示十进制小数
第3章 矩阵、数组和符号运算 1、符号变量的创建 a. sym 函数 S=sym(arg) ,从表达式arg 创建一个sym 对象 S x=sym(’x’) x = sym(’x’,’real’) x = sym(’x’,’unreal’) 附加属性 x = sym(’x’,’positive’) pi = sym(’pi’) delta = sym(’1/10’) S = sym(A, flag) ,将数值或矩阵转化为符号形式 其中 flag 选项有四项参数’f’,’r’, ’e’ 和 ’d’,’r’为缺省项。 ’f’:代表十六进制浮点形式; ’r’:代表有理数形式; ’e’:估计误差; ’d’:表示十进制小数
第3章矩阵、数组和符号运算 >>A=[2/5,40.78,sqr(23)30.330331og(4)%输入数值矩阵A A= 0.40005.12821.5986 0.33000.33331.3863 >>FA=sym(A)%将数值矩阵A转化为符号矩阵FA FA= 2/5 200/39 sqrt(23/9)] 33/100 333310000,6243314768165359*2^(-52) 不管数值矩阵的元素是以分数或是浮点数表示,转换后 的符号矩阵都将以最接近有理式的形式给出。 b. syms函数 syms argl arg2 > syms abcxy
第3章 矩阵、数组和符号运算 >> A=[2/5,4/0.78,sqrt(23)/3;0.33,0.3333,log(4)] %输入数值矩阵A A = 0.4000 5.1282 1.5986 0.3300 0.3333 1.3863 >> FA=sym(A) %将数值矩阵A转化为符号矩阵FA FA = [ 2/5, 200/39, sqrt(23/9)] [ 33/100, 3333/10000, 6243314768165359*2^(-52)] 不管数值矩阵的元素是以分数或是浮点数表示,转换后 的符号矩阵都将以最接近有理式的形式给出。 b. syms 函数 syms arg1 arg2 ... >> syms a b c x y
第3章矩阵、数组和符号运算 2、符号表达式和矩阵的创建 a字符串直接输入创建 >符号表达式和符号方程对空格很敏感。因此,在创建 符号表达式或符号方程时,不要在字符间任意加空格符; >符号计算中出现的数字也是当作符号处理的; >>f=a*x^2+b*x+c f a*x2+b*x+c >f=a*x^2+b*x+c=0 f: a*x^2+b*x+C=0
2、符号表达式和矩阵的创建 a.字符串直接输入创建 ➢符号表达式和符号方程对空格很敏感。因此,在创建 符号表达式或符号方程时,不要在字符间任意加空格符; ➢符号计算中出现的数字也是当作符号处理的; >> f='a*x^2+b*x+c' f = a*x^2+b*x+c >> f='a*x^2+b*x+c=0' f = a*x^2+b*x+c=0 第3章 矩阵、数组和符号运算
第3章矩阵、数组和符号运算 这种方法输入符号矩阵与字符串矩阵的输入相似。但要 保证在同一列中各元素字符串有同样的长度,在较短的字 符串前后用空格符填充; 这种方法要求符号矩阵每一行的两端都有方括号,而字 符串矩阵仅在首尾有方括号。 >B=[4+xx^2x];x^35*x-3x*al] B [4+xx2x] [x^35*x-3x*a]
第3章 矩阵、数组和符号运算 ➢这种方法输入符号矩阵与字符串矩阵的输入相似。但要 保证在同一列中各元素字符串有同样的长度,在较短的字 符串前后用空格符填充; ➢这种方法要求符号矩阵每一行的两端都有方括号,而字 符串矩阵仅在首尾有方括号。 >> B=['[4+x x^2 x ]';'[x^3 5*x-3 x*a]'] B = [4+x x^2 x ] [x^3 5*x-3 x*a]
第3章矩阵、数组和符号运算 b由sm命令创建 >> fsymfa*x2+b*x+c) a*x2+b*x+c > fl=sym(a*x 2+b*x+c=0") f1 a*x^2+b*x+C=0 >>A=sym([4+x,x^2,xx^3,5*x-3,x*a]) A 4+x,x^2,x X^3.5*x-3.x
第3章 矩阵、数组和符号运算 b.由sym 命令创建 >> f=sym('a*x^2+b*x+c') f = a*x^2+b*x+c >> f1=sym('a*x^2+b*x+c=0') f1 = a*x^2+b*x+c=0 >> A=sym('[4+x, x^2, x;x^3, 5*x-3, x*a]') A = [ 4+x, x^2, x] [ x^3, 5*x-3, x*a]
第3章矩阵、数组和符号运算 c.由syms命令创建 > syms x a b c >>f=a*x2+b*X+c f a *x2+b*X+c > syms x a >>B=4+xx^2xx^35*x-3x*a B 4+x,x^2,x] x^3,5*x-3,x*a] 不能创建符号方程
第3章 矩阵、数组和符号运算 c.由 syms 命令创建 >> syms x a b c >> f=a*x^2+b*x+c f = a*x^2+b*x+c >> syms x a >> B=[4+x x^2 x;x^3 5*x-3 x*a] B = [ 4+x, x^2, x] [ x^3, 5*x-3, x*a] 不能创建符号方程
第3章矩阵、数组和符号运算 3、数字矩阵和符号矩阵的转换 MATLAB中的数值型、字符型和符号型三种数据类型 中数值变量级别最低,字符变量级别居中,符号变量级别 最高; 三种变量参与的混合运算,系统将会把所有参与运算的 变量自动统一转换为变量等级最高的类型,然后进行计算; 可以通过命令来完成对不同数据类型之间的转换,大致 可以分为三种情况: 转换为数值变量: double,st2 num,numeric 转化为符号变量:sm 转化为字符变量:int2str,num2str
第3章 矩阵、数组和符号运算 3、数字矩阵和符号矩阵的转换 ➢MATLAB 中的数值型、字符型和符号型三种数据类型 中数值变量级别最低,字符变量级别居中,符号变量级别 最高; ➢三种变量参与的混合运算,系统将会把所有参与运算的 变量自动统一转换为变量等级最高的类型,然后进行计算; ➢可以通过命令来完成对不同数据类型之间的转换,大致 可以分为三种情况: 转换为数值变量: double, str2num,numeric 转化为符号变量:sym 转化为字符变量:int2str, num2str
第3章矩阵、数组和符号运算 4、 MATLAB关于不同精度的控制 针对浮点运算的数值算法 计算速度最快,占用计算机内存最少的算法,与C FORTRAN语言中的浮点运算算法完全相同。在机器内 的表达和计算都是一个被“截断”的8位浮点近似值。 针对精确运算的符号算法 计算时间最长,内存占用最多,精度也最高。 任意精度的算法 运算时间、内存占用和计算精度均介于以上两种运算之间 采用函数 digits来控制十进制结果的有效位数。 digits的 缺省值为32,大约对应于浮点精度 符号数学工具箱中,用vpa函数执行任意精度运算
第3章 矩阵、数组和符号运算 4、MATLAB 关于不同精度的控制 ➢针对浮点运算的数值算法 计算速度最快,占用计算机内存最少的算法,与 C、 FORTRAN 语言中的浮点运算算法完全相同。在机器内 的表达和计算都是一个被“截断”的8位浮点近似值。 ➢针对精确运算的符号算法 计算时间最长,内存占用最多,精度也最高。 ➢任意精度的算法 运算时间、内存占用和计算精度均介于以上两种运算之间。 采用函数 digits 来控制十进制结果的有效位数。digits 的 缺省值为 32,大约对应于浮点精度。 符号数学工具箱中,用 vpa 函数执行任意精度运算