MATLAB8.5教程第4章符号计算.ppt

上传人:wuy****n92 文档编号:70793346 上传时间:2023-01-28 格式:PPT 页数:34 大小:293.50KB
返回 下载 相关 举报
MATLAB8.5教程第4章符号计算.ppt_第1页
第1页 / 共34页
MATLAB8.5教程第4章符号计算.ppt_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《MATLAB8.5教程第4章符号计算.ppt》由会员分享,可在线阅读,更多相关《MATLAB8.5教程第4章符号计算.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、MATLAB为符号计算提供了一种引入符号对象的数学运算工具箱,包含函数的复合、简化、极限、导数、积分,泰勒展开式、级数求和,以及求解代数方程和微分方程等函数命令。其计算指令的调用比较简单,基本上与数学函数表示法相同。本章重点本章重点符号对象的创建符号极限、导数、积分方程求解级数求和第四章 符号计算4.1 符号对象及其运算MATLAB 数值运算的对象是数值,而符号运算的对象则是非数值的符号对象,即非数值的符号字符串。在对所有包含字母变量的函数、表达式及矩阵等计算,都需要先定义符号对象,然后再对其做相应的运算处理。4.1.1 创建符号对象与表达式在MATLAB程序中,作为符号对象的符号常量、符号变

2、量、符号函数以及符号表达式,可以使用函数命令sym、syms 加以规定和创建的。格式:S=sym(A)%用输入参量A,构造一类型为“sym”的对象S。若A为字符串,则S为符号数值或变量;若A为一数值标量或矩阵,则S为代表所给数值的符号表达式x=sym(x)%创建一名字为“x”的符号变量,且将结果存于xpi=sym(pi)%创建一符号数值syms x y z%创建多个符号变量4.1.1 创建符号对象与表达式(1)直接使用sym函数建立符号表达式。【例4-1】sym创建法举例。A=sym(a b c d e f)A=a,b,c,d,e,f B=sym(1 2 3;a b c;sin(x)cos(y

3、)tan(z)B=1,2,3 a,b,c sin(x),cos(y),tan(z)4.1.1 创建符号对象与表达式(2)使用符号变量组建立符号表达式。【例4-2】syms创建法举例。syms a b c d C=a b;c d C=a,b c,d syms x y D=x2-2*y+1D=x2-2*y+14.1.2 符号表达式运算1四则运算符号表达式的四则运算与数值运算一样,用+、-、*、/、等运算符实现,其结果还是一个符号表达式。【例4-3】四则运算举例。f=sym(x2-2*x+1)g=sym(2*x2+3*x-2)f+gans=3*x2+x-1 f*gans=(x2-2*x+1)*(2*

4、x2+3*x-2)4.1.2 符号表达式运算2符号表达式的因式分解与展开格式 factor(s)%对符号表达式s分解因式 expand(s)%对符号表达式s进行展开 collect(s)%对符号表达式s合并同类型例如,对【例4-3】中的f、g符号表达式,则有 factor(g)ans=x+2,2*x-1%较早版本显示结果为(x+2)*(2*x-1)expand(f*g)ans=2*x4-x3-6*x2+7*x-2%collect(f*g)与expand(f*g)的结果相同4.1.2 符号表达式运算3书写格式美化格式:pretty(s)%把符号表达式s变成漂亮的形式【例4-4】书写美化形式举例。

5、syms x t f=(x2+x*exp(-t)+1)*(x+exp(-t)f1=collect(f)f1=x3+2*exp(-t)*x2+(exp(-2*t)+1)*x+exp(-t)pretty(f1)3 2x +exp(-t)x 2+(exp(-2 t)+1)x+exp(-t)4.1.2 符号表达式运算4符号表达式的化简格式:simplify(s)%对符号表达式s利用各种恒等式化简【例4-5】化简举例。s=sym(x3-1)/(x-1)simplify(s)ans=x2+x+1注:在较早版本中给出了simple格式,它显示的化简结果形式很多,但最终会选择一个含有最少字符的表达式显示出来。

6、但在本版本中此命令已被删除,并用simplify代替。4.1.2 符号表达式运算5符号表达式与数值表达式之间的转换利用函数sym可将数值表达式变换成符号表达式。例如:s1=sym(0.333333,0.666666)s1=0.333333,0.666666函数eval可以将符号表达式变换成数值表达式。例如:s2=sym(sqrt(3)+pi)s2=pi+3(1/2)v=eval(s2)v=4.87364.1.2 符号表达式运算6符号表达式中变量的确定格式:findsym(s,n)%返回s中的n个符号变量,若没有n,则返回s全部符号变量例如:syms a b c u v x y z s=a*x+

7、b*y+c*z+u+v findsym(s,2)ans=x,y findsym(s,4)ans=x,y,z,v注:上述查找是按字母顺序上最接近x的小写字符(除i、j外),若有两个变量与x距离相等,则按ASCII大者优先。4.1.2 符号表达式运算7反函数的运算格式:g=finverse(f)%求函数f的反函数。f为一符号表达式,x为单变量,函数g也是一个符号函数,且满足g(f(x)=xg=finverse(f,v)%返回函数表达式的自变量是v,v是符号变量。g的表达式要求满足g(f(x)=v。例如,syms x v f=cos(2*exp(x)g=finverse(f)g=log(pi+aco

8、s(x)/2)f=sin(v*x2)g=finverse(f,v)g=asin(v)/x24.1.2 符号表达式运算8复合函数的运算格式:compose(f,g)%返回f=f(x)和g=g(y)的复合函数f(g(y)。x是为findsym定义的f的符号变量,y是为findsym定义的g的符号变量compose(f,g,t)%返回f=f(x)和g=g(y)的复合函数f(g(t),返回的函数以t为自变量。x是为findsym定义的f的符号变量,y是为findsym定义的g的符号变量。例如,syms x y tf=1/(1+x2)g=sin(y)compose(f,g)ans=1/(sin(y)2+

9、1)compose(f,g,t)ans=1/(sin(t)2+1)4.2 符号极限在MATLAB中,利用函数limit来求表达式的极限。格式:limit(f,x,a)%计算符号表达式f=f(x)的极限值,当xa时limit(f,a)%用命令findsym(f)确定f中的自变量,设为变量x,再计算f的极限值,当xa时limit(f)%用命令findsym(f)确定f中的自变量,设为变量x,再计算f的极限值,当x0时limit(f,x,a,right)%计算符号函数f的右极限,当xa+时limit(f,x,a,left)%计算符号函数F的左极限,当xa-时4.3 符号导数当创建了符号表达式后,就可

10、以利用函数diff 对它们进行导数运算。格式:diff(f,x)%计算表达式f中指定符号变量x的1阶导数diff(f,x,n)%计算表达式f中指定符号变量x的n阶导数diff(f)%计算表达式f中指定符号变量x的1阶导数,其中x=findsym(f)diff(f,n)%计算表达式f中指定符号变量x的n阶导数,其中x=findsym(f)若要计算函数f在某一点a的导数,只需将上述求导结果中变量x代入数值a,再使用函数eval即可。4.4 符号积分用函数int来求符号表达式的积分,也可用函数quad计算数值积分。格式:R=int(f,x)%计算符号表达式f中指定的符号变量x不定积分,只是函数f的一

11、个原函数,后面没加任意常数CR=int(f)%计算符号表达式f中指定的符号变量x不定积分,其中 x=findsym(f)R=int(f,x,a,b)%计算符号表达式f中指定的符号变量x从a到b的定积分R=int(f,a,b)%计算符号表达式f中指定的符号变量x从a到b的定积分,其中x=findsym(f)R=quad(f,a,b)%计算函数表达式f中指定的变量x从a到b的数值积分4.5 符号级数符号工具箱提供了将函数展开为泰勒级数,或将级数进行求和的命令。1Taylor级数格式:T=taylor(f)%返回符号表达式f中符号变量x=0的5阶Maclaurin多项式近似式,其中x=findsym

12、(f)T=taylor(f,x)%返回符号表达式f中指定符号自变量x=0的5阶的Maclaurin多项式T=taylor(f,x,a)%返回符号表达式f中指定的符号自变量x=a点的5阶的Taylor级数T=taylor(f,x,a,Param1,val1,Param2,val2,.)其中,属性Param和值val可选择:ExpansionPoint(展开点为一数值,或者一向量);Order(阶数n,表示展开成n-1阶Taylor级数,默认值n=6);OrderMode(阶数模式,可选Relative 或 Absolute)。4.5 符号级数2级数和格式:S=symsum(f)%对符号表达式f中

13、的符号变量k(由命令findsym(f)确定的)从0到k-1求级数和S=symsum(f,x)%对符号表达式f中指定的符号变量x从0到k-1求级数和S=symsum(f,a,b)%对符号表达式f中的符号变量k(由命令findsym(f)确定的)从a到b求级数和S=symsum(f,x,a,b)%对符号表达式f中指定的符号变量x从a 到b求级数和4.6 代数方程的符号解一般代数方程包括线性、非线性和超越方程等,求解指令是solve。当方程组不存在符号解时,若又无其它自由参数,则solve 将给出数值解。格式:X=solve(eq)%eq可以是符号表达式或字符串,求解方程eq=0X=solve(e

14、q,var)%eq中指定的变量var,求解方程eq(var)=0X=solve(eq1,eq2,eqn)%对方程组eq1、eq2、eqn中n个变量求解,返回值X 是“结构对象”x1,x2,xn=solve(eq1,eq2,eqn)%返回的是x1、x2、xn的值说明:solve函数能求解一般的线性、非线性或超越代数方程。对于单个的方程或方程组,若不存在符号解,则返回方程(组)的数值解。4.7 常微分方程的符号解函数dsolve 用来求常微分方程的符号解。格式:r=dsolve(eq,cond,v)%对给定方程eq、边界条件cond和指定自变量v求解r=dsolve(eq1,eq2,cond1,c

15、ond2,v1,v2)说明:对给定的常微分方程组eq1,eq2,指定的符号自变量v1,v2,与给定的边界条件cond1,cond2,求符号解(即解析解)r。微分算子D:D=d/dx(一阶导数),D2=d2/dx2(二阶导数),;D、D2、后面的字母表示因变量,即待求解的未知数。初始和边界条件由字符串表示:y(a)=b,Dy(c)=d,D2y(e)=f。4.8 符号分析可视化MATLAB的符号数学工具箱为符号函数可视化提供了一组简便易用的指令。本节介绍可图示化的符号函数计算器界面和泰勒级数逼近分析界面。4.8.1 符号函数计算器界面图示化的符号函数计算器,是有指令funtool引导进入的分析界面

16、。它也可以处理导数、积分等问题,并将计算结果显示在图形窗口中。在MATLAB命令行窗口输入“funtool”命令,即可弹出图示化单变量符号函数计算器界面,它包括两个图形窗口(图4-1和图4-2)和一个函数运算控制窗口(图4-3)组成。两个图形窗口只有一个处于激活状态,并随着函数运算控制窗口的操作而变动。4.8.1 符号函数计算器界面图4-1 符号计算器函数f窗口图4-2符号计算器函数g窗口4.8.1 符号函数计算器界面图4-3 符号计算器funtool窗口在函数运算控制窗口上有许多按钮,可以显示两个由用户输入函数的计算结果,并且对函数f、g进行保存、更正、重新输入、联合与转换等操作。在函数运算

17、控制窗口上有许多按钮,可以显示两个由用户输入函数的计算结果,并且对函数f、g进行保存、更正、重新输入、联合与转换等操作。4.8.1 创建符号对象与表达式1输入框的功能控制窗口有4个文本框,分别是“f=”、“g=”、“x=”和“a=”。使用图示化符号函数计算器,就是对这四个框中输入相关的数据进行操作。“f=”文本框显示代表函数f的符号表达式,默认值为x,可以在该行输入有效的表达式来定义f,再按Enter键即可在显示f图形窗口中绘制出图形。“g=”文本框显示代表函数g的符号表达式,默认值为1,可以在该行输入有效的表达式来定义g,再按Enter键即可在显示g图形窗口中绘制出g的图形。“x=”文本框显

18、示用于函数f与g的绘制区间,它的默认值为-2*pi,2*pi,可根据需要输入不同的区间,按Enter键可改变显示图形。“a=”文本框显示一个用于改变函数f的常量因子,默认值为1/2,可输入不同的常数。4.8.1 创建符号对象与表达式2控制按钮的功能控制窗口有四行控制按钮,可以用来对函数进行运算操作。(1)运算操作按钮。控制窗口中的前三行操作按钮用于对在文本框中输入的函数进行各种操作,其中第1行的按钮用于f函数的操作;第2行的按钮用于函数f和常数a之间的操作,第3行的按钮用于函数f和g之间的操作。(2)系统操作按钮。控制窗口中的第4行的操作按钮用于控制进行函数计算的各种操作。4.8.2 泰勒级数

19、逼近分析界面泰勒级数逼近分析界面是由指令funtool引导进入的分析界面,主要显示将任意函数f(x)在给定区间上被N阶泰勒多项式逼近的可视化图形。在MATLAB命令行窗口输入“taylortool”命令,即可弹出泰勒级数逼近分析界面,其默认状态界面如下图所示。4.8.2 泰勒级数逼近分析界面此窗口由用户输入部分(包括函数、阶数、展开点、观察区域)和显示部分(包括泰勒级数逼近曲线和泰勒多项式)组成。其中:函数f(x)可直接在界面上输入表达式,然后按Enter即可;阶数N默认值为7,可以用其右侧的加减按钮改变阶数,或直接写入阶数也可;界面上的a是级数的展开点,默认值为0,可直接写入用户自己选择的展

20、开点值;函数的观察区(x的范围)设置为(-2,2);Taylor series approximation中蓝色线为理论曲线,红色线为泰勒展开式拟合的曲线;TN(x)为泰勒展开式的多项式表达式。4.9 综合实例本章实例首先给出求圆周率近似值的方法,其次介绍一个求解产品市场占有率的方法,并引入一个符号变量,观察企业采取的市场策略是否达到预期效果。4.9.1 求圆周率的近似值4.9.1 求圆周率的近似值4.9.2 市场占有率预测市场占有率表示某产品品牌的销售量占在总行业销售量的比率,可以直接反映出企业的竞争能力。若产品在市场上长期销售,其市场占有率基本上处于稳定状态,企业可根据此市场占有率安排生产计划,制造产品数量,在销售量不受影响的情况下,减少库存量,以保证企业利润最大化。市场长期稳定下去的市场占有率可以利用随机过程中马氏链原理来讨论,其具体计算方法实际上就是解线性方程组,其解就是所要求的市场占有率。4.9.2 市场占有率预测【例4-38】设有甲、乙、丙3家企业在市场上销售同一种生活必需品,顾客购买这三家生活用品的倾向如表4-1所示,试求当顾客流如此长期稳定下去市场占有率的分布。表4-1 用户可能流动情况表4.9.2 市场占有率预测

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁