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

!题目给出的公式是错的!少了一项.

题目要求为:在某温度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