《新编MATLAB&Simulink自学一本通》课件第9章 符号计算.pptx

上传人(卖家):momomo 文档编号:5716806 上传时间:2023-05-05 格式:PPTX 页数:27 大小:162.31KB
下载 相关 举报
《新编MATLAB&Simulink自学一本通》课件第9章 符号计算.pptx_第1页
第1页 / 共27页
《新编MATLAB&Simulink自学一本通》课件第9章 符号计算.pptx_第2页
第2页 / 共27页
《新编MATLAB&Simulink自学一本通》课件第9章 符号计算.pptx_第3页
第3页 / 共27页
《新编MATLAB&Simulink自学一本通》课件第9章 符号计算.pptx_第4页
第4页 / 共27页
《新编MATLAB&Simulink自学一本通》课件第9章 符号计算.pptx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、2023-5-5主要内容主要内容符号对象和符号表达式符号对象和符号表达式 符号微积分符号微积分符号方程求解符号方程求解 2023-5-5符号计算特点符号计算特点1.计算精确计算精确2.可应用范围有限可应用范围有限符号计算基于数学公式、定理并通过一系列推理、演符号计算基于数学公式、定理并通过一系列推理、演绎得到方程的解或者数学表达式的值。对操作对象不绎得到方程的解或者数学表达式的值。对操作对象不进行离散化和近似化处理。进行离散化和近似化处理。实际科研和生产中遇到的问题绝大多数都无法获得精确实际科研和生产中遇到的问题绝大多数都无法获得精确的符号解,这时我们不得不求助数值计算的符号解,这时我们不得不

2、求助数值计算。3.对待符号计算态度对待符号计算态度用其来完成公式推导和解决简单的对计算时效性要求不用其来完成公式推导和解决简单的对计算时效性要求不高的问题,综合符号计算和数值计算各自的优点,视问高的问题,综合符号计算和数值计算各自的优点,视问题特点混合使用符号计算和数值计算。题特点混合使用符号计算和数值计算。2023-5-5第一节第一节 符号对象和符号表达式符号对象和符号表达式 2023-5-5一、符号对象的创建一、符号对象的创建运行下列代码,体会符号对象的创建方法和特点。运行下列代码,体会符号对象的创建方法和特点。a=sym(5);b=sym(b);syms c d e;whos从以上代码运

3、行结果可以看出,要生成一个符号对象,可以利用从以上代码运行结果可以看出,要生成一个符号对象,可以利用sym以及以及syms函数,函数,sym可以生成单个符号对象,而可以生成单个符号对象,而syms可以生可以生成多个符号对象,符号对象的运算是完全精确的,没有舍入误差。成多个符号对象,符号对象的运算是完全精确的,没有舍入误差。2023-5-5二、符号表达式二、符号表达式确定一个符号表达式中的符号变量可以用确定一个符号表达式中的符号变量可以用findsym函数:函数:创建了符号对象,我们就可以创建各种各样的符号表达式。譬如,创建了符号对象,我们就可以创建各种各样的符号表达式。譬如,创建符号变量创建符

4、号变量a,b,c后如下都是符号表达式:后如下都是符号表达式:z1=a+b+c;z2=sin(a+b+c);z3=ab*gamma(c);findsym(expr)findsym(expr,n)第一种第一种用法是确认表达式用法是确认表达式expr中所有自由符号变量,第二种用法是从表达式中所有自由符号变量,第二种用法是从表达式expr中确认出距离中确认出距离x最近的最近的n个符号变量。这个最近距离指的是变量第一个字个符号变量。这个最近距离指的是变量第一个字符和符和x的的ASCII码值之差的绝对值,差绝对值相同时,码值之差的绝对值,差绝对值相同时,ASCII码值大的字符优码值大的字符优先。先。202

5、3-5-5三、运算符三、运算符MATLAB采用了重载(采用了重载(Overload)技术,使得用来构成)技术,使得用来构成符号表达式的运算符,无论在拼写还是在使用方法上,都符号表达式的运算符,无论在拼写还是在使用方法上,都与数值计算中的算符完全相同。譬如与数值计算中的算符完全相同。譬如“+”,“-”,“*”,“”,“/”,“”等等符号对象的比较中,没有符号对象的比较中,没有“大于大于”、“大于等于大于等于”,“小小于于”,“小于等于小于等于”的概念,而只有是否的概念,而只有是否“等于等于”的概念,的概念,即即“=”与与“=”。如果要判断两个符号数值的大小一般。如果要判断两个符号数值的大小一般来

6、说有两种办法,一种是利用来说有两种办法,一种是利用double将其转化成数值型的,将其转化成数值型的,另一种是利用另一种是利用sort+“=”或或“=”,譬如下面代码:,譬如下面代码:2023-5-5三、运算符三、运算符 a=sym(2);b=sym(3);double(a)sa=sort(b,a)sa=2,3 a=sa(1)ans=1 从上述代码可以看出,上述两种方法都间接实现了判断大小。从上述代码可以看出,上述两种方法都间接实现了判断大小。2023-5-5四、符号计算与数值计算结合四、符号计算与数值计算结合利用符号计算得到结果时,有时需要将其转化成数值型的以便后续数利用符号计算得到结果时,

7、有时需要将其转化成数值型的以便后续数值计算利用。值计算利用。通过符号计算得到一个表达式时,想把它转化成关于其中某个变量的通过符号计算得到一个表达式时,想把它转化成关于其中某个变量的数值函数。数值函数。format long a=vpa(pi,30)a=3.14159265358979323846264338328 a1=double(a)a1=3.141592653589793 a2=eval(a)a2=3.1415926535897932023-5-5四、符号计算与数值计算结合四、符号计算与数值计算结合 a3=single(a)a3=3.1415927 a4=int8(a)a4=3 whos

8、 Name Size Bytes Class Attributes a 1x1 118 sym a1 1x1 8 double a2 1x1 8 double a3 1x1 4 single a4 1x1 1 int8 上述是对符号数值对象向数值对象转化的讨论,很多时候我们需要求符号表达上述是对符号数值对象向数值对象转化的讨论,很多时候我们需要求符号表达式在不同的参数值下的具体值,说通俗点就是如何把具体的参数代入符号表达式在不同的参数值下的具体值,说通俗点就是如何把具体的参数代入符号表达式。这时候可以利用式。这时候可以利用eval和和subs函数或者转化成匿名函数函数或者转化成匿名函数 202

9、3-5-5四、符号计算与数值计算结合四、符号计算与数值计算结合【例例9.1-2】已知已知,求其二阶导数在,求其二阶导数在处的处的值。值。syms xf=sin(xx/x2/exp(x);d2f=diff(f,x,2);%利用符号计算求利用符号计算求f(x)的二阶导数的二阶导数%第一种方法:利用第一种方法:利用subs函数求函数求d2f在在x=1时的值。时的值。d2fx1=subs(d2f,x,1)d2fx1=2.20822sinxxxfxx e1x 2023-5-5四、符号计算与数值计算结合四、符号计算与数值计算结合%第二种方法:第二种方法:x赋值赋值1后,利用后,利用eval函数求函数求d2

10、f在在x=1时的值时的值x=1;eval(d2f)ans=2.2082%第三种方法:将第三种方法:将d2f转化成匿名函数,求其在转化成匿名函数,求其在x=1时的值时的值F=eval(x),vectorize(char(d2f);F(1)ans=2.2082 2023-5-5第二节第二节 符号微积分符号微积分 2023-5-5一、极限、导数和级数的符号计算一、极限、导数和级数的符号计算 1.极限极限 【例例9.2-1】求下列极限:求下列极限:syms n limit(n(n+1/2)/(exp(n)*gamma(n+1),n,inf)ans=1/(2*pi)(1/2)MATLAB中中gamma函

11、数即数学上的函数即数学上的gamma函数,有如下性质:函数,有如下性质:gamma(n+1)=n!上述极限即著名的上述极限即著名的stirling公式,当公式,当n趋近无穷时:趋近无穷时:12lim!nnnne n !2nnnn en2023-5-5一、极限、导数和级数的符号计算一、极限、导数和级数的符号计算 2.求导数求导数 【例例9.2-2】,求,求 。本例目。本例目的:演示求导运算是对矩阵元素逐个进行的的:演示求导运算是对矩阵元素逐个进行的。syms a t x;f=a,t*log(x);sqrt(t),x2+3*x;dfdt=diff(f,t)%矩阵矩阵f对对t的一阶导数的一阶导数df

12、dx2=diff(f,2)%矩阵矩阵f对对x的二阶导数,由于是的二阶导数,由于是x,而,而f中含有中含有x变量,故变量,故x可以省略可以省略dfdtdx=diff(diff(f,t),x)%求二阶混合导数求二阶混合导数2ln3atx=txxf222,ddddtdxdtdxfff2023-5-5一、极限、导数和级数的符号计算一、极限、导数和级数的符号计算 dfdt=0,log(x)1/(2*t(1/2),0dfdx2=0,-t/x2 0,2dfdtdx=0,1/x 0,0Jacobian 矩阵求法,见例矩阵求法,见例【例例9.2-3】。2023-5-5一、极限、导数和级数的符号计算一、极限、导数

13、和级数的符号计算 3.求级数求级数 【例例9.2-4】求下列无穷级数:求下列无穷级数:,syms kf1=symsum(k-2)/2k,k,3,inf)A=1/(2*k+1)2,(-1)k/3k;f2=symsum(A,k,1,inf)f1=1/2 f2=pi2/8-1,-1/4 322kkk2111,(21)3kkkk2023-5-5二、符号积分计算二、符号积分计算 与数值积分相比,符号积分具有指令简单,占用机时长等特点,与数值积分相比,符号积分具有指令简单,占用机时长等特点,因此一般复杂的积分运算都采用数值积分函数来计算。但某些情因此一般复杂的积分运算都采用数值积分函数来计算。但某些情况下

14、,特别是一些简单的上下限为函数的多重积分,用符号积分况下,特别是一些简单的上下限为函数的多重积分,用符号积分计算会比调用数值积分函数计算简单方便许多。计算会比调用数值积分函数计算简单方便许多。求积分的指令如下:求积分的指令如下:intf=int(f,v)%求以求以v为自变量的函数为自变量的函数f的不定积分的不定积分intf=int(f,v,a,b)%求以求以v为自变量的函数为自变量的函数f从从a到到b的定积分的定积分上述调用格式中上述调用格式中v可以省略,可以省略,v省略时,积分将针对省略时,积分将针对findsym确定的确定的变量来进行。变量来进行。a,b作为积分上下限,实际输入中可以为数值

15、符号或作为积分上下限,实际输入中可以为数值符号或者字母符号。者字母符号。2023-5-5二、符号积分计算二、符号积分计算 【例例9.2-5】求求 syms x s=int(1/(x*sqrt(x2+1),x)s=log(x)-log(x2+1)(1/2)+1)【例例9.2-6】求求 关于关于u的不定积分以及不指的不定积分以及不指定积分变量定积分变量 情况下的不定积分。情况下的不定积分。211dxx x 2sincosxvvu vuxff2023-5-5二、符号积分计算二、符号积分计算 syms x u vf=x*v v2;sin(u)*v cos(u*x);intfu=int(f,u)intf

16、=int(f)intfu=u*v*x,u*v2-v*cos(u),sin(u*x)/x intf=(v*x2)/2,v2*x v*x*sin(u),sin(u*x)/u 从上面结果可以看出,在不指定积分变量情况下,从上面结果可以看出,在不指定积分变量情况下,int默认是对默认是对x进行积分。进行积分。2023-5-5二、符号积分计算二、符号积分计算 一些简单的一般区域上的多重积分也可以利用一些简单的一般区域上的多重积分也可以利用int函数来计算,如下:函数来计算,如下:【例例9.2-7】求积分:求积分:syms x y z Result=int(int(int(x+y)/z,z,x*y,2*x

17、*y),y,x,2*x),1,2)Result=(35*log(2)/6%符号积分结果符号积分结果 double(Result)%转化成数值转化成数值ans=4.043358553266348 2221xxyxxyxydzdydxz 2023-5-5第三节第三节 符号方程求解符号方程求解 2023-5-5一、符号代数方程求解一、符号代数方程求解【例例9.3-1】求解如下方程:求解如下方程:,x=solve(2*sin(3*x-pi/4)=1)%解第一个方程解第一个方程x=(5*pi)/36(13*pi)/36 x=solve(x+x*exp(x)-10)%解第二个方程解第二个方程x=matri

18、x(1.6335061701558463841931651789789)double(x)%将符号解形式抓化成数值解将符号解形式抓化成数值解ans=1.6335061701558462sin 3/41x100 xxxe2023-5-5一、符号代数方程求解一、符号代数方程求解【例例9.3-2】求解如下方程组:求解如下方程组:x y=solve(1/x3+1/y3-28,1/x+1/y-4,x,y)x=1 1/3y=1/3 1 331128114xyxy2023-5-5一、符号代数方程求解一、符号代数方程求解有的时候直接按照给出的方程组描述待求解的方程组时,有的时候直接按照给出的方程组描述待求解的

19、方程组时,solve会给不出解,这时会给不出解,这时候对原方程组进行变形往往会有截然不同的结果候对原方程组进行变形往往会有截然不同的结果【例例9.3-3】求下面方程组的解:求下面方程组的解:直接编写代码如下无法求解:直接编写代码如下无法求解:x y=solve(x+y-98,x(1/3)+y(1/3)-2,x,y)Warning:Explicit solution could not be found.In solve at 98x=empty sym y=33982xyxy2023-5-5这时如果我们将原来的问题稍作变形,令这时如果我们将原来的问题稍作变形,令 ,则可以得到下面的求,则可以得

20、到下面的求解代码解代码:u v=solve(u3+v3-98,u+v-2,u,v)u=5-3v=-3 5 x=u.3x=125-27 y=v.3y=-27 125 3xu3yv2023-5-5二、符号常微分方程求解二、符号常微分方程求解 1.R2008b之前的之前的dsolve函数函数MATLAB R2008a是是MATLAB采用采用Maple符号计算内核的最后一个版符号计算内核的最后一个版本,以这个版本的本,以这个版本的dsolve为例,来介绍为例,来介绍Maple内核下内核下dsolve函数的用法。函数的用法。语法规则如下:语法规则如下:r=dsolve(eq1,eq2,.,cond1,c

21、ond2,.,v)r=dsolve(eq1,eq2,.,cond1,cond2,.,v)r为求解得到的输出结果,为求解得到的输出结果,eq1和和eq2.是求解的微分方程表达式,微分是求解的微分方程表达式,微分方程表达式中自变量(以方程表达式中自变量(以t为例)的为例)的n阶导数阶导数 可以用下面形式表可以用下面形式表达:达:Dnf来表示来表示,类似的,类似的Dng表示表示 。边界条件或者初值条件等一些。边界条件或者初值条件等一些微分方程的定解条件由微分方程的定解条件由cond1,cond2等给出。等给出。v为方程的自变量,默认为方程的自变量,默认的自变量是的自变量是t。nnd fdtnnd g

22、dt2023-5-5二、符号常微分方程求解二、符号常微分方程求解 2.R2008b以及以后版本的以及以后版本的dsolve函数函数在使用上述在使用上述dsolve函数的第二种调用格式时,需要注意输入变量的个数函数的第二种调用格式时,需要注意输入变量的个数不要超过不要超过12个,也就是说所有的方程、定解条件以及自变量总和不要个,也就是说所有的方程、定解条件以及自变量总和不要超过超过12个。个。R2008b之后版本的之后版本的dsolve函数除了支持上述两种调用格式外,还多了函数除了支持上述两种调用格式外,还多了一个一个IgnoreAnalyticConstraints设置项,即如下调用格式:设置项,即如下调用格式:dsolve(eq1,eq2,.,cond1,cond2,.,v,IgnoreAnalyticConstraints,value)详细解释以及关于详细解释以及关于dsolve用法的例题请参考书中用法的例题请参考书中【例例9.3-4】至至【例例9.3-7】

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《新编MATLAB&Simulink自学一本通》课件第9章 符号计算.pptx)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|