《MATLAB符号运算》PPT课件.ppt

上传人:za****8 文档编号:16087207 上传时间:2020-09-18 格式:PPT 页数:29 大小:321.02KB
返回 下载 相关 举报
《MATLAB符号运算》PPT课件.ppt_第1页
第1页 / 共29页
《MATLAB符号运算》PPT课件.ppt_第2页
第2页 / 共29页
《MATLAB符号运算》PPT课件.ppt_第3页
第3页 / 共29页
点击查看更多>>
资源描述
第5 章 Matlab符号运算,符号运算基础 微分运算 积分运算 积分变换 求解方程, matlab 不仅具有数值运算功能,还开发了在matlab环境下实现符号运算的工具包Symbolic Math Toolbox,要求理解matlab数值运算与符号运算的不同;学会建立符号对象并应用相应对象进行各种符号运算以求得解析结果; 重点:符号表达式的运算,符号方程求解。 难点:符号微积分和积分变换。,本 章 要 求,5.1 符号运算基础,符号对象的创建 基本的符号运算,符号运算的基本操作,什么是符号运算? 与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。,特点: 运算对象可以是没赋值的符号变量 可以获得任意精度的解 Symbolic Math Toolbox符号运算工具包通过调用Maple软件实现符号计算的。 maple软件主要功能是符号运算, 它占据符号软件的主导地位。,一. 符号对象,1. 建立符号变量和符号常数 (1)sym函数 sym函数用来建立单个符号量,例如,a=sym(a)建立符号变量a,此后,用户可以在表达式中使用变量a进行各种运算。,考察符号变量和数值变量的差别,在 MATLAB命令窗口,输入命令: a=sym(a);b=sym(b);c=sym(c);d=sym(d); %定义 4个符号变量 w=10;x=5;y=-8;z=11; %定义4个数值变量 A=a,b;c,d %建立符号矩阵A B=w,x;y,z %建立数值矩阵B det(A) %计算符号矩阵A的行列式 det(B) %计算数值矩阵B的行列式,比较符号常数与数值在代数运算时的差别。,在 MATLAB命令窗口,输入命令: pi1=sym(pi);k1=sym(8);k2=sym(2);k3=sym(3); % 定义符号变量 pi2=pi;r1=8;r2=2;r3=3; % 定义数值变量 A1=sin(pi1/3) % 计算符号表达式值 A2=sin(pi2/3) % 计算数值表达式值 A3=sqrt(k1) % 计算符号表达式值 A4=sqrt(r1) % 计算数值表达式值 A5=sqrt(k3+sqrt(k2) % 计算符号表达式值 A6=sqrt(r3+sqrt(r2) % 计算数值表达式值,(2)syms函数 syms函数的一般调用格式为: syms var1 var2 varn 函数定义符号变量var1,var2,varn等。用这种格式定义符号变量时,变量间用空格而不要用逗号分隔。,2. 建立符号表达式 建立符号表达式有以下2种方法: (1) 用sym函数建立符号表达式。 (2) 使用已经定义的符号变量组成符号表达式。,基本的符号运算,(1). 符号表达式的四则运算 符号表达式的四则运算和其他表达式的运算并无不同,但要注意,其运算结果依然是一个符号表达式。,(2)符号表达式的提取分子和分母运算 如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。其一般调用格式为: n,d=numden(s) 该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。,(3).因式分解与展开 collect(f) 对f合并同类项,f是符号表达式或符号矩阵。 collect(f,v) 对f按变量v合并同类项,f是符号表达式或符号矩阵。 expand(f) 对f进行展开,f是符号表达式或符号矩阵。 factor(f) 对f分解因式,f是符号表达式或符号矩阵。,(4).符号表达式与数值表达式之间的转换 利用函数sym可以将数值表达式变换成它的符号表达式。 函数eval可以将符号表达式变换成数值表达式。,(5). 符号矩阵 transpose(s) 返回s矩阵的转置矩阵。 det(s) 返回s矩阵的行列式值。 colspace(s) 返回s矩阵列空间的基。,5.2 微分运算,符号函数的极限 符号函数的微分 符号泰勒级数展开,limit函数的调用格式为: limit(f,x,a) f :函数 x:变量 a:逼近值 limit函数的另一种功能是求单边极限,其调用格式为: limit(f,x,a,right) 或 limit(f,x,a,left),求极限例子,在MATLAB命令窗口,输入命令: syms a m x; f=(x(1/m)-a(1/m)/(x-a); limit(f,x,a) %求极限 f=(sin(a+x)-sin(a-x)/x; limit(f) %求极限 limit(f,inf) %求f函数在x(包括+和-)处极限 limit(f,x,inf,left) %求极限 f=(sqrt(x)-sqrt(a)-sqrt(x-a)/sqrt(x*x-a*a); limit(f,x,a,right) %求极限,符号函数的微分,MATLAB中的微分函数为: diff(f,x,n) diff函数求函数f对变量x的n阶导数。参数x的用法同求极限函数limit,可以缺省,缺省值与limit相同,n的缺省值是1。,例求函数的(微分)导数。命令如下: syms a b t x y z; f=sqrt(1+exp(x); diff(f) %未指定求导变量和阶数,按缺省规则处理 f=x*cos(x); diff(f,x,2) %求f对x的二阶导数 diff(f,x,3) %求f对x的三阶导数 f1=a*cos(t);f2=b*sin(t); diff(f2)/diff(f1) %按参数方程求导公式求y对x的导数 (diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f1)3 %求y对x的二阶导数 f=x*exp(y)/y2; diff(f,x) %z对x的偏导数 diff(f,y) %z对y的偏导数 f=x2+y2+z2-a2; zx=-diff(f,x)/diff(f,z) %按隐函数求导公式求z对x的偏导数 zy=-diff(f,y)/diff(f,z) %按隐函数求导公式求z对y的偏导数,例 在曲线y=x3+3x-2上哪一点的切线与直线y=4x-1平行。 命令如下: x=sym(x); y=x3+3*x-2; %定义曲线函数 f=diff(y); %对曲线求导数 g=f-4; solve(g) %求方程f-4=0的根,即求曲线何处的导数为4,泰勒级数,matlab中提供了将函数展开为幂级数的函数taylor,其调用格式为: taylor(f,n,x,a) 例:求函数在指定点的泰勒展开式。 命令如下: x=sym(x); f1=(1+x+x2)/(1-x+x2); f2=sqrt(1-2*x+x3)-(1-3*x+x2)(1/3); taylor(f1,x,5) %展开到x的4次幂时应选择n=5 taylor(f2,6),5.3 积分运算,在matlab中,求不定积分的函数是int,其调用格式为:int(f,x) int函数求函数f对变量x的不定积分。参数x可以缺省,缺省原则与diff函数相同。 在matlab中,求定积分的函数也是int,其调用格式为:int(f,x,a,b) int函数求函数f对变量x的不定积分。参数x可以缺省,缺省原则与diff函数相同。,5.4 积分变换,1. 傅立叶(Fourier)变换 在MATLAB中,进行傅立叶变换的函数是: fourier(fx,x,t) 求函数f(x)的傅立叶像函数F(t)。 ifourier(Fw,t,x) 求傅立叶像函数F(t)的原函数f(x)。 求函数的傅立叶变换及其逆变换。 命令如下: syms x t; y=abs(x); Ft=fourier(y,x,t) %求y的傅立叶变换 fx=ifourier(Ft,t,x) %求Ft的傅立叶逆变换,2. 拉普拉斯(Laplace)变换 在MATLAB中,进行拉普拉斯变换的函数是: laplace(fx,x,t) 求函数f(x)的拉普拉斯像函数F(t)。 ilaplace(Fw,t,x) 求拉普拉斯像函数F(t)的原函数f(x)。 例计算y=x2的拉普拉斯变换及其逆变换. 命令如下: x=sym(x);y=x2; Ft=laplace(y,x,t) %对函数y进行拉普拉斯变换 fx=ilaplace(Ft,t,x) %对函数Ft进行拉普拉斯逆变换,3. Z变换 对数列f(n)进行z变换的matlab函数是: ztrans(fn,n,z) 求fn的Z变换像函数F(z) iztrans(Fz,z,n) 求Fz的z变换原函数f(n) 例求数列 fn=e-n的Z变换及其逆变换。 命令如下: syms n z fn=exp(-n); Fz=ztrans(fn,n,z) %求fn的Z变换 f=iztrans(Fz,z,n) %求Fz的逆Z变换,5.5 求解方程,代数方程。 代数方程组。 微分方程和微分方程组。,代数方程,代数方程是指未涉及微积分运算的方程,相对比较简单。 在matlab中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为: solve(eq); 求解符号表达式表示的代数方程eq,求解变量为默认变量。当方程右端为0时,方程eq中可以不包含右端项和等号,而仅列出方程左端的表达式。 solve(eq,x):求解符号表达式表示的代数方程eq,求解变量为x。,solve(eq1,eq2,eqn,v1,v2,vn): 求解符号表达式eq1,eq2,eqn组成的代数方程组,求解变量分别v1,v2,vn。 若不指定求解变量,由默认规则确定。 注意输出方式,代数方程组,matlab的符号运算工具箱中提供了功能强大的求解常微分方程的函数dsolve。该函数的调用格式为: dsolve(eqn1,condition,var) 该函数求解微分方程eqn1在初值条件condition下的特解。参数var描述方程中的自变量符号,省略时按缺省原则处理,若没有给出初值条件condition,则求方程的通解。 y=dsolve(Dy=t) y=dsolve(D2y=t) y=dsolve(Dy=t,y(0)=0),微分方程,dsolve在求微分方程组时的调用格式为: dsolve(eqn1,eqn2,eqnN,condition1,conditionN,var1,varN) 函数求解微分方程组eqn1、eqnN在初值条件conditoion1、conditionN下的解,若不给出初值条件,则求方程组的通解,var1、varN给出求解变量。,微分方程组,例 求微分方程的通解。,命令如下: y=dsolve(Dy-(x2+y2)/x2/2,x) %解(1)。方程的右端为0时可以不写 y=dsolve(Dy*x2+2*x*y-exp(x),x) %解(2) y=dsolve(Dy-x2/(1+y2),y(2)=1,x) %解(3) x,y=dsolve(Dx=4*x-2*y,Dy=2*x-y,t) %解方程组(4) x,y=dsolve(D2x-y,D2y+x,t) %解方程组(5),小 结 本节介绍了matlab语言的符号运算 功能,通过学习应该掌握: 掌握如何创建符号函数 掌握符号运算及其应用,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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