MATLAB基本应用领域
❖x=sym('x') ❖diff(cos(x)^2)
例:d求co导s(x数2 )
dx
d cos(x2 ) (sin x2 ) (2x) 2x sin x2 dx
❖syms x; ❖diff(cos(x^2))
例:计算不定积 x分dx
xdx
1 2
x2
C
❖symsLeabharlann x; ❖int(x)例:计算定积ab 分x 2 dx
❖ 例: 用函数命令sym()来创建符号矩阵 m1=sym('[ab bc cd;de ef fg;h i j]'); clam1=class(m1) m2=sym('[1 12;23 34]'); clam2=class(m2) m3=sym('[a b;c d]*x=0'); clam3=class(m3)
3.MATLAB符号运算的基本内容
(1)符号变量代换及其函数subs() ❖ 格式1:subs(S,old,new)
old是符号表达式S中的符号变量, 而new可以是符号变量、符号常量、 双精度数值与数值数组等。 ❖ 格式2:subs(S,new) 用new置换符号表达式S中的自变量。
❖ 例: 已知f=axn+by+k, 符号变量替换:a=sint,b=lnw,k=ce-dt; 符号常量替换:n=5,k=π k用数值数组替换:k=1:1:4。 ❖ [解] syms a b c d k n x y w t; f=a*x^n+b*y+k f2=subs(f,[a b k],[sin(t) log(w) c*exp(-d*t)]) f3=subs(f,[n,k],[5,pi]) f4=subs(f,k,1:4)
(2)MATLAB符号表达式的化简
❖ a.因式分解的函数命令factor() ❖ 格式:factor(E) ❖ factor(sym(N’))—对于大于252的整数
adt
ln y at c
y(t) eatc eat ec c1eat
❖ syms a y;
❖ dsolve('Dy=a*y')
例:解一阶微分方dy 程 ay
dt
dy y
adt
ln y at c
y(t) eatc eat ec c1eat
❖ syms a y;
❖ dsolve('Dy=a*y')
(6)函数命令findsym()
❖ 确定一个符号表达式中的自变量
❖ 格式1 findsym(f,n) 按数学习惯确定符号函数f中的n个自变量。
❖ 格式2 findsym(e,n) 按数学习惯确定符号方程e中的n个自变量。
❖ 例:用函数命令findsym()确定符号函 数f1,f2中的自变量。
syms k m n w y z; f=n*y^n+m*y+w; ans1=findsym(f,1) f2=m*y+n*log(z)+exp(k*y*z); ans2=findsym(f2,2)
(5)符号表达式
❖ 符号表达式有两类:符号函数与符号方程。
❖ 例:用sym和syms建立符号函数 syms n x t p T wc; f1=n*x^n/x f2=sym(log(t)^2*t+p) f3=pi+atan(T*wc) f4=sym('w+sin(a*z)')
❖例:用sym建立符号方程 e1=sym('a*x^2+b*x+c=0') e2=sym('log(t)^2*t=p') e3=sym('sin(x)^2+cos(x)=0') e4=sym('Dy-y=x')
b x2dx 1 x3 b 1 (b3 a3 )
a
3 a3
❖syms x a b;
❖int(x^2,a,b)
例:求矩阵
p
a c
b
d
行列式的值
det( p) ad bc
❖ syms a b c d; ❖ p=[a b;c d]; ❖ det(p)
例:解一阶微分方dy 程 ay
dt
dy y
x=solve('a*x^2+b*x+c') ❖或者
y='a*x^2+b*x+c' x=solve(y)
例:对于数学x表2 y达式yx x2 2x 合并关于x的同类项
x2 y yx x2 2x (y 1)x2 (y 2)x
❖syms x y; ❖collect(x^2*y+y*x-x^2-2*x)
❖ 例:用函数命令findsym()确定符号方 程e1,e2中的自变量。
syms a b c x p q t w; e1=sym('a*x^2+b*x+c=0'); ans1=findsym(e1,1) e2=sym('2*(sin(p*t+q))=0'); ans2=findsym(e2)
(7)符号矩阵
例:三因式连乘积的展开式
(x2 1) (x 2) (x 3)
(x2 1) (x 2) (x 3) x4 x3 5x2 x 6
❖syms x; ❖collect((x^2+1)*(x+2)*(x-3))
例:d求(c导os2 数x) dx
d (cos2 x) 2cosx(sin x) 2sin x cosx dx
❖ 格式1:S=sym(A) ❖ 格式2:syms s1 s2 s3 ❖ 例:
sym('a') syms a
(3)符号常量
❖ 例:对数值量1/8创建符号对象。 ❖ a=sym(1/8) ❖ b=sym('1/8')
(4)符号变量
❖ 例: ❖ a=sym('alpha') ❖ syms alpha
5.1 符号运算
❖ Mathworks公司 ❖ 1993年 ❖ Maple ❖ 符号计算工具箱(Symbolic Toolbox)
❖ 例:
1.符号运算入门
x2 2x 2 0
x1,2 1 j
ax2 bx c 0
x1,2 b
b2 4ac 2a
❖solve('a*x^2+b*x+c=0') ❖还可以是:
2.MATLAB符号运算的几个基本概念
❖MATLAB数值运算的操作对象是数值,
而MATLAB符号运算的操作对象是非
数值的符号对象。
(1)符号对象(sym类型)
❖ 存储代表非数值的字符对象。
❖ 符号对象可以是符号常量(符号形式 的数)、符号变量、符号函数以及各 种符号表达式等。
(2)创建符号对象