文档库

最新最全的文档下载
当前位置:文档库 > matlab

matlab

Matlab 在复变函数和积分变换中的应用

一、拉式变换

1、定义:Laplace 变换

dt e t f s F st -∞

?-=0)()(

说明:f 是符号表达式;t 是符号变量,可忽略,当t 省略默认自由变量为‘t ’;s 是符号变量,可忽略,省略时为‘s ’。

2、例题

(1)求f(t)=t^2的拉式变换

>> syms t

>> laplace(t^2) ans = 2/s^3

(2)求单位脉冲函数的拉式变换

>> syms t

>> laplace(dirac(t)) ans = 1

(3) 求f(t)=u(3t-5)的拉式变换

>> syms t

>> f=heaviside(t*3-5) f =

heaviside(t - 5/3) >> laplace(f) ans =

1/(s*exp((5*s)/3))

(4)求正弦函数f(t)=sinkt(k 为实数)的拉式变换

>> syms t k >> f=sin(k*t) f =

sin(k*t)

>> laplace(f) ans =

k/(k^2 + s^2)

(5)求f(t)=tcos at 的拉式变换

syms t,a

>> f=t*cos(a*t) f =

t*cos(a*t) >> laplace(f) ans =

(2*s^2)/(a^2 + s^2)^2 - 1/(a^2 + s^2)

(6)求f(t)=1-te^t >> syms t

>> f=1-t*exp(t) f =

1 - t*exp(t) >> laplace(f) ans =

1/s - 1/(s - 1)^2

3、matlab 关键命令

F=laplace(f,t,s) %求以t 为变量f 的LaplaceF

二、拉式反变换

1、定义:Laplace 反变换

ds e s F j

t f st

j c j c ?∞+∞-=

)(21)(π 2、例题

(1)求F(s)=1/(s(s-1)^2)的逆变换 >> syms s

>> f=1/(s*(s-1)^2) f =

1/(s*(s - 1)^2) >> ilaplace(f) ans =

t*exp(t) - exp(t) + 1

(2)求F(s)=1/((s + 1)*(s - 2)*(s + 3))的逆变换

>> syms s

>> f=1/((s+1)*(s-2)*(s+3)) f =

1/((s + 1)*(s - 2)*(s + 3))

>> ilaplace(f)

ans =

exp(2*t)/15 - 1/(6*exp(t)) + 1/(10*exp(3*t))

(3)求F(s)=1/(s^2+a^2)的逆变换

>> syms s a

>> f=1/(s^2+a^2)

f =

1/(a^2 + s^2)

>> ilaplace(f)

ans =

sin(t*(a^2)^(1/2))/(a^2)^(1/2)

(4) 求F(s)=s/((s-a)*(s-b))的逆变换

>> syms a b s

>> f=s/((s-a)*(s-b))

f =

s/((a - s)*(b - s))

>> ilaplace(f)

ans =

(a*exp(a*t))/(a - b) - (b*exp(b*t))/(a - b)

(5)求F(s)=(1+e^(-2*s))/s^2的逆变换

>> syms s

>> f=(1+exp(-2*s))/s^2

f =

(1/exp(2*s) + 1)/s^2

>> ilaplace(f)

ans =

t + heaviside(t - 2)*(t - 2)

(6)求F(s)=(s+1)/(9s^2+6s+5)的逆变换

>> syms s

>> f=(s+1)/(9*s^2+6*s+5)

f =

(s + 1)/(9*s^2 + 6*s + 5)

>> ilaplace(f)

ans =

(cos((2*t)/3) + sin((2*t)/3))/(9*exp(t/3))

3、matlab关键命令

F=ilaplace(F,s,t) %求以s为变量的F的Laplace反变换f

三、傅立叶变换

1、定义:傅里叶变换

matlab

2、例题

(1)求阶跃函数的傅里叶变换

>> syms x

>> fourier(heaviside(x))

ans =

pi*dirac(w) - i/w

(2)求脉冲函数的傅立叶变换

>> syms x

>> fourier(dirac(x))

ans =

1

(3)求正弦函数f(t)=sinwot的傅里叶变换

>> syms wo t

>> f=sin(wo*t)

f =

sin(t*wo)

>> fourier(f)

ans =

-pi*i*(dirac(t - w) - dirac(t + w))

(4)求f=cos(wot)*u(t)的傅里叶变换

>> syms wo t

>> f=heaviside(t)

f =

heaviside(t)

>> h=f*cos(wo*t)

h =

cos(t*wo)*heaviside(t)

>> fourier(h)

ans =

pi*heaviside(t)*(dirac(t - w) + dirac(t + w))

(5)求f(t)=e^(jwot)*u(t)的傅里叶变换

>> syms wo t

>> f=heaviside(t)

f =

heaviside(t)

>> h=exp(wo*t)*f

h =

exp(i*t*wo)*heaviside(t)

>> fourier(h)

ans =

2*pi*dirac(t - w)*heaviside(t)

(6)求f(t)=e^(jwot)*u(t)*t的傅里叶变换

>> syms wo t

>> f=heaviside(t)

f =

heaviside(t)

>> h=f*exp(i*wo*t)*t

h =

t*exp(i*t*wo)*heaviside(t)

>> fourier(h)

ans =

2*pi*t*dirac(t - wo)*heaviside(t)

3、matlab关键命令

F=fourier(f,t,w)

四、傅立叶逆变换

1、定义:傅立叶逆变换

matlab

2、例题

(1)求2*pi*t*dirac(t - wo)*heaviside(t)的傅立叶逆变换>> syms wo t

>> f=2*pi*t*dirac(t - wo)*heaviside(t)

f =

2*pi*t*dirac(t - wo)*heaviside(t)

>> ifourier(f)

ans =

t*exp(i*t*x)*heaviside(t)

(2)求exp(i*t*wo)*heaviside(t)的傅里叶逆变换

>> syms wo t

>> f=exp(i*t*wo)*heaviside(t) f =

exp(i*t*wo)*heaviside(t) >> ifourier(f) ans =

dirac(t + x)*heaviside(t)

3、matlab 关键命令

F=ifourier(F,w,t) %求以w 为符号变量的F 的fourier 反变换f

五、级数求和及敛散性判断

1、定义

级数:将数列un 的项 u1,u2,…,un ,…依次用加号连接起来的函数。数项级数的简称。如:u1+u2+…+un+…,简写为∑un ,un 称为级数的通项,记Sn=∑un 称之为级数的部分和。如果当n →∞时 ,数列Sn 有极限S ,则说级数收敛,并以S 为其和,记为∑un=S ;否则就说级数发散。

级数求和:

matlab

matlab

matlab

)133)(12)(1(30

1

32124444-+++=

++++n n n n n n ????

?-+=-+-+--为偶数为奇数n n n n n n ,2

),1(21

)1(3211

)1(2

1

)1()1(321121222+-=-+-+---n n n n n

??

??

?+-+-=-+-+--为偶数为奇数n n n n n n n n ),32(41,)1)(12(41)1(3212

2

3

1333

2、例题

matlab

(1)判断级数的收敛性,若收敛,求和函数

>> syms n

>> symsum(1/n,1,inf)

ans =

Inf

可知级数发散

(2)判断级数的收敛性,若收敛,求和函数

>> syms n

>> symsum(1/n^2,1,inf)

ans =

pi^2/6

(3)求幂级数Z^n的和函数

>> syms z n

>> f=z^n

f =

z^n

>> symsum(f,n,1,inf)

ans =

piecewise([1 <= z, Inf], [abs(z) < 1, - 1/(z - 1) - 1]) (4)求级数的前五项到前十项的和

>> syms k

>> s=k^3

s =

k^3

>> q=symsum(s,5,10)

q =

2925

matlab

(5)求级数的收敛半径

>> syms n z p

>> f=z^n/n^p

f =

z^n/n^p

>> symsum(f,n,1,inf)

ans =

piecewise([abs(z) <= 1 and p = 1 and z <> 1, -log(1 - z)], [(abs(z)

< 1 and p <= -1 or abs(z) <= 1 and 2 <= p) and p in Z_, polylog(p, z)])

可见,收敛半径为R=1

3、matlab 关键命令

symsum(s,x,a,b) %计算表达式s 当x 从a 到b 的级数和

说明:s 为符号表达式,x 为符号变量,可省略,省略时使用默认自由变量;a 和b 为符号变量的范围,可省略,省略时范围是无限个级数。

六、泰勒级数的展开

1、定义:

定义:如果在点x=x0具有任意阶微商,则幂级数称为在点x0处的泰勒级数。

matlab

级数展开:

,!

!!21)102∑∞

==+++++=n n

n

z

n z n z z z e

,111)20

2∑∞

==+++++=-n n n z z z z z

,)1()1(111)30

2∑∞=-=+-+-+-=+n n n n n z z z z z ,)!

12()1(!5!3sin )41253 ++-+-+-=+n z z z z z n n

,)!

2()1(!4!21cos )5242 +-+-+-=n z

z z z n n

,1

)1(32)1ln()61

32 ++-+-+-=++n z

z z z z n n

2、例题

(1)对f(x)=tanx 进行泰勒级数展开 >> syms x >> f=tan(x) f =

>> taylor(f) ans =

(2*x^5)/15 + x^3/3 + x

(2)对f(x)=ln(1+x)的8阶泰勒级数展开 >> syms x >> f=log(1+x) f =

log(x + 1)

>> taylor(f,8) ans =

x^7/7 - x^6/6 + x^5/5 - x^4/4 + x^3/3 - x^2/2 + x

(3)对f(x)=e^-tsin(t)进行泰勒级数展开

>> syms t

>> f=exp(-t)*sin(t) f =

sin(t)/exp(t) >> taylor(f) ans =

t^3/3 - t^5/30 - t^2 + t

(4)把函数2

)1(1

z 展开成z 的幂级数

>> syms z

>> f=1/(1+z)^2 f =

1/(z + 1)^2 >> taylor(f,z) ans =

5*z^4 - 6*z^5 - 4*z^3 + 3*z^2 - 2*z + 1

(5)求对数函数的主值ln(1+z)在z=0处的泰勒展开式

>> syms z >> f=log(1+z) f =

log(z + 1)

>> taylor(f,z,0)

ans =

z^5/5 - z^4/4 + z^3/3 - z^2/2 + z

(6)把函数f(z)=1/(3z-2)展开成z的幂级数

>> syms z

>> f=1/(3*z-2)

f =

1/(3*z - 2)

>> taylor(f,z)

ans =

- (243*z^5)/64 - (81*z^4)/32 - (27*z^3)/16 - (9*z^2)/8 - (3*z)/4

- 1/2

3、matlab关键命令

taylor(f(x),x,n,a) %求泰勒级数以符号变量x在x0点展开n项。

说明:f为符号表达式,x为符号变量,可省略,省略时使用默认自由变量,n是指f进行泰勒级数展开的项数,可省略,n省略则默认展开前5项,x0是泰勒级数展开。

七、微分方程

1、定义:

matlab

含有未知函数的导数,如、的方程都是微分方程。一般的凡是表示未知函数、未知函数的导数与自变量之间的关系的方程,叫做微分方程。未知函数是一元函数的,叫常微分方程;未知函数是多元函数的叫做偏微分方程。微分方程有时也简称方程。

2、例题

e2,y(0)=0的微分方程的解

(1)求y’-y=t

>> syms y t

>> y=dsolve('Dy-y=exp(2*t)','y(0)=0')

y =

exp(2*t) - exp(t)

(2)求ty”+y’+4ty=0,y(0)=3,y’(0)=0的微分方程的解

>> syms t y x

>> y=dsolve('t*D2y+Dy+4*t*y=0','y(0)=3,Dy(0)=0','t')

y =

3*besselj(0, 2*t)

(3)求ty”+2(t-1)y’+(t-2)y=0,y(0)=2的微分方程的解>> syms t y x

>> y=dsolve('t*D2y+2*(t-1)*Dy+(t-2)*y=0','y(0)=2','t')

y =

2/exp(t) + (C10*t^3)/(3*exp(t))

(4)求y”+4y’+29y=0 ,y(0)=0,y’(0)=15的微分方程的解>> syms x y

>> y=dsolve('D2y+4*Dy+29*y','y(0)=0,Dy(0)=15','x')

y =

(3*sin(5*x))/exp(2*x)

(5)求y”+y=10sin(2t),y(0)=0,y(π/2)=1

>> syms t y

>> y=dsolve('D2y+y=10*sin(2*t)','y(0)=0,y(pi/2)=1','t')

y =(5*sin(4*t))/6 - (5*sin(2*t))/3 + sin(t) -

sin(t)*((5*cos(3*t))/3 + 5*cos(t))

(6)求y ”+3y’+2y=u(t-1),y(0)=0,y’(0)=1

>> syms t y

>> y=dsolve('D2y+3*Dy+2*y=heaviside(t-1)','Dy(0)=1','t')

y =

C19/exp(t) - (C19/2 + 1/2)/exp(2*t) - (heaviside(t -

1)*(exp(2*t) - exp(2)))/(2*exp(2*t)) - (heaviside(t -

1)*(exp(1) - exp(t)))/exp(t)

3、matlab关键命令

desolve(‘eqn’,’cond’,‘v’) %求解微分方程

dsolve(‘eqn1,eqn2,…’,‘cond1,cond2,…’,‘v1,v2,…’) %求解微分方程组。

说明:eqn和eqn1,eqn2,…是符号常微分方程,方程组最多可允许12个方程,方程中D表示微分,则D2,D3分别表示二阶,三阶微分,y

的一阶导数dy/dx或dy/dt表示为Dy.

Cond是初始条件,可省略,应写成‘y(a)=b,Dy(c)=d’的格式,当初始条件少于微分方程数时,在所得解中将出现任意常熟符C1,C2,……,解中任意常数符的数目等于所缺少的初始条件数,是微分方程的通解;

V1,V2,……是符号变量,表示微分自变量,可省略,如果省略则默认符号变量t.