求解一道MATLAB的问题,希望有详细的过程和步骤的文字说明

问题描述:

求解一道MATLAB的问题,希望有详细的过程和步骤的文字说明
已知甲苯胺的饱和蒸汽压计算公式为
lgp=23.8296-5.081*lgT
其中,p为压力,kPa;T为温度,K.试求甲苯胺的常压沸点.
(Matlab以10为底对数函数为log10,用二分法求解,沸点区间[300K,500K],要求误差小于0.05)

!题目给出的公式是错的!少了一项.
题目要求为:在某温度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