数学软件Matlab课件.ppt

上传人(卖家):晟晟文业 文档编号:4072739 上传时间:2022-11-08 格式:PPT 页数:44 大小:394.51KB
下载 相关 举报
数学软件Matlab课件.ppt_第1页
第1页 / 共44页
数学软件Matlab课件.ppt_第2页
第2页 / 共44页
数学软件Matlab课件.ppt_第3页
第3页 / 共44页
数学软件Matlab课件.ppt_第4页
第4页 / 共44页
数学软件Matlab课件.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、1数学软件数学软件 Matlab Matlab 符号运算符号运算2主要内容主要内容n Matlab 符号运算介绍符号运算介绍n 符号对象与基本符号运算符号对象与基本符号运算n symvar、subs 和和 vpan 常见的符号计算常见的符号计算(重点内容)(重点内容)3符号运算符号运算l 计算以计算以推理方式推理方式进行,不受计算误差累积所带来的困扰进行,不受计算误差累积所带来的困扰 l 符号计算指令的调用比较简单,与教科书上的公式相近符号计算指令的调用比较简单,与教科书上的公式相近 l 符号计算可以给出完全正确的封闭解,或任意精度的数符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭

2、解不存在时值解(封闭解不存在时)l 符号计算所需的符号计算所需的运行时间相对较长运行时间相对较长l 符号运算的特点符号运算的特点 4Matlab 符号运算符号运算l Matlab 符号运算是通过符号运算是通过符号数学工具箱符号数学工具箱(Symbolic Math Toolbox)来实现的。来实现的。l Matlab 的符号数学工具箱可以完成几乎所有得符号运的符号数学工具箱可以完成几乎所有得符号运算功能,如:算功能,如:符号表达式的运算符号表达式的运算,符号矩阵的运算符号矩阵的运算,符号符号微积分微积分,符号作图符号作图,符号代数方程求解符号代数方程求解,符号微分方程求符号微分方程求解解等。等

3、。l 此外,该工具箱还支持此外,该工具箱还支持可变精度运算可变精度运算,即支持以指定的,即支持以指定的精度返回结果。精度返回结果。l Matlab 符号运算符号运算 5符号运算举例符号运算举例l 求一元二次方程求一元二次方程 ax2+bx+c=0 的根的根 solve(a*x2+b*x+c=0)l 求的根求的根 f(x)=(cos x)2 的一次导数的一次导数x=sym(x);diff(cos(x)2)l 计算计算 f(x)=x2 在区间在区间 a,b 上的定积分上的定积分syms a b x;int(x2,a,b)6内容提要内容提要n Matlab 符号运算介绍符号运算介绍n 符号对象与基本

4、符号运算符号对象与基本符号运算n symvar、subs 和和 vpan 常见的符号计算常见的符号计算7l 在进行符号运算时,必须先定义基本的在进行符号运算时,必须先定义基本的符号对象符号对象,可以是,可以是 符号变量符号变量、符号表达式符号表达式等等 l 符号对象是一种数据结构符号对象是一种数据结构 符号对象符号对象l 符号表达式符号表达式:含有符号对象的表达式称含有符号对象的表达式称l 符号矩阵符号矩阵/数组数组:元素为符号表达式的矩阵:元素为符号表达式的矩阵/数组数组 l Matlab 符号对象符号对象 8l sym 用来建立用来建立单个单个符号对象,一般调用格式为:符号对象,一般调用格

5、式为:l 符号对象的符号对象的定义定义/声明声明:sym、syms符号对象符号对象的建立的建立例:例:a=sym(a)符号变量符号变量=sym(x)参数参数 x 可以是一个数或数值矩阵,也可以是字符串可以是一个数或数值矩阵,也可以是字符串a 是符号变量是符号变量b 是符号常量是符号常量b=sym(1/3)C 是符号矩阵是符号矩阵C=sym(1 ab;c d)9符号对象符号对象的建立的建立syms 符号变量符号变量1 符号变量符号变量2.符号变量符号变量n 例:例:syms a b c;a=sym(a);b=sym(b);c=sym(c);l syms 用来声明用来声明多个多个符号变量,一般调用

6、格式为:符号变量,一般调用格式为:l 符号对象的符号对象的定义定义/声明声明:sym、syms10例:例:l 建立符号表达式通常有以下建立符号表达式通常有以下 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)l 符号表达式:符号表达式:含符号对象的表达式含符号对象的表达式11Matlab 符号运算采用的运算符和基本函数,在形状、名

7、称符号运算采用的运算符和基本函数,在形状、名称和使用上,都与数值计算中的运算符和基本函数完全相同和使用上,都与数值计算中的运算符和基本函数完全相同基本符号基本符号运算运算l 普通运算:普通运算:l 数组运算:数组运算:l 矩阵转置:矩阵转置:l 基本运算基本运算l 基本数学函数基本数学函数三角函数与反三角函数、三角函数与反三角函数、指数函数、对数函数等指数函数、对数函数等sin,cos,asin,acos,exp,log,abs,diag,tril,triu,.+-*/.*./.12符号符号矩阵矩阵A=sym(1+x,sin(x);5,exp(x)l 使用使用 sym 函数直接生成函数直接生成

8、l 将数值矩阵转化成符号矩阵将数值矩阵转化成符号矩阵l 符号矩阵中元素的引用和修改符号矩阵中元素的引用和修改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)%重新赋值重新赋值l 符号矩阵符号矩阵的生成的生成13内容提要内容提要n Matlab 符号运算介绍符号运算介绍n 符号对象与基本符号运算符号对象与基本符号运算n symvar、subs 和和 vpan 常见的符号计算常见的符号计算14symvarsymvar(s)symvar(s,N)l 列出符号表达式中的符号变量

9、列出符号表达式中的符号变量l 按字母顺序列出按字母顺序列出符号表达式符号表达式 s 中的所有符号变量中的所有符号变量l 列出列出符号表达式符号表达式 s 中离中离 x 最近的最近的 N 个符号变量个符号变量l 若有两个符号变量与若有两个符号变量与 x 的距离相等,则的距离相等,则ASCII 码大者优先码大者优先l 常量常量 pi,i,j 不作为符号变量不作为符号变量f=sym(2*v-3*y+z2+5*a)symvar(f)symvar(f,2)例:例:15subsl 用用 a 替换替换符号表达式符号表达式 s 中的符号变量中的符号变量 xl 这里这里 a 可以是可以是 数数/变量变量/表达式

10、表达式 或或 符号变量符号变量/表达式表达式l 符号替换符号替换l 用给定的用给定的数据数据替换符号表达式中的替换符号表达式中的指定的符号变量指定的符号变量subs(s,x,a)syms x y u v;f1=2*x+y-1;f2=subs(f1,x,u)f3=subs(f1,y,2+3)f3=subs(f1,x,y,u,v)例:例:16subs 举例举例f=sym(2*u);f1=subs(f,u,2)f2=subs(f,u,u+2)f3=subs(f,u,1,2)a=3;f4=subs(f2,u,a+2)f5=subs(f2,u,a+2)syms x y;f6=subs(f,u,x+y)f

11、7=subs(f6,x,y,1,2)f8=subs(f6,x,y,x+y,x+y)例:例:指出下面各条语句的输出结果指出下面各条语句的输出结果符号变量若没有声明,则需要加上单引号!符号变量若没有声明,则需要加上单引号!f=2*uf1=4f2=2*u+4f3=2,4f4=14f5=2*a+8f6=2*x+2*yf7=6f8=4*x+4*y17vpal 计算表达式计算表达式 s 的值,保留的值,保留 n 位有效数字位有效数字l 返回值是符号对象返回值是符号对象l 可变精度可变精度vpa(s,n)x1=vpa(sin(pi/2),10)x2=vpa(pi3,3)x3=vpa(pi,100)例:例:1

12、8内容提要内容提要n Matlab 符号运算介绍符号运算介绍n 符号对象与基本符号运算符号对象与基本符号运算n symvar、subs 和和 vpan 常见的符号计算常见的符号计算(六类运算)(六类运算)l 因式分解、展开、合并、简化因式分解、展开、合并、简化、通分通分和反函数和反函数等等l 计算极限计算极限l 计算导数计算导数l 计算积分计算积分l 符号符号级数级数求和求和l 代数方程和微分方程代数方程和微分方程的的求解求解(重点与难点)(重点与难点)19因式分解因式分解factor(f)syms x;f=x6+1;factor(f)l factor 也可用于正整数的分解也可用于正整数的分解

13、s=factor(100)factor(12345678901234567890)%ERRORfactor(sym(12345678901234567890)对大整数进行因式分解时可以先将其转化成符号常量对大整数进行因式分解时可以先将其转化成符号常量例:例:例:例:l 因式分解因式分解20函数展开函数展开expand(f)syms x;f=(x+1)6;expand(f)l 多项式展开多项式展开l 三角函数展开三角函数展开syms x y;f=sin(x+y);expand(f)l 函数展开函数展开例:例:例:例:21合并同类项合并同类项syms x y;f=x2*y+y*x+y2+2*x;c

14、ollect(f)collect(f,y)例:例:collect(f,v)%按指定变量按指定变量 v v 进行进行合并合并collect(f)%按按默认默认变量变量进行进行合并合并l 合并同类项合并同类项l 默认变量默认变量:symvar(f)的返回结果的返回结果syms u v;g=u2*v+u*v3-u2+v;collect(g)22函数简化函数简化y=simplify(f)l 函数简化函数简化l 对对符号符号表达式表达式 f 进行简化进行简化syms x;f=sin(x)2+cos(x)2;y=simplify(f)例:例:23函数简化函数简化y=simple(f)l 函数简化函数简化l

15、 对对 f 尝试多种不同的尝试多种不同的方法(包括方法(包括 simplify)进行简化)进行简化,以寻求其以寻求其最简短形式最简短形式例:例:化简化简2222(cossin)sin2(21)()1xxxxxx eef xe syms x;f=(cos(x)2-sin(x)2)*sin(2*x)*(exp(2*x).-2*exp(x)+1)/(exp(2*x)-1);y1=simplify(f)y2=simple(f)24函数简化函数简化N,D=numden(f)l 通分通分l N 为通分后的分子,为通分后的分子,D 为通分后的分母为通分后的分母syms x y;f=x/y+y/x;N,D=n

16、umden(f)n,d=numden(sym(112/1024)例:例:25horner 多项式多项式l horner 多项式:嵌套形式的多项式多项式:嵌套形式的多项式syms x;f=x4+2*x3+4*x2+x+1;g=horner(f)11 111()()nnf xxxxxx x x 例:例:26求反函数求反函数l 反函数反函数finverse(f,v)%求求 f 关于指定变量关于指定变量 v 的反函数的反函数finverse(f)%求求 f 关于关于默认变量默认变量的反函数的反函数syms x t;f=x2+2*t;g1=finverse(f,x)g2=finverse(f,t)例:例

17、:计算函数计算函数 的反函数的反函数22fxt 27计算极限计算极限limit(f,x,a)%计算计算limit(f,a)%当当默认变量默认变量趋向于趋向于 a 时的极限时的极限limit(f)%计算计算 a=0 时的极限时的极限limit(f,x,a,right)%计算右极限计算右极限limit(f,x,a,left)%计算左极限计算左极限lim()xaf x例:例:计算计算 ,0ln()ln()limhxhxLh 1limnnxMnsyms x h n;L=limit(log(x+h)-log(x)/h,h,0)M=limit(1-x/n)n,n,inf)l 计算极限计算极限28计算计算导

18、数导数g=diff(f,v)%求符号表达式求符号表达式 f 关于变量关于变量 v 的导数的导数g=diff(f)%计算关于计算关于默认变量默认变量的导数的导数g=diff(f,v,n)%求求 f 关于关于 v 的的 n 阶导数阶导数l 计算导数计算导数syms x;f=sin(x)+3*x2;g1=diff(f,x)g2=diff(f,x,3)例:例:29计算计算积分积分int(f,v,a,b)%计算定积分计算定积分int(f,a,b)%计算关于计算关于默认变量默认变量的定积分的定积分int(f,v)%计算不定积分计算不定积分int(f)%计算关于计算关于默认变量默认变量的不定积分的不定积分s

19、yms x;f=(x2+1)/(x2-2*x+2)2;I=int(f,x)K=int(exp(-x2),x,0,inf)()baf v dv()f v dv 例:例:计算计算 和和2221(22)xIdxxx 20 xKedx l 计算积分计算积分30符号符号级数求和级数求和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)%关于关于默认变量默认变量求和求和()bv af v 例:例:计算级数计算级数 及其前及其前100项的部分和项的部分和 S100211nSn

20、 例:例:计算函数级数计算函数级数21nxSn syms n x;f=x/n2;S=symsum(f,n,1,inf)l 符号级数求和符号级数求和31代数方程代数方程求解求解solve(f,v)%求方程关于指定自变量的解求方程关于指定自变量的解详细用法见详细用法见Matlab08:多项式运算与代数方程求解器:多项式运算与代数方程求解器l 代数方程求解代数方程求解l 这里这里 f 可以可以用字符串表示用字符串表示或或符号表达式符号表达式l solve 也可解方程组(通常是非线性的)也可解方程组(通常是非线性的)l 得不到解析解时,给出数值解得不到解析解时,给出数值解例:例:solve(2*x-3

21、)%或或 solve(2*x-3=0)syms x;solve(2*x-3)%不能写成不能写成 solve(2*x-3=0)syms x;solve(2*x-sin(x)+1)32微分方程微分方程求解求解q 用用 Maltab自带函数自带函数 解初值问题解初值问题u 求微分方程解析解:求微分方程解析解:dsolveu 求微分方程数值解求微分方程数值解*(自学,选学)(自学,选学):ode45、ode23、ode113、ode23t、ode15s、ode23s、ode23tb33dsolve 求解析解求解析解q dsolve 的使用的使用y=dsolve(eq1,eq2,.,cond1,cond

22、2,.,v)其中其中 y 为输出,为输出,eq1、eq2、.为微分方程,为微分方程,cond1、cond2、.为初值条件,为初值条件,v 为自变量。为自变量。例例 1:求微分方程求微分方程 的通解,并验证。的通解,并验证。22xdyxyxedx y=dsolve(Dy+2*x*y=x*exp(-x2),x)syms x;diff(y)+2*x*y-x*exp(-x2)34dsolve 的使用的使用q 几点说明几点说明l 如果省略初值条件,则表示求通解;如果省略初值条件,则表示求通解;l 如果省略自变量,则默认自变量为如果省略自变量,则默认自变量为 t dsolve(Dy=2*x,x);dy/d

23、x=2xdsolve(Dy=2*x);dy/dt=2xl 若找不到解析解,则返回其积分形式。若找不到解析解,则返回其积分形式。l 微分方程中用微分方程中用 D 表示对表示对 自变量自变量 的导数,如:的导数,如:Dy y;D2y y;D3y y35例例 2:求微分方程求微分方程 在初值条件在初值条件 下的特解,并画出解函数的图形。下的特解,并画出解函数的图形。0 xxyye y=dsolve(x*Dy+y-exp(x)=0,y(1)=2*exp(1),x)ezplot(y);12()ye dsolve 的使用的使用36例例3:求微分方程组求微分方程组 在初值条件在初值条件 下的特解,并画出解函

24、数的图形。下的特解,并画出解函数的图形。530tdxxyedtdyxydt 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);0010|ttxy 注:解微分方程组时,如果所给的输出个数与方程个数相同,注:解微分方程组时,如果所给的输出个数与方程个数相同,则方程组的解则方程组的解按词典顺序按词典顺序输出;如果只给一个输出,则输出输出;如果只给一个输出,则输出的是一个包含解的的是一个包含解的结构结构(structure)类型的数据。类型的数据。dsolve 的使用的使用37例:例:x,y=dsolve(

25、Dx+5*x=0,Dy-3*y=0,.x(0)=1,y(0)=1,t)r=dsolve(Dx+5*x=0,Dy-3*y=0,.x(0)=1,y(0)=1,t)这里返回的这里返回的 r 是一个是一个 结构类型结构类型 的数据的数据r.x%查看解函数查看解函数 x(t)r.y%查看解函数查看解函数 y(t)只有很少一部分微分方程(组)能求出解析解。只有很少一部分微分方程(组)能求出解析解。大部分微分方程(组)只能利用大部分微分方程(组)只能利用数值方法数值方法求数值解。求数值解。dsolve的输出个数只能为一个的输出个数只能为一个 或或 与方程个数相等与方程个数相等dsolve 的使用的使用38上

26、机作业上机作业1.教材教材P33的习题的习题610,写入文件,写入文件m04_1.m;2.教材教材P32的习题的习题4,写入文件,写入文件m04_2.m;3.求解下列微分方程(组),写入文件求解下列微分方程(组),写入文件m04_3.m,并且,并且对于初值问题还要求画出解函数的图形;对于初值问题还要求画出解函数的图形;(5)(6)选做。选做。39上机要求上机要求l 将完成每题所用的命令写入一个规定文件名的文件中将完成每题所用的命令写入一个规定文件名的文件中l 然后将这些文件作为附件,通过然后将这些文件作为附件,通过 foxmail 以邮件形式发给以邮件形式发给 adminsystem.mail

27、l 邮件主题为:邮件主题为:机号机号-学号学号-姓名姓名l 其中机号为其中机号为 两位数两位数l 三个字段之间用英文状态下的减号链接三个字段之间用英文状态下的减号链接q 上机要求上机要求强调强调40求微分方程数值解求微分方程数值解*(自学,选学)(自学,选学)T,Y=solver(odefun,tspan,y0)其中其中 y0 为初值条件,为初值条件,tspan为求解区间;为求解区间;Matlab在数值求解在数值求解时时自动对求解区间进行分割自动对求解区间进行分割,T(列向量列向量)中返回的是分割点中返回的是分割点的值的值(自变量自变量),Y(数组数组)中返回的是这些分割点上的近似解,中返回的

28、是这些分割点上的近似解,其列数等于因变量的个数。其列数等于因变量的个数。solver 为为Matlab的的ODE求解器求解器(可以是(可以是 ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb)没有一种算法可以有效地解决所有的没有一种算法可以有效地解决所有的 ODE 问题,因此问题,因此MATLAB 提供了多种提供了多种ODE求解器求解器,对于不同的对于不同的ODE,可以调用不同的可以调用不同的求解器求解器。41Matlab的的ODE求解器求解器*(自学,选学)(自学,选学)求解器求解器ODE类型类型特点特点说明说明ode45非刚性非刚性单步法;单步

29、法;4 4,5 5 阶阶 R-K R-K 方法;累方法;累计截断误差为计截断误差为 (x)3大部分场合的大部分场合的首选方法首选方法ode23非刚性非刚性单步法;单步法;2 2,3 3 阶阶 R-K R-K 方法;累方法;累计截断误差为计截断误差为 (x)3使用于精度较低的情形使用于精度较低的情形ode113非刚性非刚性多步法;多步法;Adams算法;高低精度算法;高低精度均可到均可到 10-310-6计算时间比计算时间比 ode45 短短ode23t适度刚性适度刚性采用梯形算法采用梯形算法适度刚性情形适度刚性情形ode15s刚性刚性多步法;多步法;Gears Gears 反向数值微分;反向数

30、值微分;精度中等精度中等若若 ode45 失效时,可尝失效时,可尝试使用试使用ode23s刚性刚性单步法;单步法;2 2 阶阶RosebrockRosebrock 算法;算法;低精度低精度当精度较低时,计算时间当精度较低时,计算时间比比 ode15s 短短ode23tb刚性刚性梯形算法;低精度梯形算法;低精度当精度较低时,计算时间当精度较低时,计算时间比比ode15s短短42参数说明参数说明*(自学,选学)(自学,选学)odefun 为为显式常微分方程显式常微分方程,可以用命令,可以用命令 inline 定义,或定义,或在在函数文件函数文件中定义,然后通过函数句柄调用。中定义,然后通过函数句柄

31、调用。fun=inline(-2*y+2*x2+2*x,x,y);x,y=ode23(fun,0,0.5,1);注:注:也可以在也可以在 tspan 中指定对求解区间的分割,如:中指定对求解区间的分割,如:x,y=ode23(fun,0:0.1:0.5,1);%此时此时 x=0:0.1:0.5T,Y=solver(odefun,tspan,y0)求初值问题求初值问题 的数值解,求解范的数值解,求解范围为围为 0,0.5222201()dyyxxdxy 例例:43数值求解举例数值求解举例*(自学,选学)(自学,选学)如果需求解的问题是如果需求解的问题是高阶高阶常微分方程,则需将其化为常微分方程,

32、则需将其化为一阶常一阶常微分方程组微分方程组,此时必须用,此时必须用函数文件函数文件来定义该常微分方程组。来定义该常微分方程组。122212112101 00 7/()(),(),dxdtxdxdtxxxxx 令令 ,则原方程可化为,则原方程可化为12,dyxy xdt 求解求解 Ver der Pol 初值问题初值问题2221001 00 7()(),(),d ydyyydtdtyy 例例:44数值求解举例数值求解举例*(自学,选学)(自学,选学)l 先编写函数文件先编写函数文件 verderpol.mfunction xprime=verderpol(t,x)global mu;xprime=x(2);mu*(1-x(1)2)*x(2)-x(1);l 再编写脚本文件再编写脚本文件 vdpl.m,在命令窗口直接运行该文件。,在命令窗口直接运行该文件。clear;global mu;mu=7;y0=1;0;t,x=ode45(verderpol,0,40,y0);plot(t,x(:,1),r-,t,x(:,2),b-);

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

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


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

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


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