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

Hướng dẫn sử dụng matlab trong môn giải tích

7 3,3K 27

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 67,5 KB

Nội dung

Hướng dẫn sử dụng MatLab trong môn Giải tíchMatlab là một hệ tính toán lớn và mạnh, được dùng phổ biến trong giảng dạy, nghiên cứu và làm việc thực tế.. Tuy nhiên phần mềm này có bản quy

Trang 1

Hướng dẫn sử dụng MatLab trong môn Giải tích

Matlab là một hệ tính toán lớn và mạnh, được dùng phổ biến trong giảng dạy, nghiên cứu và làm việc thực tế Tuy nhiên phần mềm này có bản quyền, tương đối cồng kềnh, có thể lên tới hàng gigabybes

Tài liệu hướng dẫn chủ yếu là phần Help của chương trình Ngoài ra có thể tìm đọc quyển sách Jeffery Cooper, A Matlab companion for multivariable calculus, Harcourt, 2001

Thông báo biến x, y là một 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ị của f tại một điểm , chẳng hạn tại x=2

subs(f,x,2)

Tính giới hạn khi x dần đến hằng số a

limit(f,x,a)

Tính giới hạn khi x dần đến hằng số a bên trái hoặc phải

limit(f,x,a,’left’)

limit(f,x,a,’right’)

Tính giới hạn khi x dần đến +vô cùng hoặc –vô cùng

limit(f,x,Inf)

limit(f,x,-Inf)

Tính đạo hàm

Tính đạo hàm của hàm f theo biến x

diff(f,x)

Khai triển Taylor hàm f tại điểm cụ thể x0 tới cấp cụ thể n

taylor(f,x0,n)

Trang 2

Vẽ đồ thị hàm một biến

Vẽ đồ thị hàm f, chẳng hạn với x từ 1 tới 2

ezplot(f,1,2)

Tích phân của hàm một biến

Tính tích phân không xác định của hàm f theo biến x

int(f,x)

Tính tích phân xác định của hàm f theo biến x, với x từ 1 tới 2

int(f,x,1,2)

Nhập hàm nhiều biến ở dạng kí hiệu

Nhập vào một hàm nhiều biến

syms x y

f=x^2*y^3-3*x*y^2

Tính giá trị của hàm hai biến

Tính giá trị của f tại một điểm, chẳng hạn tại 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 của f theo biến y

diff(f,y)

Vẽ đồ thị hàm hai biến

Vẽ đồ thị hàm f trên khoảng x từ 1 tới 2, y từ 3 tới 4

ezsurf(f,[1,2,3,4])

Tính tích phân bội

Tính tích phân của f trên hình hộp chữ nhật x từ 1 tới 2, y từ 3 tới 4:

Đưa về tích phân lặp:

int(int(f,x,1,2),y,3,4)

Vẽ mặt cho bởi 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ừ 0 tới pi, v

từ 0 tới 2pi:

Trang 3

syms u v

ezsurf(sin(u)*cos(v),sin(u)*sin(v),cos(u),[0 pi 0 2*pi])

mẫu lệnh tổng quát là

ezsurf(x,y,z,[a b c d])

tham số thứ nhất 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 của hàm f (x) với x từ a tới b:

Vì đây không còn là phép toán kí hiệu nữa mà là phép toán số (numerical), nên cần chuyển f thành một dạng hàm khác, gọi là inline

Ví dụ tích tích phân f(x)=e^(x^2) từ 0 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 nó để tính toán trên

ma trận).

Tính xấp xỉ tính phân của f:

quad(f,0,1)

Vẽ trường vectơ 2 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 trên hình chữ nhật x từ -1 tới 1, y từ -2 tới 2

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 một lưới các điểm ứng với các điểm chia trên:

[X,Y]=meshgrid(x,y)

Tính giá trị của trường tại các điểm chia này:

p=P(X,Y)

q=Q(X,Y)

Vẽ các vectơ của trường tại các điểm này:

quiver(X,Y,p,q)

%%% vector

Trang 4

%% các cách tạo một vecto

x = 0:0.1:1; % vecto gồm tất cả các phần tử từ 0 đến 1cách đều nhau 0.1

y = linspace(1,10,20); % vecto tạo bởi 20 phần tử cách đều nhau từ 1 đến 10

z = rand(10,1); % vecto ngẫu nhiên gồm 10 phần tử

%% cho vecto A = [5 7 9 7 4 3]

A = [5 7 9 7 4 3];

B1 = A(3); % lấy giá trị thứ 3

B2 = A(1:5); % lấy giá trị từ 1 đến 5

B3 = A(1:end); % lấy giá trị từ 1 đến cuối cùng

B4 = A(1:end-1); % lấy giá trị từ 1 đến cuối cùng - 1

B5 = A(6:-2:1); % lấy giá trị từ giảm dần 2 đơn vị từ 6 xuống 1

B6 = A(1:2:6); % lấy giá trị từ tăng dần 2 đơn vị từ 1 lên 6

B7 = sum(A); % tính tổng tất cả các phần tử

%%% ma trận

A = [2 7 9 7;3 1 5 6;8 1 2 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 2 cột 3

B3 = A'; % ma trận chuyển vị của A

B4 = A(:,[1 4]); % lấy cột 1 và cột 4

B5 = A(:,1:4); % lấy các cột từ 1 đến 4

B6 = A([1 3],:); % lấy hàng 1 và 3

B7 = A(1:3,:); % lấy các hàng từ 1 đến 3

B8 = A([2 3],[3 1]); % lấy hàng 2 và 3; cột 3,1

B9 = A(:); % viết lại các phần tử thành 1 cột

H10 = [A;A(end,:)];% ma trận tạo bởi A và hàng cuối của A

B11 = [A;A(1:2,:)]; % ma trận tạo bởi A và ma trận congòm hàng 1, 2

B12 = sum(A); % ma trận tạo bởi tổng tất cả các phần tử trong các cột của A

B13 = sum(A,2); % ma trận tạo bởi tổng tất cả các phần tử trong các hàng của A

B14 = reshape(A,2,6); % viết lại ma trận thành 2 hàng 6 cột

B15 = [A;2 5 7 9]; % ma trận tạo bởi A và ma trận [2 5 7 9]

B16 = inv(B16); % ma trận nghịch đảo của A

B17 = det(B16); % định thức của A

B18 = rank(B16); % hạng của ma trận A

%%% đa thức

A = [1 3 5 6]; % cho đa thức A bậc 3

n1 = roots(A); % nghiệm của phương trình A = 0

n2 = polyval(A,2); % giá trị của A tại 2

B = [1 5 7 5]; % cho đa thức B bậc 3

n3 = conv(A,B); % nhân 2 đa thức

n4 = poly(A); % tìm đa thức có các nghiệm là các phần tử của A

n5 = poly2sym(n4); % chuyển ma trận n4 về dạng đa thức

n6 = poly2sym(A); % chuyển ma trận A về dạng đa thức

C = sym2poly(n6); % chuyển đa thức n6 về dạng ma trận C

pretty(n5); % hiển thị dạng viết tay của đa thức n5

Trang 5

%%% các công cụ tính toán trong toolbox symbolic

%% tính đạo hàm (hàm diff)

% tính đạo hàm của hàm y = sin(a*x^3)

syms a x; % khai báo a,x là biến kiểu symbolic,đây là đ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), hoặc viết diff(y,x)

pretty(y1); % viết kết quả dưới dạng viết tay

y2 = diff(y,a); % đạo hàm hàm y theo a

pretty(y2); % viết kết quả dưới dạng viết tay

y3 = diff(y,2); % đạo hàm bậc 2 hàm y theo x (mặc định), hoặc viết diff(y,x,2)

pretty(y3); % viết kết quả dưới dạng viết tay

%% tính tích phân (hàm int)

% tính tích phân của hàm z = x*sin(x)

sym x; % khai báo x là biến kiểu symbolic

z = x*sin(x); % cho hàm z

z1 = int(z); % tích phân của z theo x (mặc định) hoặc viết int(z,x)

pretty(z1); % viết kết quả dưới dạng viết tay

z2 = int(z,0,1); % tích phân xác định từ 0 đến 1% hoặc 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 ra vô cùng

syms n,x; % khai báo n, x là biến kiểu symbolic,đây là điều bắt buộc

w = (1+x/n)^n; % cho hàm z

limit(w,n,inf); % giới hạn của w khi n tiến ra vô cùng

% các ví dụ

l1 = limit(1/x); % giới hạn của 1/x với x mặc định tiến tới 0

l2 = limit(1/x,x,0,'left'); % giới hạn của 1/x với x chạy tới 0-)

l3 = limit(1/x,x,0,'right'); % giới hạn của 1/x với x chạy tới 0+)

%% giải phương trình và hệ phương trình

syms x y; % khai báo x, y là biến kiểu symbolic,đây là đ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

% các phương trình, hệ phương trình dạng khác giải tương tự

%% tính tổng của dãy số

% tính tổng của s = 1+2+3+ +n

syms n; % khai báo x, y là biến kiểu symbolic

s1 = symsum(n+1); % tổng symbolic theo biến n chạy từ 0 tới n (mặc định) hoặc

s1 = symsum(n,1,n); % tổng symbolic theo biến n chạy từ 1 tới n

% tính tổng của 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ừ 0 tới n

%% tìm hàm ngược

% tìm hàm ngược của hàm u = sin(x) và cos(xy)

syms x y; % khai báo x, y là biến kiểu symbolic

finverse(sin(x)); % hàm ngược với biến mặc định x

Trang 6

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 các biến kiểu symbolic

F1 = laplace(t); % biến đổi Laplace với biến mặc định t và kết quả là 1 hàm của s

F2 = laplace(exp(-a*t),x); % biến đổi Laplace cho hàm ảnh là một hàm của x thay thế s

%% biến đổi Laplace ngược

F3 = ilaplace(1/((s+a)*(s+b))); % biến đổi Laplace ngược trả về hàm của t

F4 = ilaplace(1/(s*(s+a)),x); % biến đổi Laplace ngược trả về hàm của x

% ta còn có 2 dạng sau

% laplace(f,y,x): biến đổi Laplace của 1 hàm biến y (thay thế mặc định t),

% trả về 1 hàm biến x (thay thế mặc định s)

% ilpalace(f,y,x): tương tự như trên

%% biến đổi fourier (hàm x, hàm biến đổi w)

syms x u w; % khai báo các biến kiểu symbolic

F5 = fourier(exp(-x/2)); % biến đổi fourier cho kết quả là 1 hàm biến w (mặc định)

F6 = fourier(exp(abs(-x)),u); % biến đổi fourier cho kết quả là 1 hàm biến u (thay thế cho w)

%% biến đổi fourier ngược

F7 = ifourier(sin(x)*cos(2*x)); % biến đổi fourier ngược cho kết quả là 1 hàm của x (mặc định)

F8 = ifourier(x^2-x-1,u); % biến đổi fourier ngược cho kết quả là 1 hàm của u

% ta còn có 2 dạng sau

% fourier(f,u,v): biến đổi fourier của hàm f theo biến u (thay thế mặc định là x),

% trả về 1 hàm biến v (thay thế mặc định w)

% ifourier(f,u,v): tương tự như trên

%% khai triển taylor

syms x y; % khai báo các 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 4 số hạng đầu tiên <> 0, xung quanh điểm x0 = 2

F12 = taylor(x^3*y^2+x*y+1,5,y,1); % khai triển taylor 5 số hạng đầu tiên <> 0 theo biến

y, xq điểm x0 = 1

%% các hàm làm đơn giản hóa biểu thức

% 1 - hàm collect: gom số hạng, biến

syms x y; % khai báo các biến kiểu symbolic

F1 = collect((x^3+x+1)*(x*sin(x))); % gom các số hạng theo biến x (mặc định)

F2 = collect(x*y*(x+y^2+sin(x)),x); % gom các số hạng theo biến x

% 2 - hàm expand: khai triển biểu thức

F3 = expand((x+4)*(x^7+x^3+6)+sin(2*x));

% 3 - 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'));

% 4 - hàm horner: phân tích đa thức ra 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]);

Trang 7

% 5 - hàm numden: lấy tử số và mẫu số

[n d] = numden((x+3)/(x*y+4));

% 6 - 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=

2

>>T=[‘X=’ num2str(A)];

>>disp(T)

X=2

>> setdiff(A,B) %các phần tử giống nhau của A B ans=

1

3

5

7

9

>> setxor(A,B) %các phần tử khác nhau

ans=

-9

8

Ve:

set(ezplot(t),'Color','green','LineWidth',1)

Vẽ đồ thị đường thẳng:

t=linspace(0,10*pi);

Plot3(t,t+6,5-t);

Ngày đăng: 03/12/2015, 20:28

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w