北邮Matlab选修 Week 3 涂料计算
问题描述
如图所示的磁盘,半径为R
,高度为h
,它有8
个圆柱形的孔,每个孔的半径为r
,这可能是一个需要刷漆的机器零件,刷完后再与其他零件进行组装。在设计这台机器的过程中,我们可能需要知道这个磁盘的重量和它所需的油漆量。机器的重量和油漆量是各个零件的总和。由于磁盘的重量与它的体积成正比,油漆量与它的“润湿面积”成正比,所以我们需要知道这个磁盘的体积和面积。
请编写一个函数,用于求该磁盘的体积和面积,并用一个实例对编写的函数进行测试。
数学模型
体积计算
-
原始磁盘体积
磁盘是一个圆柱体,其体积$V_{disk}$可以通过以下公式计算:
$$ V_{disk}=\pi R^2h $$
其中,$R$是磁盘的半径,$h$是磁盘的高度。
-
孔的体积
每个孔也是一个圆柱体,其体积$V_{hole}$可以通过以下公式计算:
$$ V_{hole}=\pi r^2 h $$
其中:$r$是孔的半径。
-
实际磁盘体积
实际磁盘体积 $V_{actual}$ 是原始体积减去总孔体积:
$$ V_{actual}=V_{disk}-totalholes \times V_{hole} $$
润湿面积计算
-
原始磁盘表面积
磁盘的表面积包括两个底面和一个侧面,其表面积 $S_{disk}$ 可以通过以下公式计算:
$$ S_{disk}=2\pi R^2 + 2\pi Rh $$
其中,$R$ 是磁盘的半径,$h$是磁盘的高度。
-
孔的侧面积
每个孔的侧面积$S_{holeside}$可以通过以下公式计算:
$$ S_{holeside} = 2 \pi r h $$
这里不考虑孔的底面,因为它们位于磁盘内部,不会增加润湿面积,其中,$r$是孔的半径。
-
孔的底面和顶面面积
每个孔的侧面积$S_{topbuttom}$可以通过以下公式计算:
$$ S_{topbuttom} = 2 \pi r^2 $$
-
实际磁盘体积
最后,实际润湿面积$S_{actual}$是原始表面积加上总孔侧面积减去总孔底面和顶面面积:
$$ S_{actual}=S_{disk}+totalholes \times (S_{holeside} - S_{topbuttom}) $$
程序设计
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
function [volume, surface_area] = disk_volume_area(R, h, r)
% R - 磁盘的半径
% h - 磁盘的高度
% r - 每个孔的半径
% n_holes - 孔的数量
n_holes=8;
% 计算原始磁盘的体积
original_volume = pi * R^2 * h;
% 计算原始磁盘的表面积(包括两个底面和一个侧面)
original_surface_area = 2 * pi * R^2 + 2 * pi * R * h;
% 计算每个孔的体积
hole_volume = pi * r^2 * h;
% 计算每个孔的侧面积(不包括底面,因为底面在磁盘内部,不参与润湿)
hole_side_area = 2 * pi * r * h;
%计算每个孔的顶、底面积
hole_top_buttom_area = 2 * pi * r * r;
% 计算所有孔的总体积
total_hole_volume = n_holes * hole_volume;
% 计算所有孔的顶、底面积总和
total_hole_side_area = n_holes * hole_side_area;
% 计算所有孔的侧面积总和
total_hole_top_buttom_area = n_holes * hole_top_buttom_area;
% 计算磁盘的实际体积(减去孔的体积)
volume = original_volume - total_hole_volume;
% 计算磁盘的实际润湿面积
surface_area = original_surface_area + total_hole_side_area - total_hole_top_buttom_area;
end
|
计算结果
1
2
3
4
5
6
7
8
|
>> R=10;
>> h=5;
>> r=2;
>> [volume, surface_area] = disk_volume_area(R, h, r);
>> fprintf('磁盘的体积为: %f\n', volume);
磁盘的体积为: 1068.141502
>> fprintf('磁盘的润湿面积为: %f\n', surface_area);
磁盘的润湿面积为: 1244.070691
|