1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương 5: Symbolic math toolboxes

37 318 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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(

Ngày đăng: 23/10/2013, 23:15

TỪ KHÓA LIÊN QUAN

w