Matlab 程序(二)
使用数值积分方法编写一个函数计算椭球的体积和表面积,输入参数为椭球的三个轴。
MATLAB 代码
function [S,V]=cal_V_S(a,b,c)
fun1=@(A,B) a*b.*cos(A).*sqrt(sin(A).^2+(c/a.*cos(A).*cos(B)).^2+(c/b.*cos(A).*sin(B)).^2);
S=8*quad2d(fun1,0,pi/2,0,pi/2); % 0到pi/2进行积分,用对称性直接乘8
fun2=@(x,y,z)x-x+y-y+z-z+1;
xmin=0;ymin=0;zmin=0;
xmax=a;
ymax=@(x)sqrt((1-(x.^2)/(a.^2)).*b.^2);
zmax=@(x,y)sqrt((1-(x.^2)/(a.^2)-(y.^2)/(b.^2)).*c.^2);
V = 8*integral3(fun2,xmin,xmax,ymin,ymax,zmin,zmax);
fprintf('表面积为:%f\n',S);
fprintf('体积为:%f\n',V);
end