1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng Phương pháp tính và Matlab: Chương 2 - Trường ĐH Bách khoa Hà Nội

97 6 0

Đ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 97
Dung lượng 350,97 KB

Nội dung

Bài giảng Phương pháp tính và Matlab: Chương 2 - ử dụng Symbolic Math Toolbox trong Matlb được biên soạn bao gồm các nội dung chính sau: Giới thiệu phần mềm Symbolic Math Toolbox; Các đối tượng Symbolic; Các biểu thức Symbolic;... Mời các bạn cùng tham khảo chi tiết bài giảng tại đây.

Chương 2: Sử dụng Symbolic Math Toolbox Matlab Viện Toán ứng dụng Tin học, ĐHBK Hà Nội Hà Nội, tháng năm 2015 Sử dụng Symbolic Math Toolbox Matlab 1/1 Nội dung Sử dụng Symbolic Math Toolbox Matlab 2/1 Mở đầu Tổng quan Phần mềm "Symbolic Math Toolbox" kết hợp tính tốn "symbolic" vào mơi trường số phần mềm Matlab Các công cụ bổ sung cho khả tính tốn số học đồ họa Matlab thêm số dạng tính tốn tốn học, tóm tắt bảng sau: Tiện ích Nội dung Giải tích (Calculus) Các phép tính đạo hàm, tích phân, giới hạn, tổng khai triển chuỗi Taylor Đại số tuyến tính (Linear Algebra) Nghịch đảo, định thức, giá trị riêng, SVD dạng tắc ma trận symbolic Rút gọn (Simplification) Các phương pháp rút gọn biểu thức đại số Nghiệm phương trình Nghiệm symbolic nghiệm số phương trình đại số phương trình vi phân (Solutions of Equations) Các hàm tốn học đặc biệt Các hàm đặc biệt toán học ứng dụng (Specials Mathematical Functions) cổ điển Các phép biến đổi (Transforms) Fourier, Laplace, z dạng biến đổi ngược tương ứng Sử dụng Symbolic Math Toolbox Matlab 3/1 Các đối tượng Symbolic Các kiểu liệu Matlab đối tượng Symbolic tương ứng Ví dụ sau minh họa khác liệu chuẩn Matlab, ví dụ double đối tượng symbolic tương ứng Ví dụ Câu lệnh Matlab: Mặt khác, câu lệnh: >> sqrt(2) >> a=sqrt(sym(2)) cho kết số cho kết ans = 1.4142 a= 2^(1/2) Sử dụng Symbolic Math Toolbox Matlab 4/1 Các đối tượng Symbolic Các kiểu liệu Matlab đối tượng Symbolic tương ứng Chú ý 1.1 Matlab cho kết 2^(1/2) nghĩa /2 , cách sử dụng ký hiệu symbolic cho phép toán bậc hai, mà khơng tính tốn giá trị số cụ thể Matlab lưu biểu thức symbolic dạng string thay cho /2 Ta nhận giá trị số đối tượng symbolic cách dùng lệnh double: >> double(a) ans = 1.4142 Sử dụng Symbolic Math Toolbox Matlab 5/1 Các đối tượng Symbolic Các kiểu liệu Matlab đối tượng Symbolic tương ứng Chú ý 1.1 (tiếp) Khi ta tạo phân số dạng symbolic, Matlab lưu tử số mẫu số Ví dụ >> sym(2)/sym(5) ans = 2/5 Matlab thực phép tính đối tượng symbolic khác với kiểu liệu chuẩn Ví dụ: >> 2/5+1/3 ans = 0.7333 >> sym(2)/sym(5)+sym(1)/sym(3) ans = 11/15 Sử dụng Symbolic Math Toolbox Matlab 6/1 Tạo biến biểu thức Symbolic Các lệnh sym syms sym syms Cho phép ta xây dựng, biến đổi số, biến đối tượng thành symbolic Ví dụ Lệnh >> x=sym(’x’) >> a=sym(’alpha’) tạo biến symbolic x hiển thị x a hiển thị alpha Sử dụng Symbolic Math Toolbox Matlab 7/1 Tạo biến biểu thức Symbolic Các lệnh sym syms Ví dụ Giả sử ta muốn dùng symbolic để biểu diễn "tỷ lệ vàng" ρ = √ 1+ lệnh: >> rho=sym(’(1+sqrt(5))/2’) Bây ta thực phép tốn khác với rho Ví dụ >> f=rho^2-rho-1 f = (5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2 Sau rút gọn biểu thức f thu >> simplify(f) ans = Sử dụng Symbolic Math Toolbox Matlab 8/1 Tạo biến biểu thức Symbolic Các lệnh sym syms Ví dụ Giả sử muốn giải phương trình bậc hai f = ax2 + bx + c Một cách tiếp cận dùng lệnh f=sym(’a*x^2+b*x+c’) gắn biểu thức symbolic 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 phép tốn symbolic (ví dụ tích phân, đạo hàm, thay thế, etc) f , ta phải tạo biến cách rõ ràng Cách tốt dùng lệnh: >> a=sym(’a’); b=sym(’b’); c=sym(’c’) ; x=sym(’x’); đơn giản syms a b c x; Sử dụng Symbolic Math Toolbox Matlab 9/1 Tạo biến biểu thức Symbolic Lệnh findsym Để xác định biến symbolic có mặt biểu thức, sử dụng lệnh findsym Ví dụ Cho biểu thức symbolic f g xác định >> syms a b n t x z f = x^n; g = sin(a*t + b); Khi đó, ta tìm biến symbolic có mặt f lệnh >> findsym(f) ans = n,x Sử dụng Symbolic Math Toolbox Matlab 10/1 Giải phương trình Giải phương trình vi phân Cú pháp dsolve mô tả bảng sau: Cú pháp y=dsolve(’Dy=y0*y’) [u,v]=dsolve(’Du=v’,’Dv=u’) S=dsolve(’Df=g’,’Dg=h’,’Dh=-f’) Phạm vi Một phương trình, nghiệm Hai phương trình, hai nghiệm Ba phương trình, nghiệm cấu trúc Sử dụng Symbolic Math Toolbox Matlab 83/1 Giải phương trình Giải phương trình vi phân Ví dụ Câu lệnh >> dsolve(’Dy=1+y^2’) sử dụng y biến phụ thuộc t biến độc lập mặc định Kết quả: ans = tan(t+C1) Để thêm điều kiện đầu, ta dùng >> y = dsolve(’Dy=1+y^2’,’y(0)=1’) y = tan(t+1/4*pi) Sử dụng Symbolic Math Toolbox Matlab 84/1 Giải phương trình Giải phương trình vi phân Ví dụ Các phương trình phi tuyến có nhiều nghiệm, điều kiện đầu cho: >> x = dsolve(’(Dx)^2+x^2=1’,’x(0)=0’) x = [ sin(t)] [ -sin(t)] Sử dụng Symbolic Math Toolbox Matlab 85/1 Giải phương trình Giải phương trình vi phân Ví dụ Xét phương trình vi phân cấp hai với hai điều kiện đầu Các lệnh >> y = dsolve(’D2y=cos(2*x)-y’,’y(0)=1’,’Dy(0)=0’, ’x’); >> simplify(y) tạo ans = 4/3*cos(x)-2/3*cos(x)^2+1/3 Sử dụng Symbolic Math Toolbox Matlab 86/1 Giải phương trình Giải phương trình vi phân Ví dụ 10 Điều mấu chốt ví dụ bậc phương trình điều kiện đầu Để giải phương trình vi phân thường   d3 y =u dx3  u(0) = 1, u (0) = −1, u (0) = π ta sử dụng lệnh >> u = dsolve(’D3u=u’,’u(0)=1’,’Du(0)=-1’,’D2u(0) = pi’,’x’) u = (pi*exp(x))/3 - (cos((3^(1/2)*x)/2)*(pi/3 - 1))/exp(x/2) - (3^(1/2)*sin((3^(1/2)*x)/2)*(pi + 1))/(3*exp(x/2)) Sử dụng Symbolic Math Toolbox Matlab 87/1 Giải phương trình Giải hệ phương trình vi phân Hàm dsolve giải hệ phương trình vi phân có khơng có điều kiện đầu Ví dụ, xét hệ hai phương trình tuyến tính cấp >> S = dsolve(’Df = 3*f+4*g’, ’Dg = -4*f+3*g’) Nghiệm tính có dạng cấu trúc S Ta xác định giá trị f g cách nhập f = S.f f = exp(3*t)*(C1*sin(4*t)+C2*cos(4*t)) g = S.g g = exp(3*t)*(C1*cos(4*t)-C2*sin(4*t)) Sử dụng Symbolic Math Toolbox Matlab 88/1 Giải phương trình Giải hệ phương trình vi phân Nếu ta muốn thêm điều kiện đầu: >> [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) Một số ví dụ khác : Phương trình vi phân dy + 4y(t) = e−t dt y(0) = d2 y + 4y(x) = e−2x dx2 y(0) = 0, y(π) = Lệnh Matlab y=dsolve(’Dy+4*y=exp(-t)’,’y(0)=1’) y=dsolve(’D2y+4*y=exp(-2*x)’,’y(0)=1’,’y(pi)=0’ ,’x’) Sử dụng Symbolic Math Toolbox Matlab 89/1 Biến đổi tích phân Biến đổi Fourier biến đổi Fourier ngược Cú pháp F = fourier(f) F = fourier(f,v) F = fourier(f,u,v) Mô tả F=fourier(f) biến đổi Fourier biểu thức symbolic vô hướng f với biến mặc định x Kết trả mặc định hàm theo biến w: f = f (x) =⇒ F = F (w) Hàm F (w) định nghĩa +∞ f (x)e−iwx dx F (w) = −∞ Sử dụng Symbolic Math Toolbox Matlab 90/1 Biến đổi tích phân Biến đổi Fourier biến đổi Fourier ngược Mô tả (tiếp) Nếu f = f (w) kết trả hàm theo t : F = F (t) F = fourier(f,v) tạo hàm F đối symbolic v thay biến mặc định w +∞ f (x)e−iwx dx F (v) = −∞ F = fourier(f,u,v) tạo f hàm theo u F hàm theo v thay biến mặc định tương ứng x w +∞ f (x)e−iwu du F (v) = −∞ Sử dụng Symbolic Math Toolbox Matlab 91/1 Biến đổi tích phân Biến đổi Fourier biến đổi Fourier ngược Ví dụ 11 Biến đổi Fourier f (x) = e−x Lệnh Matlab f=exp(-x^2); +∞ f (x)e−iwx dx = F [f ](w) = √ w2/4 πe− fourier(f) trả −∞ pi^(1/2)/exp(w^2/4) exp(-abs(w)) g(w) = e−|w| +∞ g(w)e−iwt dt = F [g](t) = + t2 fourier(g) trả −∞ 2/(v^2 + 1) Sử dụng Symbolic Math Toolbox Matlab 92/1 Biến đổi tích phân Biến đổi Fourier biến đổi Fourier ngược Ví dụ (tiếp) Biến đổi Fourier f (x) = x.e−x Lệnh Matlab syms u x +∞ f (x)e−xu dx F [f ](u) = f=x*exp(-abs(x)) trả −∞ -(4*u*i)/(u^2 + 1)^2 −x2 |v| sin v f (x, v) = e +∞ v f (x, v)e−ivu dv F [f (v)] (u) = syms v u; syms x real f = exp(-x^2*abs(v))*sin(v)/v; −∞ = − arctan u−1 u+1 + − arctan x2 x2 fourier(f) piecewise([x 0, atan((u + 1)/x^2) atan(1/x^2*(u - 1))]) Sử dụng Symbolic Math Toolbox Matlab 93/1 Biến đổi tích phân Biến đổi Fourier biến đổi Fourier ngược Cú pháp f = ifourier(F) f = ifourier(F,u) f = ifourier(F,v,u) Mô tả f = ifourier(F) biến đổi Fourier ngược biểu thức symbolic vô hướng F với biến mặc định w Kết trả mặc định hàm x F = F (w) =⇒ f = f (x) Sử dụng Symbolic Math Toolbox Matlab 94/1 Biến đổi tích phân Biến đổi Fourier biến đổi Fourier ngược Mô tả (tiếp) Nếu F = F (x), ifourier trả hàm theo đối t : f = f (t) Bằng cách định nghĩa +∞ f (x) = 2π F (w)eiwx dw, −∞ f = ifourier(F,u) tạo hàm f (u) thay theo biến mặc định x +∞ f (u) = 2π F (w)eiwu dw −∞ f = ifourier(F,v,u) tạo hàm f theo đối u F hàm theo đối v theay biến mặc định x w Sử dụng Symbolic Math Toolbox Matlab 95/1 Biến đổi tích phân (Tự đọc help) Biến đổi Laplace biến đổi Laplace ngược Sử dụng Symbolic Math Toolbox Matlab 96/1 Biến đổi tích phân (Tự đọc help) Biến đổi Z biến đổi Z− ngược Sử dụng Symbolic Math Toolbox Matlab 97/1 ... f thành tích đa thức hữu tỷ bậc nhỏ Nếu f bất khả qui, Matlab trả kết f Sau vài ví dụ f x^ 3-6 *x ^2+ 11*x-6 x^ 3-6 *x ^2+ 11*x-5 x^6+1 factor(f) (x-1)*(x -2 ) *(x-3) x^ 3-6 *x ^2+ 11*x-5 (x ^2+ 1)*(x^4-x ^2+ 1)... khác hàm toán học: >> syms x >> f = x^ 3-6 *x ^2+ 11*x-6 >> g = (x-1)*(x -2 ) *(x-3) >>h = -6 +(11+ (-6 +x)*x)*x Nhập vào lệnh >> pretty(f), pretty(g), pretty(h) ta nhận x - x + 11 x - (x - 1) (x - 2) (x -. .. symbolic để biểu diễn "tỷ lệ vàng" ρ = √ 1+ lệnh: >> rho=sym(’(1+sqrt(5)) /2? ??) Bây ta thực phép tốn khác với rho Ví dụ >> f=rho ^ 2- rho-1 f = (5^(1 /2) /2 + 1 /2) ^2 - 5^(1 /2) /2 - 3 /2 Sau rút gọn biểu thức

Ngày đăng: 26/01/2023, 18:16