现代数值分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
研硕16《化工数值方法及Matlab应用》试题
班级姓名成绩
1.(15分)数值计算方法的主要研究对象有哪些?其常用基本算法主要包括哪三个方面?举例说明Matlab在解决化工数值计算问题方面有什么样实用价值?答:(1)数值计算方法的主要研究对象为非线性方程求根,插值法、曲线拟合、数值积分、常微分方程(组)、初值问题求解、线性和非线性方程组求解。(2)基本算法包括①离散化方法:用差商代替导数、差分代替微分等,将连续的数学问题转化为离散问题。②逼近方法:用简单函数的值近似代替求解困难或形式未知的复杂函数的值。③迭代法:用一个固定公式反复计算,对较为粗糙的根的近似值进行加工直到满足精度要求的方法。
(3)Matlab在解决化工数值计算问题的实用价值有:数值计算和符号计算功能;图形功能;MATLAB语言;功能性和学科性工具箱。
2.(10分)数值计算中的“曲线拟合”,一般有哪些方法?请至少指出四种,并简述各自的基本特点。
答:(1)拉格朗日插值:,优点在于不要求数据点事等间隔的,缺点是数据点不易过多,当数据比较多时,差值函数有偏离原函数的风险;
(2)牛顿插值法:它不仅克服了“增加一个节点时整个计算工作必须重新开始”的缺点,而且可以节省乘、除法运算次数。同时,在牛顿插值多项式中用到的差分与差商等概念,又与数值计算的其他方面有着密切的关系。
(3)牛顿迭代法:牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。
(4)区间二分法:优点:算法简单,容易理解,且总是收敛的。缺点:收敛速度太慢,浪费时间,二分法不能求复根跟偶数重根。
(5)最小二乘法:通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。
3. (15分)在298K 下,化学反应 2OF 2=O 2+2F 2 的平衡常数为0.410 atm ,如在298K 下将OF 2 通入容器,当t=0 时为1 atm ,问最后总压是多少?取计算精度为10-3
。
解:首先写出求解问题的数学方程式。
假设气体是理想气体,由反应的化学计量式可知, 22222F O OF +=
设氧的分压为p ,平衡时有p 21- p p 2。
平衡时,有()410.02142
3=-p p 整理得 0410.064.1640.1423=-+-p p p
函数关系为 ()0410.064.1640.1423=-+-=p p p p f
非线性方程求根问题,如何确定求解区间[]b a,?
由计算得()()0424
-
f
2.0=
=f
1156
.0
3.0
,
.0
因此,有根区间为[]3.0,2.0,用求单根的二分法计算,求解得氧气分压。编写二分法的MATLAB程序:bisect.m
function [xstar,index,it]=bisect(fun,a,b,ep)
%fun为需要求根的函数;
%a,b为初始区间的端点;
%ep为精度,缺省值为1e-5'
%当(b-a)/2 %xstar为当迭代成功时,输出方程的根, %当迭代失败时,输出两端点的函数值; %index为指标变量, %index=1时,表明迭代成功, %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次。 2746.0=p 最后总压为()atm p p P 2746.1213=-+= 4. (10分)下表给出11月8日某个城市郊区在5个小时中的测量温度。请用MATLAB 对表中的数据构造一个拉格朗日插值多项式,并估计在下午3:15分时的温度值。然后在同一坐标系中画出表中的数据和上述得到的多项式曲线。 下午时间 1 2 3 4 5 6 华氏温度 66.5 66 65 64 63 62.4 解: 编程程序如下: 命令运行结果如下: 下午3:15分时的温度值近似取3:25的温度值,64.7484华氏度。