Đề bài: a Vẽ mặt Hyperbolic Paraboloid với a, b nhập từ bàn phím.. - Để vẽ mặt Hyperbolic Paraboloid ta cần chia lưới miền hình chiếu của Hyperbolic Paraboloid trong một miền tự lựa chọn
Trang 1Trường Đại học Bách Khoa Tp Hồ Chí Minh
Khoa Khoa học Ứng dụng
Bộ môn Toán Ứng dụng
-BÀI TẬP LỚN MÔN GIẢI TÍCH 2
Lớp MT1301 Nhóm L10-CA Giáo viên hướng dẫn: Nguyền Hồng Lộc
TP Hồ Chí Minh, tháng 5/2014
Trang 2I Nội dung đề tài
Câu 1:
1 Đề bài:
a) Vẽ mặt Hyperbolic Paraboloid với a, b nhập từ bàn phím
b) Vẽ mặt Hyperbolic Paraboloid
2 Cơ sở lí thuyết:
a)
- Nhập vào a, b
- Để vẽ mặt Hyperbolic Paraboloid ta cần chia lưới miền hình chiếu của Hyperbolic
Paraboloid trong một miền tự lựa chọn Để cho đồ thị dễ nhìn ta chọn miền liên quan đến giá trị lớn nhất trong a và b
- Nhập hàm cần vẽ
- Sau đó vẽ đồ thị Hyperbolic Paraboloid Và thiết lập các thuộc tính của
đồ thị
b) Tương tự như trong câu a, không cần nhập a và b đồng thời vai trò của y và z đổi chỗ cho nhau Miền vẽ đồ thị do mình lựa chọn trước
3 Các lệnh cần dùng trong Matlab
- Meshgrid chia lưới miền hình chiếu
- Surf vẽ đồ thị trong trường hợp này là trong không gian 3 chiều
4 Code chương trình:
a)
function n3b1a
clf;
disp('nhap a b thuoc z=x^2/a^2-y^2/b^2')
a=input('nhap a= ');
b=input('nhap b= ');
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)
xlabel('truc x');
ylabel('truc y');
zlabel('truc z');
Trang 3b)
function n3b1b
clf;
[x,z]=meshgrid(-5:.1:5);
y= -x.^2+z.^2;
set(surf(x,y,z),'facecolor','b','edgecolor','non','facealpha' ,.3)
xlabel('truc x');
ylabel('truc y');
zlabel('truc z');
end
5 Kết quả
a)
- Command Windows
>>n3b1a nhap a b thuoc z=x^2/a^2-y^2/b^2 nhap a= -5
nhap b= 5
- Figure 1:
Trang 4- Command Windows
>>n3b1b
- Figure 1
Trang 5Câu 2:
1 Đề bài:
Nhập hàm x=x1(y), x=x2(y) cắt nhau tại 2 điểm phân biệt Nhập hàm f(x , y) Tính
D
❑
f (x , y)dxdy, với D được giới hạn bởi x=x1(y), x=x2(y) Vẽ miền D
2 Cơ sở lí thuyết:
- Muốn tính tích phân kép của một hàm f(x , y) bất kỳ ta cần xác định được miền D đóng và bị chặn trong mặt phẳng Oxy Từ đó áp dụng các công thức để xác định giá tích phân
- Nhập vào x=x1(y), x=x1(y),f(x , y),sao cho x1(y), x2(y)cắt nhau tại 2 điểm phân biệt
- Tìm giao điểm của x1(y), x2(y), nếu x1(y), x2(y) cắt nhau tại 2 điểm phân biệt ta tính tích phân trong miền D, với miền D là miền giới hạn bởi hai hàm x1(y), x2(y)
- Vẽ miền D
Trang 63 Các lệnh cần dùng trong Matlab:
- unique: loại bỏ các nghiệm trùng nhau khi lấy giao điểm của hai hàm x1(y), x2(y)
- int: tính tích phân
- char, strrep: xử lý chuỗi kí tự
- fill: vẽ miền D
4 Code chương trình:
function n3b4
syms x y real
warning off
x1=input('nhap ham x1(y)= ');
x2=input('nhap ham x2(y)= ');
f=input('nhap ham tinh tich phan f(x,y)= ');
n=solve(x1-x2);
n=unique(n);
n=double(n);
if length(n)~=2
disp('2 ham x1 va x2 khong cat nhau tai 2 diem phan biet') return
end
if double(subs((x1-x2),'y',(n(1)+n(2))/2)) > 0
I=int(int(f,'x',x2,x1),'y',n(1),n(2));
ve(x1,x2,n(1),n(2))
else
I=int(int(f,'x',x1,x2),'y',n(1),n(2));
ve(x2,x1,n(1),n(2))
end
I=double(I);
disp(['tich phan can tinh I= ' num2str(I)])
end
function ve(x1,x2,a,b)
x1=sym(x1);x1=[char(x1) '+0*y'];
x2=sym(x2);x2=[char(x2) '+0*y'];
y=linspace(a,b,25);
x1=strrep(x1,'^','.^');
x1=strrep(x1,'*','.*');
xa=eval(x1);
ya=y;
y=linspace(a,b,25);
x2=strrep(x2,'^','.^');
x2=strrep(x2,'*','.*');
x=eval(x2);
xa=[xa x];
ya=[ya y];
fill(xa,ya,'r')
grid on
Trang 75 Kết quả
- Command Windows
nhap ham x1(y)= y^2
nhap ham x2(y)= 3-2*y
nhap ham tinh tich phan f(x,y)= 9*x^2+y^3 tich phan can tinh I= 1486.019
- Figure:
Trang 8Câu 3:
1 Đề bài:
Tính I=∬
S
❑
(y+z)dydz+(x−z)dzdx+(z+1)dxdy với S là mặt hướng phía trên của nữa mặt cầu x2+ y2+z2=4 bằng cách dùng công thức Ostrogratxki-Gauss Vẽ giao tuyến, pháp véc tơ với mặt cong chứa (C) tại điểm M0(x0,y0) nhập từ bàn phím
2 Cơ sở lí thuyết:
- Từ tích phân mặt loại hai I=∬
S
❑
Pdydz+Qdzdx+Rdxdy, sử dụng công thức Ostrogratxki-Gauss ta đưa tích phân cần tính về tích phân:
Ω
❑
(∂ P
∂ x + ∂ Q ∂ y + ∂ R ∂z)dxdydz với Ω là miền đóng và bị chặn Dấu lấy tích phân phụ thuộc vào mặt S hướng ra hay hướng vào Sau khi đưa về tích phân bội ba, ta
áp dụng phương pháp đổi biến, đưa về tọa độ trụ hoặc cầu để tính
- Trong bài tập này, mặt S bây giờ vẫn chưa kín nên ta cần thêm vào các mặt thích hợp để mặt S trở thành kín Cụ thể trong bài này ta sẽ thêm vào mặt z=0 vào để tính, sau đó trừ đi phần mặt phần thêm vào
- Vẽ pháp véc tơ, ta nhập tọa độ điểm M0(x0,y0), xác định tọa độ và vẽ pháp véc tơ ⃗n
tại điểm M0 Với F=x2+y2+z2-4, ⃗n=(∂ F
∂ x ; ∂ F ∂ y ; ∂ F ∂ z)
3 Các lệnh cần dùng trong Matlab:
- diff : dùng để tính đạo hàm
- Int: tính tích phân
- Surf, plot3: vẽ mặt bậc 2 và pháp véc tơ của mặt tại M0
4 Code chương trình:
function n3b7
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=sqrt(4-x0^2-y0^2);
syms x y z real
syms t phi p real
P=y+z;
Q=x-z;
R=z+1;
Trang 9n=[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); V1=-4*pi;
V=V-V1;
V=double(V);
disp(['tich phan can tinh la V= ' num2str(V) ])
[x, y,~] = ellipsoid(0,0,0,2,2,2,100);
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
x=x0;y=y0;z=z0;
n=eval(n);
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
axis([-3 3 -3 3 -1 3])
disp('duong mau do la vector phap tuyen :)')
end
5 Kết quả
- Command Windows
Nhap lan luot cac toa do cua M0 thuoc mat cong x^2+y^2+z^2=4:
x0=1
y0=1
tich phan can tinh la V=29.3215
duong mau do la vector phap tuyen
- Figure
Trang 10Câu 4:
1 Đề bài:
Tìm tổng riêng Sn và tổng S (nếu có) của chuỗi số sau, đưa ra kết luận về sự Hội tụ hay Phân kỳ của chuỗi: ∑
n=0
∞
arctan 1
n2+n+1
2 Cơ sở lý thuyết:
- {Sn}=∑
n=0
∞
a n được gọi là chuỗi số
- Sn=a1+a2+a3+…+an , n Є N được gọi là tổng riêng phần với an là số hạng tổng quát
- Khi {Sn} có giới hạn hữu hạn khi n→∞ thì ta gọi ∑
n=0
∞
a n là chuỗi hội tụ, ngược lại là phân kì
- ∑
n=0
∞
a n=n→ ∞limS n được gọi là tổng chuỗi
3 Các lệnh cần dùng trong Matlab
- symsum: dùng tính tổng chuỗi số
4 Code chương trình
function n3bc
syms n
f=atan(1/(n^2+n+1));
Trang 11disp(['Tong rieng phan Sn = ' char(Sn)])
S=symsum(f,0,inf);
S=double(S);
if (S==inf || S==-inf || S == NaN)
disp('Chuoi phan ki, khong ton tai tong.')
else
disp(['Chuoi hoi tu va co tong S = ' num2str(S)])
end
end
5 Kết quả
- Command Windows
Tong rieng phan Sn = sum(atan(1/(n^2+n+1)),n = 0 n)
Chuoi hoi tu va co tong S = 1.5708
II Tài liệu tham khảo
1 Đỗ Công Khanh, Toán cao cấp Giải tích hàm nhiều biến-Phương trình vi phân, NXB Đại học Quốc gia TP Hồ Chí Minh