Tải bản đầy đủ (.pdf) (28 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.23 MB, 28 trang )


Ứ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

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;



PHAN ĐÌNH DUY 10


Phần Mềm Dạy Học Toán


z=n(1,3)*t+z;
plot3(x,y,z,'color','r')
hold off
rotate3d on
axis([-3 3 -3 3 -1 3])
disp('duong mau do la vector phap tuyen :)')
% OK men :))
end
Kết quả:
nhap lan luoc cac toa do cua M0 thuoc mat cong y^2+x^2+z^2=4 :
x0= 1
y0= 2
z0= 3
tich phan can tinh la V= 29.3215
duong mau do la vector phap tuyen :)



PHAN ĐÌNH DUY 11


Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị


Ví dụ 4: Tính I =

S
 

3 3 3

x dydz y dzdx z dxdy
với S là phần mặt hướng phía ngoài của
mặt cầu x
2
+ y
2
+ z
2
= 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 M
o
(x
o
,y
o
,z
o
) nhập từ bàn phím.
%Tich Phan Mat
clc
disp('nhap toa do M0(x0,y0,y0) thuoc mat cau x^2+y^2+z^2=4')
x0=input('x0= ');
y0=input('y0= ');
z0=input('z0= ');
if abs(x0^2+y0^2+z0^2-4)>0.00001 %kiem tra M0
disp('nhap sai M0')
return
end
syms x y z t p phi real
f=x^2+y^2+z^2-4;

u=3*(x^2+y^2+z^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);
x=p*sin(t)*cos(phi);
y=p*sin(t)*sin(phi);
z=p*cos(t);
u=eval(u);



PHAN ĐÌNH DUY 12


Phần Mềm Dạy Học Toán

I=int(int(int(u*p^2*sin(t),'p',0,2),'phi',0,2*pi),'t',0,pi);
I=double(I);
disp(['I= ' num2str(I)])

[x,y,z]=ellipsoid(0,0,0,2,2,2);
set(surf(x,y,z),'facecolor','b','edgecolor','g','facealpha',.3
)
hold on
rotate3d on
x=x0;y=y0;z=z0;
n=eval(n);
x=n(1);
y=n(2);
z=n(3);
disp(['vector phap tai M0(' num2str(x0) ',' num2str(y0) ','

num2str(z0) ') la:'])
disp(['n= (' num2str(n(1)) ',' num2str(n(2)) ',' num2str(n(3))
')'])
quiver3(x0,y0,z0,x,y,z,.5,'r','LineWidth',2)
hold off
axis([-2.5 2.5 -2.5 2.5 -2.5 2.5])
xlabel('Ox')
ylabel('Oy')
zlabel('Oz')
end
Kết quả:
nhap toa do M0(x0,y0,y0) thuoc mat cau 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 13


Ứ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 x
2
+ y
2
+ z
2
≤ 4, x
2
+ y
2
+ z
2
≤ 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); % mat tren
z2=-sqrt(4-x.^2-y.^2)+2; % mat duoi
for i=1:length(x) % vong lap loai bo cac diem nam ngoai mien
giao nhau
for j=1:length(x)
if x(i,j)^2+y(i,j)^2 > 3
x(i,j)=NaN;y(i,j)=NaN;
z(i,j)=NaN;
z2(i,j)=NaN;
end




PHAN ĐÌNH DUY 14


Phần Mềm Dạy Học Toán

end
end
set(surf(x,y,z),'facecolor','b','edgecolor','non','facealpha',
.3) %ve mat tren
hold on
set(surf(x,y,z2),'facecolor','b','edgecolor','non','facealpha'
,.3) % ve mat duoi
pcolor(x,y,z2) % ve hinh chieu
hold off
rotate3d on
syms x y phi r real
z=sqrt(4-x^2-y^2); z2=-sqrt(4-x^2-y^2)+2;
x=2*r*cos(phi);y=2*r*sin(phi); % dat x,y theo toa do truc
z=eval(z);z2=eval(z2); % cap nhat bien moi cho x va y
V=int(int(4*r*(z-z2),'r',0,sqrt(3/4)),'phi',0,2*pi); %tinh
tich phan kep
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: x

2
+y
2
+z
2
= 1, x
2
+y
2
+z
2
= 4, z ≥ x
2
+ y
2
.
Vẽ vật thể E. Từ đó xác định cận lấy tích phân.




PHAN ĐÌNH DUY 15


Ứ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);
for i=1:length(x)
for j=1:length(x)
if x(i,j)^2+y(i,j)^2 > 2
z(i,j)=NaN;z1(i,j)=NaN;z2(i,j)=NaN;
end
if x(i,j)^2+y(i,j)^2 > 1/2
z1(i,j)=NaN;
end
if x(i,j)^2+y(i,j)^2 < 1/2
z2(i,j)=NaN;
end
end
end
set(surf(x,y,z),'facecolor','b','edgecolor','non','facealpha',
.3)
hold on
set(surf(x,y,z1),'facecolor','b','edgecolor','non','facealpha'
,.3)
set(surf(x,y,z2),'facecolor','b','edgecolor','non','facealpha'
,.3)
hold off
rotate3d on
syms x y t r real
z=sqrt(4-x^2-y^2);
z1=sqrt(1-x^2-y^2);
z2=sqrt(x^2+y^2);
x=r*cos(t);y=r*sin(t);
z=eval(z);z1=eval(z1);z2=eval(z2);

V=int(int((z-z2)*r,'r',1/sqrt(2),sqrt(2)),'t',0,2*pi);
V=V+int(int((z-z1)*r,'r',0,1/sqrt(2)),'t',0,2*pi);
V=double(V);
disp(['the tich vat the la V= ' num2str(V)])
end
Kết quả:



PHAN ĐÌNH DUY 16


Phần Mềm Dạy Học Toán



the tich vat the la V= 4.294
Ví dụ 3: Nhập hàm f (x,y,z). Tính tích phân bội 3 I =
, ,( )
E
x y z dxdydz

, với E là vật thể
giới hạn bởi z=
2 2
x y

, x
2
+ y

2
+ z
2
≤ z 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 p phi t 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)<0.5
z(i,j)=NaN;
end
end
end
surf(x,y,z)



PHAN ĐÌNH DUY 17


Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị


hold on
z=sqrt(x.^2+y.^2);
surf(x,y,z)
hold off
rotate3d on

x=p*sin(t)*cos(phi);
y=p*sin(t)*sin(phi);
z=p*cos(t);

f=eval(f);
I=int(int(int(f*(p^2)*sin(t),'p',0,cos(t)),'phi',0,2*pi),'t',0
,pi/4);
I=double(I);
disp(['I= ' num2str(I)])
disp('ta dat: ')
disp('x=p*sin(t)*cos(phi)')
disp('y=p*sin(t)*sin(phi)')
disp('z=p*cos(t)')
disp('can tich phan la:')
disp('p tu 0 -> cos(t)')
disp('phi tu 0 -> 2pi')
disp('t tu 0 -> pi/4')
end
Kết quả:
f(x,y,z)= x^2+2*y-z
I= -0.21108
ta dat:
x=p*sin(t)*cos(phi)
y=p*sin(t)*sin(phi)

z=p*cos(t)
can tich phan la:
p tu 0 -> cos(t)
phi tu 0 -> 2pi
t tu 0 -> pi/4





PHAN ĐÌNH DUY 18


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 =


, ,
E
f x y z dxdydz

, với E là vật thể

giới hạn bởi z = 1, x
2
+ y
2
+ z
2
= 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);
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 19


Ứ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);
I=int(int(int(f*p^2*sin(theta),'p',0,1),'phi',0,2*pi),'theta',
pi/2,pi);
I=double(I);
disp(['tich phan can tinh la I= ' num2str(I)])
end
Kết quả:
nhap ham f(x,y,z)= x^3+2*y^2-3*z
tich phan can tinh la I= -3.0892









PHAN ĐÌNH DUY 20


Phần Mềm Dạy Học Toán

3. Vẽ đồ thị
3.1 Mặt Paraboloid elliptic

Vẽ mặt Paraboloid elliptic
2 2
2 2
x y
z
a b
 
với a,b nhập từ bàn phím

% chuong trinh ve parabol elliptic
a=input('nhap so a= ');
b=input('nhap so b= ');
[x,y]=meshgrid(-10:.05:10);
z=x.^2/a+y.^2/b;
% lenh for o duoi de cat got do thi cho dep mat :)
for i=1:length(x)
for j=1:length(x)
if z(i,j)> 10^2/a || z(i,j) > 10^2/b
z(i,j)=NaN;x(i,j)=NaN;y(i,j)=NaN;
end
end
end
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 21


Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị






3.2 Mặt Trụ
Vẽ mặt trụ ellipse
2 2
2 2
1
x y
a b
 
với a,b nhập từ bàn phím
Vẽ mặt trụ Parabol y = x
2
%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);
y=b*sqrt(1-x.^2/a^2);
subplot(1,2,1) %

set(surf(x,y,z),'facecolor','b','edgecolor','r','facealpha',.5
)
hold on
y=-b*sqrt(1-x.^2/a^2);
set(surf(x,y,z),'facecolor','b','edgecolor','r','facealpha',.5
)



PHAN ĐÌNH DUY 22


Phần Mềm Dạy Học Toán

title(['x^2/' num2str(a) '^2 + y^2/' num2str(b) '^2 = 1'])
xlabel('truc x')
ylabel('truc y')
zlabel('truc z')
hold off
[x,z]=meshgrid(-2:.2:2);
y=x.^2;
subplot(1,2,2)
set(surf(x,y,z),'facecolor','b','edgecolor','r','facealpha',.5
)
title('y = x^2')
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
2 2 2
2 2 2
1
x y z
a b c
  
với a,b, c nhập từ bàn phím



PHAN ĐÌNH DUY 23


Ứng Dụng Matlab Để Tính Tích Phân & Vẽ Đồ Thị


% ve mat ellipsoid
% co nhieu cach ve. ban co the dung ham tu viet de ve
% nhung o day toi se ve bang ham thu viet cua matlab rat don
gian
a=input('nhap a= ');
b=input('nhap b= ');
c=input('nhap c= ');

ellipsoid(0,0,0,a,b,c);
rotate3d on
%trong do: 0,0,0 la toa do tam
% a,b,c lan luoc la ban kinh truc Ox, Oy, Oz
Kết quả:
nhap a= 3
nhap b= 4
nhap c= 5

3.4 Mặt Paraboloid Hyperbolic (mặt yên ngựa)
Vẽ mặt Paraboloid Hyperbolic
2 2
2 2
x y
z
a b
 
với a, b nhập từ bàn phím
%ve mat Paraboloid Hyperbolic
disp('nhap a b thuoc z=x^2/a^2-y^2/b^2')
a=input('nhap a= ');
b=input('nhap b= ');



PHAN ĐÌNH DUY 24


Phần Mềm Dạy Học Toán


c=[abs(a) abs(b)]; c=max(c);
[x,y]=meshgrid(-c:.1:c);
z=x.^2/a.^2-y.^2/b.^2;
set(surf(x,y,z),'facecolor','b','edgecolor','non','facealpha',
.3)
Kết quả:
nhap a= 5
nhap b= 3


3.5 Mặt Hyperboloid
Vẽ mặt Hyperboloid 1 tầng:
2 2 2
2 2 2
1
x y z
a b c
  

Vẽ mặt Hyperboloid 2 tầng:
2 2 2
2 2 2
1
x y z
a b c
  

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;

×