数学建模:运算符号_第1页
数学建模:运算符号_第2页
数学建模:运算符号_第3页
数学建模:运算符号_第4页
数学建模:运算符号_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,MATLAB 符号运算,2,3,符号运算,什么是符号运算? 直接对抽象的符号对象进行计算,结果以标准的符号形式来表示。 可以获得比数值计算更一般的结果。 符号运算的特点: 运算以推理解析的方式进行,因此不受计算误差积累问题困扰; 计算结果或给出完全正确的封闭解,或给出任意精度的数值解(当封闭解不存在时); 符号计算指令的调用比较简单,经典教科书公式相近; 计算所需时间较长,有时难以忍受。 MATLAB符号运算是通过集成在MATLAB中的符号运算工具箱(symbolic math toolbox)来实现的。符号数学工具箱中的工具是建立在功能强大的称作Maple软件的基础上。 它最初是由加拿大

2、的滑铁卢(Waterloo)大学开发的。当要求MATLAB进行符号运算时,它就请求Maple去计算并将结果返回到MATLAB命令窗口。 符号数学工具箱是操作和解决符号表达式的符号数学工具箱(函数)集合,有符号表达式的运算,复合、简化、微分、积分以及求解代数方程和微分方程的工具,4,主要内容,符号计算基础 符号函数及其应用 符号积分 级数 符号方程求解 其他常用命令,5,符号计算基础,MATLAB定义了一种符号数据类型 运算对象为符号对象 符号常量:无变量的符号表达式称作符号常量 符号变量 符号表达式 建立符号对象 x=sym(x) 创建单个符号常量/变量x 符号常量: x不为变量 符号变量:

3、x为字符、字符串、表达式或字符表达式 syms用于方便地一次创建多个符号变量,调用格式为: syms a b c d . 这种格式定义符号变量时不需要在变量名上加字符分界符(),变量间用空格而不要用逗号分隔。 书写简洁意义清楚,建议使用,6,符号计算基础(续,符号表达式 含有符号对象的表达式称为符号表达式 MATLAB在内部把符号表达式表示成字符串,以与数字变量或运算相区别;否则,这些符号表达式几乎完全象基本的MATLAB命令。 符号表达式例子以及MATLAB等效表达式,7,符号计算基础(续,考察符号变量和数值变量的差别 例 a=sym(a);b=sym(b);c=sym(c);d=sym(d

4、); %定义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的行列式,8,符号计算基础(续,比较符号常数与数值在代数运算时的差别 例 pi1=sym(pi);k1=sym(8);k2=sym(2);k3=sym(3); % 定义符号变量 pi2=pi;r1=8;r2=2;r3=3; % 定义数值变量 sin(pi1/3) % 计算符号表达式值 sin(pi2/3) % 计算数值表达式值 sqrt(k1) % 计算符号表达式值

5、 sqrt(r1) % 计算数值表达式值 sqrt(k3+sqrt(k2) % 计算符号表达式值 sqrt(r3+sqrt(r2) % 计算数值表达式值,9,基本的符号运算(续,基本的符号运算 符号表达式的四则运算 + , - , * , / 。 符号表达式的提取分子和分母运算 numden 因式分解与展开 factor,expand 表达式化简 simplify,simple 符号表达式与数值表达式之间的转换 sym,numeric,eval,10,基本的符号运算(续,符号表达式的四则运算 符号表达式的四则运算和其他表达式的运算并无不同,但要注意,其运算结果依然是一个符号表达式,11,基本的

6、符号运算(续,例 f=sym(2*x2+3*x-5) g=sym(x2-x+7) f+g f-g f*g f/g f3,12,基本的符号运算(续,符号表达式的提取分子和分母运算(分式通分) 如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。其一般调用格式为: n,d=numden(s) 该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。 例 对表达式 f=x/y+y/x 进行通分。 syms x y f=x/y+y/x; n,d=numden(f) n = x2+y2 d = y*x,13,基本的符号运算(续,因式分解与展开 f

7、actor(S) 对S分解因式,S是符号表达式或符号矩阵。 expand(S) 对S进行展开,S是符号表达式或符号矩阵。 collect(S) 对S合并同类项,S是符号表达式或符号矩阵。 collect(S,v) 对S按变量v合并同类项,S是符号表达式或符号矩阵 例1: 对表达式f=x9-1进行因式分解。 syms x f=factor(x9-1) 例2:对大整数12345678901234567890进行因式分解 factor(sym(12345678901234567890,14,基本的符号运算(续,表达式展开:expand(S) 例 展开表达式f=(x+1)5和f=sin(x+y) sy

8、ms x y f=(x+1)5; expand(f) f=sin(x+y); expand(f,15,基本的符号运算(续,符号表达式的同类项合并:collect(S,n) 将符号表达式中自变量的同次幂项的系数合并。 例:对于表达式f=x(x(x-6)+12)t, 分别将自变量x和t的同类项合并。 syms x t f=x*(x*(x-6)+12)*t; collect(f) collect(f,t,16,基本的符号运算(续,符号表达式化简 simplify(S): 应用函数规则对S进行化简。 simple(S): 调用MATLAB的其他函数对表达式进行综合化简,选择在结果表达式中含有最少字符的

9、那种形式,并显示化简过程。 r,how=simple(S) 函数可寻找符号表达式S的最简型, r为返回的简化形式,how为化简过程中使用的主要方法,simple函数综合使用了下列化简方法: simplify 函数对表达式进行化简 radsimp 函数对含根式(surd)的表达式进行化简 combine 函数对表达式中以求和、乘积、幂运算等形式出现的项进行合并 collect 合并同类项 factor 函数实现因式分解 convert 函数完成表达式形式的转换,17,基本的符号运算(续,例1:对表达式f=sin2(x)+cos2(x)进行化简. syms x f=sin(x)2+cos(x)2;

10、 simplify(f) 例2 观察最简表达式的获得 syms x t f=cos(x)2-sin(x)2; simple(f) r,how=simple(f) r = cos(2*x) how = combine(trig,18,基本的符号运算(续,符号表达式与数值表达式之间的转换 Sym:可以将数值表达式变换成它的符号表达式。 eval:可以将符号表达式变换成数值表达式。 例 sym(1.5) sym(3.14) a= (1+sqrt(5)/2 eval(234/5,19,基本的符号运算(续,符号表达式中变量的确定 findsym :可以帮助用户查找一个符号表达式中的的符号变量。该函数的调

11、用格式为: findsym(S,n) 函数返回符号表达式S中的n个符号变量,若没有指定n,则返回S中的全部符号变量。 例 syms x a y z b; s1=3*x+y;s2=a*y+b; findsym(s1) findsym(s2,2) findsym(5*x+2) c=sym(3) findsym(a*x+b*y+c,20,基本的符号运算(续,在求函数的极限、导数和积分时,如果用户没有明确指定自变量,MATLAB将按缺省原则确定主变量并对其进行相应微积分运算。 可用findsym(S,1)查找系统的缺省变量,事实上MATLAB按离字符x最近原则确定缺省变量。 例 syms a b y

12、z w findsym(a*y+b*w,1) findsym(a*z+b*w,1) findsym(a*5+b,1,21,基本的符号运算(续,符号矩阵 符号矩阵也是一种符号表达式 前述符号表达式运算的函数分别作用于矩阵的每一个元素 例:创建一个循环矩阵。 syms a b c d n=a b c d;b c d a;c d a b;d a b c n = a, b, c, d b, c, d, a c, d, a, b d, a, b, c 注意:符号矩阵的每一行的两端都有方括号,这是与 matlab数值矩阵的一个重要区别,22,基本的符号运算(续,例:将3阶Hilbert矩阵转换为符号矩阵。

13、 h=hilb(3) h1=sym(h) h = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 h1 = 1, 1/2, 1/3 1/2, 1/3, 1/4 1/3, 1/4, 1/5,23,基本的符号运算(续,应用于数值矩阵的函数diag,triu,tril,inv,det,rank,eig也可直接应用于符号矩阵 专用于符号矩阵的函数 transpose(S) 返回S矩阵的转置矩阵。 A=sym(sin(x),cos(x);acos(x),asin(x) B=transpose(A) D=det (A) E=in

14、v(A,24,主要内容,符号计算基础 符号函数及其应用 符号积分 级数 符号方程求解,25,符号函数求极限,符号函数求极限 limit(f,x,a) 计算符号表达式f在xa条件下的极限; limit(f,a) 计算符号表达式f中由默认自变量趋向于a条件下的极限; limit(f) 计算符号表达式f在默认自变量趋向于0条件下的极限; limit(f,x,a,right) 和limit(f,x,a,left) 计算符号表达式f在xa条件下的右极限和左极限,26,符号函数求极限(续,例 求极限 syms a m x; f=(x(1/m)-a(1/m)/(x-a); limit(f,x,a) %求极限

15、(1) f=(sin(a+x)-sin(a-x)/x; limit(f) %求极限(2) f=x*(sqrt(x2+1)-x); limit(f,x,inf,left) %求极限(3) f=(sqrt(x)-sqrt(a)-sqrt(x-a)/sqrt(x*x-a*a); limit(f,x,a,right) %求极限(4,27,符号函数求导,符号函数求导及其应用 MATLAB中求导的函数为: diff(f,x,n) 求函数f对变量x的n阶导数。 参数x缺省,取默认变量 n的缺省值是1,28,符号函数求导(续,例 1 求函数的导数 syms x y; f=sqrt(1+exp(x); diff

16、(f) %求(1)。未指定求导变量和阶数,按缺省规则处理 f=x*cos(x); diff(f,x,2) %求(2)。求f对x的二阶导数 diff(f,x,3) %求(2)。求f对x的三阶导数,29,符号函数求导(续,例2 求函数的导数 syms a b t x y z; f1=a*cos(t);f2=b*sin(t); diff(f2)/diff(f1) %求(3)。按参数方程求导公式求y对x的导数 (diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f1)2 %求(3)。求y对x的二阶导数 f=x*exp(y)/y2; diff(f,x) %求(4

17、)。z对x的偏导数 diff(f,y) %求(4)。z对y的偏导数,30,主要内容,符号计算基础 符号函数及其应用 符号积分 级数 符号方程求解,31,符号积分,积分 数值计算:近似解 符号计算:解析解 求不定积分 int(f) 求符号表达式f对于默认自变量的不定积分; int(f,v) 求符号表达式f对于自变量v的不定积分,32,符号积分(续,例 求不定积分。 x=sym(x); f=(3-x2)3; int(f) %求不定积分(1) f=5*x*t/(1+x2); int(f,t) %求不定积分(2) g=simple(ans) %调用simple函数对结果化简,33,符号积分(续,求定积

18、分 int(f,x,a,b): a,b分别表示定积分的上限和下限 可以是具体的数,返回一个数值 也可以是符号表达式,返回一个符号函数 ,还可以是无穷(inf),返回一个广义积分 例 求定积分 x=sym(x);t=sym(t); int(abs(1-x),1,2) %求定积分(1) f=1/(1+x2); int(f,-inf,inf) %求定积分(2) int(4*x/t,x,2,sin(x) %求定积分(3) f=x3/(x-1)10; I=int(f,2,3) %用符号积分的方法求定积分(4) double(I) %将上述符号结果转换为数值,34,符号积分(续,积分变换 通过积分运算把一

19、个函数f(原函数)变成另一个函数F(像函数),变换过程是 其中,二元函数K(x,t)称为变换的核,决定了不同的变换 傅立叶(Fourier)变换 拉普拉斯(Laplace)变换 Z变换 变换的目的 例:解微分方程,先求解出F-f,35,符号积分(续,傅立叶(Fourier)变换 当积分变量的核为 傅立叶变换 傅立叶逆变换 在MATLAB中,进行傅立叶变换的函数是 fourier(fx,x,t) 求函数f(x)的傅立叶像函数F(t)。 ifourier(Fw,t,x) 求傅立叶像函数F(t)的原函数f(x,36,例 求函数y= 的傅立叶变换及其逆变换。 命令如下: syms x t; y=abs

20、(x); Ft=fourier(y,x,t) %求y的傅立叶变换 fx=ifourier(Ft,t,x) %求Ft的傅立叶逆变换,符号积分(续,37,符号积分(续,拉普拉斯(Laplace)变换 当积分变量的核为 拉普拉斯变换 拉普拉斯逆变换 在MATLAB中,进行拉普拉斯变换的函数是 laplace(f,x,t) 求函数f(x)的拉普拉斯像函数F(t)。 ilaplace(F,t,x) 求拉普拉斯像函数F(t)的原函数f(x,38,符号积分(续,例 计算y=x2的拉普拉斯变换及其逆变换. 命令如下: x=sym(x); y=x2; Ft=laplace(y,x,t) %对函数y进行拉普拉斯变

21、换 fx=ilaplace(Ft,t,x) %对函数Ft进行拉普拉斯逆变换,39,符号积分(续,Z变换 当函数f(x)呈现为一个离散的数列f(n)时, z变换 Z逆变换 对数列f(n)进行z变换的MATLAB函数是: ztrans(fn,n,z) 求fn的Z变换像函数F(z) iztrans(Fz,z,n) 求Fz的z变换原函数f(n,40,符号积分(续,例 求数列 fn=e-n的Z变换及其逆变换。 命令如下: syms n z fn=exp(-n); Fz=ztrans(fn,n,z) %求fn的Z变换 f=iztrans(Fz,z,n) %求Fz的逆Z变换,41,主要内容,符号计算基础 符

22、号函数及其应用 符号积分 级数 符号方程求解,42,级数符号求和,级数求和 有穷级数求和:sum 无穷级数求和: symsum 级数符号求和函数symsum,调用格式为: symsum(a,v,m,n) a表示级数的通项,是一个符号表达式 v是求和变量 m和n分别为求和的开始项和末项,43,级数符号求和(续,例 求级数之和 命令如下: n=sym(n); s1=symsum(1/n2,n,1,inf) %求s1 s2=symsum(-1)(n+1)/n,1,inf) %求s2。未指定求和变量,缺省为n s3=symsum(n*xn,n,1,inf) %求s3。此处的求和变量n不能省略。 s4=

23、symsum(n2,1,100) %求s4。计算有限级数的和,44,函数的泰勒级数,泰勒级数 将一个任意函数表示为一个幂级数 实例: 通常情况下,取幂级数的前有限项表示该函数,精度已经足够 MATLAB中提供了将函数展开为幂级数的函数taylor,其调用格式为:taylor(f,v,n,a) 函数f按变量v展开为泰勒级数,展开到第n项(即变量v的第n-1次幂)为止, n默认为6 a指定将函数f在自变量v=a处展开,默认值为0,函数 f(x) = ex 展开成 x 的幂级数为,45,函数的泰勒级数(续,例1 求 的5阶泰勒级数展开式 x=sym(x); f1=sqrt(1-2*x+x3)-(1-

24、3*x+x2)(1/3); taylor(f1,x,5) %展开到x的4次幂时应选择n=5 例2 将 在x=1处按5次多项式展开。 x=sym(x); f2=(1+x+x2)/(1-x+x2); taylor(f2,6,1) %展开到x-1的5次幂时应选择n=6,46,主要内容,符号计算基础 符号函数及其应用 符号积分 级数 符号方程求解,47,符号代数方程求解,什么是代数方程? 代数方程是指未涉及微积分运算的方程,相对比较简单。 在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为: solve(eq):求解符号表达式表示的代数方程eq,求解变量为默认变量。当方程右端为0时,方程eq中可以不包含右端项和等号,而仅列出方程左端的表达式。 solve(eq,v):求解符号表达式表示的代数方程eq,求解变量为v。 solve(eq1,eq2,eqn,v1,v2,vn):求解符号表达式eq1,eq2,eqn组成的代数方程组,求解变量分别v1,v2,vn。若不指定求解变量,由默认规则确定,48,符号代数方程求解(续,例 求方程的解 x=solve(1/(x+2)+4*x/(x2-4)=1+2/(x-2),x) %解方程(1) f=sym(x-(x3-4*x-7)(1/3)=1); x=solve(f) %解方程(2) x=s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论