ứng dụng matlab tính tích phân và vẽ đồ thị

28 6.3K 19
ứng dụng matlab tính tích phân và vẽ đồ thị

Đ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

Ứng dụng Matlab tính tích phân & vẽ đồ thị Phần mềm dạy học Toán Phan Đình Duy 2014 Matlab R2013b PHAN ĐÌNH DUY I Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị 1. Giới thiều đề tài 2 1.1 Matlab là gì? 2 1.2 Giao diện của Matlab 3 1.3 Lời nói đầu 4 2. Tích Phân 4 2.1 Tích phân Mặt 4 2.2 Tích Phân Bội 3 13 3. Vẽ đồ thị 20 3.1 Mặt Paraboloid elliptic 20 3.2 Mặt Trụ 21 3.3 Mặt ellipsoid 22 3.4 Mặt Paraboloid Hyperbolic (mặt yên ngựa) 23 3.5 Mặt Hyperboloid 24 PHAN ĐÌNH DUY 2 Phần Mềm Dạy Học Toán 1. Giới thiều đề tài 1.1 Matlab là gì? MATLAB là một chương trình viết cho máy tính PC nhằm hỗ trợ cho các tính toán khoa học và kĩ thuật với các phần tử cơ bản là ma trận trên máy tính cá nhân do công ty "The MATHWORKS" viết ra. Thuật ngữ MATLAB có được là do hai từ MATRIX và LABORATORYghép lại. Chương trình này hiện đang được sử dụng nhiều trong nghiên cứu các vấn đề tính toán của các bài toán kĩ thuật như: Lý thuyết điều khiển tự động, kĩ thuật thống kê xác suất, xử lý số các tín hiệu, phân tích dữ liệu, dự báo chuỗi quan sát, v.v… MATLAB được điều khiển bởi các tập lệnh, tác động qua bàn phím. Nó cũng cho phép một khả năng lập trình với cú pháp thông dịch lệnh – còn gọi là Script file. Các lệnh hay bộ lệnh của MATLAB lên đến số hàng trăm và ngày càng được mở rộng bởi các phần TOOLS BOX( thư viện trợ giúp) hay thông qua các hàm ứng dụng được xây dựng từ người sử dụng. MATLAB có hơn 25 TOOLS BOX để trợ giúp cho việc khảo sát những vấn đề có liên quan trên. TOOL BOX SIMULINK là phần mở rộng của MATLAB, sử dụng để mô phỏng các hệ thống động học một cách nhanh chóng và tiện lợi. MATLAB 3.5 trở xuống hoạt động trong môi trường MS-DOS. MATLAB 4.0, 4.2, 5.1, 5.2, … hoạt động trong môi trường WINDOWS. Các version 4.0, 4.2 muốn hoạt động tốt phải sử dụng cùng với WINWORD 6.0. Hiện tại đã có version 2012 (kham khảo từ Website của công ty). Chương trình Matlab có thể chạy liên kết với các chương trình ngôn ngữ cấp cao như C, C++, Fortran, … Việc cài đặt MATLAB thật dễ dàng và ta cần chú ý việc dùng thêm vào các thư viện trợ giúp hay muốn liên kết phần mềm này với một vài ngôn ngữ cấp cao. PHAN ĐÌNH DUY 3 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị 1.2 Giao diện của Matlab Matlab sử dụng 2 cửa số giao diện: cửa số 1 để nhập các câu lệnh, dữ liệu và in kết quả Cửa số thứ 2: sử dụng cho việc truy xuất đồ họa, thể hiện những kết quả, lệnh dưới dạng đồ họa. PHAN ĐÌNH DUY 4 Phần Mềm Dạy Học Toán 1.3 Lời nói đầu Matlab là một công cụ tuyệt vời để nghiên cứu về các cấu trúc Toán Học với các thuật Toán mạnh mẽ, câu lệnh đơn giản,thông minh, hỗ trợ đồ họa 3D…việc nghiên cứu và học tập Toán với sự trợ giúp của Matlab là một điều vô cùng thú vị và bạn sẽ nhận thấy sự khác biệt giữa Matlab và các phần mềm khác. 2. Tích Phân 2.1 Tích phân Mặt Ví dụ 1: Tính I =   2 ) ( C x y dx x z dy ydz      với C là giao của mặt cong z = y 2 và x 2 + y 2 = 1 ngược chiều kim đồng hồ theo hướng của trục Oz bằng cách dùng công thức Stokes. Vẽ giao tuyến, pháp véc tơ với mặt cong đã chọn trong công thức Stokes tại điểm M o (x o ,y o ,z o ) nhập từ bàn phím. %Tich Phan Mat clc [x,y]=meshgrid(-1:.02:1); z=y.^2; for i=1:length(x) % loai cac diem bat dinh for j=1:length(x) if x(i,j)^2+y(i,j)^2 > 1 % loai cac diem nam ngoai hinh tru x(i,j)=NaN; PHAN ĐÌNH DUY 5 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị y(i,j)=NaN; z(i,j)=NaN; end end end set(surf(x,y,z),'facecolor','b','edgecolor','non','facealpha', .3) % ve mat trong giao tuyen hold on % ve duong giao tuyen t=linspace(0,2*pi,50); x=cos(t);y=sin(t);z=y.^2; plot3(x,y,z,'color','g') %tinh tich phan mat syms x y z real P=x+y; Q=2*x-z; R=y; f=z-y^2; n=[diff(f,'x') diff(f,'y') diff(f,'z')]; n=n/sqrt(diff(f,'x')^2 + diff(f,'y')^2 + diff(f,'z')^2); % tinh vector don vi cua vector phap %phuong phap tinh la phuong phap stokes p=(diff(R,'y')-diff(Q,'z'))*n(1,1); q=(diff(P,'z')-diff(R,'x'))*n(1,2); r=(diff(Q,'x')-diff(P,'y'))*n(1,3); z=y^2; f=(eval(p)+eval(q)+eval(r))*sqrt(1+diff(z,'x')^2+diff(z,'y')^2 ); % da chuyen ve tich phan mat loai 1 syms r phi real x=r*cos(phi);y=r*sin(phi); % chuyen sang phuong phap truc toa do f=eval(f); S=int(int(f*r,'r',0,1),'phi',0,2*pi); %tinh tich phan S=double(S); disp(['Tich phan can tinh la: I= ' num2str(S)]) % ve vector phap tai M0 disp('nhap diem M0 thuoc mat z=y^2 va x^2+y^2 <= 1 ') disp('vidu M(0,1,1), thi ta nhap: 0,1,1') m=input('M0= ','s'); m=str2num(m); x=m(1,1);y=m(1,2);z=m(1,3); n=eval(n);% the toa do diem vao vector PHAN ĐÌNH DUY 6 Phần Mềm Dạy Học Toán title(['mat z=y^2 nam trong hinh tru x^2+y^2=1 ' 'Va phap vector tai diem M0(' num2str(x) ',' num2str(y) ',' num2str(z) ')']) % tao tieu de %bat dau ve vector phap t=linspace(0,1,20); x=n(1,1)*t+x; y=n(1,2)*t+y; z=n(1,3)*t+z; plot3(x,y,z,'color','r') hold off rotate3d on % OK men :)) End Kết quả: Tich phan can tinh la: I= 3.1416 nhap diem M0 thuoc mat z=y^2 va x^2+y^2 <= 1 vidu M(0,1,1), thi ta nhap: 0,1,1 M0= 1,1,1 Ví dụ 2: Tính I =       2 2 2 3 – 3 – 3 – C x y dx y z dy z x dz    với C là giao của mặt phẳng 2x + z = 2 và mặt paraboloid z = x 2 + y 2 ngược chiều kim đồng hồ theo hướng của trục Oz bằng cách dùng công thức Stokes. Vẽ giao tuyến, pháp véc tơ với mặt cong chứa (C) tại điểm M o (x o ,y o ,z o ) nhập từ bàn phím. PHAN ĐÌNH DUY 7 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị %Tich Phan Mat clc t=linspace(0,2*pi,50); [x,y]=meshgrid(sqrt(3)*cos(t)-1,sqrt(3)*sin(t)); z=x.^2+y.^2; set(surf(x,y,z),'facecolor','b','edgecolor','non','facealpha', .1) hold on z=2-2.*x; set(surf(x,y,z),'facecolor','g','edgecolor','non','facealpha', .1) % ve duong giao tuyen t=linspace(0,2*pi,50); x=sqrt(3)*cos(t)-1;y=sqrt(3)*sin(t);z=x.^2+y.^2; plot3(x,y,z,'color','r') %tinh tich phan mat syms x y z real P=3*x-+y^2; Q=3*y-z^2; R=3*z-x^2; f=z+2*x-2; n=[diff(f,'x') diff(f,'y') diff(f,'z')]; n=n/sqrt(diff(f,'x')^2 + diff(f,'y')^2 + diff(f,'z')^2); % tinh vector don vi cua vector phap %phuong phap tinh la phuong phap stokes p=(diff(R,'y')-diff(Q,'z'))*n(1,1); q=(diff(P,'z')-diff(R,'x'))*n(1,2); r=(diff(Q,'x')-diff(P,'y'))*n(1,3); z=2-2*x; % chuyen ve tich phan mat loai 1 f=(eval(p)+eval(q)+eval(r))*sqrt(1+diff(z,'x')^2+diff(z,'y')^2 ); %tinh tich phan syms r phi real x=r*cos(phi);y=r*sin(phi); % chuyen sang phuong phap truc toa do f=eval(f); S=int(int(f*r,'r',0,sqrt(3)),'phi',0,2*pi); %tinh tich phan S=double(S); disp(['Tich phan can tinh la: I= ' num2str(S)]) % ve vector phap tai M0 disp('nhap diem M0 thuoc mat 2*x+z=2 va z >= x^2+y^2 ') disp('vidu M(0,-1,2), thi ta nhap: 0,-1,2') m=input('M0= ','s'); m=str2num(m); PHAN ĐÌNH DUY 8 Phần Mềm Dạy Học Toán x=m(1,1);y=m(1,2);z=m(1,3); n=eval(n);% the toa do diem vao vector title(['mat z=y^2 nam trong hinh tru x^2+y^2=1 ' 'Va phap vector tai diem M0(' num2str(x) ',' num2str(y) ',' num2str(z) ')']) % tao tieu de %bat dau ve vector phap t=linspace(0,1,20); x=n(1,1)*t+x; y=n(1,2)*t+y; z=n(1,3)*t+z; plot3(x,y,z,'color','r') hold off rotate3d on % OK men :)) End Kết quả: Tich phan can tinh la: I= 75.3982 nhap diem M0 thuoc mat 2*x+z=2 va z >= x^2+y^2 vidu M(0,-1,2), thi ta nhap: 0,-1,2 M0= -5,2,-1 PHAN ĐÌNH DUY 9 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị Ví dụ 3: Tính I =       S       y z dydz x z dzdx z 1 dxdy với S là phần mặt hướng phía trên của nửa mặt cầu z = 2 2 4 x y   bằng cách dùng công thức Ostrogratxki- Gauss. Vẽ giao tuyến (C), pháp véc tơ với mặt cong chứa (C) tại điểm M o (x o ,y o ,z o ) thuộc mặt cong nhập từ bàn phím. %Tich phan Mat clc disp('nhap lan luoc cac toa do cua M0 thuoc mat cong y^2+x^2+z^2=4 :') x0=input('x0= '); y0=input('y0= '); z0=input('z0= '); syms x y z real syms t phi p real P=y+z; Q=x-z; R=z+1; f=z^2+y^2+x^2-4; n=[diff(f,'x') diff(f,'y') diff(f,'z')]; g=diff(P,'x')+diff(Q,'y')+diff(R,'z'); x=p*cos(phi)*sin(t); y=p*sin(t)*sin(phi); z=p*cos(t); g=eval(g); V=int(int(int(g*p^2*sin(t),'p',0,2),'t',0,pi/2),'phi',0,2*pi); % ta tru cho tich phan mat duoi. mat duoi huong xuong oz => V=V+S V=V+4*pi; V=double(V); disp(['tich phan can tinh la V= ' num2str(V) ]) %ve hinh [x, y, ~] = ellipsoid(0,0,0,2,2,2,100); % tao luoi z=sqrt(4-x.^2-y.^2); z(imag(z)>0)=0; set(surf(x,y,z),'facecolor','b','edgecolor','non','facealpha', .3) hold on % ve vector phap tai M0 x=x0;y=y0;z=z0; n=eval(n);% the toa do diem vao vector %bat dau ve vector phap t=linspace(0,1,20); x=n(1,1)*t+x; y=n(1,2)*t+y; [...]... x^2+y^2+z^2=4 x0= 2 y0= 0 z0= 0 I= 241.2743 vector phap tai M0(2,0,0) la: PHAN ĐÌNH DUY 12 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị n= (1,0,0) 2.2 Tích Phân Bội 3 Ví dụ 1 :Tính thể tích vật thể E giới hạn bởi x2 + y2 + z2 ≤ 4, x2 + y2 + z2 ≤ 4z Vẽ vật thể E Vẽ hình chiếu của E xuống Oxy từ đó xác định cận lấy tích phân %Tich Phan Boi [x,y]=meshgrid(-sqrt(3):.05:sqrt(3)); % tao luoi z=sqrt(4-x.^2-y.^2);... V=double(V); disp(['the tich can tinh la: ' num2str(V)]) end Kết quả: the tich can tinh la: 10.472 Ví dụ 2: Tính thể tích vật thể E giới hạn bởi: x2 +y2 +z2 = 1, x2 +y2 +z2 = 4, z ≥ x2 + y2 Vẽ vật thể E Từ đó xác định cận lấy tích phân PHAN ĐÌNH DUY 14 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị %Tich Phan Boi clc [x,y]=meshgrid(-2:.01:2); z=sqrt(4-x.^2-y.^2); z1=sqrt(1-x.^2-y.^2); z2=sqrt(x.^2+y.^2);... y0= 2 z0= 3 tich phan can tinh la V= 29.3215 duong mau do la vector phap tuyen :) PHAN ĐÌNH DUY 10 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị Ví dụ 4: Tính I = 3  x dydz  y 3dzdx  z 3dxdy với S là phần mặt hướng phía ngoài của S 2 2 2 mặt cầu x + y + z = 4 bằng cách dùng công thức Ostrogratxki-Gauss Vẽ mặt cong (S), pháp véc tơ với mặt cong tại điểm Mo(xo,yo,zo) nhập từ bàn phím %Tich Phan Mat... set(surf(x,y,z),'facecolor','b','edgecolor','non','facealpha', 3); % ve do thi rotate3d on Kết quả: nhap so a= 3 nhap so b= 4 PHAN ĐÌNH DUY 20 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị 3.2 Mặt Trụ Vẽ mặt trụ ellipse x2 y 2   1 với a,b nhập từ bàn phím a 2 b2 Vẽ mặt trụ Parabol y = x2 %Mat Tru clc disp('nhap cac so a,b thuoc x^2/a^2+y^2/b^2=1') a=input('a= '); b=input('b= '); [x,z]=meshgrid(-a:.2:a);... 3 3.5 Mặt Hyperboloid Vẽ mặt Hyperboloid 1 tầng: x2 y2 z2   1 a 2 b2 c 2 Vẽ mặt Hyperboloid 2 tầng: x2 y2 z2   1 a2 b2 c2 Với a,b,c nhập từ bàn phím %Ve mat Hyperboloid disp('ban muon ve Hyperboloid 1 tang hay 2 tang') disp('neu muon ve 1 tang thi nhap: 1') d=input('1 hay 2: ','s');d=str2double(d); if d==1 d=-1; PHAN ĐÌNH DUY 24 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị disp('nhap cac so... rotate3d on xlabel('truc x') ylabel('truc y') zlabel('truc z') Kết quả: nhap cac so a,b thuoc x^2/a^2+y^2/b^2=1 a= 5 b= 6 3.3 Mặt ellipsoid Vẽ mặt ellipsoid PHAN ĐÌNH DUY x2 y2 z2    1 với a,b, c nhập từ bàn phím a 2 b2 c 2 22 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị % ve mat ellipsoid % co nhieu cach ve ban % nhung o day toi se ve gian a=input('nhap a= '); b=input('nhap b= '); c=input('nhap c= ');... f(x,y,z)= '); f=sym(f); [x, y, ~] = ellipsoid(0,0,1,1,1,1); z=1+0.*x; z1=-sqrt(1-(x.^2+y.^2))+1; set(surf(x,y,z),'facecolor','g','edgecolor','non','facealpha', 1) hold on PHAN ĐÌNH DUY 18 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị set(surf(x,y,z1),'facecolor','b','edgecolor','non','facealpha' ,.1) hold off rotate3d on syms theta phi p x=p*cos(phi)*sin(theta); y=p*sin(phi)*sin(theta); z=1+p*cos(theta); f=eval(f);... real f=input('f(x,y,z)= '); f=sym(f); [x,y,z]=ellipsoid(0,0,1/2,1/2,1/2,1/2); for i=1:length(x) for j=1:length(x) if z(i,j) 2pi t tu 0 -> pi/4 PHAN ĐÌNH DUY 17 Phần Mềm Dạy Học Toán Ví dụ 4: Nhập hàm số f (x,y,z) Tính tích phân bội 3 I =  f  x, y, z  dxdydz , với E là vật thể E giới hạn bởi z = 1, x2 + y2 + z2 = 2z, z ≤ 1 bằng cách đổi sang hệ tọa độ cầu Vẽ vật thể E Từ đó xác định cận lấy tích phân %Tich phan Boi clc syms x y z real f=input('nhap ham f(x,y,z)= '); f=sym(f); [x, y, ~] = ellipsoid(0,0,1,1,1,1); . Ứng dụng Matlab tính tích phân & vẽ đồ thị Phần mềm dạy học Toán Phan Đình Duy 2014 Matlab R2013b PHAN ĐÌNH DUY I Ứng Dụng Matlab Để Tính Tích Phân. mềm này với một vài ngôn ngữ cấp cao. PHAN ĐÌNH DUY 3 Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị 1.2 Giao diện của Matlab Matlab sử dụng 2 cửa số giao diện: cửa số 1. Hyperbolic (mặt yên ngựa) 23 3.5 Mặt Hyperboloid 24 PHAN ĐÌNH DUY 2 Phần Mềm Dạy Học Toán 1. Giới thiều đề tài 1.1 Matlab là gì? MATLAB là một chương trình viết cho máy tính PC nhằm

Ngày đăng: 08/01/2015, 03:03

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan