ĐẠ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
ĐỀ TÀI SỐ: 10
GVHD: Đặng Văn Vinh
Khoa:
Cơ Khí
Lớp :
CK12CK04+05
Nhóm: 10
Nhóm sinh viên thực hiện:
Họ và tên
Lê Tâm Dương
Lê Thanh Đảm
Cao Tấn Đạt
Mai Hoàng Giang (NT)
Lê Trung Hiếu
MSSV
21200641
21200667
21200689
21200871
21201087
Tp. HCM, tháng 5_năm_2013
f ( x, y )
M ( x0 , y0 )
1. Tìm các đạo hàm riêng của hàm
tại
. Trình bày ý nghĩa
hình học của các đạo hàm riêng và vẽ đồ thị minh họa.
- Cơ sở lý thuyết: khi đạo hàm theo biến nào thì biến còn lại ta xem là hằng số.
- Ý nghĩa đạo hàm riêng: là hệ số góc của các tiếp tuyến đối với mặt cong tại điểm
M ( x0 , y0 )
, lần lượt nằm trong các mặt phẳng x=x0 và y=y0 .
Nội dung code:
function cau1
syms x y real
f=input('nhap ham f(x,y)= ');
disp('nhap lan luot cac toa do cua M0:')
x0=input('x0= ');
y0=input('y0= ');
f=eval(f); %thay u(x,y) vao f(u)
c=subs(f,[x y],[x0 y0]); %tinh f tai M0
c=double(c);
%tinh dao ham
x=x0;y=y0;
fx=diff(f,'x');a=eval(fx);
fy=diff(f,'y');b=eval(fy);
%xuat f'x va f'y
disp(['f`x= ' num2str(a)])
disp(['f`y= ' num2str(b)])
%ve do thi
[x,y]=meshgrid(x0-2:.1:x0+2,y0-2:.1:y0+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)
hold on
t=linspace(-2,2,20);
x=x0+t;
y=y0+0*t;
z=c+a*t;
plot3(x,y,z,'r','linewidth',2)
x=x0+0*t;
y=y0+t;
z=c+b*t;
plot3(x,y,z,'r','linewidth',2)
text(x0,y0,c+.2,['M0 (' num2str(x0) ',' num2str(y0) ','
num2str(a) ')'])
hold off
rotate3d on
end
function [x y f]=khu(x,y,f) % chuong trinh loai bo cac diem khong
ton tai cua ham f
f=double(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
-
Kết quả chạy thử:
nhap ham f(x,y)= x^2+y
nhap lan luot cac toa do cua M0:
x0= 1
y0= 2
f`x= 2
f`y= 1
-
Đồ thị:
2
f ( x, y , z )
x2 y
z2
+
+
< R2
a2 b2
c2
2. Tìm cực trị tự do hàm
trong hình cầu
. ( Không xét
2
tại các điểm dừng mà tại đó dạng toàn phương d f nửa xác định).
- Cơ sở lý thuyết: Lập hàm Lagrange, lập ma trận giải tìm nghiệm
- Code chương trình:
clear all
clc
syms x y z
f = input('Nhap ham f(x,y,z) = ');
a = input('a = ');
b = input('b = ');
c = input('c = ');
R = input('R = ');
check = x^2/a^2 + y^2/b^2 + z^2/c^2 - R^2;
fx = diff(f,x);
fy = diff(f,y);
fz = diff(f,z);
s = solve(1i*fx,1i*fy,1i*fz);
ctieu = [];
cdai = [];
if ~isempty(s)
A = diff(fx,x);
B = diff(fy,y);
C = diff(fz,z);
D = diff(fx,y);
E = diff(fy,z);
F = diff(fz,x);
G3 = [A D F; D B E; F E C];
G2 = [A D; D B];
H3 = det(G3);
H2 = det(G2);
for i=1:size(s.x)
if (isreal(s.x(i))) && (isreal(s.y(i))) && (isreal(s.z(i)))
x = s.x(i); y = s.y(i); z = s.z(i);
if (double(subs(H2))>0)
if double(subs(check))<0
if (double(subs(A))>0) && (double(subs(H3))>0)
ctieu = [ctieu; [x y z]];
end
if (double(subs(A))<0) && (double(subs(H3))<0)
cdai = [cdai; [x y z]];
end
end
end
end
end
end
if isempty([cdai;ctieu])
disp('Khong co cuc tri');
else
if ~isempty(cdai)
disp('Cuc dai la '); disp(cdai);
end
if ~isempty(ctieu)
disp('Cuc tieu la ');disp(ctieu);
end
end
Kết quả chạy thử:
Nhap ham f(x,y,z) = x^2+y^2+z^2-1
a=1
b=1
c=1
R=2
Cuc tieu la
[ 0, 0, 0]
-
Nhap ham f(x,y,z) = x*y+y*z
a=1
b=2
c=3
R=4
Khong co cuc tri
∫ P ( x, y ) dx + Q ( x, y ) dy
3. Tính tích phân
( 0,0 )
C
,trong đó
( C)
là đường đi nối từ điểm
( 1,1)
đến điểm
theo các đường đi sau:
a. Đoạn thẳng.
x2 + y 2 = 2 y
, lấy ngược chiều kim đồng hồ.
Cơ sở lý thuyết: tham số hóa đường cong rồi đưa về tích phân thường để giải
Đoạn code chương trình:
b.
-
clc
syms x y m n real
p=input('Nhap ham P(x,y)= ');
q=input('Nhap ham Q(x,y)= ');
m=int(subs(p,x,y)+subs(q,x,y),y,0,1);
n=int( subs(p,x,sqrt(2*y-y^2))+subs(q,x,sqrt(2*y-y^2)),y,0,1);
disp('Gia tri tich phan tinh theo doan thang noi 2 diem (0,0) va
(1,1) la: ');
disp(m)
disp ('Gia tri tich phan tinh theo duong cong x^2+y^2=2y la: ');
disp(n)
-
Kết quả chạy thử:
Nhap ham P(x,y)= x*y
Nhap ham Q(x,y)= x^2+y^2
Gia tri tich phan tinh theo doan thang noi 2 diem (0,0) va (1,1) la:
1
Gia tri tich phan tinh theo duong cong x^2+y^2=2y la:
2/3 - (3*pi)/4
-
Hạn chế của chương trình: Thuật giải chưa được tốt nên chương trình xử lý chậm
khi nhập các hàm phức tạp.
I = ∫∫ f ( x, y )dxdy ,
S
4. Tính
với S là phần mặt z=x 2+y2 giới hạn bởi mặt x+z=2
lấy phía dưới theo hướng dương trục Oz. Vẽ mặt S và pháp vectơ với S tại
M(1,0,1).
- Cơ sở lý thuyết: theo phương pháp giải tích phân mặt loại 2
Đoạn code chương trình:
clear all
clc
syms x y r phi
f = input('Nhap ham f(x,y) = ');
x = -.5 + r*cos(phi);
y = r*sin(phi);
f = subs(f);
I = int(f*r,r,0,3/2);
I = int(I,phi,0,2*pi);
disp('Tich phan can tinh');
disp(double(I));
%Ve hinh
[r phi] = meshgrid(0:0.1:3/2,0:pi/20:2*pi);
x = -.5 + r.*cos(phi);
y = r.*sin(phi);
z = x.^2 + y.^2;
surf(x,y,z,'FaceColor','b'); hold on
surf(x,y,2-x,'FaceColor','y','FaceAlpha',.5,'EdgeColor','none');
%Ve vector phap tuyen
syms x y z
F = x^2 + y^2 -z;
g = [diff(F,x) diff(F,y) diff(F,z)];
x = 1; y = 0; z = 1;
g = subs(g);
n = -g/norm(g);
quiver3(1,0,1,n(1),n(2),n(3),'LineWidth',1,'Color','y');
axis vis3d equal
-
Kết quả chạy thử:
Nhap ham f(x,y) = x*y+y^2
Tich phan can tinh
3.9761
Vẽ hình và vecto pháp tuyến tại điểm (1,0,1)