成 绩
中 国 矿 业 大 学
级 士研究生课程考试试卷
考试科目 化工数值方法
及Matlab应用
考试时间 2016.4.30 学生姓名 学 号 所在院系 化工学院 任课教师 秦志宏
中国矿业大学研究生院培养管理处印制
研硕15《化工数值方法及Matlab应用》试题
班级 姓名 成绩
1. (15分)数值计算方法的主要研究对象有哪些?其常用的基本算法主要包括哪三个方面?Matlab在解决化工数值计算问题方面有什么样的实用价值? 2. (10分)数值计算中误差为什么不可避免?用什么标准衡量近似值的准确程度?
解:数值计算中,一般只能得到近似解。误差的产生主要有以下几方面: (1)模型误差:用计算机解决科学计算问题首先要建立数学模型,是对实际问题的抽象、简化得到的,因而是近似的。我们把模型与实际问题之间出现的这种误差称为模型误差。
(2)测量误差:建模时,实验、量测等数据误差称为观测误差。
(3)方法误差(截断误差):由于计算机本身的特性,要求算法必须在有限步内完成,这就要求把数学模型用数值分析方法导出一个计算公式来近似,由此而产生的误差称为方法误差。
(4)舍入误差:由于计算机字长有限,参加运算的数据只能截取有限位,由此而产生的误差称为舍入误差。
一般来说,绝对误差的大小不能充分说明近似值的精确程度,一般用相对误差衡量近似值的准确程度。Er?a??x*?a/x*,x*为精确值,a为x*的一个近似数。 3. (15分)在298K 下,化学反应 2OF2=O2+2F2 的平衡常数为0.410 atm,如在298K 下将OF2 通入容器,当t=0 时为1 atm,问最后总压是多少?取计算精度为10-3。
解:首先写出求解问题的数学方程式。
假设气体是理想气体,由反应的化学计量式可知, 2OF2?O2?2F2设氧的分压为p,平衡时有1?2p p 2p。
??4p3 平衡时,有?0.410 2?1?2p?整理得 4p3?1.640p2?1.64p?0.410?0
函数关系为 f?p??4p3?1.640p2?1.64p?0.410?0 非线性方程求根问题,如何确定求解区间?a,b?? 由计算得f?0.2???0.1156,f?0.3??0.0424
因此,有根区间为?0.2,0.3?,用求单根的二分法计算,求解得氧气分压。
编写二分法的MATLAB程序:bisect.m
function [xstar,index,it]=bisect(fun,a,b,ep) %fun为需要求根的函数; %a,b为初始区间的端点; %ep为精度,缺省值为1e-5' %当(b-a)/2 %index=0时,表明初始区间不是有根区间; %it为迭代次数. if nargin<4 ep=1e-5;end fa=feval(fun,a);fb=feval(fun,b); if fa*fb>0 xstar=[fa,fb];index=0;it=0; return end k=0; while abs(b-a)/2>=ep x=(a+b)/2;fx=feval(fun,x); if fx*fa<0 b=x;fb=fx; else a=x;fa=fx; end k=k+1; end xstar=(a+b)/2;index=1;it=k; 编写本题的求根函数,函数名为fun1.m. function f=fun1(x) f=4*x^3-1.640*x^2+1.64*x-0.410; 调用二分法函数bisect.m求方程的根: [xstar,index,it]=bisect('fun1',0.2,0.3,0.0005) 得到方程的根: xstar = 0.2746 index = 1 it = 7 运行结果表明二分法迭代成功,即达到精度要求,共迭代计算7次。 p?0.2746 最后总压为P?3p??1?2p??1.2746atm 4. (10 分)实验测得某物质在 20℃下,其水溶液浓度 c(重量%)与粘度(Pa·s)的关系如下表。试用拉格朗日5次插值计算粘度在 2.0×10-3 和 5.5×10-3 时所对应的浓度。要求精确到小数点后第 3 位。 解:由题意知, 编写拉格朗日插值的MATLAB程序:Lagrange.m function yi = Lagrange( x,y,xi ) %Lagrange差值多项式,其中, %x为向量,全部的插值结点; %y为向量,插值节点处的函数值; %xi为标量或向量,被估计函数的自变量; %yi为xi处的函数估计值。 n=length(x);m=length(y);
相关推荐: