符号计算研究报告

上传人:yulij****0329 文档编号:137929512 上传时间:2020-07-12 格式:PPT 页数:76 大小:407KB
返回 下载 相关 举报
符号计算研究报告_第1页
第1页 / 共76页
符号计算研究报告_第2页
第2页 / 共76页
符号计算研究报告_第3页
第3页 / 共76页
符号计算研究报告_第4页
第4页 / 共76页
符号计算研究报告_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《符号计算研究报告》由会员分享,可在线阅读,更多相关《符号计算研究报告(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 传递给

3、;swap是实现 f 和 g 功能的交换。 最后一行是对计算器自身进行操作。,Funtool计算器存有一张函数列表fxlist 这7个功能键分别是: Insert:把当前激活窗的函数写入列表 Cycle:依次循环显示fxlist中的函数 Delete:从fxlist列表中删除激活窗的函数 Reset:使计算器恢复到初始调用状态 Help:获得关于界面的在线提示说明 Demo:自动演示 Close:关闭整个计算器,泰勒级数逼近分析,该界面用于观察函数f(x)在给定区间被N阶泰勒多项式Tn(x)逼近的情况。 f(x)的输入可由命令taylortool(fx)引入,或者在栏中直接输入表达式,回车确定

4、。 N默认值为7,a是级数的展开点。 函数的观察区间默认为(-2pi,2pi)。,符号运算的功能,符号表达式、符号矩阵的创建 符号线性代数 因式分解、展开和简化 符号代数方程求解 符号微积分 符号微分方程,一、符号运算的基本操作,什么是符号运算 与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。,特点: 运算对象可以是没赋值的符号变量,以推理解析的方式进行,因此不受计算误差累积所带来的困扰。 可以给出完全正确的封闭解或任意精度的数值解(当封闭解不存在时)。 符号计算指令的调用简单,和经典教科书公式相近。 计算所需的时

5、间较长。 Symbolic Math Toolbox符号运算工具包通过调用Maple软件实现符号计算的。 Maple软件主要功能是符号运算,它占据符号软件的主导地位。,2. 字符串与符号变量、符号常量,字符串对象 f = sin(x)+5x f 字符串名 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 h whos 也可以查看所有变量类

7、型 从上述比较来看:当需要同时定义多个符号变量时,使用syms( )更简洁一些。,符号常量,当数值常量作为sym( )的输入参量时,就建立了一个符号对象符号常量。 虽然看上去是一个数值量,但已经是一个符号对象了。 例: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; f

8、2=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.符号矩阵的创建 数值矩阵 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

9、数值矩阵的 一个重要区别。,用字符串直接创建矩阵,模仿Matlab数值矩阵的创建方法 需保证同一列中各元素字符串有相 同的长度。,例:A = a,2*b; 3*a, 0 A = a, 2*b 3*a, 0, 符号矩阵的修改,a.直接修改 可用、 键找到所要修改的矩阵,直接修改 b.指令修改 用A1=subs(A, new, old)来修改,例如:A = a, 2*b 3*a, 0,A(2,2)=4*b A1 = 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/

10、3,2.5;1/0.7,2/5 A = 0.3333 2.5000 1.4286 0.4000 sym(A) ans = 1/3, 5/2 10/7, 2/5, 符号矩阵与数值矩阵的转换,将符号矩阵转化为数值矩阵 函数调用格式: numeric(A)? A = 1/3, 5/2 10/7, 2/5 numeric(A) ans = 0.3333 2.5000 1.4286 0.4000,由于Matlab7.0采用了重载技术,使得符号计算表达式的运算符和基本函数,无论在形状、名称上,还是在使用方法上,都与数值计算中的运算符和基本函数几乎完全相同。这无疑给用户带来了极大的方便。 例外:在符号对象的

11、比较中,没有”大于”、 ”大于等于”、 ”小于”、 ”小于等于”的概念,而只有是否“等于”的概念。,二、符号运算,1.符号矩阵运算,数值运算中,所有矩阵运算操作指令都比较直观、简单。例如:a=b+c; a=a*b ;A=2*a2+3*a-5等。 符号运算中,很多方面在形式上同数值计算都是相同的,没必要重新学习新的规则。,2. 任意精度的数学运算,在symbolic中有三种不同的算术运算: 数值类型 matlab的浮点算术运算 有理数类型 maple的精确符号运算 vpa类型 maple的任意精度算术 运算,浮点算术运算 format long (定义输出格式) 1/2+1/3 ans = 0.

12、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 = .8333333333333333333333333,vpa(5/6,40) ans = .8333333333333333333333333333333333333333 a=sym(1/4,exp(1);log(3),3/7) a = 1/4,exp

13、(1) log(3), 3/7 vpa(a,10) ans = .2500000000, 2.718281828 1.098612289, .4285714286,3.符号表达式的化简,可以对符号计算结果进行简化,诸如因式分解、同类项合并、符号表达式的展开、符号表达式的化简和通分等等。,合并同类项 collect(v) -将表达式v的相同次幂的项合并。 例:syms x t % 定义基本变量 f=(x-1)*(x-2)*(x-3) 定义符号表达式 collect(f) 合并f中x的同类项,expand(s) 将s中的各项进行展开,用于多项式,三角函数、指数函数、对数函数。 例:syms x y

14、; 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+6)/(x+2);sqrt(16) simplify(S),simple( ) 用几种不同的算术简化规则对符号表达式进行简化,使其用最少的字符来表示。 虽

15、然并非表达式中的字符越少,表达式就越简单,但采用这个标准往往能够得到满意的结果,尤其是对于包含三角函数的表达式。 例: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=diff(f) dfa=diff(f,a,2),4. 符号微积分与积分变换,符号表达式的极限,limit(F,x,a) 求当x

16、a时,表达式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 = NaN ans = -Inf ans = Inf,int(f) 对f表达式的缺省变量求不定积分 int(f,v) 对f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号