CH NG 5: SYMBOLIC MATH TOOLBOXES§1... Ta xét hàm... Tuy nhiên nhân Maple không coi k2và x2 là nh ng s d ng mà ch là các bi nhình th c, không có thu c tính toán h c.. Do v y khi tính b ng
Trang 1CH NG 5: SYMBOLIC MATH TOOLBOXES
§1 KHÁI NI M CHUNG
Symbolic Math Toolboxes k t h p tính toán b ng ch vào môi tr ngMATLAB Các toolbox này b sung các ti n ích s và đ th v i các ki u tínhtoán toán h c khác nhau
Calculus đ o hàm, tích phân, gi i h n, t ng và chu i
TaylorLinear Algebra ngh ch đ o, đ nh th c,giá tr riêng, phân tích và
d ng chính t c c a ma tr n
Simplification ph ng pháp rút g n các bi u th cđ i s
Solution of Equations gi i b ng ch và b ng s các ph ng trình đ i s
và vi phânVariable Precision
đó t i Eidgenroessiche Technische Hochschule Zurich, Thu sĩ Maple đ c
th ng m i hoá và h tr c a công ty Waterloo Maple
§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 chhay 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
2 T o các bi n và các bi u th c ch : L nh sym cho phép ta xây d ng các bi n
và các bi u th c ch Ví d l nh:
Trang 2x = sym( x )
a = sym( alpha )
t o ra các bi n ch là x và a v i x là x và a là alpha
Gi s ta mu n ta mu n dùng bi n ch đ bi u di n t l vàng2
gán bi u th c ch ax2 + bx + c cho bi n f Tuy nhiên trong tr ng h p này
Symbolic Math Toolbox không t o ra các bi n t ng ng v i các s h ng a, b,
c và x trong bi u th c Đ th c hi n các phép toán b ng ch (ví d tích phân,
đ o hàm, thay th v.v) trên f ta ph i t o các bi n m t cách rõ ràng, nghĩa là c n
Trang 3L nh conj là toán t t o s ph c liên h p.
Đ xóa thu c tính real c a x ta dùng l nh:
c Dùng sym đ truy c p các hàm c a Maple: Ta có th truy c p hàm giai
th a k! c a Maple khi dùng sym.
kfac = sym( k! )
Đ tính 6! hay k! ta vi t (l u trong ct5_1.m):
Trang 4syms k n
subs(kfac,k,6)
ans =
720 subs(kfac,k,n)
Do A là ma tr n vòng t ng m i hàng và c t nh nhau:
sum(A(1,:))
ans =
a+b+c sum(A(1,:)) = = sum(A(:,2))
ans =
1
Bây gi ta thay A(2,3) b ng beta và b b ng alpha:
syms alpha beta
Trang 5e Bi n ch m c đ nh: Khi dùng các hàm toán h c,vi c ch n các bi n đ c
nh n, a, b và v đ c coi là h ng hay thông s Tuy nhiên ta có th l y đ ohàm c a f theo n b ng cách vi t rõ bi n đ c l p ra Ta dùng các l nh sau đ t o
Trang 6r = sqrt(x^2 + y^2 + z^2)
t = atan(y/x)
f = sin(x*y)/(x*y)
t o ra các bi u th c ch r, t và f Ta có th dùng các l nh diff, int, subs hay các
l nhSymbolic Math Toolbox khácđ x lí các bi u th c nh v y
b T o các M file: M file cho phép ta dùng các hàm t ng quát h n Ví d
ta mu n t o ra hàm sinc = sin(x)/x ta s vi t m t M file (sinc.m) có n i dung
g = sin(at+b)
g’ = acos(at+b)
g = sin(a*t+b)diff(g) hay diff(g,t)
Trang 7h = Jv(z)
h’ = Jv(z)(v/z)
Jv+1(z)
h = besselj(nu,z)diff(h) hay diff(h,z)
Đ tính đ o hàm b c 2 c a f theo x và a ta vi t:
diff(f,2)
ans =
sin(a*x)*a^2 diff(f,x,2)
)z,y,x(
J
ϕλ
Trang 8[ cos(l)*cos(f), –r*sin(l)*cos(f), –r*cos(l)*sin(f) ]
[ cos(l)*sin(f), –r*sin(l)*sin(f), r*cos(l)*cos(f)]
B ng sau t ng h p hàmdiff và hàm jacobian
Toán t toán h c L nh MATLAB
fd
v,u(
),r(J
x
(
f
0 h
−+
=
′
→
Trang 9Symbolic Math Toolbox cho phép gi i h n c a m t hàm m t cách tr c ti p
minh ho 2 trong s các gi i h n quan tr ng c a toán h c:đ o hàm(trong
)x(lim
1lim,x
1
lim
0 x 0 x 0
Trang 10Hàm toán h c L nh MATLAB
)x(lim
0
)x(lim
a
limit(f,a))
x(lim
a
)x(lim
a
3 Tích phân:
a Các v n đ chung: N u f là m t bi u th c ch thì int(f) tìm m t bi u
sau:
1n
x
dx
x
1 n n
)z(Jdz
Khi MATLAB không tìmđ c tích phân nó vi t l i l nh đã nh p vào
b Tích phân v i h ng s th c: M t trong các v n đ khi tính tích phân làgiá tr c a các thông s Ta xét hàm Hàm này rõ ràng là có giá tr d ng
v i m i k và x và có d ng hình chuông Giá tr c a hàm ti n đ n 0 khi x→±∞
v i m i s th c k Ta l y ví d
2 ) kx (
Trang 11Tuy nhiên nhân Maple không coi k2và x2 là nh ng s d ng mà ch là các bi nhình th c, không có thu c tính toán h c Do v y khi tính b ng các
Need to know the sign of > k^2
Will now try indefinite integration and then take limits.
Warning: Explicit integral could not be found.
ans =
int(exp(–k^2*x^2),x= –inf inf)
Trong ph n sau chúng ta s xét cách làm cho MATLAB hi u r ng k là s th c
và dođó coi k2là s d ng
c Các bi n th c theo sym: Chú ý là Maple không th xác đ nh đ c d u
c a k2 V y chúng ta gi i quy t khó khăn này nh th nào? Câu tr l i là làmcho k tr thành s th c b ng dùng l nh sym M t đ c đi m có ích c a sym g i
là tu ch n real cho phép ta khai báo k là bi n th c Do v y tích phân trên
hoàn toàn tính đ c trong toolbox nh các l nh:
Chú ý là k bây gi là đ i t ng ch trong vùng làm vi c c a MATLAB và là
bi n th c trong vùng làm vi c c a Maple Khi nh p l nh:
Trang 12Hàm toán h c L nh MATLAB
kx
e)x
int(f,x,0,1)
2 ) kx (
e)x(
int(g,x, inf,inf)
4 Tính t ng: Ta có th tính t ng bi u th c ch khi chúng t n t i b ng cáchdùng l nh symcum.V í d chu i :
⋅
⋅+++ 2 2
3
12
Trang 13t = taylor(g,12,2)
t o ra khai tri n Taylor c a f(x) t i x = 2 và ch a đ n 12 s h ng khác 0 Ta vcác hàm này lên cùng m t đ th đ th y đ c kh năng x p x c a chu iTaylor v i hàm th c g (l u trongct5_8.m):
title( Xap xi Taylor );
legend( Ham , Taylor )
Ti pđó ta dùng l nh:
1 2 3 4 5 6
x
Xap xi Taylor
Ham Taylor
pretty(T)
đ in k t qu d i d ng các bi u th c toán h c d đ c
6 Tính toán m r ng: Ta xét hàm:
xcos45
1)
Trang 14(ezplot và ezplot3) và m t d i d ng thông s (ezsurf) Trong ph n này chúng
ta xem cách dùng hàmezplot v đ th hàm f(x) Đ th c a hàm nh sau:
4
3
))xcos(
45(
)xsin(
4))xcos(
45(
)xcos(
)xsin(
96))
xcos(
45
(
)xsin(
384
+
−+
++
))xcos(
45(
)25)xcos(
80)xcos(
80)xsin(
96)(
xsin(
4
+
−+
+
Bây gi ta tìm các giá tr zero cu f3 b ng l nh:
z = solve(f3)
k t qu cho ta ma tr n:
Trang 16plot( pi,m1, go ,pi,m2, go )
text( 1, 4, Global minima )
[m1 m2]
ans =
Các phân tích trên cho th y là ph m vi giá tr c a f”(x) là t [ 4 ,1] Ta ti p t c
Trang 17M1 = double(subs(f2,x,s));
plot(sd,M1, ko )
text( 1,1, Global maximum )
đ th y đ c là s là đi m max Giá tr max này là M1 = 1.0051
Bây gi ta tích phân f”(x) hai l n b ng l nh:
2
)x2/1tan(
9
8)
xcos(
45
1
+
++
ezplot(F)
§4 RÚT G N VÀ THAY S
1 Rút g n bi u th c: Ta xét 3 bi u th c khác nhau (l u trongct5_10.m):
Trang 18C 3 bi u th c này là các d ng bi u di n toán h c khác nhau c a cùng m t
đ tính tr s c a đa th c t i m t giá tr nào đó c a x
Trang 21exp(x) * exp(y) exp(x+y)
Trang 23L nh pretty th a k khái ni m %n(n là m t s nguyên) t Mapleđ đ nh nghĩa
l u các bi u th c con này cũng nh các đ i t ng ch đ c vi t trong bi u
b subs: Ta tìm giá tr riêng và vec t riêng c a ma tr n vòng A(l u trong
b*a c*b c*a+a^2+c^2)^(1/2) b)/(a c)]
Trang 24c a nhi u bi n trong m t bi u th c Ta xem S Gi s ngoài vi c thay a =10 tacũng mu n thay giá tr b = 2 và c = 10 vào bi u th c Cách đ n gi n nh t là đ t
Trang 25hold on;
ezplot(P)
Trang 26[ 1/12*(28+84*i*3^(1/2))^(1/3) 7/3/(28+84*i*3^(1/2))^(1/3) +2/3 1/2*i*3^(1/2)*(1/6*(28+84*i*3^(1/2))^(1/3)
Trang 271.89793604072796 2.07662070137841 2.07662070137841
yx
0y
x2 2
và ta c n tìm x và y Tr c h t ta t o ra cácđ i t ng c n thi t:
syms x y alpha
Có nhi u cách đ bi u di n nghi m M t trong các cách đó là vi t:
[x,y] = solve(x^2*y^2, x–(y/2)–alpha)
Trang 283a2a
1vu
avu
2
2 2 2
tr ng và ch s đ truy c p đ n các ph n riêng bi t c a nghi m Ví d n u ta
mu n ki m tra nghi m th 2, ta có th dùng phát bi u sau:
s2 = [S.a(2), S.u(2), S.v(2)]
đ trích thành ph n t 2 c a m i tr ng
s2 =
[ 3, 5, 4]
Trang 29Nh v y ta có cùng m t nghi 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 ngtrình vi phân th ng Các ph ng trình đ c mô t b ng các bi u th c ch
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ó,
Trang 30nghi 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:
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úcNghi m
Ví d 2: Các ph ng trình phi tuy n có th có nhi u nghi m, th m chí ngay ckhi đã cho đi u ki n đ u
Trang 31(
u
udx
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:
Trang 32Ph ng trình vi phân L nh MATLAB
1)
0
(
y
e)(y4dt
0
(
y
e)x(y4dx
1)3(y,0)
0
(
y
)x(xydx
y
d
3 1
v
(
Trang 33Ta có th xem các bi nđ i Fourier trong b ng sau:
2 x
e)
e)x()
w](
f
F
f = exp( x^2)fourier(f) cho:
pi^(1/2)*exp( 1/4*w^2)
w
e)w
2dt
e)w(g)
|
xe)
i4dx
e)x()
u](
u
Trang 34Bi n đ i Fourier ng c L nh MATLAB
2 2 a
w
e)
w
2 ) ax ( iwx
1
e
adwe
)w()
x](
g = exp( abs(x))ifourier(g) cho1/(1+t^2)/pi1
e2)
w
( = −|w|−
)1(
)t1)(
t2
dwe)w()](
f
F
2
iwt 1
+π
−πδ
(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 viphân thành ph ng trìnhđ i s Cú pháp:
)w(F)
z
(
L
Trang 35Bi n đ i Laplace L nh MATLAB
4
t)
[
L
f = t^4laplace(f) cho24/s^5
s
1)
g
[
L
g = 1/sqrt(s)laplace(g) cho1/(s^(1/2))*pi^(1/2)
at
e)
1dte)()x
](
f
L
f = exp( a*t)laplace(f) cho1/(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
st
dse)s(L)
sy
dse)y(L)
xy
dye)y(L)
st 1
tdse)s(i2
Trang 36ax xt
i2
2 2
au
i c
ax xu
1
ae2
1ae
2
1du
e)u(gi2
n
( =
5
2 3
0 n
n
)1z(
)1z11z11z(zz
)n(]
[
Z
−
+++
z
a)
z
(
wa
ww
)z(g]
g
[
Z
0 z
ansin
)
n
Trang 372 0
n
n
wacosw21
asinww
)n(]
,
2,1ndzz)z(Fi2
1)
z2)
n 1
2ndzz)s(i2
1]
[
Z
f = 2*z/(z 2)^2iztrans(f) chon*2^n
1n2n
)1n(n)
n
(
++
+
=
k R
|
|
1 k 1
1dnn)n(gi2
1]
( 1)^k
az
z)
k 1
adzz)z(i2
1]
[
Z
f = z/(z a)iztrans(f) choa^k
z z 2
z
exe2x
)ex(x)
k 1
edxz)z,x(i2
1]
[
Z
f = x*(x exp(z))/(x^2 2*x*exp(z) +exp(2*z))
iztrans(f) choexp(z)^k