ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜ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 …..….... II- Cơ Sở Lý Thuyết: Công thức Stokes: Mặt S được đ
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜ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ÁO CÁO BÀI TẬP LỚN
MÔN: GIẢI TÍCH 2
ĐỀ TÀI SỐ: 4
GVHD: Hoàng Hải Hà
Lớp: KU1201 + KU1202
Nhóm: 4
Nhóm sinh viên thực hiện:
Tp.HCM, tháng 05 năm 2013
Trang 2Đề Tài Số 4 - Giải Tích 2
- -A- Bài Tập 1:
I - Yêu Cầu:
Dùng công thức Stokes tính tích phân đường loại 2 trong không gian : ( , , ) ( , , ) ( , , )
L
P x y z dx Q x y z dy R x y z dz
, L là giao tuyến của các mặt
a b c
a b c , hướng đi trên L là ngược chiều kim đồng hồ
nhìn từ phía z >0 Với P, Q, R, a, b, c nhập từ bàn phím.
II- Cơ Sở Lý Thuyết:
Công thức Stokes: Mặt S được định hướng, trơn từng khúc với biên là
chu tuyến Các hàm P, Q, R và các đạo hàm riêng cấp một liên tục trên miền mở chứa S Khi đó ta có:
∬
S
❑
(∂ R ∂ y−
∂Q
∂ z)dydz+( ∂ P
∂ z ¿
−∂ R
∂ x )dxdz +(
∂ Q
∂ x −
∂ P
∂ y)dxdy¿
=
L
P x y z dx Q x y z dy R x y z dz
Trong đó hướng của L lấy theo hướng dương tương ứng của S
Cách thực hiện:
1) Xác định giao tuyến L
2) Tính pháp vécto
3) Tính pháp vecto đơn vị
4) Chuyển tích phân cần tính về tích phân mặt loại 1
5) Tính tích phân đã chuyển trong tọa độ cực
III- Code:
syms x y z real
Trang 3P=input('Nhap P(x,y,z)= ');
Q=input('Nhap Q(x,y,z)= ');
R=input('Nhap R(x,y,z)= ');
a=input('Nhap a= ');
b=input('Nhap b= ');
c=input('Nhap c= ');
f=(x/a+y/b+z/c)-1;
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=((-x/a)+(-y/b)+1)*c;
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)])
IV- Ví Dụ:
Ví dụ1 : Dùng công thức Stokes tính tích phân
I=
L
❑
(x− y )dx + (2x-z)dy + ydz với L là giao tuyến của các mặt
a b c
a b c , hướng đi trên L là ngược chiều kim đồng
hồ nhìn từ từ phía z > 0
Kết quả:
>>Nhap P(x,y,z)= x-y
Nhap Q(x,y,z)= 2*x-z
Nhap R(x,y,z)= y
Nhap a= 1
Trang 4Nhap b= 1
Nhap c= 1
Tich phan can tinh la: I= 15.708
Ví dụ 2: Dùng công thức Stokes tính tích phân
I=
L
❑
¿ ¿ – y2)dx + (3y-z2)dy + (3z – x2)dz với L là giao tuyến của các mặt
a b c
a b c , hướng đi trên L là ngược chiều kim
đồng hồ nhìn từ từ phía z > 0
Kết quả:
>>Nhap P(x,y,z)= 3*x-y^2
Nhap Q(x,y,z)= 3*y-z^2
Nhap R(x,y,z)= 3*z-x^2
Nhap a= 2
Nhap b= 2
Nhap c= 2
Tich phan can tinh la: I= 12.5664
V- Kết Luận :
Đoạn code của nhóm có giải quyết được yêu cầu bài toán: Dùng công thức Stokes tính tích phân đường loại 2 trong không gian :
( , , ) ( , , ) ( , , )
L
P x y z dx Q x y z dy R x y z dz
, L là giao tuyến của các mặt
a b c
a b c , hướng đi trên L là ngược chiều kim đồng
hồ nhìn từ phía z >0 Với P, Q, R, a, b, c nhập từ bàn phím.
B- Bài Tập 2:
I - Yêu Cầu:
Input: Hàm f = f(x,y), điểm M(x0, y0) , cấp n
Output: Khai triển Taylor hàm z(x,y) tại điểm M đến cấp n
II- Cơ Sở Lý Thuyết:
Hàm f = f (x,y) có đạo hàm riêng đến cấp n+1 trong lân cận của điểm M0 = (x0,y0)
Công thức Taylor của f đến cấp n tại điểm M0 là :
Trang 5F(x,y) = f(x0 + ∆ x,y0 + ∆ y) = f(x0,y0) + ∑
k =1
n
(d k)f
k ! (x0,y0) + Rn(∆ x,∆y) Trong đó Rn(∆ x,∆ y) là phần dư cấp n
III- Code:
syms x y real
warning off
f=input( 'nhap ham f(x,y)= ' );
n=input( 'nhap so n= ' );
disp( 'nhap lan luoc toa do diem M0' )
x0=input( 'x0= ' );
y0=input( 'y0= ' );
t=subs(f,[x y],[x0 y0]);
for i=1:n
c=zeros(1,i);
c=sym(c);
a=f;b=f;
for j=1:i
a=diff(a, 'x' );
sa=subs(a,[x y],[x0 y0]);
A=sa*(x-x0)^i;
b=diff(b, 'y' );
sb=subs(b,[x y],[x0 y0]);
B=sb*(y-y0)^i;
if i-j > 0
c(1,j)=a;
end
for k=1:i-j;
c(1,j)=diff(c(1,j), 'y' );
end
d=chinhhop(i,j);
e=doithua(i);
sc=subs(d*c(1,j)/e,[x y],[x0 y0]);
C=sc*(x-x0)^j*(y-y0)^(i-j);
t=t+C;
end
t=t+A/e+B/e;
end
disp([ 'khai trien taylor cua ham f(x,y)= ' char(f) 'den cap ' num2str(n) ' la' ])
disp(char(t))
[x1,y1]=meshgrid(x0-1:.05:x0+1,y0-1:.05:y0+1);
[~,mau]=numden(f);
mau=sym(mau);
for i=1:length(x1)
for k=1:length(x1)
x=x1(i,k);
Trang 6y=y1(i,k);
if eval(mau)==0 || eval(exp(f))==0
x1(i,k)=NaN;
y1(i,k)=NaN;
end
end
end
f=char(f);f=strrep(f, '^' , '.^' );f=strrep(f, '*' , '.*' );
for i=1:length(x1)
for k=1:length(x1)
x=x1(i,k);
y=y1(i,k);
z(i,k)=eval(f);
end
end
[x1 y1 z]=khu(x1,y1,z);
set(surf(x1,y1,z), 'facecolor' , 'b' , 'edgecolor' , 'non' , 'faceal pha' ,.5)
hold on
t=char(t);t=strrep(t, '^' , '.^' );t=strrep(t, '*' , '.*' );
x=y1;y=y1;
t=eval(t);
[x1 y1 t]=khu(x1,y1,t);
set(surf(x1,y1,t), 'facecolor' , 'r' , 'edgecolor' , 'non' , 'faceal pha' ,.2)
hold off
rotate3d on
end
a=1;
for i=2:b
a=a*i;
end
end
a=doithua(i)/(doithua(j)*doithua(i-j));
end
khong ton tai cua ham f
for i=1:length(x)
for j=1:length(y)
if ~isreal(f(i,j))
f(i,j)=NaN;x(i,j)=NaN;y(i,j)=NaN;
end
end
end
end
Trang 7IV- Ví Dụ:
a Ví dụ 1 : Khai triển theo công thức Taylor ở lân cân điểm (1,1) của hàm
f(x,y) = yx đến bậc 2
Kết quả:
>> nhap ham f(x,y)= y^x
>> nhap so n= 2
>> nhap lan luoc toa do diem M0
x0= 1
y0= 1
khai trien taylor cua ham f(x,y)= y^xden cap 2 la
y + (x - 1)*(y - 1)
Trang 9b Ví dụ 2: Khai triển theo công thức Taylor ở lân cân điểm (2,-1) của
hàm f(x,y) = x3-5x2-xy+y2+10x+5y-4 đến bậc 2
Kết quả:
>>nhap ham f(x,y)= x^3-5*(x^2)-x*y+y^2+10*x+5*y-4
>>nhap so n= 2
>>nhap lan luoc toa do diem M0
x0= 2
y0= -1
khai trien taylor cua ham f(x,y)= x^3 - 5*x^2 - x*y + 10*x + y^2 + 5*y
- 4den cap 2 la3*x + y - (x - 2)*(y + 1) + (x - 2)^2 + (y + 1)^2 - 3
Trang 11V- Kết Luận:
Đoạn Code của nhóm có thể khai triển Taylor hàm f(x,y) tại điểm M(x0,y0) đến cấp n Cho ra kết quả sau khi khai triển taylor của hàm f(x,y) và vẽ đồ thị hàm f(x,y)
I - Yêu Cầu:
Input: Hàm f(x,y) đa thức bậc nhỏ hơn 4
Ouput: cực trị tự do của hàm f(x,y) ( không xét trường hợp ∆=0 )
II- Cơ Sở Lý Thuyết:
Cho hàm f(x,y) xác định trong lân cận điểm (x0,y0) Điểm (x0,y0) gọi là điểm cực đại (cực tiểu) của hàm f(x,y) nếu tồn tại ε > 0 sao cho f(x,y) ≤
f(x0,y0), f(x,y) ≥ f(x0,y0) với mọi (x,y) ∈ Bε(x,y)
Các bước thực hiện:
1) Tìm đạo hàm riêng của hàm f(x,y), cho đạo hàm riêng bằng 0 Tìm điểm dừng
2) Tính 3 đạo hàm riêng cấp 2 của f(x,y) f”xx , f’’yy , f’’xy
3) Xét tại từng điểm dừng Mi (xi ,yi), đặt:
A= f’’xx(Mi), B=f’’xy(Mi), C= f’’yy(Mi) ∆ = B2 – AC
Xét dấu ∆:
∆ > 0: hàm không đạt cực trị
∆ < 0: Nếu A>0 thì fct = f(Mi) Nếu A<0 thì fcđ = f(Mi)
∆ = 0 xét dấu ∆ f = f(x,y)-f(xi ,yi)
III- Code:
Trang 12function d4b3
clc
syms x y real
f=input('nhap ham f(x,y)= ');
[a b]=solve([char(diff(f,'x')) '=0'],[char(diff(f,'y')) '=0']); % giai dao ham cap 1 a=double(a);
b=double(b);
% tinh dao ham cap 2
A=diff(f,2,x);
B=diff(f,x);B=diff(B,y);
C=diff(f,2,y);
cd=zeros(0); ct=zeros(0);
zcd=zeros(0); zct=zeros(0);
n=size(a,1);i=1;
while i<=n;
x=a(i);y=b(i);
sA=eval(A);sB=eval(B);sC=eval(C); %tim A,B,C
delta=(sA*sC-sB^2); %tinh delta
delta=double(delta);
if delta > 0
if sA > 0 % A > 0 la cuc tieu
ct=[ct;a(i) b(i)]; zct=[zct;eval(f)];
i=i+1;
Trang 13elseif sA < 0 % A > 0 la cuc dai
cd=[cd;a(i) b(i)]; zcd=[zcd;eval(f)];
i=1+i;
else
a(i)=[];b(i)=[];
n=n-1;
end
else
a(i)=[];b(i)=[];
n=n-1;
end
end
if size([zcd;zct],1)>= 2 % ve hinh voi 2 cuc tri tro len
[x,y]=meshgrid(min(a)-abs(max( a )-min(a))/5:.1:max(a)+abs(max(a)-min(a))/5,min(b)-abs(max(b)-min(b))/5:.1:max(b)+abs(max(b)-min(b))/5); f=char(f);f=strrep(f,'^','.^');f=strrep(f,'*','.*');f=eval(f);
[x y f]=khu(x,y,f);
set(surf(x,y,f),'facecolor','b','edgecolor','non','facealpha',.3)
hold on
ctri(cd,ct,zcd,zct)
elseif size([zcd;zct],1)== 1 % ve hinh voi 1 cuc tri
[x,y]=meshgrid(a-2:.1:a+2,b-2:.1:b+2);
f=char(f);f=strrep(f,'^','.^');f=strrep(f,'*','.*');f=eval(f);
[x y f]=khu(x,y,f);
set(surf(x,y,f),'facecolor','b','edgecolor','non','facealpha',.3)
Trang 14hold on
ctri(cd,ct,zcd,zct)
else % khong co cuc tri
disp('f khong co cuc tri chat, con co cuc tri ko chat hay khong thi chiu :))' ) [x,y]=meshgrid(-2:.1:2);
f=char(f);f=strrep(f,'^','.^');f=strrep(f,'*','.*');f=eval(f);
[x y f]=khu(x,y,f);
set(surf(x,y,f),'facecolor','b','edgecolor','non','facealpha',.3)
end
rotate3d on
hold off
xlabel('truc x')
ylabel('truc y')
zlabel('truc z')
end
function ctri(cd,ct,zcd,zct) % chuong trinh ve cuc tri
cd=double(cd);zcd=double(zcd);
for i=1:size(zcd,1)
disp([' f co cuc dai chat: ' '(' num2str(cd(i,1)) ',' num2str(cd(i,2)) ',' num2str(zcd(i)) ')'])
[x,y]=meshgrid(cd(i,1)-0.2:.05:cd(i,1)+0.2,cd(i,2)-0.2:.05:cd(i,2)+0.2);
z=zcd(i)+x.*0+y.*0;
set(surf(x,y,z),'facecolor','r','edgecolor','non')
Trang 15text(cd(i,1),cd(i,2),zcd(i)+.1,['cuc dai (' num2str(cd(i,1)) ',' num2str(cd(i,2)) ',' num2str(zcd(i)) ')'])
end
ct=double(ct);zct=double(zct);
for i=1:size(zct,1)
disp([' f co cuc tieu chat: ' '(' num2str(ct(i,1)) ',' num2str(ct(i,2)) ',' num2str(zct(i)) ')'])
[x,y]=meshgrid(ct(i,1)-0.2:.05:ct(i,1)+0.2,ct(i,2)-0.2:.05:ct(i,2)+0.2);
z=zct(i)+x.*0+y.*0;
set(surf(x,y,z),'facecolor','r','edgecolor','non')
text(ct(i,1),ct(i,2),zct(i)-.1,['cuc tieu (' num2str(ct(i,1)) ',' num2str(ct(i,2)) ',' num2str(zct(i)) ')'])
end
end
function [x y f]=khu(x,y,f) % chuong trinh loai bo cac diem khong ton tai cua ham f
for i=1:length(x)
for j=1:length(y)
if ~isreal(f(i,j))
f(i,j)=NaN;x(i,j)=NaN;y(i,j)=NaN;
end
end
end
end
Trang 16IV- Ví Dụ:
Ví dụ 1: Tìm cực trị của hàm f(x,y) = x3 + y3 – 3xy
Kết quả:
>>nhap ham f(x,y)= x^3+y^3-3*x*y
f co cuc tieu chat: (1,1,-1)
Trang 17Ví dụ 2: Tìm cực trị hàm f(x,y) = x2 + y2.
Kết quả :
>>nhap ham f(x,y)= x^2+y^2
f co cuc tieu chat: (0,0,0)
V- Kết Luận :
Đoạn code của nhóm có thể tìm được cực trị tự do của hàm f(x,y), với f(x,y)
là đa thức bậc nhỏ hơn 4
Trang 18I - Yêu Cầu:
Input: Hàm f x y z( , , ).
Output: Tích phân bội ba
( , , )
V
f x y z dV
, V là vật thể giới hạn bởi:
x y z z x y Vẽ vật thể V.
II- Cơ Sở Lý Thuyết:
Ta có : Thể tích vật thể V =
( , , )
V
f x y z dV
Mặt phía dưới : z = √x2
+y2
Mặt phía trên : z1 = √4−x2−y2
Hình chiếu của V xuống mặt oxy : D : x2 + y2≤ 2
V=∬dxdy
√x2
+y2
√4−x2
−y2
f (x , y , z)dz
III- Code:
function d4b4
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=sqrt(x.^2 + y.^2);
z1=sqrt(4-(x.^2+y.^2));
set(surf(x,y,z),'facecolor','g','edgecolor','non','facealpha',.1)
hold on
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=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)])
Trang 19IV- Ví Dụ:
Ví dụ1: Cho f(x,y,z) = x2+y2+1
Tích phân bội ba
( , , )
V
f x y z dV
, V là vật thể giới hạn bởi:
x y z z x y Vẽ vật thể V
Kết quả :
>>nhap ham f(x,y,z)= x^2+y^2+1
tich phan can tinh la I= 2.9322
Ví dụ2:
Cho f(x,y,z) = x2+y2+z2+2x-4y
Trang 20Tích phân bội ba
( , , )
V
f x y z dV
, V là vật thể giới hạn bởi:
x y z z x y Vẽ vật thể V
Kết quả :
>>nhap ham f(x,y,z)= x^2+2*x+y^2-4*y+z^2
tich phan can tinh la I= 1.2566
V- Kết Luận :
Đoạn code của nhóm tính được tích phân bội ba
( , , )
V
f x y z dV
và vẽ vật thể V