Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
637,68 KB
Nội dung
CH NG 5: SYMBOLIC MATH TOOLBOXES §1 KHÁI NI M CHUNG Symbolic Math Toolboxes k t h p tính tốn b ng ch vào môi tr ng MATLAB Các toolbox b sung ti n ích s th v i ki u tính tốn tốn h c khác Ti n ích Calculus Linear Algebra Simplification Solution of Equations N i dung o hàm, tích phân, gi i h n, t ng chu i Taylor ngh ch o, nh th c,giá tr riêng, phân tích d ng t c c a ma tr n ph ng pháp rút g n bi u th c i s gi i b ng ch b ng s ph ng trình i s vi phân ánh giá xác c a bi u th c i s Variable Precision Arithmetic Transform bi n i Laplace, Fourrier z Special Mathematical hàm toán h c c bi t c a ng d ng toán Function h c kinh i n ng l c tính tốn n m d i toolbox nhân Maple, m t h th ng tính tốn c phát tri n u tiên tr ng i h c Waterloo, Canada sau ó t i Eidgenroessiche Technische Hochschule Zurich, Thu s Maple c th ng m i hố h tr c a cơng ty Waterloo Maple §2 KH I NG TOOLBOX Các i t ng ch : Trong ph n s xem xét cách t o dùng i t ng ch Chúng ta c ng s xem xét bi n ch m c nh Symbolic Math Toolbox nh ngh a m t ki u d li u MATLAB m i g i i t ng ch hay sym Bên trong, m t i t ng ch m t c u trúc s li u mà l u bi u di n chu i kí t Symbolic Math Toolbox dùng i t ng ch bi u di n bi n ch , bi u th c ch , ma tr n ch T o bi n bi u th c ch : L nh sym cho phép ta xây d ng bi n bi u th c ch Ví d l nh: 85 x = sym( x ) a = sym( alpha ) t o bi n ch x a v i x x a alpha Gi s ta mu n ta mu n dùng bi n ch bi u di n t l vàng Ta dùng l nh: rho = sym( (1 + sqrt(5))/2 ) Bây gi ta có th th c hiên phép toán khác v i rho Ví d : f = rho^2 rho f= (1/2+1/2*5^(1/2))^2 3/2 1/2*5^(1/2) Ta rút g n bi u th c: simplify(f) ans = Bây gi gi s ta mu n gi i ph ng trình b c f ax bx c Phát bi u: f = sym( a*x^2 + b*x + c ) gán bi u th c ch ax2 + bx + c cho bi n f Tuy nhiên tr ng h p Symbolic Math Toolbox không t o bi n t ng ng v i s h ng a, b, c x bi u th c th c hi n phép toán b ng ch (ví d tích phân, o hàm, thay th v.v) f ta ph i t o bi n m t cách rõ ràng, ngh a c n vi t: a = sym( a ) b = sym( b ) c = sym( c ) x = sym( x ) hay n gi n : syms a b c x Nói chung ta có th dùng sym hay syms t o bi n ch nh ng nên dùng syms ti t ki m th i gian Bi n i gi a s ch : a T o bi n th c ph c: L nh sym cho phép ta mô t thu c tính tốn h c c a bi n ch b ng cách dùng tu ch n real Phát bi u: x = sym( x , real ); y = sym( y , real ); hay hi u qu h n: 86 syms x y real z = x + i*y t o bi n ch x y có thu c tính s th c c bi t: f = x^2 + y^2 th c s s không âm Nh v y z bi n ph c l nh: conj(x) conj(z) expand(z*conj(z)) cho k t qu : return the complex conjugates of the variables x x i*y x^2 + y^2 L nh conj 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: syms x unreal hay: x = sym( x , unreal ) L nh clear x khơng xố thu c tính s real c a x b T o hàm tr u t ng: N u ta mu n t o m t hàm tr t ng(ngh a m t hàm không xác nh) f(x) c n dùng l nh: f = sym( f(x) ) Khi f ho t ng nh f(x) có th x lí b ng l nh toolbox Ví d tính vi phân b c ta vi t: df = (subs(f, x , x+h ) – f)/ h hay syms x h df = (subs(f,x,x+h)–f)/h tr v : df = (f(x+h) f(x))/h ng d ng c a hàm sym s r t h u ích bi n i Fourrier, Laplace z c Dùng sym truy c p hàm c a Maple: Ta có th truy c p hàm giai th a k! c a Maple dùng sym kfac = sym( k! ) tính 6! hay k! ta vi t (l u ct5_1.m): 87 syms k n subs(kfac,k,6) ans = 720 subs(kfac,k,n) ans = n! hay n u tính 12! ta c ng có th vi t: prod(1:12) d Ví d t o ma tr n ch : M t ma tr n vòng ma tr n mà hàng sau có c b ng cách d ch ph n t c a hàng tr c i l n.Ta t o m t ma tr n vòng A b ng ph n t a, b c: syms a b c A = [a b c; b c a; c a b] k t qu : A= [ a, b, c ] [ b, c, a ] [ c, a, b ] Do A ma tr n vòng t ng m i hàng c t nh nhau: sum(A(1,:)) ans = a+b+c sum(A(1,:)) = = sum(A(:,2)) ans = Bây gi ta thay A(2,3) b ng beta b b ng alpha: syms alpha beta A(2,3) = beta; A = subs(A,b,alpha) A= [ a, alpha, c] [ alpha, c, beta] [ c, a, alpha] T ví d ta th y dùng i t ng ch c ng t ng t nh dùng s MATLAB 88 e Bi n ch m c nh: Khi dùng hàm toán h c,vi c ch n bi n l p th ng r t rõ ràng Ví d xem b ng sau: Hàm tốn h c f = xn g = sin(at+b) h = Jv(z) c L nh MATLAB f = x^n g = sin(a*t+b) h = besselj(nu,z) N u ta tìm o hàm c a hàm nh ng không mô t bi n c l p (ngh a o hàm theo bi n nào) k t qu là: f’ = nxn g = acos(at + b) h =J v (z)(v/z) Jv+1(z) Nh v y bi n c l p x, t z MATLAB hi u bi n c l p ch th ng n m cu i b ng ch nh x, y, z Khi không th y ch này, MATLAB s tìm ch g n nh t coi ó bi n c l p Các bi n khác nh n, a, b v c coi h ng hay thơng s Tuy nhiên ta có th l y o hàm c a f theo n b ng cách vi t rõ bi n c l p Ta dùng l nh sau t o hàm( l u ct5_2.m): syms a b n nu t x z f = x^n; g = sin(a*t + b); h = besselj(nu,z); o hàm hàm f ta vi t: diff(f); ans = x^n*n/x Trong ví d x bi n c l p N u mu n tính o hàm c a f theo n ta c n vi t: diff(f,n) ans = x^n*log(x) T o hàm toán h c b ng ch : a Dùng bi u th c ch : Các l nh: syms x y z 89 r = sqrt(x^2 + y^2 + z^2) t = atan(y/x) f = sin(x*y)/(x*y) t o bi u th c ch r, t f Ta có th dùng l nh diff, int, subs hay l nh Symbolic Math Toolbox khác x lí bi u th c nh v y b T o M file: M file cho phép ta dùng hàm t ng quát h n Ví d ta mu n t o hàm sinc = sin(x)/x ta s vi t m t M file (sinc.m) có n i dung nh sau: function z = sinc(x) if isequal(x,sym(0)) z = 1; else z = sin(x)/x; end Ta có th m r ng ví d nh v y cho hàm bi n khác §3 TÍNH TỐN o hàm: Ta t o bi u th c ch : syms a x f = sin(a*x) V y thì: df = diff(f) tính o hàm c a hàm f(x) theo x K t qu là: df = cos(a*x)*a tính o hàm c a f theo a ta vi t: dfa = diff(f,a) k t qu : dfa= cos(a*x)*x Hàm toán h c f = xn f’ = nxn g = sin(at+b) g’ = acos(at+b) L nh MATLAB f = x^n diff(f) hay diff(f,x) g = sin(a*t+b) diff(g) hay diff(g,t) 90 h = 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 c a f theo x a ta vi t: diff(f,2) ans = sin(a*x)*a^2 diff(f,x,2) ans = sin(a*x)*x^2 Hàm diff có th dùng i s ma tr n Trong tr ng h p o hàm c th c hi n t ng ph n t Ví d : syms a x A = [cos(a*x),sin(a*x); sin(a*x),cos(a*x)] k t qu : A= [ cos(a*x), sin(a*x)] [ sin(a*x), cos(a*x)] l nh : dy = diff(A) cho k t qu : dy = [ sin(a*x)*a, cos(a*x)*a] [ cos(a*x)*a, sin(a*x)*a] Ta kh o sát bi n i t to Euclid(x,y,z) sang t o c u (r, , ) th c hi n b ng công th c: x = rcos cos y = rcos sin z= rsin tính ma tr n Jacobi J c a phép bi n i ta dùng hàm jacobian nh ngh a toán h c c a J là: ( x , y , z) J (r , , ) d vi t ta dùng kí t l thay cho f thay cho Các l nh (l u ct5_5.m): syms r l f 91 x = r*cos(l)*cos(f); y = r*cos(l)*sin(f); z = r*sin(l); J = jacobian([x; y; z], [r l f]) cho ta k t qu : J= [ 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)] [ sin(l), r*cos(l), 0] l nh : detJ = simple(det(J)) cho: detJ = –cos(l)*r^2 Chú ý i s th nh t c a hàm jacobian ph i vec t c t i s th hai vec t hàng H n n a nh th c c a ma tr n Jacobian bi u th c l ng giác ph c t p nên ta dùng l nh simple thay th rút g n B ng sau t ng h p hàm diff hàm jacobian Toán t toán h c f = exp(ax + b) df dx df da d2f d 2a r = u + v2 t = arctan(v/u) J Gi i h n: f ( x) (r , t) ( u , v) L nh MATLAB syms a b x f = exp(a*x + b) diff(x) hay diff(f,x) diff(f,a) diff(f,a,2) syms r t u v r = u^2 + v^2 t = atan(v/u) J = jacobian([r ; t],[u , v]) o hàm c a m t hàm gi i h n sau ây n u t n t i : f ( x h ) f ( x) lim h h 92 Symbolic Math Toolbox cho phép gi i h n c a m t hàm m t cách tr c ti p h n L nh: syms h n x dc = limit( (cos(x+h) – cos(x))/h,h,0 ) cho k t qu : dc = –sin(x) : limit( (1 + x/n)^n,n,inf ) cho: ans = exp(x) minh ho s gi i h n quan tr ng c a toán h c: o hàm(trong tr ng h p cosx) hàm m Trong nhi u gi i h n : lim f( x) x a “hai phía”(ngh a k t qu nh cho dù x ti n t i bên ph i hay bên trái c a a) l i có nh ng hàm gi i h n ph i trái khác Do ó gi i h n: 1 lim , lim , lim x x x 0x x 0x + cho k t qu khác nhau: không xác nh , Trong tr ng h p không t n t i g i h n Symbolic Math Toolbox tr v k t qu NaN Ví d : limit(1/x,x,0) cho: ans = NaN L nh: limit(1/x,x,0, left ) cho: ans = –inf L nh: limit(1/x,x,0, right ) cho: ans = inf Nh v y limit(f) t ng ng v i limit(f,x,0) B ng sau cho gi i h n: 93 Hàm toán h c lim f( x) L nh MATLAB limit(f) lim f( x) lim f( x) limit(f,x,a) limit(f,a) limit(f,x,a,’left’) lim f( x) limit(f,x,a,’right’) x x x x a a a hay Tích phân: a Các v n chung: N u f m t bi u th c ch int(f) tìm m t bi u th c khác F cho diff(F) = f Nh v y int(f) cho ta tích phân b t nh c a f T ng t nh o hàm int(f,v) l y tích phân theo bi n c l p v Ta có b ng sau: Hàm toán h c xn x ndx n sin( 2x)dx L nh MATLAB int(x^n) hay int(x^n,x) int(sin(2*x),0,pi/2) hay int(sin(2*x),x,0,pi/2) g = cos(at+b) g( t )dt sin(at b) a J1 ( z)dz J ( z) g = cos(a*t + b) int(g) hay int(g,t) int(besselj(1,z) hay int(besselj((1,z),z) Khi MATLAB khơng tìm c tích phâ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 v n tính tích phân giá tr c a thông s Ta xét hàm e ( kx ) Hàm rõ ràng có giá tr d ng v i m i k x có d ng hình chng Giá tr c a hàm ti n n x v th c a hàm b ng l nh ( v i m i s th c k Ta l y ví d k l u ct5_6.m): syms x k = sym(1/sqrt(2)); f = exp(–(k*x)^2); ezplot(f) 94 L nh pretty th a k khái ni m %n(n m t s nguyên) t Maple nh ngh a bi u th c g p nhi u l n i t ng ch Hàm subexpr cho phép ta l u bi u th c c ng nh i t ng ch c vi t bi u th c Các bi u th c c l u m t ma tr n c t g i sigma Ti p t c ví d c a ta: r = subexpr(s) cho ta sigma = 108+12*(12*a^3+81)^(1/2) r= [ 1/6*sigma^(1/3) 2*a/sigma^(1/3)] [ 1/12*sigma^(1/3)+a/sigma^(1/3)+1/2*i*3^(1/2)*(1/6*sigma^(1/3)+2*a/sigma^(1/3))] [ 1/12*sigma^(1/3)+a/sigma^(1/3) 1/2*i*3^(1/2)*(1/6*sigma^(1/3)+2*a/sigma^(1/3))] ta th y r ng subexpr t o bi n sigma vùng làm vi c c a MATLAB b subs: Ta tìm giá tr riêng vec t riêng c a ma tr n vòng A(l u ct5_15.m) syms a b c A = [a b c; b c a; c a b]; [v,E] = eig(A) v= [ 1, (a+(b^2 b*a c*b c*a+a^2+c^2)^(1/2) b)/(a c), (a (b^2 b*a c*b c*a+a^2+c^2)^(1/2) b)/(a c)] [ 1, (b c (b^2 b*a c*b c*a+a^2+c^2)^(1/2))/(a c), (b c+(b^2 b*a c*b c*a+a^2+c^2)^(1/2))/(a c)] [ 1, 1, 1] E= [ b+a+c, 0, 0] [ 0, (b^2 b*a c*b c*a+a^2+c^2)^(1/2), 0] [ 0, 0, (b^2 b*a c*b c*a+a^2+c^2)^(1/2)] Gi s ta mu n thay bi u th c dài: (b^2 b*a c*b c*a+a^2+c^2)^(1/2) v E Tr c h t ta dùng subexpr: 107 v = subexpr(v, S ) cho ta k t qu : S= (b^2 b*a c*b c*a+a^2+c^2)^(1/2) v= [ (a+S b)/(a c), (a S b)/(a c), 1] [ (b c S)/(a c), (b c+S)/(a c), 1] [ 1, 1, 1] Sau ó thay S vào E: E = subs(E,S, S ) E= [ S, 0, 0] [ 0, S, 0] [ 0, 0, b+c+a] Bây gi gi s ta mu n tính v a = 10 Ta dùng l nh sau: subs(v,a,10) s thay bi n a v b ng s 10: [ (10+S b)/(10 c), (10 S b)/(10 c), 1] [ (b c S)/(10 c), (b c+S)/(10 c), 1] [ 1, 1, 1] Chú ý bi u th c có S khơng b nh h ng c ,ngh a bi n a S không c thay b ng 10 Hàm subs hàm h u ích thay th nhi u giá tr c a nhi u bi n m t bi u th c Ta xem S Gi s vi c thay a =10 ta c ng mu n thay giá tr b = c = 10 vào bi u th c Cách n gi n nh t t giá tr a, b, c vùng làm vi c c a MATLAB Sau ó subs s tính k t qu a = 10; b = 2; c = 10; subs(S) ans = L nh subs có th k t h p v i l nh double tính tr s c a m t bi u th c ch Gi s ta có: syms t M = (1 t^2)*exp( 1/2*t^2); P = (1 t^2)*sech(t); mu n xem th P M khác nh th Ta dùng l nh (ly ct5_16.m): ezplot(M); 108 hold on; ezplot(P) có th Tuy nhiên ta v n khó hình dung c s sai khác gi a hai cong Vì v y t t h n k t h p subs, double l i T = 6:0.05:6; MT = double(subs(M,t,T)); PT = double(subs(P,t,T)); plot(T,MT, b ,T,PT, r ) title( ) legend( M , P ) xlabel( t ); grid t o th nhi u màu ng §5 GI I PH NG TRÌNH ng trình i s : N u S bi u th c ch thì: Gi i ph solve(S) tìm giá tr c a bi n kí t S S = Ví d : syms a b c x S = a*x^2 + b*x + c; solve(S) cho ta: ans = [ 1/2/a*( b+(b^2 4*a*c)^(1/2))] [ 1/2/a*( b (b^2 4*a*c)^(1/2))] ây vec t ch mà ph n t c a nghi m c a ph ng trình N u ta mu n tìm nghi m v i m t bi n c mô t , ta ph i ch rõ bi n nh m t thơng s ph Ví d n u ta mu n gi i S theo b ph i vi t: b = solve(S,b) nh n c k t qu : b= (a*x^2+c)/x Chú ý r ng ví d gi thi t ph ng trình có d ng f(x) = N u ta mu n gi i ph ng trình có d ng f(x) = q(x) ta ph i s d ng chu i c bi t l nh: s = solve( cos(2*x)+sin(x)=1 ) cho nghi m: s= 109 [ 0] [ pi] [ 1/6*pi] [ 5/6*pi] Ph ng trình x^3 2*x^2 = x giúp ta hi u cách gi i ph ng trình ánh vào l nh (l u ct5_17.m): s = solve( x^3–2*x^2 = x–1 ) s= [ 1/6*(28+84*i*3^(1/2))^(1/3)+14/3/(28+84*i*3^(1/2))^(1/3)+2/3] [ 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) 14/3/(28+84*i*3^(1/2))^(1/3))] [ 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) 14/3/(28+84*i*3^(1/2))^(1/3))] Ta tính giá tr s c a nghi m: double(s) ans = 2.24697960371747 + 0.00000000000000i 0.80193773580484 + 0.00000000000000i 0.55495813208737 0.00000000000000i Nó cho th y t t c nghi m c a ph ng trình s th c i u không úng Dùng l nh vpa xác nh xác: vpa(s, 10) t o ra: ans = [ 2.246979604+.1e 9*i] [ 8019377357+.3e 9*i] [ 5549581323 5e 9*i] i u ngh a ph n o c a s r t nh nh ng khác Ta xem m t ví d khác(l u ct5_18.m): syms x s = solve(tan(x)+sin(x)–2); K t qu m t vec t Nh trên, ta dùng l nh double: X = double(s) X= 0.88628729156094 110 1.89793604072796 2.07662070137841 2.07662070137841 H ph ng trình i s : Bây gi ta xét h ph ng trình Gi s ph ng trình (l u ct5_19.m): x2 y2 y x ta c n tìm x y Tr c h t ta t o i t ng c n thi t: syms x y alpha Có nhi u cách bi u di n nghi m M t cách ó vi t: [x,y] = solve(x^2*y^2, x–(y/2)–alpha) có c k t qu : x= [ 0] [ 0] [ alpha] [ alpha] y= [ 2*alpha] [ 2*alpha] [ 0] [ 0] Sau ó vi t vec t nghi m: v = [x, y] cho ta: v= [ 0, 2*alpha] [ 0, 2*alpha] [ alpha, 0] [ alpha, 0] Ta xét ti p ph ng trình (l u ct5_20.m) : eqs1 = x^2*y^2=1, x–1/2*y–alpha [x,y] = solve(eqs1) t o nghi m: x= ta có h 111 [ 1/2*alpha+1/2*(alpha^2+2)^(1/2)] [ 1/2*alpha 1/2*(alpha^2+2)^(1/2)] [ 1/2*alpha+1/2*(alpha^2 2)^(1/2)] [ 1/2*alpha 1/2*(alpha^2 2)^(1/2)] y= [ alpha+(alpha^2+2)^(1/2)] [ alpha (alpha^2+2)^(1/2)] [ alpha+(alpha^2 2)^(1/2)] [ alpha (alpha^2 2)^(1/2)] Cách gán nghi m nh ch thích h p v i h có ph có nhi u ph ng trình, solve t o m t c u trúc mà tr nghi m Ta kh o sát h ph ng trình: u2 v2 ng trình V i h ng c a a2 u v a2 2a L nh (l u ct5_21.m): S = solve( u^2–v^2 = a^2 , u + v = , a^2–2*a = ) Cho k t qu : S= a: [2x1 sym] u: [2x1 sym] v: [2x1 sym] Các nghi m tr ng c a S ó là: S.a T o ra: ans = [ 1] [ 3] T ng t ta tìm c nghi m u v C u trúc S bây gi có th c x lí b ng tr ng ch s truy c p n 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 c a m i tr ng s2 = [ 3, 5, 4] 112 Phát bi u: M = [S.a, S.u, S.v] T o ma tr n nghi m M: M= [ 1, 1, 0] [ 3, 5, 4] mà m i hàng m t nghi m c a h N u h ph ng trình n tính ta có th dùng ma tr n (l u ct5_22.m): clear u v x y syms u v x y S = solve(x+2*y–u, 4*x+5*y–v); sol = [S.x;S.y] và: A = [1 2; 5]; b = [u; v]; z = A\b cho: sol = [ 5/3*u+2/3*v] [ 4/3*u 1/3*v] gi i h Ví d z= [ 5/3*u+2/3*v] [ 4/3*u 1/3*v] Nh v y ta có m t nghi m cho dù ph ng pháp gi i khác 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 bi u th c ch ch a ch D ch 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 Symbolic Math Toolbox dy Bi n ph thu c bi n c x lí b i D bi n c l p m c nh t dx Nh v y tên 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 nh thơng s cu i l nh dsolve i u ki n u có th mơ t nh m t ph ng trình ph N u i u ki n u khơng có, 113 nghi m s ch a h ng s tích phân C1,C2 v.v Cú pháp c a dsolve t b ng sau: Cú pháp y = dsolve(‘Dyt = y0*y’) [u,v] = dsolve( Du = v , Dv = u ) S = dsolve( Df=g , Dg=h , Dh=–f ) S.f, S.g, S.h c mô Ph m vi M t ph ng trình, m t nghi m Hai ph ng trình, hai nghi m Ba ph ng trình, c u trúc Nghi m Ví d 1: Ta dùng l nh: dsolve( Dy = 1+y^2 ) 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 ) có: y= tan(t+1/4*pi) Chú ý y vùng làm vi c c a MATLAB nh ng bi n c l p t khơng Nh v y l nh diff(y,t) gây 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 n có th có nhi u nghi m, th m chí c ã 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 m t ph ng trình b c v i i u ki n u L nh (l u 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 d3u u dx u(0) 1, u (0) 1, u (0) ta dùng l nh sau (l u ct5_24.m): u = dsolve( D3u=u , u(0)=1 , Du(0)=–1 , D2u(0) = pi , x ) 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 ct5_25.m): S = dsolve( Df = 3*f+4*g , Dg = –4*f+3*g ) Nghi m c tính 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 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 vi t: [f,g] = dsolve( Df=3*f+4*g, Dg =–4*f+3*g , f(0) = 0, g(0) = ) 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 cú pháp c a Symbolic Math Toolbox 115 Ph dy dt y(0) d2 y dx y(0) d2 y dx y(0) ng trình vi phân y( t ) t e L nh MATLAB y = dsolve( Dy+4*y = exp( t) , y(0) = ) y( x) e , y( ) y = dsolve( D2y+4*y = exp(–2*x) , y(0)=0 , y(pi) = , x ) 2x xy( x) , y( 3) K (2 ) y = dsolve( D2y = x*y , y(0) = , y(3) = besselk(1/3, 2*sqrt(3))/pi , x) (ph ng trình Airy) §6 BI N I TÍCH PHÂN Bi n i Fourier Fourier ng c: a Bi n i Fourier: Bi n i Fourier dùng bi n 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) i ph ng trình vi F = fourier(f) 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 x K t qu tr v m c nh hàm theo w i Fourier th c hi n hàm c a x tr v hàm c a w: f = f(x) F = F(w) N u f = f(t) bi n i tr v F = F(t) Hàm F(w) c nh ngh a: F( w) f( x)e iwx dx F = fourier(f,v) làm cho F hàm c a v thay c a w Trong ó: F( v) f( x)e ivx dx F = fourier(f,v,u) làm cho f hàm c a u F hàm c a v thay cho bi n m c nh x w: F( v ) f( u)e ivu du 116 Ta có th xem bi n Bi n x f ( x) e e i Fourier F[f ]( w) g( w ) i Fourier b ng sau: iwx f( x)e dx e w2 / w F[g ]( t ) g( w)e iwt dt t2 f( x) xe |x| F[f ]( u) f( x)e ixu dx 4i (1 u )2 u L nh MATLAB f = exp( x^2) fourier(f) cho: pi^(1/2)*exp( 1/4*w^2) g = exp( abs(w)) fourier(g) cho 2/(1+t^2) 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 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) nh Fourier dùng bi n f = ifourier(F) bi n i Fourier ng c c a m t h ng F v i bi n m c nh w K t qu 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 ó: f ( x) F( w)e iwxdw i t ng kí t f = ifourier(F,u) làm cho f thành hàm c a u thay c a bi n m c Trong ó: F( w)e iwudw f( u) i vô nh x f = ifourier(F,v,u) coi F hàm c a v f hàm c a u thay cho bi n m c nh w x F( u)e ivudv f( u) 117 Bi n i Fourier ng f( w)e iwxdw w e 4a f( w) e |x| F 1[g ]( t ) f( w) 2e F 1[f ]( t ) a F 1[f ]( x) g( x ) c g( x)e itxdx |w| f( w)e iwtdw ( t )(1 t ) (1 t ) t2 e ( ax ) L nh MATLAB 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 f = 2*exp( abs(w)) simple(ifourier(f,t)) cho (2 pi*Dirac(t) pi*Dirac(t)*t^2)/ (pi+pi*t^2) Bi n i Laplace 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) bi n i Laplace c a hàm kí t vơ h ng F v i bi n c c áp d ng cho hàm l p t M c nh tr l i hàm c a s Bi n i Laplace c a t 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 ó: F( t )e st dt L(s) L = laplace(F,t) làm cho L thành hàm c a t thay cho bi n m c nh s F( x)e txdx L( t ) L = laplace(F,w,z) làm cho L thành hàm c a z F hàm c a t thay cho bi n m c nh s t L( z) F( w)e zw dw 118 Bi n i Laplace L nh MATLAB f( t) t F( t )e stdt L[f ] f = t^4 laplace(f) cho 24/s^5 24 s5 s g( s ) g(s)e st ds L[g ]( t ) f( t) e g = 1/sqrt(s) laplace(g) cho 1/(s^(1/2))*pi^(1/2) s at f( t )e txdt L[f ]( x) f = exp( a*t) laplace(f) cho 1/(x+a) 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) 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 s Tr v m c nh hàm c a t L = L(s) F = F(t) N u L = L(t), ilaplace tr v hàm c a x c i L(s)e st ds F( t) c i F = ilaplace(L,y) làm cho F hàm c a y thay cho bi n m c nh t c i L( y)e syds F( y) c i F = ilaplace(L,y,x) coi F hàm c a x L hàm c a y thay cho bi n m c t s nh c i L( y)e xydy F( x) c i Bi n f ( s) L [f ] i Laplace ng s2 c i f(s)e stds ic i t c L nh MATLAB f = 1/s^2 ilaplace(f) cho t 119 g( t ) t a c i g( t )e xtdt xe ax L 1[g ] ic i f( u) u a2 1 c i g( u)e xudu L [f ] 2ae ax ic i g = 1/(t a) ilaplace(g) cho x*exp(a*x) 2ae f = 1/(u^2 a^2) ilaplace(f) cho 1/(2*a*exp(a*x)) 1/(2*a*exp( a*x)) ax Bi n i z z ng c: a Bi n i z: Th c hi n phép bi n i z 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) phép bi n i z c a kí hi u vô h ng f v i bi n cl pm c nh n M c nh tr v hàm c a z Bi n i z c nh ngh a: f( n) F( z) n z Trong ó n bi n kí hi u c a f N u f = f(z) 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 f( n) F( w) n w F = ztrans(f,k,w) coi f hàm c a k f( k) F( w) n k Bi n f( n) n iz Z[f ] f ( n )z z( z n n L nh MATLAB f = n^4 11z 11z 1) ztrans(f) cho z*(z^3+11*z^2+11*z+1)/(z 1)^5 ( z 1)5 g( z ) a z Z[g ] g( z ) w z f( n) sin an z w a w g = a^z ztrans(g) cho w/(a w) f = sin(a*n) 120 Z[f ] f( n)w n n w sin a w cos a w 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 nh bi n i z ng c.Cú pháp: f = iztrans(F) f = iztrans(F,k) f = iztrans(F,w,k) c l p z f = iztrans(F) bi n i z ng c c a i t ng kí hi u F v i bi n M c nh tr v hàm c a n: F( z)z n 1dz n 1,2 , f( n) i |z| R Trong ó R s d ng c ch n cho hàm F(z) gi i tích ngồ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 hàm c a k thay cho bi n m c nh n Trong ó k i t ng kí hi u vô h ng f = iztrans(F,w,k) coi F hàm c a w thay c a bi n m c nh Bi n i z ng c 2z f ( z) ( z 2) f(s)z n 1dz n n Z 1[f ] i |z| R n( n 1) g( n ) n 2n 1 g( n)n k 1dn 1k Z 1[ f ] i |z| R z f ( z) z a f( z)z k 1dz a k Z 1[f ] i |z| R x( x e z ) f ( x , z) x 2 xe z e z f( x , z)z k 1dx e kz Z 1[f ] i |x| R L nh MATLAB f = 2*z/(z 2)^2 iztrans(f) cho n*2^n g = n*(n 1)/(n^2+2*n+1) iztrans(g) cho ( 1)^k f = z/(z a) iztrans(f) cho a^k f = x*(x exp(z))/(x^2 2*x*exp(z) + exp(2*z)) iztrans(f) cho exp(z)^k 121 ... u: f = sym( a*x^2 + b*x + c ) gán bi u th c ch ax2 + bx + c cho bi n f Tuy nhiên tr ng h p Symbolic Math Toolbox không t o bi n t ng ng v i s h ng a, b, c x bi u th c th c hi n phép tốn b ng... atan(y/x) f = sin(x*y)/(x*y) t o bi u th c ch r, t f Ta có th dùng l nh diff, int, subs hay l nh Symbolic Math Toolbox khác x lí bi u th c nh v y b T o M file: M file cho phép ta dùng hàm t ng quát... jacobian([r ; t],[u , v]) o hàm c a m t hàm gi i h n sau ây n u t n t i : f ( x h ) f ( x) lim h h 92 Symbolic Math Toolbox cho phép gi i h n c a m t hàm m t cách tr c ti p h n L nh: syms h n x dc = limit(