Giáo trình Matlab - Chương 5: Symbolic Math Toolboxes

§2. KHỞI ĐỘNG TOOLBOX

1. Các đối tượng chữ: Trong phần này chúng ta sẽ xem xét cách tạo và dùng

các đối tượng chữ. Chúng ta cũng sẽ xem xét các biến chữ mặc định. Symbolic

Math Toolbox định nghĩa một kiểu dữ liệu MATLAB mới gọi là đối tượng chữ

hay sym. Bên trong, một đối tượng chữ là một cấu trúc số liệu mà nó lưu biểu

diễn chuỗi các kí tự. Symbolic Math Toolbox dùng các đối tượng chữ để biểu

diễn các biến chữ, các biểu thức chữ, các ma trận chữ.

pdf37 trang | Chuyên mục: MATLAB | Chia sẻ: yen2110 | Lượt xem: 735 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình Matlab - Chương 5: Symbolic Math Toolboxes, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ệm cho dù phương pháp giải khác nhau. 
3. Giải phương trình vi phân: Hàm dsolve tính nghiệm bằng chữ của phương 
trình vi phân  thường. Các phương  trình được mô  tả bằng các biểu  thức chữ 
chứa các chữ cái D để chỉ các đạo hàm. Kí hiệu D2,D3,.  .  ,Dn  tương ứng với 
đạo hàm cấp 1,cấp 2,..,cấp n. Như vậy D2y  trong Symbolic Math Toolbox  là 
2
2
dx
yd . Biến phụ  thuộc  là biến được xử  lí bởi D và biến độc  lập mặc định  là  t. 
Như vậy tên các biến kí tự không được có D. Có thể dùng biến độc  lập khác 
bằng cách chỉ ra nó như là thông số cuối cùng trong lệnh dsolve. Điều kiện đầu 
có  thể mô  tả  như  là một  phương  trình  phụ. Nếu  điều  kiện  đầu  không  có, 
113
nghiệm sẽ chứa các hằng số tích phân C1,C2 v.v. Cú pháp của dsolve được mô 
tả trong bảng sau: 
Cú pháp  Phạm vi 
y = dsolve(‘Dyt = y0*y’)  Một phương trình, một nghiệm 
[u,v] = dsolve(ʹDu = vʹ, ʹDv = uʹ)  Hai phương trình, hai nghiệm 
S = dsolve(ʹDf=gʹ,ʹDg=hʹ,ʹDh=–fʹ) 
S.f, S.g, S.h 
Ba phương trình, ra là cấu trúc 
Nghiệm 
Ví dụ 1: Ta dùng lệnh: 
dsolve(ʹDy = 1+y^2ʹ) 
và có kết quả: 
ans = 
tan(t‐C1) 
Để mô tả điều kiện đầu, ta dùng: 
y = dsolve(ʹDy=1+y^2ʹ,ʹy(0)=1ʹ) 
và có: 
y = 
tan(t+1/4*pi) 
Chú  ý  là  y  ở  trong  vùng  làm  việc  của MATLAB  nhưng  biến  độc  lập  t  thì 
không. Như  vậy  lệnh  diff(y,t)  gây  ra  lỗi.  Để  đặt  t  vào  vùng  làm  việc  của 
MATLAB phải dùng syms t 
Ví dụ 2: Các phương trình phi tuyến có thể có nhiều nghiệm, thậm chí ngay cả 
khi đã cho điều kiện đầu. 
x = dsolve(ʹ(Dx)^2+x^2=1ʹ,ʹx(0)=0ʹ) 
cho kết quả: 
x = 
[‐sin(t)] 
[ sin(t)] 
Ví dụ 3: Đây là một phương trình bậc 2 với 2 điều kiện đầu. Lệnh (lưu trong 
ct5_23.m): 
y = simplify(dsolve(ʹD2y=cos(2*x)–yʹ,ʹy(0)=1ʹ,ʹDy(0)=0ʹ, ʹxʹ)) 
tạo ra: 
y = 
‐2/3*cos(x)^2+1/3+4/3*cos(x) 
Để giải phương trình: 
114
π=′′=′=
=
)0(u,1)0(u,1)0(u
u
dx
ud
3
3
ta dùng các lệnh sau (lưu trong ct5_24.m): 
u = dsolve(ʹD3u=uʹ,ʹu(0)=1ʹ,ʹDu(0)=–1ʹ,ʹD2u(0) = piʹ,ʹxʹ) 
4. Hệ phương trình vi phân: Hàm dsolve có thể xử lí hệ phương trình vi phân, 
có hay không có điều kiện đầu. Ví dụ ta có hệ phương trình: 
  y’=3f + 4g 
  g’ = ‐4f + 3g 
Để giải hệ ta dùng lệnh (lưu trong ct5_25.m): 
S = dsolve(ʹDf = 3*f+4*gʹ, ʹDg = –4*f+3*gʹ) 
Nghiệm được tính và trả về dưới dạng cấu trúc S: 
S =  
        f: [1x1 sym] 
        g: [1x1 sym] 
Ta có thể xác định giá trị của f và g bằng lệnh: 
f = S.f 
f = 
    exp(3*t)*(cos(4*t)*C1+sin(4*t)*C2) 
g = S.g 
g = 
    ‐exp(3*t)*(sin(4*t)*C1‐cos(4*t)*C2) 
Nếu ta cho cả điều kiện đầu thì viết: 
[f,g] = dsolve(ʹDf=3*f+4*g, Dg =–4*f+3*gʹ, ʹf(0) = 0, g(0) = 1ʹ) 
f = 
exp(3*t)*sin(4*t) 
g = 
exp(3*t)*cos(4*t) 
Bảng sau mô tả một vài ví dụ và cú pháp của Symbolic Math Toolbox. 
115
Phương trình vi phân  Lệnh MATLAB 
1)0(y
e)t(y4
dt
dy t
=
=+ −
y = dsolve(ʹDy+4*y = exp(‐t)ʹ,ʹy(0) = 1ʹ) 
0)(y,0)0(y
e)x(y4
dx
yd x2
2
2
=π=
=+ −  
y = dsolve(ʹD2y+4*y = exp(–2*x)ʹ, 
ʹy(0)=0ʹ, ʹy(pi) = 0ʹ, ʹxʹ) 
)32(K1)3(y,0)0(y
)x(xy
dx
yd
3
1
2
2
π==
=
(phương trình Airy) 
y = dsolve(ʹD2y = x*yʹ,ʹy(0) = 0ʹ, 
ʹy(3) = besselk(1/3, 2*sqrt(3))/piʹ, 
ʹxʹ) 
§6. BIẾN ĐỔI TÍCH PHÂN 
1. Biến đổi Fourier và Fourier ngược: 
  a. Biến đổi Fourier: Biến đổi Fourier dùng để biến đổi phương  trình vi 
phân thành phương trình đại số. Cú pháp: 
F = fourier(f) 
  F = fourier(f,v) 
  F = fourier(f,v,u) 
F = fourier(f) là dạng biến đổi Fourier của biến kí tự vô hướng f với biến 
độc  lập mặc định  là x. Kết quả  trả về mặc định  là hàm  theo w.   đổi Fourier 
thực hiện trên hàm của x và trả về hàm của w: 
  f = f(x) ⇒ F = F(w) 
Nếu f = f(t) thì biến đổi trả về F = F(t). Hàm F(w) được định nghĩa: 
∫
∞
∞−
−= dxe)x(f)w(F iwx  
F = fourier(f,v) làm cho F là hàm của v thay vì của w. Trong đó: 
∫
∞
∞−
−= dxe)x(f)v(F ivx  
F = fourier(f,v,u) làm cho f là hàm của u và F là hàm của v thay cho biến 
mặc định x và w: 
∫
∞
∞−
−= due)u(f)v(F ivu  
116
Ta có thể xem các biến đổi Fourier trong bảng sau: 
Biến đổi Fourier  Lệnh MATLAB 
2xe)x(f −=  
∫
∞
∞−
−− π== 4/wiwx 2edxe)x(f)w](f[F  
f = exp(‐x^2) 
fourier(f) cho: 
pi^(1/2)*exp(‐1/4*w^2) 
we)w(g −=  
∫
∞
∞−
−
+== 2
iwt
t1
2dte)w(g)t](g[F  
g = exp(‐abs(w)) 
fourier(g) cho 
2/(1+t^2) 
|x|xe)x(f −=  
∫
∞
∞−
−
+−== u22
ixu
)u1(
i4dxe)x(f)u](f[F  
f = x*exp(‐abs(x)) 
f = x*exp(‐abs(x)) cho 
‐4*i/(1+u^2)^2*u 
  b.  Biến  đổi  Fourier  ngược:  Khi  biết  hàm  ảnh  Fourier  dùng  biến  đổi 
Fourier ngược ta tìm được hàm gốc. Cú pháp: 
f = ifourier(F) 
f = ifourier(F,u) 
f = ifourier(F,v,u) 
f  =  ifourier(F)  là  biến  đổi  Fourier  ngược  của một  đối  tượng  kí  tự  vô 
hướng F với biến mặc định là w. Kết quả là hàm của x: 
F = F(w) ⇒ f = f(x) 
Nếu F = F(x), ifourier trả lại hàm của t f = f(t). Trong đó: 
∫
∞
∞−π= dwe)w(F2
1)x(f iwx  
f = ifourier(F,u) làm cho f thành hàm của u thay vì của biến mặc định x. 
Trong đó: 
∫
∞
∞−π= dwe)w(F2
1)u(f iwu  
f = ifourier(F,v,u) coi F là hàm của v và f là hàm của u thay cho các biến 
mặc định w và x. 
∫
∞
∞−π= dve)u(F2
1)u(f ivu  
117
Biến đổi Fourier ngược  Lệnh MATLAB 
2
2
a4
w
e)w(f =  
2)ax(iwx1 eadwe)w(f)x](f[F −
∞
∞−
− ∫ π==
|x|e)x(g −=  
∫
∞
∞−
−
+
π== 2itx1 t1dxe)x(g)t](g[F  
syms a real 
f = exp(‐w^2/(4*a^2)) 
F = ifourier(f) 
F = simple(F) cho 
ha*exp(‐x^2*a^2)/pi^(1/2) 
g = exp(‐abs(x)) 
ifourier(g) cho 
1/(1+t^2)/pi 
1e2)w(f |w| −= −  
)t1(
)t1)(t(2
dwe)w(f)t](f[F
2
iwt1
+π
−πδ−
== ∫
∞
∞−
−
f = 2*exp(‐abs(w)) ‐ 1 
simple(ifourier(f,t)) cho 
(2‐pi*Dirac(t)‐pi*Dirac(t)*t^2)/
(pi+pi*t^2) 
2. Biến đổi Laplace và Laplace ngược: 
  a. Biến  đổi  Laplace:  Biến  đổi  Laplace  dùng  biến  đổi  phương  trình  vi 
phân thành phương trình đại số. Cú pháp: 
laplace(F) 
laplace(F,t) 
laplace(F,w,z) 
L = laplace(F) là biến đổi Laplace của hàm kí tự vô hướng F với biến độc 
lập t. Mặc định trả  lại  là hàm của s. Biến đổi Laplace được áp dụng cho hàm 
của t và trả lại hàm của s. 
F = F(t) ⇒ L = L(s) 
Nếu F = F(s) Laplace trả lại hàm của t. Trong đó: 
∫
∞
−=
0
stdte)t(F)s(L  
L = laplace(F,t) làm cho L thành hàm của t thay cho biến mặc định s. 
∫
∞
−=
0
txdxe)x(F)t(L  
L = laplace(F,w,z) làm cho L thành hàm của z và F là hàm của t thay cho các 
biến mặc định s và t. 
   ∫
∞
−=
0
zwdwe)w(F)z(L
118
Biến đổi Laplace  Lệnh MATLAB 
4t)t(f =  
∫
∞
− ==
0
5
st
s
24dte)t(F]f[L  
f = t^4 
laplace(f) cho 
24/s^5 
s
1)s(g =  
∫
∞
− π==
0
st
s
dse)s(g)t](g[L  
g = 1/sqrt(s) 
laplace(g) cho 
1/(s^(1/2))*pi^(1/2) 
ate)t(f −=  
∫
∞
−
+== 0
tx
ax
1dte)t(f)x](f[L  
f = exp(‐a*t) 
laplace(f) cho 
1/(x+a) 
  b. Biến đổi Laplace ngược: Khi có ảnh của hàm,ta có thể tìm lại hàm gốc 
bằng biến đổi Laplace ngược. Cú pháp: 
F = ilaplace(L) 
F = ilaplace(L,y) 
F = ilaplace(L,y,x) 
F = ilaplace(L) là biến đổi Laplace ngược của một đối tượng kí tự vô hướng L 
với biến mặc định là s. Trả về mặc định là hàm của t. 
  L = L(s) ⇒ F = F(t) 
Nếu L = L(t), ilaplace trả về hàm của x. 
   ∫
∞+
∞−
=
ic
ic
stdse)s(L)t(F
F = ilaplace(L,y) làm cho F là hàm của y thay cho biến mặc định t. 
   ∫
∞+
∞−
=
ic
ic
sydse)y(L)y(F
F = ilaplace(L,y,x) coi F là hàm của x và L là hàm của y thay cho biến mặc định 
t và s. 
   ∫
∞+
∞−
=
ic
ic
xydye)y(L)x(F
Biến đổi Laplace ngược  Lệnh MATLAB 
2s
1)s(f =  
∫
∞+
∞−
− =π=
ic
ic
st1 tdse)s(f
i2
1]f[L  
f = 1/s^2 
ilaplace(f) cho 
t 
119
at
1)t(g −=  
∫
∞+
∞−
− =π=
ic
ic
axxt1 xedte)t(g
i2
1]g[L  
g = 1/(t‐a) 
ilaplace(g) cho 
x*exp(a*x) 
22 au
1)u(f −=  
ax
ic
ic
ax
xu1
ae2
1
ae2
1due)u(g
i2
1]f[L −
∞+
∞−
− ∫ −=π=  
f = 1/(u^2‐a^2) 
ilaplace(f) cho 
1/(2*a*exp(a*x))‐1/(2*a*exp(‐a*x)) 
3. Biến đổi z và z ngược:  
a. Biến  đổi z: Thực hiện phép biến  đổi z  trên hệ  thống  rời  rạc  để đưa 
phương trình vi phân về phương trình đại số. Cú pháp: 
F = ztrans(f) 
F = ztrans(f,w) 
F = ztrans(f,k,w) 
F = ztrans(f)  là phép biến đổi z của kí hiệu vô hướng  f với biến độc  lập mặc 
định n. Mặc định trả về hàm của z. Biến đổi z được định nghĩa: 
∑∞=
0
nz
)n(f)z(F  
Trong đó n là biến kí hiệu của f. Nếu f = f(z) thì ztrans trả về hàm của w F = 
F(w). 
F = ztrans(f,w) làm cho f thành hàm của w thay cho biến mặc định z. 
  ∑∞=
0
nw
)n(f)w(F  
F = ztrans(f,k,w) coi f là hàm của k 
∑∞=
0
nk
)k(f)w(F  
Biến đổi z  Lệnh MATLAB 
4n)n(f =  
5
23
0n
n
)1z(
)1z11z11z(zz)n(f]f[Z −
+++== ∑∞
=
−
f = n^4 
ztrans(f) cho 
z*(z^3+11*z^2+11*z+1)/(z‐1)^5 
za)z(g =  
wa
ww)z(g]g[Z
0z
z
−−== ∑
∞
=
−  
g = a^z 
ztrans(g) cho 
‐w/(a‐w) 
ansin)n(f =   f = sin(a*n) 
120
2
0n
n
wacosw21
asinww)n(f]f[Z +−== ∑
∞
=
−   ztrans(f) 
w*sin(a)/(1‐2*w*cos(a)+w^2) 
  b. Biến đổi z ngược: Khi có ảnh của biến đổi z ta có thể tìm lại gốc của nó 
nhờ biến đổi z ngược.Cú pháp: 
f = iztrans(F) 
f = iztrans(F,k) 
f = iztrans(F,w,k) 
f =  iztrans(F)  là biến đổi z ngược của đối  tượng kí hiệu F với biến độc  lập z. 
Mặc định trả về hàm của n: 
∫
=
− =π= R|z|
1n ,....2,1ndzz)z(F
i2
1)n(f  
Trong đó R là số dương được chọn sao cho hàm F(z) là giải tích trên và ngoài 
vòng tròn | z | = R. Nếu F = F(n) iztrans trả về hàm của k: f = f(k). 
f = iztrans(F,k) coi f là hàm của k thay cho biến mặc định n. Trong đó k là đối 
tượng kí hiệu vô hướng. 
f = iztrans(F,w,k) coi F là hàm của w thay vì của biến mặc định. 
Biến đổi z ngược  Lệnh MATLAB 
2)2z(
z2)z(f −=  
∫
=
−− =π= R|z|
n1n1 2ndzz)s(f
i2
1]f[Z  
f = 2*z/(z‐2)^2 
iztrans(f) cho 
n*2^n 
1n2n
)1n(n)n(g 2 ++
+=  
k
R|z|
1k1 1dnn)n(g
i2
1]f[Z −=π= ∫=
−−  
g = n*(n‐1)/(n^2+2*n+1) 
iztrans(g) cho 
(‐1)^k 
az
z)z(f −=  
∫
=
−− =π= R|z|
k1k1 adzz)z(f
i2
1]f[Z  
f = z/(z‐a) 
iztrans(f) cho 
a^k 
z2z2
z
exe2x
)ex(x)z,x(f +−
−=  
∫
=
−− =π= R|x|
kz1k1 edxz)z,x(f
i2
1]f[Z  
f  =  x*(x‐exp(z))/(x^2‐2*x*exp(z)  + 
exp(2*z)) 
iztrans(f) cho 
exp(z)^k 
121

File đính kèm:

  • pdfgiao_trinh_matlab_chuong_5_symbolic_math_toolboxes.pdf