matlab symbolic
Post on 17-Oct-2014
87 views
TRANSCRIPT
MATLAB MATLAB –– 符號運算功能符號運算功能
(參考資料:電腦在化工上之應用 逢甲大學陳奇中老師)
利用利用SymbolicSymbolic做做 微分微分(Differentiate) (Differentiate) 運算運算
•• Symbolic Math ToolboxSymbolic Math Toolbox
• Ex1: 求 之微分式
>>syms x>>f=3*x^4-x^3+2*x^2+x+1>>diff(f)ans =
12*x^3-3*x^2+4*x+1
123 234 +++− xxxx
Ex2: 求 之微分式
>>syms x>>f=sin(x^2)>>diff(f)ans=
2*cos(x^2)*x
•二次微分 diff(f,2)>>syms a x>>f=sin(a*x^2)>>diff(f,2)>>diff(f,a,2) % differentiate with respect to a
)sin( 2x
利用利用SymbolicSymbolic做做 積分積分(Integrate) (Integrate) 運算運算
• Ex1: 求 之積分式,即
>>syms x>>f=-2*x/(1+x^2)^2>>int(f)ans=
1/(1+x^2)
22 )1(2x
x+−
2 22 ?
(1 )x dx
x−
=+∫
• Ex1: 求 之值
>>syms x>>f= x*log(1+x)>>int(f,0,1)ans=
1/4
1
0ln(1 )x x dx+∫
利用利用SymbolicSymbolic求求 級數之和級數之和(Summation of series)(Summation of series)
Ex1: 求
>>syms n k>>symsum(n,0,k)ans=
1/2*(k+1)^2-1/2*k-1/2
若所求為
>>k=10>>1/2*(k+1)^2-1/2*k-1/2ans=
55
?...32100
=+++++=∑=
knk
n
?10...321010
0
=++++=∑=n
n
• Ex2: 求 之值
>>syms n>>symsum(1/(n*(n+1)*(n+2)),1,inf)
ans=1/4
∑∞
= ++1 )2)(1(1
n nnn
利用利用Symbolic Symbolic 展開多項式展開多項式
Ex1:
>>syms x>>expand((x-2)*(x-4))ans=
x^2-6*x+8
Ex2:>>syms x y>>expand(cos(x+y))ans=
cos(x)*cos(y)-sin(x)*sin(y)
86)4)(2( 2 +−=−− xxxx
)sin()sin()cos()cos()cos( yxyxyx −=+
利用利用Symbolic Symbolic 簡化多項式簡化多項式
Ex1:
>>syms x>>simple(x^3+3*x^2+3*x+1)ans=
(x+1)^3
Ex2:>>syms x>>simple(2*cos(x)^2-sin(x)^2)ans=
3*cos(x)^2-1
323 )1(133 +=+++ xxxx
2 22cos ( ) sin ( ) ?x x− =
利用利用SymbolicSymbolic求求 多項式和聯立多項式和聯立方程之解方程之解
Ex1:
>>syms a b c x>>y=solve(a*x^2+b*x+c)y=
1/2/a*(-b+(b^2-4*a*c)^(1/2))1/2/a*(-b-(b^2-4*a*c)^(1/2))
% pretty 漂亮的表示式pretty(y)
2 0, ?ax bx c x+ + = =
aacbbx
242 −±−
=
• Ex2: 求解
>>syms x y>>S=solve('x+y-1','x-11*y-5')S =
x: [1x1 sym]y: [1x1 sym]
S.x = 4/3S.y = -1/3
註:請比較[x,y]=solve('x+y-1', 'x-11*y-5')之指令
=−=+
5111
yxyx
• Ex3: 求解
>>syms x y z>>S=solve('x+y+z=1','x-y+z=2','x+y-z=-1')S =
x: [1x1 sym]y: [1x1 sym]z: [1x1 sym]
S.x=1/2S.y=-1/2S.z=1
註:請比較[x,y,z]=solve('x+y+z=1','x-y+z=2','x+y-z=-1')之指令
−=−+=+−=++
121
zyxzyxzyx
• Ex4: 求解
>>syms x y alpha>>[x,y]=solve('x^2*y^2','x-y/2-alpha')
• Ex5:求解
>>syms u v a>>[a,u,v]=solve('u^2-v^2=a^2','u+v=1','a^2-2*a=3')
=−
=
αyx
yx
21
022
=−
=+=−
321
2
222
aavu
avu
(the results are sorted alphabetically and assigned to the outputs)
利用利用SymbolicSymbolic求極限值求極限值
lim ( ) ?x a
f x→
= >> limit(f,x,a)
• Ex1:
>>syms x>>limit(sin(x)/x,x,0)
• Ex2:
>>syms x h>>limit((sin(x+h)-sin(x))/h,h,0)
0
sin( )lim ?x
xx→
=
0
sin( ) sin( )lim ?x
x h xh→
+ −=
è 1
è cos(x)
利用利用SymbolicSymbolic解微分方程式解微分方程式
Ex1: solve
>>dsolve('Dy=1+y^2')
Ex2: solve , I.C.
>>dsolve('Dy=1+y^2','y(0)=1')
Ex2: solve , I.C.
>>dsolve('(Dx)^2+x^2=1','x(0)=0')
21 ydtdy
+=
21 ydtdy
+= 1)0( =y
122
=+
x
dtdx 1)0( =x
• Ex 4: solve ,
>>y=dsolve('D2y=cos(2*x)-y','y(0)=1','Dy(0)=0','x')
• Ex 5: solve
>>u=dsolve('D3u=u','u(0)=1', 'Du(0)=-1', 'D2u(0)=pi', 'x')
• Ex 6: solve , I.C.
>>[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','f(0)=0','g(0)=1')
yxdx
yd−= )2cos(2
2
,1)0( =y 0)0(' =y
,3
3
udx
ud= ,1)0( =u ,1)0(' −=u π=)0("u
+−=
+=
gfdtdg
gfdtdf
34
43,0)0( =f 1)0( =g
利用利用SymbolicSymbolic求求 LaplaceLaplace轉換轉換
Ex1:
>>syms t>>laplace(t^4)ans=
24/s^5
∫∞
−=0
)(][ dtetffL ts
4)( ttf = 5
24)(s
sF =
• Ex2:
>>syms t a>>laplace(exp(-a*t))ans=
1/(s+a)
atetf −=)()(
1)(as
sF+
=
利用利用SymbolicSymbolic求求 反反LaplaceLaplace轉轉換換
Ex1:
>>syms s>>ilaplace(1/s^2)ans =
t
∫∞+
∞−
− =ic
ic
st dsesfi
fL )(21][1
π
2
1)(s
sf = ttF =)(
• Ex2:
>>syms s a>>ilaplace(1/(s-a)^2)ans =
t*exp(a*t)
2)(1)(as
sf−
= attetF =)(
利用利用SymbolicSymbolic求求 FourierFourier轉換轉換
Ex1:
>>syms x>>fourier(exp(-x^2))ans=
pi^(1/2)*exp(-1/4*w^2)
∫∞
∞−
−= dxexfF xiωω )()(
2
( ) xf x e−= 42
)( ωπω −= eF