Matlab 符号运算(必读)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S=1/6*x*pi^2
Matlab 符号运算(二)
六大常见符号运算
因式分解、展开、合并、简化及通分等
计算极限 计算导数 计算积分 符号求和
解代数方程和微分方程(见实验三、六)
Matlab 符号运算(二)
其它运算
复合函数计算:compose
compose(f,g): 返回f(g(y)),其中f=f(x),g=g(y), x,y 分别是 f 和 g 的默认自变量。 compose(f,g,z):返回f(g(z)),其中x,y 分别是 f,g 的默认自变量,最后用符号变量z代替y。 compose(f,g,v,z):返回f(g(z)),v为f中指定的自变量, 令v=g(z),代入 f=f(v)。 compose(f,g,v,w,z):返回f(g(z)),其中v,w分别为f,g 的指定自变量,即将v=g(w)代入f(v),最后用z代替w。
diff(f,n),diff(f,’v’,n),diff(f,n,’v’): n次求导
Matlab 符号运算(二)
dy dy d2y d2y 例:设 y=sin(ax),求 A , B , C 2 , D 2 dx da dx da
>> syms a x >> y=sin(a*x) >> A=diff(y,x) >> B=diff(y,a) A=cos(a*x)*a B=cos(a*x)*x C=-sin(a*x)*a^2 D=-sin(a*x)*x^2
Matlab 符号运算(二)
例:求极限 L lim
ln( x h ) ln( x ) h0 h
n
x M lim1 n n
>> syms h n x >> L=limit((log(x+h)-log(x))/h,h,0) >> M=limit((1-x/n)^n,n,inf)
ans=sin(cos(x/t)/u)
ans=cos(sin(z/u)/t)
ans=cos(x/sin(z/u))
ans=cos(x/sin(y/u)) ans=cos(x/sin(y/z))
Matlab 符号运算(二)
其它运算
复合函数计算:compose
计算反函数:finverse finverse(f): 返回f关于默认自变量的反函数, 若f的反函数g存在,则有g(f(x))=x。 finverse(f,v): 返回f关于自变量v的反函数g, 即 g(f(v))=v。
Matlab 符号运算(二)
符号对象建立时可以附加属性: real、positive 和 unreal
>> x=sym('x','real') >> k=sym('k','positive') >> x=sym('x','unreal') 表明 x 是实的 表明 k 是正的 去掉 x 的附加属性
六大常见符号运算
因式分解、展开、合并、简化及通分等
计算极限 limit(f,x,a): 计算 lim f ( x )
x a
limit(f,a): 计算默认自变量趋向于a时f的极限 limit(f): 计算 a=0 时的极限 limit(f,x,a,’right’):右极限 limit(f,x,a,’left’):左极限
[R,HOW]=simple(f): R为f的最短简化形式, HOW中记录的为简化过程中使用的主要方法。
simple函数示例 f 2*cos(x)^2-sin(x)^2 (x+1)*x*(x-1) x^3+3*x^2+3*x+1 x^3-x (x+1)^3 R 3*cos(x)^2-1 HOW simplify combine(trig) factor
Matlab 符号运算(二)
作业:
1.化简 f ( x) cos x sin 2 x 2. >> >> >> >> exp(i*x)?
syms a b x X Y k=sym(’3’); z=sym('c*sqrt(delta)+y*sin(theta)'); f=a*z*X+(b*x^2+k)*Y;
>> a=sym(‘a’); >> b=sym(‘5’); >> c=sym(5); b、c有区别吗? hint:help sym
Matlab 符号运算(二)
相关函数 findsym: 查找符号表达式中的符号变量 findsym(f)
按字母顺序列出符号表达式 f 中的所有自由变量
findsym(f,N) 列出 f 中距离 x 最近的 N 个自由变量(i,j 除外)
Matlab 符号运算(二)
例: f cos(x / t ), g sin(y/u)
>> >> >> >> >> >> >> >> >> >> syms x y z u t f=cos(x/t); y=sin(y/u); compose(f,g) compose(g,f) compose(f,g,z) compose(f,g,x,z) compose(f,g,t,z) compose(f,g,t,y,z) compose(f,g,t,u) compose(f,g,t,u,z) ans=cos(sin(y/u)/t)
Matlab 符号运算(二)
例: f x 2 2t >> >> >> >> syms x t f=x^2+2*t; finverse(f) finverse(f,t)
Warning: finverse(x^2+2*t) is not unique
ans=(-2*t+x)^(1/2) ans=-1/2*x^2+1/2*t
中所有出现的相同的变量,并进行简化计算。 subs(f,x,a):用 a 替换 f 中的 x ;a 是可以是 数/ 数值变量/表达式 或 符号变量/表达式。 若x与a为相同大小的向量或矩阵,则用a中相应的元 素替换x中的元素; 若f,x为标量,而a是向量或矩阵,则f与x将扩展为 与a相同形状的向量或矩阵。
分式通分: numden
[N,D]=numden(f): N为通分后的分子,D为通分后的分母
Matlab 符号运算(二)
horner多项式:嵌套形式的多项式
例: f ( x ) x x
n
x 1 x( x( x( x 1) 1)) 1
n 1
Matlab 符号运算(二)
合并同类项: collect
collect(f,v): 按指定变量 v 的次数合并系数;
collect(f): 合并 f 中的默认自变量的各项系数。
findsym(f,1)
Matlab 符号运算(二)
简化函数: simple 和 simplify
simple(f): 对 f 尝试多种不同的算法简化, 返回其中最短的简化形式;
>> C=diff(y,x,2)
>> D=diff(y,a,2)
Matlab 符号运算(二)
六大常见符号运算
因式分解、展开、合并、简化及通分等
计算极限 计算导数 计算积分 int(f,v,a,b):计算定积分

b
a
f (v )dv
int(f,a,b): 计算 f 关于默认自变量 的定积分
Matlab 符号运算(二)
六大常见符号运算
因式分解、展开、合并、简化及通分等
计算极限 计算导数 计算积分 符号求和
symsum(f,v,a,b): 求和
f (v )
va
b
symsum(f,a,b): 关于默认自变量 求和。
Matlab 符号运算(二)
例:求级数 S
1 2 n 1 n

,以及其前10项的部分和。
>> syms n >> S=symsum(1/n^2,n,1,inf) >> S10=symsum(1/n^2,n,1,10)

S=1/6*pi^2 S10=1968329/1270080
例:求函数级数
S
x 2 n 1 n
>> syms n x >> S=symsum(x/n^2,n,1,inf)
Matlab 符号运算(二)
例: f ( x) 2 x y
>> >> >> >> >>
>> >> >> >> >> >> >> >>
syms x y f=2*x+y; x=3,y=4; subs(f) subs(f,x,’a’)
syms x y a b f=2*x+y; subs(f,[x,y],[3,4]) subs(f,{x,y},{3,4}) subs(f,x,[1:3]) subs(f,{x,y},{[1:3],[5:7]}) subs(f,{x,y},{a+b,a-b}) subs(f,{x,y},{x+y,x-y})
Matlab 符号运算(二)
符号表达式的建立
>> syms x >> f1=3*sin(x)+cos(x) >> f2=sym(’sin(x)+cos(x)’) >> f3=’sin(x)+cos(x)’ 用这种方法创建的符 号表达式对空格很敏 感,不要在字符间随 意添加空格! 推荐!
符号变量与符号常量
cos(3*acos(x))
4*x^3-3*x
expand
Matlab 符号运算(二)
simplify(f): 简化函数
注:多次 使用 simple 可以达到最简表达。
Matlab 符号运算(二)
例:化简 f ( x ) 3 13 62 12 8
x x x
Matlab 符号运算(二)
例: >> a=sym('a');x=sym('x');k=sym('3'); >> f=k*x+a; >> findsym(f) 默认自变量=findsym(f,1)
ans=a,x
Matlab 符号运算(二)
相关函数 subs:符号替换 subs(f): 用当前工作空间中存在的变量值,替换 f
>> syms x >> L=limit(abs(x)/x,x,0,’left') >> R=limit(abs(x)/x,x,0,’right')
L=1/x M=exp(-x)
L=-1
M=1
Matlab 符号运算(二)
六大常见符号运算
因式分解、展开、合并、简化及通分等
计算极限 计算导数 diff(f,’v’): 计算 f 关于变量 v 的导数 diff(f): 计算 f 关于默认自变量的导数
s =(1+x^2)*(x^4-x^2+1)
factor 也可用于正整数的分解
Matlab 符号运算(二)
大整数的分解
Matlab 符号运算(二)
展开函数: expand
多项式展开
该函数经常用于多项式展开,也常用于三角函数、 指数函数和对数函数的展开中。 三角函数展开
Matlab 符号运算(二)
ans=10
ans=2*a+y
ans=10 ans=[2+y,4+y,6+y] ans=[7 10 13]
ans=3*a+b
?
Matlab 符号运算(二)
六大常见符号运算
因式分解、展开、合并、简化及通分等
因式分解:factor >> syms x >> f=x^6 +1 >> s=factor(f)
int(f,v):计算不定积分 f ( v )dv int(f):计算 f 关于默认自变量 的不定积分

Matlab 符号运算(二)
x2 1 dx, 例:求积分 I 2 2 ( x 2 x 2) /2 cos x x2 J dx , K e dx 0 0 sin x cos x

>> >> >> >> >> >> >>
syms x f=(x^2+1)/(x^2-2*x+2)^2; I=int(f) I=3/2*atan(x-1)+1/4*(2*x-6)/(x^2-2*x+2) g=cos(x)/(sin(x)+cos(x)); J=int(g,x,0,pi/2) J=1/4*pi h=exp(-x^2); K=int(h,x,0,inf) K=1/2*pi^(1/2)
Matlab 符号运算(二)
Matlab 符号运算介绍
Matlab 符 号 运 算 是 通 过 符 号 数 学 工 具 箱 (Symbolic Math Toolbox)来实现的。
Biblioteka Baidu 符号对象的建立:sym 和 syms
例: >> syms x y z <==> >> x=sym(‘x’); >> y=sym(‘y’); >> z=sym(‘z’);
相关文档
最新文档