简单的MATLAB题,急~~

来源:百度知道 编辑:UC知道 时间:2024/06/21 21:44:28
已知甲苯胺的饱和蒸汽压计算公式为
lgp=23.8296-3480.3/T-5.081 lgT
其中,p为压力,kPa;T为温度,K。试求甲苯胺的常压沸点。
(Matlab以10为底对数函数为log10,用二分法求解,沸点区间[300K,500K],要求误差小于0.05)

%如果100次找不到答案,就无解退出
flag=1;%标记正负号1标示初始,2标示负,3标示正
flagSide=1;%标记要修改哪一边,1标示初始化,2标示左边,3标示右边
res=0;%结果
left=300;
right=500;
我没有看明白你的表达式。下面代码中你表达式的T要用(left+right)/2代替
for i=100
%如果不满足精度,就当前正负符号比较
if abs((23.8296-3480.3/T-5.081 lgT )-lgp)>0.05
%符号不同,要赋值,然后修改flagSide
if ((23.8296-3480.3/T-5.081 lgT )-lgp>0 and flag==2) or ((23.8296-3480.3/T-5.081 lgT )-lgp<0 and flag<>2)
if flagSide==3
left=(right+left)/2;
flagSide=2;
else
right=(right+left)/2
flagSide=3;
end
%和上一次符号相同
else
if flagSide==2
left=(right+left)/2;
else
right=(right+left)/2;
end
%如果满足精度要求了,就赋值res,退出
else
res=(right+left)/2;
break
end