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

Symbolic -tài liệu matlap - DH Bách Khoa HN

97 645 9

Đ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 569 KB

Nội dung

Mở đầu Sử dụng Symbolic Math Toolbox Chương 2: Sử dụng Symbolic Math Toolbox Matlab Trần Minh Toàn (1) Viện Toán ứng dụng Tin học, ĐHBK Hà Nội Hà Nội, tháng năm 2012 (1) Email: toantm24@gmail.com Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 1/97 Mở đầu Sử dụng Symbolic Math Toolbox Tổng quan Các đối tượng Symbolic Tạo biến biểu thức Symbolic Thay biến symbolic Biến đổi symbolic số Nội dung Mở đầu Tổng quan Các đối tượng Symbolic Tạo biến biểu thức Symbolic Thay biến symbolic Biến đổi symbolic số Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân Trần Minh Tồn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 2/97 Mở đầu Sử dụng Symbolic Math Toolbox Tổng quan Các đối tượng Symbolic Tạo biến biểu thức Symbolic Thay biến symbolic Biến đổi symbolic số 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 toá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 (Solutions of Equations) trình đại số phương trình vi phân Các hàm toá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 Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 3/97 Mở đầu Sử dụng Symbolic Math Toolbox Tổng quan Các đối tượng Symbolic Tạo biến biểu thức Symbolic Thay biến symbolic Biến đổi symbolic số 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) Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 4/97 Mở đầu Sử dụng Symbolic Math Toolbox Tổng quan Các đối tượng Symbolic Tạo biến biểu thức Symbolic Thay biến symbolic Biến đổi symbolic số 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 tố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 Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 5/97 Mở đầu Sử dụng Symbolic Math Toolbox Tổng quan Các đối tượng Symbolic Tạo biến biểu thức Symbolic Thay biến symbolic Biến đổi symbolic số 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 Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 6/97 Mở đầu Sử dụng Symbolic Math Toolbox Tổng quan Các đối tượng Symbolic Tạo biến biểu thức Symbolic Thay biến symbolic Biến đổi symbolic số 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 Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 7/97 Mở đầu Sử dụng Symbolic Math Toolbox Tổng quan Các đối tượng Symbolic Tạo biến biểu thức Symbolic Thay biến symbolic Biến đổi symbolic số 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 toá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 = Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 8/97 Mở đầu Sử dụng Symbolic Math Toolbox Tổng quan Các đối tượng Symbolic Tạo biến biểu thức Symbolic Thay biến symbolic Biến đổi symbolic số 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; Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 9/97 Mở đầu Sử dụng Symbolic Math Toolbox Tổng quan Các đối tượng Symbolic Tạo biến biểu thức Symbolic Thay biến symbolic Biến đổi symbolic số 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 Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 10/97 Mở đầu Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân 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’) Trần Minh Toàn (SAMI-HUST) 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/97 Mở đầu Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân 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) Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 84/97 Mở đầu Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân 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)] Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 85/97 Mở đầu Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân 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 Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 86/97 Mở đầu Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân 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)) Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 87/97 Mở đầu Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân 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)) Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 88/97 Mở đầu Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân 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’) Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 89/97 Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân Mở đầu Sử dụng Symbolic Math Toolbox 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) = −∞ Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 90/97 Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân Mở đầu Sử dụng Symbolic Math Toolbox 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) = −∞ Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 91/97 Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân Mở đầu Sử dụng Symbolic Math Toolbox 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) Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 92/97 Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân Mở đầu Sử dụng Symbolic Math Toolbox 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))]) Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 93/97 Mở đầu Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân 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) Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 94/97 Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân Mở đầu Sử dụng Symbolic Math Toolbox 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 Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 95/97 Mở đầu Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân Biến đổi tích phân (Tự đọc help) Biến đổi Laplace biến đổi Laplace ngược Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 96/97 Mở đầu Sử dụng Symbolic Math Toolbox Giải tích Rút gọn Đại số tuyến tính Giải phương trình Biến đổi tích phân Biến đổi tích phân (Tự đọc help) Biến đổi Z biến đổi Z− ngược Trần Minh Toàn (SAMI-HUST) Sử dụng Symbolic Math Toolbox Matlab 97/97 ... x^ 3-6 *x^2+11*x-6 x^ 3-6 *x^2+11*x-5 x^6+1 Trần Minh Toàn (SAMI-HUST) factor(f) (x-1)*(x-2)*(x-3) x^ 3-6 *x^2+11*x-5 (x^2+1)*(x^4-x^2+1) Sử dụng Symbolic Math Toolbox Matlab 49/97 Mở đầu Sử dụng Symbolic. .. (x-1)*(x-2)*(x-3) x*(x*(x-6)+11 )-6 exp(a+b) cos(x+y) cos(3*acos(x)) expand(f) a*x+a*y x^ 3-6 *x^2+11*x-6 x^ 3-6 *x^2+11*x-6 exp(a)*exp(b) cos(x)*cos(y)-sin(x)*sin(y) 4*x^ 3-3 *x Trần Minh Toàn (SAMI-HUST)... biến symbolic x, gộp tất hệ số bậc x Sau vài ví dụ f (x-1)*(x-2)*(x-3) x*(x*(x-6)+11 )-6 (1+x)*t + x*t Trần Minh Toàn (SAMI-HUST) collect(f) x^ 3-6 *x^2+11*x-6 x^ 3-6 *x^2+11*x-6 2*x*t+t Sử dụng Symbolic

Ngày đăng: 07/05/2014, 15:14

TỪ KHÓA LIÊN QUAN

w