!题目给出的公式是错的!少了一项.
题目要求为:在某温度T(即常压沸点)时,P为101.325kPa,要求T精确到0.05.二分法:T的第一次取值为(T1+T2)/2,即(300+500)/2,判断计算所得P是大于101.325kPa(此时需要将T2更新为400K,T1仍为300K),反之若P小于设定值则将T1更新为新值.
以下为程序:
P0 = 101.325;
T1 = 300;
T2 = 500;
while abs(T2-T1)>0.05
T = (T1+T2)/2
P = 10^(23.8296-3480.3/T-5.081*log10(T));
if P>P0
T2 = T; % update new upper limit
else
T1 = T; % update new lower limit
end
end
历次T输出结果为
T =
400
T =
450
T =
425
T =
412.5000
T =
406.2500
T =
403.1250
T =
404.6875
T =
405.4688
T =
405.8594
T =
406.0547
T =
406.1523
T =
406.1035