作者:Li-zHihuAn | 来源:互联网 | 2024-12-16 14:01
作为一名在读大学生,本文分享了我对《工程与科学中的Matlab应用》第三章习题的个人解决方案。欢迎通过私信或评论进行交流和讨论,但不接受任何形式的权威指导。文中提供了详细的代码实现,旨在促进学习和共同进步。
作为一名在读大学生,本文分享的是我个人对《工程与科学中的Matlab应用》第三章习题的理解和解决方法。欢迎通过私信或评论进行交流和讨论,但不接受任何形式的权威指导。为了便于阅读和学习,本文仅提供代码实现,而不展示运行结果。随着学习的深入,部分内容可能会有所调整,敬请期待更新。
3.1
function V = Volume(R, d)
% Volume(R, d) 计算给定半径R和高度d的圆柱形容器内液体的体积
% d 为液体高度,R 为圆柱体的半径
if d <= R
V = 1/3 * pi * R^2 * d;
elseif d > 3 * R
error('水位过高');
else
V = 1/3 * pi * R^2 * R + pi * R^2 * (d - R);
end
3.2
function F = futureworth(P, i)
% futureworth 计算初始金额P在特定利率i下的未来价值
% P 为本金,i 为年利率
n = 1:10;
P = input('请输入本金: ');
i = input('请输入年利率: ');
F = P * (1 + i).^n;
z = [n; F];
fprintf(' 年数 未来价值\n');
fprintf('%5d %10.3f\n', z);
end
3.3
function A = loanPayment(P, i)
% loanPayment 根据贷款金额P和年利率i计算年度还款额
n = 1:5;
P = input('请输入贷款金额: ');
i = input('请输入年利率: ');
A = P * (i * (1 + i).^n) ./ ((1 + i).^n - 1);
z = [n; A];
fprintf(' 年数 还款额\n');
fprintf('%5d %8.3e\n', z);
end
3.4
function [] = averageTemp(Tmean, Tpeak)
% averageTemp 计算年平均温度和峰值温度下某段时间内的温度变化
% Tmean 为年平均温度,Tpeak 为峰值温度
t = 180:242;
w = 0.017;
Tmean = input('请输入年平均温度: ');
Tpeak = input('请输入峰值温度: ');
T = Tmean + (Tpeak - Tmean) .* cos(w * (t - 205));
end
3.5
function [] = sinApproximation(x)
% sinApproximation 使用泰勒级数近似计算sin(0.9)
Q = sin(0.9);
V1 = x;
wucha1 = (Q - V1) / Q;
percentage1 = sprintf('%2.5f%%', abs(wucha1 * 100));
yijie = sprintf('%2.5f', V1);
V2 = x - x^3 / factorial(3);
wucha2 = (Q - V2) / Q;
percentage2 = sprintf('%2.5f%%', abs(wucha2 * 100));
erjie = sprintf('%2.5f', V2);
V3 = V2 + x^5 / factorial(5);
wucha3 = (Q - V3) / Q;
percentage3 = sprintf('%2.5f%%', abs(wucha3 * 100));
sanjie = sprintf('%2.5f', V3);
V4 = V3 - x^7 / factorial(7);
wucha4 = (Q - V4) / Q;
percentage4 = sprintf('%2.5f%%', abs(wucha4 * 100));
sijie = sprintf('%2.5f', V4);
V5 = V4 + x^9 / factorial(9);
wucha5 = (Q - V5) / Q;
percentage5 = sprintf('%2.8f%%', abs(wucha5 * 100));
wujie = sprintf('%2.5f', V5);
V6 = V5 - x^11 / factorial(11);
wucha6 = (Q - V6) / Q;
percentage6 = sprintf('%2.9f%%', abs(wucha6 * 100));
liujie = sprintf('%2.5f', V6);
V7 = V6 + x^13 / factorial(13);
wucha7 = (Q - V7) / Q;
percentage7 = sprintf('%2.15f%%', abs(wucha7 * 100));
qijie = sprintf('%2.5f', V7);
V8 = V7 - x^15 / factorial(15);
wucha8 = (Q - V8) / Q;
percentage8 = sprintf('%2.16f%%', abs(wucha8 * 100));
bajiejie = sprintf('%2.5f', V8);
end
3.6
(此处省略图片)
3.7
function [] = coordinateConversion()
% coordinateConversion 将直角坐标系下的点转换为极坐标系下的表示
x = [2; 2; 0; -3; -2; -1; 0; 0; 2];
y = [0; 1; 3; 1; 0; -2; 0; -2; 2];
r = sqrt(x.^2 + y.^2);
theta = atan2(y, x);
q = [x, y, r, theta];
fprintf(' x y r theta\n');
fprintf('%5d %5d %8.5f %8.6f\n', q);
end
3.8
function lettergrade(score)
% lettergrade 根据分数score返回相应的字母等级
if score >= 90
disp('A');
elseif score >= 80
disp('B');
elseif score >= 70
disp('C');
elseif score >= 60
disp('D');
else
disp('F');
end
end
3.9
function speed()
% speed 计算不同条件下的流速
n = [0.036, 0.020, 0.015, 0.030, 0.022];
S = [0.0001, 0.0002, 0.0012, 0.0007, 0.0003];
B = [10, 8, 20, 25, 15];
H = [2, 1, 1.5, 3, 2.6];
U = (sqrt(S) ./ n) .* ((B .* H) ./ (B + 2 * H)).^(2/3);
fprintf('n S B H U\n');
fprintf('%4.3f %5.4f %2d %2.1f %5.4f\n', [n; S; B; H; U]);
end
3.10
function displace()
% displace 计算并绘制给定区间的位移曲线
x = 0:9;
y = ((57/6)*x.^3 - 238.25*x) .* (x == 0) + ...
((-5/6)*x.^4 + (57/6)*x.^3 - 238.25*x) .* (x > 0 & x <= 5) + ...
((-5/6)*(x.^4 - (x - 5).^5) + (57/6)*x.^3 - 238.25*x) .* (x > 5 & x <= 7) + ...
((-5/6)*(x.^4 - (x - 5).^5) + 75*(x - 7).^2 + (57/6)*x.^3 - 238.25*x) .* (x > 7 & x <= 8);
plot(x, y);
end