Hướng dẫn sử dụng MatLab môn Giải tích Matlab hệ tính toán lớn mạnh, dùng phổ biến giảng dạy, nghiên cứu làm việc thực tế Tuy nhiên phần mềm có quyền, tương đối cồng kềnh, lên tới hàng gigabybes Tài liệu hướng dẫn chủ yếu phần Help chương trình Ngoài tìm đọc sách Jeffery Cooper, A Matlab companion for multivariable calculus, Harcourt, 2001 Thông báo biến x, y biến kí hiệu (symbolic) syms x y Nhập vào hàm f, ví dụ f(x)=x2-3x+1 f=x^2-3*x+1 Tính giá trị f điểm , chẳng hạn x=2 subs(f,x,2) Tính giới hạn x dần đến số a limit(f,x,a) Tính giới hạn x dần đến số a bên trái phải limit(f,x,a,’left’) limit(f,x,a,’right’) Tính giới hạn x dần đến +vô –vô limit(f,x,Inf) limit(f,x,-Inf) Tính đạo hàm Tính đạo hàm hàm f theo biến x diff(f,x) Khai triển Taylor hàm f điểm cụ thể x0 tới cấp cụ thể n taylor(f,x0,n) Vẽ đồ thị hàm biến Vẽ đồ thị hàm f, chẳng hạn với x từ tới ezplot(f,1,2) Tích phân hàm biến Tính tích phân không xác định hàm f theo biến x int(f,x) Tính tích phân xác định hàm f theo biến x, với x từ tới int(f,x,1,2) Nhập hàm nhiều biến dạng kí hiệu Nhập vào hàm nhiều biến syms x y f=x^2*y^3-3*x*y^2 Tính giá trị hàm hai biến Tính giá trị f điểm, chẳng hạn x=2, y=3 subs(subs(f,x,2),y,3) Tính đạo hàm riêng Tính đạo hàm riêng f theo biến y diff(f,y) Vẽ đồ thị hàm hai biến Vẽ đồ thị hàm f khoảng x từ tới 2, y từ tới ezsurf(f,[1,2,3,4]) Tính tích phân bội Tính tích phân f hình hộp chữ nhật x từ tới 2, y từ tới 4: Đưa tích phân lặp: int(int(f,x,1,2),y,3,4) Vẽ mặt cho phương trình tham số Ví dụ vẽ mặt cầu x=sin(u)cos(v), y=sin(u)sin(v), z=cos(u), u từ tới pi, v từ tới 2pi: syms u v ezsurf(sin(u)*cos(v),sin(u)*sin(v),cos(u),[0 pi 2*pi]) mẫu lệnh tổng quát ezsurf(x,y,z,[a b c d]) tham số thứ biến thiên từ a tới b, tham số thứ hai biến thiên từ c tới d Tính xấp xỉ tích phân Tính xấp xỉ tích phân hàm f (x) với x từ a tới b: Vì không phép toán kí hiệu mà phép toán số (numerical), nên cần chuyển f thành dạng hàm khác, gọi inline Ví dụ tích tích phân f(x)=e^(x^2) từ tới 1: Nhập hàm f dạng inline f=inline('exp(x.^2)') Chú ý có dấu chấm trước toán tử ^ (Matlab dùng để tính toán ma trận) Tính xấp xỉ tính phân f: quad(f,0,1) Vẽ trường vectơ chiều Ví dụ: Vẽ trường (P(x,y),Q(x,y)) với P(x,y)=2x+3y, Q(x,y)=3x^2-y^5 hình chữ nhật x từ -1 tới 1, y từ -2 tới Nhập vào trường: P=inline('2*x+3*y','x','y') Q=inline('3*x^2-y^5','x','y') Cho biến x chạy từ -1 tới 1, lấy 10 điểm chia; cho biến y chạy từ -2 tới 2, lấy 10 điểm chia: x=linspace(-1,1,10) y=linspace(-2,2,10) Tạo lưới điểm ứng với điểm chia trên: [X,Y]=meshgrid(x,y) Tính giá trị trường điểm chia này: p=P(X,Y) q=Q(X,Y) Vẽ vectơ trường điểm này: quiver(X,Y,p,q) %%% vector %% cách tạo vecto x = 0:0.1:1; % vecto gồm tất phần tử từ đến 1cách 0.1 y = linspace(1,10,20); % vecto tạo 20 phần tử cách từ đến 10 z = rand(10,1); % vecto ngẫu nhiên gồm 10 phần tử %% cho vecto A = [5 3] A = [5 3]; B1 = A(3); % lấy giá trị thứ B2 = A(1:5); % lấy giá trị từ đến B3 = A(1:end); % lấy giá trị từ đến cuối B4 = A(1:end-1); % lấy giá trị từ đến cuối - B5 = A(6:-2:1); % lấy giá trị từ giảm dần đơn vị từ xuống B6 = A(1:2:6); % lấy giá trị từ tăng dần đơn vị từ lên B7 = sum(A); % tính tổng tất phần tử %%% ma trận A = [2 7;3 6;8 5]; % ma trận A B1 = size(A); % kích thước ma trận B2 = A(2,3); % lấy phần tử hàng cột B3 = A'; % ma trận chuyển vị A B4 = A(:,[1 4]); % lấy cột cột B5 = A(:,1:4); % lấy cột từ đến B6 = A([1 3],:); % lấy hàng B7 = A(1:3,:); % lấy hàng từ đến B8 = A([2 3],[3 1]); % lấy hàng 3; cột 3,1 B9 = A(:); % viết lại phần tử thành cột H10 = [A;A(end,:)];% ma trận tạo A hàng cuối A B11 = [A;A(1:2,:)]; % ma trận tạo A ma trận congòm hàng 1, B12 = sum(A); % ma trận tạo tổng tất phần tử cột A B13 = sum(A,2); % ma trận tạo tổng tất phần tử hàng A B14 = reshape(A,2,6); % viết lại ma trận thành hàng cột B15 = [A;2 9]; % ma trận tạo A ma trận [2 9] B16 = inv(B16); % ma trận nghịch đảo A B17 = det(B16); % định thức A B18 = rank(B16); % hạng ma trận A %%% đa thức A = [1 6]; % cho đa thức A bậc n1 = roots(A); % nghiệm phương trình A = n2 = polyval(A,2); % giá trị A B = [1 5]; % cho đa thức B bậc n3 = conv(A,B); % nhân đa thức n4 = poly(A); % tìm đa thức có nghiệm phần tử A n5 = poly2sym(n4); % chuyển ma trận n4 dạng đa thức n6 = poly2sym(A); % chuyển ma trận A dạng đa thức C = sym2poly(n6); % chuyển đa thức n6 dạng ma trận C pretty(n5); % hiển thị dạng viết tay đa thức n5 %%% công cụ tính toán toolbox symbolic %% tính đạo hàm (hàm diff) % tính đạo hàm hàm y = sin(a*x^3) syms a x; % khai báo a,x biến kiểu symbolic,đây điều bắt buộc y = sin(a*x^3); % cho hàm y y1 = diff(y); % đạo hàm hàm y theo x (mặc định), viết diff(y,x) pretty(y1); % viết kết dạng viết tay y2 = diff(y,a); % đạo hàm hàm y theo a pretty(y2); % viết kết dạng viết tay y3 = diff(y,2); % đạo hàm bậc hàm y theo x (mặc định), viết diff(y,x,2) pretty(y3); % viết kết dạng viết tay %% tính tích phân (hàm int) % tính tích phân hàm z = x*sin(x) sym x; % khai báo x biến kiểu symbolic z = x*sin(x); % cho hàm z z1 = int(z); % tích phân z theo x (mặc định) viết int(z,x) pretty(z1); % viết kết dạng viết tay z2 = int(z,0,1); % tích phân xác định từ đến 1% viết int(f,x,0,1) %% tính giới hạn (hàm limit) % tính giới hạn hàm w = (1+x/n)^n, với n tiến vô syms n,x; % khai báo n, x biến kiểu symbolic,đây điều bắt buộc w = (1+x/n)^n; % cho hàm z limit(w,n,inf); % giới hạn w n tiến vô % ví dụ l1 = limit(1/x); % giới hạn 1/x với x mặc định tiến tới l2 = limit(1/x,x,0,'left'); % giới hạn 1/x với x chạy tới 0-) l3 = limit(1/x,x,0,'right'); % giới hạn 1/x với x chạy tới 0+) %% giải phương trình hệ phương trình syms x y; % khai báo x, y biến kiểu symbolic,đây điều bắt buộc x = solve('x^3+x^2+x+1'); % giải phương trình với biến x x = solve('x^2*y^2+x*y+1','x'); % giải phương trình với biến x y = solve('x^2*y^2+x*y+1','y'); % giải phương trình với biến y [x y] = solve('x^2+y^2=0','x*y=1'); % giải hệ phương trình % phương trình, hệ phương trình dạng khác giải tương tự %% tính tổng dãy số % tính tổng s = 1+2+3+ +n syms n; % khai báo x, y biến kiểu symbolic s1 = symsum(n+1); % tổng symbolic theo biến n chạy từ tới n (mặc định) s1 = symsum(n,1,n); % tổng symbolic theo biến n chạy từ tới n % tính tổng s2 = 1+x+x^2+x^3+ +x^n s2 = symsum(x^n,n,0,n); % tổng symbolic theo biến n chạy từ tới n %% tìm hàm ngược % tìm hàm ngược hàm u = sin(x) cos(xy) syms x y; % khai báo x, y biến kiểu symbolic finverse(sin(x)); % hàm ngược với biến mặc định x finverse(cos(x*y),y); % hàm ngược với biến y %% biến đổi Laplace (hàm t, hàm biến đổi s) syms t x s a b; % khai báo biến kiểu symbolic F1 = laplace(t); % biến đổi Laplace với biến mặc định t kết hàm s F2 = laplace(exp(-a*t),x); % biến đổi Laplace cho hàm ảnh hàm x thay s %% biến đổi Laplace ngược F3 = ilaplace(1/((s+a)*(s+b))); % biến đổi Laplace ngược trả hàm t F4 = ilaplace(1/(s*(s+a)),x); % biến đổi Laplace ngược trả hàm x % ta có dạng sau % laplace(f,y,x): biến đổi Laplace hàm biến y (thay mặc định t), % trả hàm biến x (thay mặc định s) % ilpalace(f,y,x): tương tự %% biến đổi fourier (hàm x, hàm biến đổi w) syms x u w; % khai báo biến kiểu symbolic F5 = fourier(exp(-x/2)); % biến đổi fourier cho kết hàm biến w (mặc định) F6 = fourier(exp(abs(-x)),u); % biến đổi fourier cho kết hàm biến u (thay cho w) %% biến đổi fourier ngược F7 = ifourier(sin(x)*cos(2*x)); % biến đổi fourier ngược cho kết hàm x (mặc định) F8 = ifourier(x^2-x-1,u); % biến đổi fourier ngược cho kết hàm u % ta có dạng sau % fourier(f,u,v): biến đổi fourier hàm f theo biến u (thay mặc định x), % trả hàm biến v (thay mặc định w) % ifourier(f,u,v): tương tự %% khai triển taylor syms x y; % khai báo biến kiểu symbolic F9 = taylor(sin(x)); % khai triển taylor theo biến x F10 = taylor(cos(x*y^2),x); % khai triển taylor theo biến x F11 = taylor(x^4+x^2+1,4,2); % khai triển taylor số hạng 0, xung quanh điểm x0 = F12 = taylor(x^3*y^2+x*y+1,5,y,1); % khai triển taylor số hạng theo biến y, xq điểm x0 = %% hàm làm đơn giản hóa biểu thức % - hàm collect: gom số hạng, biến syms x y; % khai báo biến kiểu symbolic F1 = collect((x^3+x+1)*(x*sin(x))); % gom số hạng theo biến x (mặc định) F2 = collect(x*y*(x+y^2+sin(x)),x); % gom số hạng theo biến x % - hàm expand: khai triển biểu thức F3 = expand((x+4)*(x^7+x^3+6)+sin(2*x)); % - hàm factor: phân tích biểu thức thành thừa số F4 = factor(x^8-y^8); F5 = factor(sym('143654645350')); % - hàm horner: phân tích đa thức dạng thừa số F6 = horner(6+x+2*x^2+x^4); F7 = horner([x^2+2*x+6;9+y^2+y^3]); % - hàm numden: lấy tử số mẫu số [n d] = numden((x+3)/(x*y+4)); % - hàm simplify va simple: làm tối giản hoá biểu thức F8 = simplify([(x^2+3*x+1)/(x+1),sqrt(16)]); F9 = simple([(x^2+3*x+1)/(x+1),sqrt(16)]) Xuất nghiệm: >>A=2 A= >>T=[‘X=’ num2str(A)]; >>disp(T) X=2 >> setdiff(A,B) ans= >> setxor(A,B) ans= -9 %các phần tử giống A B %các phần tử khác Ve: set(ezplot(t),'Color','green','LineWidth',1) Vẽ đồ thị đường thẳng: t=linspace(0,10*pi); Plot3(t,t+6,5-t); ... xấp xỉ tích phân Tính xấp xỉ tích phân hàm f (x) với x từ a tới b: Vì không phép toán kí hiệu mà phép toán số (numerical), nên cần chuyển f thành dạng hàm khác, gọi inline Ví dụ tích tích phân... hàm f khoảng x từ tới 2, y từ tới ezsurf(f,[1,2,3,4]) Tính tích phân bội Tính tích phân f hình hộp chữ nhật x từ tới 2, y từ tới 4: Đưa tích phân lặp: int(int(f,x,1,2),y,3,4) Vẽ mặt cho phương... biến Vẽ đồ thị hàm f, chẳng hạn với x từ tới ezplot(f,1,2) Tích phân hàm biến Tính tích phân không xác định hàm f theo biến x int(f,x) Tính tích phân xác định hàm f theo biến x, với x từ tới int(f,x,1,2)