你好同学,两道题可以这样做,仅供参考
clc;clear
% 题目1
% 求体积
z = @(x,y) (x.*y>(1-x-y)).*(1-x-y) +...
(x.*y>(1-x-y)).*(x.*y);
x = 0:0.0001:1;
y = x;
[X,Y] = meshgrid(x,y);
q = X<1-Y;%划定区域
Z = z(X,Y);
Z(~q)=0;
I = trapz(y,trapz(x,Z,2)); %积分值
% 求最大值处
maxZ = max(Z(:));
fprintf('体积=%.6f,最大z=%.6f\n',I,maxZ)
% 题目2
% 求最短距离
syms x x0 y0 real
y = 1/x;
x0 = 2;
y0 = 1;
d = sqrt((x-x0)^2+(y-y0)^2);
xsol = solve(diff(d,x)==0,x);
xsol = xsol(eval(xsol)>0) ;% 负值舍去【根据图像】
dmin = eval(subs(d,x,xsol));
fprintf('最短距离=%.6f\n',dmin)
fprintf('或者表达为最短距离=\n')
disp(subs(d,x,xsol))
输出结果
体积=0.026856,最大z=0.343103
最短距离=0.483052
或者表达为最短距离=
((1/((2*5^(1/2) + 3)^(1/2)/2 + 1/2) - 1)^2 + ((2*5^(1/2) + 3)^(1/2)/2 - 3/2)^2)^(1/2)