Viết đoạn code tìm cực trị hàm fx, y với vừa tìm.. Hàm fx,y lúc này được gọi là hàm mục tiêu, còn điều kiện φx,y = 0 được gọi là điều kiện ràng buộc.. Điều kiện có cực trị: Giả sử chúng
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KỸ THUẬT HÓA HỌC
_ _
BÁO CÁO BÀI TẬP LỚN MATLAB
GIẢI TÍCH 2
Chủ đề 4: Nhập từ bàn phím hàm đa thức bậc 2: z = f(x, y) và m Viết đoạn code tìm cực trị hàm f(x, y) với điều kiện x 2 + y 2 = m 2 Vẽ 2 mặt z = f(x, y),
x 2 + y 2 = m 2 và giao tuyến của 2 mặt cùng các điểm cực trị vừa tìm.
Tháng 5 năm 2017
Trang 2MỤC LỤC
Lời nói đầu 3
Yêu cầu 4
Phần cơ sở lý thuyết 4
I Định nghĩa cực trị có điều kiện 4
II Điều kiện có cực trị 4
Phần báo cáo 6
I Đoạn code 6
II Các ví dụ 11
Tài liệu tham khảo
Trang 3LỜI NÓI ĐẦU
Trong xã hội ngày nay
Trang 4A YÊU CẦU:
Chủ đề 4: Nhập từ bàn phím hàm đa thức bậc 2: z = f(x, y) và m Viết đoạn code tìm cực trị hàm f(x, y) với
vừa tìm.
B CƠ SỞ LÝ THUYẾT:
I Định nghĩa cực trị có điều kiện:
Hàm hai biến f(x,y) đạt cực đại có điều kiện tại điểm (x 0, y 0 ) với điều kiện φ(x,y) = 0, nếu như f(x,y)¿
f(x 0, y 0 ), với mọi (x,y) thỏa φ(x,y) = 0, nằm trong lân cận
của (x0,y0) Giá trị f(x 0, y 0 ) được gọi là giá trị cực đại có điều kiện Nếu như f(x,y)¿f(x 0, y 0 ), với mọi (x,y) thỏa
Trang 5φ(x,y) = 0, nằm trong lân cận của (x 0, y 0 ) thì f đạt cực tiểu có điều kiện tại (x 0, y 0 ) và giá trị f(x 0, y 0 ) được gọi là
giá trị cực tiểu có điều kiện Hàm f(x,y) lúc này được gọi
là hàm mục tiêu, còn điều kiện φ(x,y) = 0 được gọi là
điều kiện ràng buộc.
II Điều kiện có cực trị:
Giả sử chúng ta cần tìm cực trị của hàm z=f(x,y) thỏa điều kiện ϕ(x,y)=0 Điều này có nghĩa là chúng ta tìm cực trị của hàm f khi điểm (x,y) nằm trên đường cong ϕ(x,y)=0 Trên hình (3.4), cho chúng ta thấy một số đường đẳng trị f(x,y)=k
Như vậy:
Trang 6Để tìm cực đại (cực tiểu) của hàm f(x,y) thỏa điều kiện ϕ(x,y)=0 chúng ta tìm giá trị lớn nhất (nhỏ nhất) của
k sao cho đường đẳng trị f(x,y)=k cắt đường cong
ϕ(x,y)=0 Điều này xảy ra khi đường đẳng trị f(x,y)=k và đường cong ϕ(x,y)=0 cùng tiếp tuyến, vì nếu ngược lại
giá trị k có thể tăng lên (hoặc giảm xuống) nữa Điều này
có nghĩa là đường vuông góc với đường đẳng trị f(x,y)=k
và đường cong ϕ(x,y)=0 tại điểm cực trị (x 0 ,y 0 ) phải cùng phương với nhau Do đó, f(x 0 ,y 0 )= -. ϕ(x 0 ,y 0 ), ℝ
f’ x (x 0 ,y 0 )+ ϕ’ x (x 0 ,y 0 )=0
f’ y (x 0 ,y 0 )+ ϕ’ y (x 0 ,y 0 )=0
Trang 7 Nếu hàm số z=f(x,y) có cực trị có điều kiện tại điểm (x 0 , y 0 ) với điều kiện φ(x,y)=0 và φ(x 0 , y 0 ) ≠ 0 thì tồn tại số λ thỏa mãn hệ:
f x ’(x o , y o ) + λφ x ’(x o , y o ) = 0
f y ’(x o , y o ) + λφ y ’(x o , y o ) = 0
φ(x o , y o ) = 0
Trang 8 Cho hàm số z=f(x,y) có cực trị có điều kiện với điều kiện φ(x,y)=0 tại điiểm P(x o , y o ) Lập hàm Lagrange L(x,y,λ)=f(x,y) + λ.φ(x,y) Khi đó:
1 Nếu d 2 L(x o ,y o ,λ o ) > 0 thì P(x o ,y o ) là điểm cực tiểu có
điều kiện
2 Nếu d 2 L(x o ,y o ,λ o ) < 0 thì P(x o ,y o ) là điểm cực đại có
điều kiện
3 Nếu d 2 L(x o ,y o ,λ o ) không xác định dấu thì P(x o ,y o )
không là điểm cực trị
Trang 9B PHẦN BÁO CÁO:
I Đoạn code:
syms x y z;
disp('Ham bac hai co dang
a*x^2+b*y^2+c*x*y+d*x+e*y+f va dieu kien x^2+y^2=m^2');
a=input('Nhap a=');
b=input('Nhap b=');
c=input('Nhap c=');
d=input('Nhap d=');
e=input('Nhap e=');
f=input('Nhap f=');
m=input('Nhap m=');
Trang 10%Tim cuc tri co dieu kien
g=a*x^2+b*y^2+c*x*y+d*x+e*y+f;
ham=g+z*(x^2+y^2-m^2);
u=diff(ham,x);
v=diff(ham,y);
nghiem=solve(u==0,v==0,x^2+y^2==m^2);
for i=1:length(nghiem.x);
k(i)=nghiem.z(i);
n(i)=nghiem.x(i);
p(i)=nghiem.y(i);
A = 2*a+2*k(i);
C = 2*b+2*k(i);
D = 2*a+2*k(i)-c*n(i)/p(i)
+(2*b+2*k(i))*n(i)^2/p(i)^2;
Trang 11hold on
if p(i)~= 0 && n(i) ~= 0;
if D > 0 ;
disp('Ham dat cuc tieu tai')
x=n(i)
y=p(i)
disp('Gia tri cuc tieu')
fct=subs(subs(g,x),y)
plot3(x,y,fct,'+r') %Danh dau diem cuc tieu
disp('Ham dat cuc dai tai')
x=n(i)
y=p(i)
Trang 12disp('Gia tri cuc dai')
fcd=subs(subs(g,x),y)
plot3(x,y,fcd,'+r') %Danh dau diem cuc dai
else disp('Ham khong co cuc tri');
if n(i) == 0 && p(i)~=0;
if A > 0 ;
disp('Ham dat cuc tieu tai')
x=n(i)
y=p(i)
disp('Gia tri cuc tieu')
fct=subs(subs(g,x),y)
plot3(x,y,fct,'+r')
Trang 13elseif A < 0 ;
disp('Ham dat cuc dai tai')
x=n(i)
y=p(i)
disp('Gia tri cuc dai')
fcd=subs(subs(g,x),y)
plot3(x,y,fcd,'+r')
else disp('Ham khong co cuc tri');
end
end
if p(i)== 0 && n(i)~=0;
if C > 0 ;
disp('Ham dat cuc tieu tai')
x=n(i)
Trang 14disp('Gia tri cuc tieu')
fct=subs(subs(g,x),y)
plot3(x,y,fct,'+r')
disp('Ham dat cuc dai tai')
x=n(i)
y=p(i)
disp('Gia tri cuc dai')
fcd=subs(subs(g,x),y)
plot3(x,y,fcd,'+r')
else disp('Ham khong co cuc tri');
end
end
Trang 15rotate3d on
hold on
grid on
xlabel('Truc Ox')
ylabel('Truc Oy')
zlabel('Truc Oz')
%Ve mat x^2+y^2=m^2
x=linspace(-m,m,100);
z=linspace(-m*50,m*50,100);
[X Z]=meshgrid(x,z);
Y1=-sqrt(m^2-X.^2);
Y2=sqrt(m^2-X.^2);
surf(X,Y1,Z,'Facecolor','b','Edgecolor'
Trang 16surf(X,Y2,Z,'Facecolor','b','Edgecolor' ,'non','Facealpha',.3)
%Ve mat a*x^2+b*y^2+c*x*y+d*x+e*y+f
y=linspace(-m-.5,m+.5,100);
x=linspace(-m-.5,m+.5,100);
[X Y]=meshgrid(x,y);
Z=X.^2*a+Y.^2*b+X.*Y.*c+X.*d+Y.*e+f;
surf(X,Y,Z,'Facecolor','y','Edgecolor' ,'non','Facealpha',.5)
%Ve giao tuyen
phi=linspace(0,2*pi,100);
X=m*cos(phi);
Y=m*sin(phi);
Trang 17Z=X.^2*a+Y.^2*b+X.*Y.*c+X.*d+Y.*e+f; plot3(X,Y,Z,'c')
Trang 18II Các ví dụ:
Trang 191 Ví dụ 1: