用matlab表示g2t,第二讲 2matlab符号计算2

《第二讲 2matlab符号计算2》由会员分享,可在线阅读,更多相关《第二讲 2matlab符号计算2(31页珍藏版)》请在人人文库网上搜索。

1、Matlab 符号运算,Matlab 符号运算介绍,Matlab 符号运算是通过符号数学工具箱(Symbolic Math Toolbox)来实现的。Matlab 符号数学工具箱是建立在功能强大的 Maple 软件的基础上的,当 Matlab 进行符号运算时,它就请求 Maple 软件去计算并将结果返回给 Matlab。,Matlab 的符号数学工具箱可以完成几乎所有得符号运算功能。主要包括:符号表达式的运算,符号表达式的复合、化简,符号矩阵的运算,符号微积分、符号作图,符号代数方程求解,符号微分方程求解等。此外,该工具箱还支持可变精度运算,即支持以指定的精度返回结果。,Matlab 符号运算。

2、特点,计算以推理方式进行,因此不受计算误差累积所带来的困扰。,符号计算指令的调用比较简单,与数学教科书上的公式相近。,符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时)。,符号计算所需的运行时间相对较长。,Matlab 符号运算举例,求一元二次方程 ax2 + bx + c = 0 的根, solve(a*x2+b*x+c),求的根 f (x) = (cos x)2 的一次导数, x=sym(x); diff(cos(x)2),计算 f (x) = x2 在区间 a, b 上的定积分, syms a b x; int(x2,a,b),在进行符号运算时,必须先定义基本的符号对。

3、象,可以是符号常量、符号变量、符号表达式等。符号对象是一种数据结构。,符号对象与符号表达式,含有符号对象的表达式称为符号表达式,Matlab 在内部把符号表达式表示成字符串,以与数字变量或运算相区别。,符号矩阵/数组:元素为符号表达式的矩阵/数组。,sym 函数用来建立单个符号变量,一般调用格式为:,符号对象的建立:sym 和 syms,符号对象的建立, b=sym(1/3), c=sym(1 ab; c d),符号对象的建立:sym 和 syms,符号对象的建立,syms 命令用来建立多个符号变量,一般调用格式为:,syms 符号变量1 符号变量2 . 符号变量n, a=sym(a); b=。

4、sym(b); c=sym(c);,符号表达式的建立:,例:,建立符号表达式通常有以下2种方法: (1) 用 sym 函数直接建立符号表达式。(2) 使用已经定义的符号变量组成符号表达式。, y=sym(sin(x)+cos(x), x=sym(x); y=sin(x)+cos(x),符号表达式的建立,Matlab 符号运算采用的运算符和基本函数,在形状、名称和使用上,都与数值计算中的运算符和基本函数完全相同,符号对象的基本运算,符号对象的基本运算,三角函数与反三角函数、指数函数、对数函数等,基本函数/要彻底搞懂每个函数意义,查找符号表达式中的符号变量,若表达式中有两个符号变量与 x 的距离相。

5、等, 则ASCII 码大者优先。,查找符号变量,findsym(expr)按字母顺序列出符号表达式 expr 中的所有符号变量,findsym(expr, N)列出 expr 中离 x 最近的 N 个符号变量,常量 pi, i, j 不作为符号变量,例:, f=sym(2*w-3*y+z2+5*a) findsym(f), f=sym(f,3), f=sym(f,1),findsym 举例,符号表达式的替换,subs(f,x,a) 用 a 替换字符函数 f 中的字符变量 x a 是可以是 数/数值变量/表达式 或 字符变量/表达式,若 x 是一个由多个字符变量组成的数组或矩阵, 则 a 应该具。

6、有与 x 相同的形状的数组或矩阵。,用给定的数据替换符号表达式中的指定的符号变量,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+2) syms x y f3=subs(f,u,x+y) subs(f3,x,y,1,2),ans=4,f2=2*(u+2),ans=14,ans=2*(a+2)+2),f3=2*x+2*y,ans=6,例:指出下面各条语句的输出结果,f=2*u,上机作业, a1=1e10; b1=1e-10;e c1=(a1+b1-a1)/b1; a2=sym(a1。

7、); b2=sym(b1); c2=(a2+b2-a2)/b2;,指出下面的 M1,M2,M3 分别是什么,并上机验证。, a=1; b=2; c=3;d=4; M1=a,b;c,d; M2=a,b;c,d; M3=sym(a,b;c,d);,下面语句计算出来的 c1,c2 相等吗,为什么?上机验证。,补充:class(x) 查看指定变量 x 的类型,六类常见符号运算,因式分解、展开、合并、简化及通分等,计算极限,计算导数,计算积分,符号求和,代数方程和微分方程求解,因式分解,因式分解,factor(f), syms x; f=x6+1; factor(f),factor 也可用于正整数的分解。

8、, s=factor(100), factor(sym(12345678901234567890),大整数的分解要转化成符号常量,函数展开,函数展开,expand(f), syms x; f=(x+1)6; expand(f),多项式展开,三角函数展开, syms x y; f=sin(x+y); expand(f),合并同类项,合并同类项,collect(f,v): 按指定变量 v 进行合并 collect(f): 按默认变量进行合并, syms x y; f= x2*y + y*x - x2 + 2*x ; collect(f), collect(f,y),函数简化,函数简化,y=simp。

9、le(f): 对 f 尝试多种不同的算法进行简化,返回其中最简短的形式,y, How=simple(f): y 为 f 的最简短形式,How 中记录的为简化过程中使用的方法。,函数简化,函数简化,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), 。

10、g2=simple(g1),多次使用 simple 可以达到最简表达。,例:简化,分式通分,函数简化,N,D=numden(f): N 为通分后的分子,D 为通分后的分母, syms x y; f=x/y+y/x; N,D=numden(f), n,d=numden(sym(112/1024),horner 多项式,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。

11、(f,x,a,right): 计算右极限 limit(f,x,a,left): 计算左极限,例:计算 ,, syms x h n; L=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 阶导数,diff, syms x; f=sin(x)+3*x2; g=diff(f,x),计算积分,int(f,v,a,b): 计算定积分 int(f,a,b): 计算关于默认变。

12、量的定积分 int(f,v): 计算不定积分 int(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),代数方程和微。

13、分方程求解,代数方程求解,solve(f,v):求方程关于指定自变量的解,f 可以是用字符串表示的方程、符号表达式或符号方程; solve 也可解方程组(包含非线性); 得不到解析解时,给出数值解。,微分方程求解,其它运算,反函数,finverse(f,v):求 f 关于指定变量 v 的反函数 finverse(f):求 f 关于默认变量的反函数, syms x t; f=x2+2*t; g1=finverse(f,x) g2=finverse(f,t),例:计算函数 的反函数,上机作业,简化表达式,设 A 是一个符号矩阵 (定义如下),试指出 findsym(A,1) 的输出结果,并由此能得出什么结论?, syms a b t u v x y; A=a+b*x,sin(t)+u; x*exp(-t),log(y)+v,试指出下面两条命令的结果是否相同,如果不同,哪个是正确的?为什么?, factor(sym(12345678901234567890), factor(12345678901234567890。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值