【教学课件】第三讲MATLAB的符号运算.ppt
《【教学课件】第三讲MATLAB的符号运算.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第三讲MATLAB的符号运算.ppt(76页珍藏版)》请在三一办公上搜索。
1、第三讲 MATLAB的符号运算,科学与工程技术中的数值运算固然重要,但自然科学理论分析中各种各样的公式、关系式及其推导就是符号运算要解决的问题。在Matlab7.0中,符号计算虽以数值运算的补充身份出现,但它们都是科学计算研究的重要内容。Matlab开发了实现符号计算的工具包Symbolic Math Toolbox。,符号数学工具箱中的工具是建立在功能强大的Maple的基础上。它最初是由加拿大的滑铁卢(Waterloo)大学开发出来的。如果要求Matlab7.0进行符号运算,那么首先由Maple计算并将结果返回到Matlab7.0命令窗口。,两个数学分析的可视化界面,图示化符号计算器(由命令
2、funtool引出)泰勒级数逼近分析界面(由命令taylortool引出),图示化符号计算器,由三个独立的窗口构成,通过函数运算控制窗口来演示另外两个图形窗口,任何时候,只有一个窗口属于激活状态。而被激活的函数图像可随运算控制窗口的操作而做相应的变化。下面给出运算控制窗口的键位功能。,前两行是函数 f 和 g 的具体解析式,第三行是自变量 x 的取值范围和常数 a 的值。第四行只对 f 起作用,如求导、积分、简化、提取分子和分母、倒数、反函数。第五行是处理 f 和 a 的加减乘除等运算。第六行前四个进行 f 和 g 之间的运算,后三个分别是:求复合函数;把 f 传递给;swap是实现 f 和
3、g 功能的交换。最后一行是对计算器自身进行操作。,Funtool计算器存有一张函数列表fxlist 这7个功能键分别是:Insert:把当前激活窗的函数写入列表Cycle:依次循环显示fxlist中的函数Delete:从fxlist列表中删除激活窗的函数Reset:使计算器恢复到初始调用状态Help:获得关于界面的在线提示说明Demo:自动演示Close:关闭整个计算器,泰勒级数逼近分析,该界面用于观察函数f(x)在给定区间被N阶泰勒多项式Tn(x)逼近的情况。f(x)的输入可由命令taylortool(fx)引入,或者在栏中直接输入表达式,回车确定。N默认值为7,a是级数的展开点。函数的观察
4、区间默认为(-2pi,2pi)。,符号运算的功能,符号表达式、符号矩阵的创建符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程,一、符号运算的基本操作,什么是符号运算与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。,特点:运算对象可以是没赋值的符号变量,以推理解析的方式进行,因此不受计算误差累积所带来的困扰。可以给出完全正确的封闭解或任意精度的数值解(当封闭解不存在时)。符号计算指令的调用简单,和经典教科书公式相近。计算所需的时间较长。Symbolic Math Toolbox符号运算工具包通过调
5、用Maple软件实现符号计算的。Maple软件主要功能是符号运算,它占据符号软件的主导地位。,2.字符串与符号变量、符号常量,字符串对象 f=sin(x)+5xf 字符串名sin(x)+5x 函数表达式 字符串标识字符串表达式一定要用 单引号括起来Matlab才能识别。用class()来返回对象的数据类型。,里的内容可以是函数表达式,也可以是方程。例:f1=a*x2+b*x+c 二次三项式 f2=a*x2+b*x+c=0 方程 f3=Dy+y2=1 微分方程函数表达式或方程可以赋给字符串或符号变量,以后方便调用。,符号变量,符号变量是内容可变的符号对象。符号变量通常是指一个或几个特定的字符,不
6、是指符号表达式,甚至可以将一个符号表达式赋值给一个符号变量。符号变量有时也称自由变量,它的命名规则和数值变量的命名规则相同。相关指令为:sym()和 syms()(symbolic的缩写),例:用函数命令sym()和syms()来创建符号对象并检测数据类型。a=sym(a)注意两个 a的区别b=sym(c)classa=class(a)classb=class(b)可看出两个变量均为符号对象syms a b c d e f g hwhos 也可以查看所有变量类型从上述比较来看:当需要同时定义多个符号变量时,使用syms()更简洁一些。,符号常量,当数值常量作为sym()的输入参量时,就建立了一
7、个符号对象符号常量。虽然看上去是一个数值量,但已经是一个符号对象了。例:a=3/4;b=3/4;c=sym(3/4);d=sym(3/4);whos 查看变量类型a为实双精度浮点数值类型;b为实字符类型;c和d都是符号对象类型。,由符号变量构成的符号函数和符号方程,符号表达式是由符号常量、符号变量、符号函数运算符以及专用函数连接起来的符号对象。包括:符号函数和符号方程。判断看带不带等号。例:syms x y z;f1=x*y/z;f2=x2+y2+z2;f3=f1/f2;e1=sym(a*x2+b*x+c)e2=sym(sin(x)2+2*cos(x)=1)e3=sym(Dy-y=x),3.符
8、号矩阵的创建 数值矩阵 clear clc A=1,2;3,4 A=a,b;c,d 不识别用Matlab函数sym创建矩阵命令格式:A=sym()符号矩阵内容同数值矩阵 需用sym指令定义,需用 标识 注意与a,b;c,d的区别,例如:A=sym(a,2*b;3*a,0)A=a,2*b 3*a,0 这就完成了一个符号矩阵的创建。注意:符号矩阵的每一行的两端都有方 括号,这是与 Matlab数值矩阵的 一个重要区别。,用字符串直接创建矩阵,模仿Matlab数值矩阵的创建方法 需保证同一列中各元素字符串有相 同的长度。,例:A=a,2*b;3*a,0 A=a,2*b 3*a,0,符号矩阵的修改,a
9、.直接修改 可用、键找到所要修改的矩阵,直接修改 b.指令修改 用A1=subs(A,new,old)来修改,例如:A=a,2*b 3*a,0,A(2,2)=4*bA1=a,2*b 3*a,4*b,A2=subs(A1,c,b)A2=a,2*c 3*a,4*c,将数值矩阵转化为符号矩阵 函数调用格式:sym(A)clear A=1/3,2.5;1/0.7,2/5A=0.3333 2.5000 1.4286 0.4000sym(A)ans=1/3,5/210/7,2/5,符号矩阵与数值矩阵的转换,将符号矩阵转化为数值矩阵函数调用格式:numeric(A)?A=1/3,5/210/7,2/5num
10、eric(A)ans=0.3333 2.5000 1.4286 0.4000,由于Matlab7.0采用了重载技术,使得符号计算表达式的运算符和基本函数,无论在形状、名称上,还是在使用方法上,都与数值计算中的运算符和基本函数几乎完全相同。这无疑给用户带来了极大的方便。例外:在符号对象的比较中,没有”大于”、”大于等于”、”小于”、”小于等于”的概念,而只有是否“等于”的概念。,二、符号运算,1.符号矩阵运算,数值运算中,所有矩阵运算操作指令都比较直观、简单。例如:a=b+c;a=a*b;A=2*a2+3*a-5等。符号运算中,很多方面在形式上同数值计算都是相同的,没必要重新学习新的规则。,2.
11、任意精度的数学运算,在symbolic中有三种不同的算术运算:数值类型 matlab的浮点算术运算有理数类型 maple的精确符号运算vpa类型 maple的任意精度算术 运算,浮点算术运算format long(定义输出格式)1/2+1/3 ans=0.83333333333333符号运算sym(1/2)+(1/3)或sym(1/2+1/3)ans=5/6 精确解,任意精度算术运算digits(n)设置近似解的精读为n位有效数字,默认32位有效数字。vpa(x,n)求符号解的近似解,该近似解的有效位数由n来决定。digits(25)vpa(1/2+1/3)ans=.8333333333333
12、333333333333,vpa(5/6,40)ans=.8333333333333333333333333333333333333333 a=sym(1/4,exp(1);log(3),3/7)a=1/4,exp(1)log(3),3/7vpa(a,10)ans=.2500000000,2.7182818281.098612289,.4285714286,3.符号表达式的化简,可以对符号计算结果进行简化,诸如因式分解、同类项合并、符号表达式的展开、符号表达式的化简和通分等等。,合并同类项 collect(v)-将表达式v的相同次幂的项合并。例:syms x t%定义基本变量 f=(x-1)*
13、(x-2)*(x-3)定义符号表达式 collect(f)合并f中x的同类项,expand(s)将s中的各项进行展开,用于多项式,三角函数、指数函数、对数函数。例:syms x y;f=(x+y)3;f1=expand(f)f1=x3+3*x2*y+3*x*y2+y3例:h=cos(x-y)expand(h),factor(S)将系数为有理数的多项式(矩阵)S,表示成低阶多项式相乘的形式,如果不能分解,则返回S本身。例:syms x y factor(x3-y3)simplify()该函数是一个强有力的具有普遍意义的工具,它利用Maple化简规则对表达式进行简化。例:S=sym(x2+5*x+
14、6)/(x+2);sqrt(16)simplify(S),simple()用几种不同的算术简化规则对符号表达式进行简化,使其用最少的字符来表示。虽然并非表达式中的字符越少,表达式就越简单,但采用这个标准往往能够得到满意的结果,尤其是对于包含三角函数的表达式。例:sym x simple(cos(x)2+sin(x)2)从结果看出,simple比较这些不同函数的结果,最终把最少字符作为标准。,diff(f)对缺省变量求f的微分diff(f,v)对指定变量v求微分diff(f,n)对默认变量求n阶微分diff(f,v,n)对指定变量v求f的n阶微分例:syms a x f=sin(a*x)df=d
15、iff(f)dfa=diff(f,a,2),4.符号微积分与积分变换,符号表达式的极限,limit(F,x,a)求当xa时,表达式F的极限limit(F,a)默认自变量时,趋于a的极限limit(F)默认自变量,默认a=0 limit(F,x,a,left)取F的左极限limit(F,x,a,right)取F的右极限例:syms h n x dc=limit(sin(x+h)-sin(x)/h,h,0)%按照导数的定义求sin的导数,注意:对于极限不存在,返回NaN例:limit(1/x,x,0)limit(1/x,x,0,left)limit(1/x,x,0,right)结果分别为:ans=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第三 MATLAB 符号 运算
链接地址:https://www.31ppt.com/p-5661267.html