1、(2)测量误差:建模时,实验、量测等数据误差称为观测误差。(3)方法误差(截断误差):由于计算机本身的特性,要求算法必须在有限步内完成,这就要求把数学模型用数值分析方法导出一个计算公式来近似,由此而产生的误差称为方法误差。(4)舍入误差:由于计算机字长有限,参加运算的数据只能截取有限位,由此而产生的误差称为舍入误差。一般来说,绝对误差的大小不能充分说明近似值的精确程度,一般用相对误差衡量近似值的准确程度。,为精确值,为的一个近似数。3. (15分)在298K 下,化学反应 2OF2=O2+2F2 的平衡常数为0.410 atm,如在298K 下将OF2 通入容器,当t=0 时为1 atm,问最
2、后总压是多少?取计算精度为10-3。首先写出求解问题的数学方程式。假设气体是理想气体,由反应的化学计量式可知, 设氧的分压为,平衡时有 。 平衡时,有整理得 函数关系为 非线性方程求根问题,如何确定求解区间?由计算得因此,有根区间为,用求单根的二分法计算,求解得氧气分压。编写二分法的MATLAB程序:bisect.mfunction xstar,index,it=bisect(fun,a,b,ep)%fun为需要求根的函数;%a,b为初始区间的端点;%ep为精度,缺省值为1e-5%当(b-a)/2ep时,算法终止;%xstar为当迭代成功时,输出方程的根,%当迭代失败时,输出两端点的函数值;%
3、index为指标变量,%index=1时,表明迭代成功,%index=0时,表明初始区间不是有根区间;%it为迭代次数.if nargin xstar=fa,fb;index=0;it=0; returnk=0;while abs(b-a)/2=ep x=(a+b)/2;fx=feval(fun,x); if fx*fa b=x;fb=fx; else a=x;fa=fx; end k=k+1;xstar=(a+b)/2;index=1;it=k;编写本题的求根函数,函数名为fun1.m.function f=fun1(x)f=4*x3-1.640*x2+1.64*x-0.410;调用二分法函
4、数bisect.m求方程的根:xstar,index,it=bisect(fun1,0.2,0.3,0.0005)得到方程的根:xstar = 0.2746index = 1it = 7运行结果表明二分法迭代成功,即达到精度要求,共迭代计算7次。 最后总压为 4. (10分)实验测得某物质在 20下,其水溶液浓度 c(重量)与粘度(Pas)的关系如下表。试用拉格朗日5次插值计算粘度在 2.0103 和 5.5103 时所对应的浓度。要求精确到小数点后第 3 位。由题意知,编写拉格朗日插值的MATLAB程序:Lagrange.mfunction yi = Lagrange( x,y,xi )%L
5、agrange差值多项式,其中,%x为向量,全部的插值结点;%y为向量,插值节点处的函数值;%xi为标量或向量,被估计函数的自变量;%yi为xi处的函数估计值。n=length(x);m=length(y);%插值点与它的函数值应有相同个数;if n=m error(The lengths of X and Y must be equal!); return;yi=zeros(size(xi);for k=1:n w=ones(size(xi); for j=1:k-1 k+1:n %输入的插值节点必须互异 if abs(x(k)-x(j)eps error(the DATA is error
6、! reture; w=(xi-x(j)/(x(k)-x(j).*wyi=yi+w*y(k); 编写求解本题的MATLAB程序:yaru4.mx=1.005*10-3 1.776*10-3 2.480*10-3 3.652*10-3 4.621*10-3 5.921*10-3;y=0 20 30 40 45 50;xi=0:0.0001:0.0069;yi1=Lagrange(x,y,2.0*10-3)yi2=Lagrange(x,y,5.5*10-3)yi=Lagrange(x,y,xi);plot(x,y,o,xi,yi)在MATLAB命令行窗口输入yaru4即可得到运行结果:(因运算结果
7、数据量较大,只显示部分结果,截图如下)yi1 = 23.7414yi2 = 48.0033拟合函数图像如下:即在粘度为时,浓度为,粘度为时,浓度为。5. (20分)实验测得不同压力下纯水的沸点,试用线性最小二乘法求取四参数蒸汽压方程 lnP=A+B/T+CT+DlnT中的四个参数,数据如下。编写求解本题的MATLAB程序:ln5.mP=1:8T=4.00 6.40 8.00 8.80 9.22 9.55 9.70 9.86lnP=log(P);T_1=1./T;lnT=log(T);T_=ones(length(P),1),T_1,T,lnTregress(lnP,T_)在命令行窗口运行该文件
8、,运算结果如下:P = 2 3 4 5 6 8T = 4.0000 6.4000 8.0000 8.8000 9.2200 9.5500 9.7000 9.8600T_ = 1.0000 0.2500 4.0000 1.3863 1.0000 0.1563 6.4000 1.8563 1.0000 0.1250 8.0000 2.0794 1.0000 0.1136 8.8000 2.1748 1.0000 0.1085 9.2200 2.2214 1.0000 0.1047 9.5500 2.2565 1.0000 0.1031 9.7000 2.2721 1.0000 0.1014 9.8
9、600 2.2885ans = 81.0274 -134.8623 3.9293 -45.4662即各个参数分别为:6.(30分)对于双组分简单精馏塔,其理论板数可用Lewis法计算。精馏段和提馏段的理论板数N、M分别为:现有氯仿苯二元物系,其汽液平衡数据为:x0.1780.2750.3720.4560.6500.844y0.2430.3820.5180.6160.7950.931若xf=0.4,xd=0.9,xw=0.15,R=5,R=4,试用Matlab求出所需理论板数。首先,根据,x和y的数据拟合它们之间的函数关系,拟合的一次和二次函数如下图所示,二次函数的拟合效果比较好(也可以在拟合次
10、数更高点,只需把代码里的2换成需要拟合的次数即可,本题就用二次拟合来做,书本中一般y与x的关系都认为是直线,这里用二次为了得到较准确的函数关系。) 一次和二次拟合图求出y与x的函数关系,代入精馏段和提馏段的理论板数N、M的公式中进行积分就能求出相应的N和M。lewis.mx=0.178 0.275 0.372 0.456 0.650 0.844;y=0.243 0.382 0.518 0.616 0.795 0.931;xf=0.4;xd=0.9;xw=0.15;R=5;R1=4;p=polyfit(x,y,2)xx=0.170:0.001:0.850;yy=polyval(p,xx);plo
11、t(xx,yy,x,y,*Y=poly2sym(p);syms xf1=1/(Y-x-(xd-Y)/R);f2=1/(Y-x-(Y-xw)/R1);M1=int(f2,xw,xf);M=vpa(M1)N1=int(f1,xf,xd);N=vpa(N1)运行结果如下:p = -0.7764 1.8238 -0.0571M =5.1761195414312404385321290726256N =4.6417310857310359981768241565291 即为: Q =-0.77642 x2 + 1.8238 x - 0.0571 由上可知,Q为y与x的函数关系式,精馏段和提馏段的理论板数N、M分别为:5和6。