Matlab教学第四章MATLAB符号运算(Symbolic).ppt

上传人:wuy****n92 文档编号:70797378 上传时间:2023-01-28 格式:PPT 页数:35 大小:343.99KB
返回 下载 相关 举报
Matlab教学第四章MATLAB符号运算(Symbolic).ppt_第1页
第1页 / 共35页
Matlab教学第四章MATLAB符号运算(Symbolic).ppt_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《Matlab教学第四章MATLAB符号运算(Symbolic).ppt》由会员分享,可在线阅读,更多相关《Matlab教学第四章MATLAB符号运算(Symbolic).ppt(35页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Lecture 4 MATLAB符号运算符号运算(Symbolic)MATLAB Matlab 符号运算符号运算Matlab 符号运算介绍q Matlab 符号运算是通过符号运算是通过符号数学工具箱符号数学工具箱(Symbolic Math Toolbox)来实现的。)来实现的。Matlab 符号数学工具箱是建符号数学工具箱是建立在功能强大的立在功能强大的 Maple 软件的基础上的,当软件的基础上的,当 Matlab 进进行符号运算时,它就请求行符号运算时,它就请求 Maple 软件去计算并将结果返软件去计算并将结果返回给回给 Matlab。q Matlab 的符号数学工具箱可以完成几乎所有

2、得符号运算功能。主要包括:符号表达式的运算,符号表达式的复合、化简,符号矩阵的运算,符号微积分、符号作图,符号代数方程求解,符号微分方程求解等。此外,该工具箱还支持可变精度运算,即支持以指定的精度返回结果。Matlab 符号运算特点u 计算以计算以推理方式推理方式进行,因此不受计算误差累积所带来的进行,因此不受计算误差累积所带来的困扰。困扰。u 符号计算指令的调用比较简单,与数学教科书上的公式相近。u 符号计算可以给出完全正确的封闭解,或任意精度的数符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时)。值解(封闭解不存在时)。u 符号计算所需的运行时间相对较长。Matlab

3、符号运算举例u 求一元二次方程求一元二次方程 ax2+bx+c=0 的根的根 solve(a*x2+b*x+c=0)u 求的根求的根 f(x)=(cos x)2 的一次导数的一次导数 x=sym(x);diff(cos(x)2)u 计算计算 f(x)=x2 在区间在区间 a,b 上的定积分上的定积分 syms a b x;int(x2,a,b)q 在进行符号运算时,必须先定义基本的符号对象,可以是符号常量、符号变量、符号表达式等。符号对象是一种数据结构。符号对象与符号表达式q 含有符号对象的表达式称为符号表达式,Matlab 在内部把符号表达式表示成字符串,以与数字变量或运算相区别。q 符号矩

4、阵/数组:元素为符号表达式的矩阵/数组。u sym 函数用来建立单个符号变量,一般调用格式为:q 符号对象的建立:符号对象的建立:sym 和和 syms符号对象的建立例:a=sym(a)符号变量=sym(A)参数 A 可以是一个数或数值矩阵,也可以是字符串a 是符号变量b 是符号常量 b=sym(1/3)C 是符号矩阵 C=sym(1 ab;c d)q 符号对象的建立:符号对象的建立:sym 和和 syms符号对象的建立u syms 命令用来建立多个符号变量,一般调用格式为:syms 符号变量符号变量1 符号变量符号变量2.符号变量符号变量n 例:syms a b c a=sym(a);b=s

5、ym(b);c=sym(c);q 符号表达式的建立:符号表达式的建立:例:建立符号表达式通常有以下2种方法:(1)用 sym 函数直接建立符号表达式。(2)使用已经定义的符号变量组成符号表达式。y=sym(sin(x)+cos(x)x=sym(x);y=sin(x)+cos(x)符号表达式的建立 syms x;y=sin(x)+cos(x)Matlab 符号运算采用的运算符和基本函数,在形状、名称和使用上,都与数值计算中的运算符和基本函数完全相同符号对象的基本运算q 基本运算符基本运算符u 普通运算:+-*/u 数组运算:.*./.u 矩阵转置:.例:X=sym(x11,x12;x21,x22

6、;x31,x32);Y=sym(y11,y12,y13;y21,y22,y23);Z1=X*Y;Z2=X.*Y;符号对象的基本运算三角函数与反三角函数、指数函数、对数函数等q 基本函数基本函数q 查找符号表达式中的符号变量查找符号表达式中的符号变量若表达式中有两个符号变量与 x 的距离相等,则ASCII 码大者优先。查找符号变量findsym(expr)按字母顺序列出符号表达式 expr 中的所有符号变量findsym(expr,N)按顺序列出 expr 中离 x 最近的 N 个符号变量常量 pi,i,j 不作为符号变量例:f=sym(2*w-3*y+z2+5*a)findsym(f)find

7、sym(f,3)findsym(f,1)findsym 举例符号表达式的替换subs(f,x,a)用用 a 替换字符函数替换字符函数 f 中的字符变量中的字符变量 x a 是可以是是可以是 数数/数值变量数值变量/表达式表达式 或或 字符变量字符变量/表达式表达式若 x 是一个由多个字符变量组成的数组或矩阵,则 a 应该具有与 x 相同的形状的数组或矩阵。q 用给定的用给定的数据数据替换符号表达式中的指定的替换符号表达式中的指定的符号变量符号变量subs 举例 f=sym(2*u);subs(f,u,2)f2=subs(f,u,u+2)a=3;subs(f2,u,a+2)subs(f2,u,a

8、+2)syms x y f3=subs(f,u,x+y)subs(f3,x,y,1,2)ans=4f2=2*(u+2)ans=14ans=2*(a+2)+2)f3=2*x+2*yans=6u 例:指出下面各条语句的输出结例:指出下面各条语句的输出结果果f=2*u符号矩阵符号矩阵 A=sym(1+x,sin(x);5,exp(x)u 使用 sym 函数直接生成u 将数值矩阵转化成符号矩阵u 符号矩阵中元素的引用和修改 B=2/3,sqrt(2);5.2,log(3);C=sym(B)A=sym(1+x,sin(x);5,exp(x);A(1,2)%引用引用 A(2,2)=sym(cos(x)%重

9、新赋值重新赋值六类常见符号运算六类常见符号运算q 因式分解、展开、合并、简化及通分等因式分解、展开、合并、简化及通分等q 计算极限计算极限q 计算导数计算导数q 计算积分计算积分q 符号求和符号求和q 代数方程和微分方程求解代数方程和微分方程求解因式分解u 因式分解factor(f)syms x;f=x6+1;factor(f)l factor 也可用于正整数的分解 s=factor(100)factor(syml 大整数的分解要转化成符号常量大整数的分解要转化成符号常量函数展开u 函数展开expand(f)syms x;f=(x+1)6;expand(f)l 多项式展开l 三角函数展开 sy

10、ms x y;f=sin(x+y);expand(f)合并同类项u 合并同类项collect(f,v):按指定变量按指定变量 v 进行合并进行合并collect(f):按按默认默认变量变量进行合并进行合并 syms x y;f=x2*y+y*x-x2+2*x;collect(f)collect(f,y)函数简化u 函数简化y=simple(f):对对 f 尝试多种不同的算法尝试多种不同的算法进行进行简化简化,返回其中最简短的形式,返回其中最简短的形式How,y=simple(f):y 为为 f 的的最简短形式,最简短形式,How 中记录的为简化过程中使用的方法。中记录的为简化过程中使用的方法。

11、函数简化u 函数简化y=simplify(f):对对 f 进行简化进行简化 syms x;f=sin(x)2+cos(x)2;simplify(f)syms c alpha beta;f=exp(c*log(sqrt(alpha+beta);simplify(f)函数简化举例 syms x;f=(1/x3+6/x2+12/x+8)(1/3);y1=simplify(f)g1=simple(f)g2=simple(g1)l 多次使用多次使用 simple 可以达到最简表达。可以达到最简表达。例:简化分式通分u 函数简化N,D=numden(f):N 为通分后的分子,为通分后的分子,D 为通分后的

12、分母为通分后的分母 syms x y;f=x/y+y/x;N,D=numden(f)n,d=numden(sym(112/1024)horner 多项式u horner 多项式:嵌套形式的多项式 syms x;f=x4+2*x3+4*x2+x+1;g=horner(f)例:例:计算极限limit(f,x,a):计算计算limit(f,a):当当默认变量默认变量趋向于趋向于 a 时的极限时的极限limit(f):计算计算 a=0 时的极限时的极限limit(f,x,a,right):计算右极限计算右极限limit(f,x,a,left):计算左极限计算左极限例:计算 ,syms x h n;L=

13、limit(log(x+h)-log(x)/h,h,0)M=limit(1-x/n)n,n,inf)计算导数g=diff(f,v):求符号表达式求符号表达式 f 关于关于 v 的导数的导数g=diff(f):求符号表达式求符号表达式 f 关于关于默认变量默认变量的导数的导数g=diff(f,v,n):求求 f 关于关于 v 的的 n 阶导数阶导数q diff syms x;f=sin(x)+3*x2;g=diff(f,x)计算积分int(f,v,a,b):计算定积分计算定积分int(f,a,b):计算关于计算关于默认变量默认变量的定积分的定积分int(f,v):计算不定积分计算不定积分int(

14、f):计算关于计算关于默认变量默认变量的不定积分的不定积分 syms x;f=(x2+1)/(x2-2*x+2)2;I=int(f,x)K=int(exp(-x2),x,0,inf)例:计算 和符号求和 syms n;f=1/n2;S=symsum(f,n,1,inf)S100=symsum(f,n,1,100)symsum(f,v,a,b):求和求和symsum(f,a,b):关于关于默认变量默认变量求和求和例:计算级数 及其前100项的部分和例:计算函数级数 syms n x;f=x/n2;S=symsum(f,n,1,inf)代数方程求解solve(f,v):求方程关于指定自变量的解,求

15、方程关于指定自变量的解,f 可以是可以是用字符串表用字符串表示的方程示的方程、符号表达式符号表达式或或符号方程符号方程;l solve 也可解方程组也可解方程组(包含非线性包含非线性);l 得不到解析解时,给出数值解。得不到解析解时,给出数值解。微分方程求解微分方程求解q dsolvey=dsolve(eq1,eq2,.,cond1,cond2,.,v)其中其中 y 为输出的解,为输出的解,eq1、eq2、.为微分方程,为微分方程,cond1、cond2、.为初值条件,为初值条件,v 为自变量为自变量例例 1:求微分方程求微分方程 的通解,并验证。的通解,并验证。y=dsolve(Dy+2*x

16、*y=x*exp(-x2),x)syms x;diff(y)+2*x*y-x*exp(-x2)微分方程求解微分方程求解q 几点说明几点说明l 如果省略初值条件,则表示求通解;如果省略初值条件,则表示求通解;l 如果省略自变量,则默认自变量为如果省略自变量,则默认自变量为 t dsolve(Dy=2*x,x);dy/dx=2xdsolve(Dy=2*x);dy/dt=2xl 若找不到解析解,则返回其积分形式。若找不到解析解,则返回其积分形式。l 微分方程中用微分方程中用 D 表示对表示对 自变量自变量 的导数,如:的导数,如:Dy y;D2y y;D3y y微分方程求解微分方程求解例例 2:求微

17、分方程求微分方程 满足初值条件满足初值条件 的特解,并画出解函数的图形。的特解,并画出解函数的图形。y=dsolve(x*Dy+y-exp(x)=0,.y(1)=2*exp(1),x)ezplot(y);微分方程求解微分方程求解例例3:求微分方程组求微分方程组 在初值条件在初值条件 下的特解,并画出解函数的图形。下的特解,并画出解函数的图形。x,y=dsolve(Dx+5*x+y=exp(t),Dy-x-3*y=0,.x(0)=1,y(0)=0,t)ezplot(x,y,0,1.3);注:解微分方程组时,如果所给的输出个数与方程个数相同,则方程组的解注:解微分方程组时,如果所给的输出个数与方程个数相同,则方程组的解 按词按词典顺序典顺序 输出。输出。其它运算其它运算u 反函数finverse(f,v):求求 f 关于指定变量关于指定变量 v 的反函数的反函数finverse(f):求求 f 关于默认变量的反函数关于默认变量的反函数 syms x t;f=x2+2*t;g1=finverse(f,x)g2=finverse(f,t)例:计算函数 的反函数

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

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

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com